1 // Generated by update_unicode.py DO NOT MODIFY
2 // Unicode version: 13.0.0
3
4 const FLAG_ID_START: u8 = 1;
5 const FLAG_ID_CONTINUE: u8 = 2;
6
7 pub struct CharInfo {
8 flags: u8,
9 }
10
11 impl CharInfo {
is_id_start(&self) -> bool12 pub fn is_id_start(&self) -> bool {
13 self.flags & FLAG_ID_START != 0
14 }
15
is_id_continue(&self) -> bool16 pub fn is_id_continue(&self) -> bool {
17 self.flags & FLAG_ID_CONTINUE != 0
18 }
19 }
20
21 pub const CHAR_INFO_TABLE: &'static [CharInfo] = &[
22 CharInfo { flags: 0 },
23 CharInfo { flags: 2 },
24 CharInfo { flags: 3 },
25 ];
26
27 pub const INDEX1: &'static [u8] = &[
28 0, 0, 0, 1, 2, 3, 2, 4, 0, 0, 5, 6, 7, 8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
29 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 9, 10, 11, 0, 12, 12, 12, 12, 12, 12, 12, 13, 14, 7, 15, 7,
30 7, 7, 7, 16, 7, 7, 7, 7, 7, 7, 7, 7, 17, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 2, 7, 18, 7, 7, 19, 20,
31 12, 21, 22, 7, 23, 24, 0, 25, 7, 7, 26, 12, 27, 28, 7, 7, 7, 7, 7, 29, 30, 31, 0, 32, 7, 12,
32 33, 7, 7, 7, 7, 7, 34, 35, 36, 7, 26, 37, 7, 38, 39, 0, 7, 40, 4, 0, 0, 0, 7, 41, 42, 43, 44,
33 12, 45, 7, 7, 46, 12, 47, 48, 2, 49, 50, 51, 52, 53, 54, 48, 55, 56, 50, 51, 57, 58, 59, 60,
34 61, 62, 15, 51, 63, 64, 65, 48, 66, 67, 50, 51, 63, 68, 69, 48, 70, 71, 72, 73, 74, 75, 76, 60,
35 0, 77, 78, 51, 79, 80, 81, 48, 0, 82, 78, 51, 83, 80, 84, 48, 85, 86, 78, 7, 87, 88, 89, 48,
36 90, 91, 92, 7, 93, 94, 95, 60, 96, 2, 7, 7, 97, 98, 1, 0, 0, 99, 7, 100, 101, 102, 103, 0, 0,
37 65, 104, 1, 105, 106, 7, 107, 20, 108, 109, 12, 110, 111, 0, 0, 0, 7, 7, 26, 112, 1, 113, 114,
38 115, 116, 117, 7, 7, 118, 7, 7, 119, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
39 7, 120, 121, 7, 7, 120, 7, 7, 122, 123, 8, 7, 7, 7, 123, 7, 7, 7, 124, 125, 126, 7, 0, 7, 7, 7,
40 7, 7, 127, 2, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
41 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 128, 7, 2, 4, 7, 7, 7, 7, 129, 19, 130, 131, 7, 131, 7, 132, 130,
42 133, 7, 7, 7, 134, 12, 135, 1, 0, 136, 1, 7, 7, 7, 7, 7, 19, 7, 7, 137, 7, 7, 7, 7, 138, 7,
43 139, 140, 140, 60, 7, 141, 142, 7, 7, 143, 7, 144, 25, 0, 0, 7, 145, 7, 7, 7, 146, 12, 147, 1,
44 1, 148, 21, 149, 0, 0, 0, 150, 7, 7, 134, 151, 1, 152, 153, 154, 7, 155, 36, 7, 7, 34, 153, 7,
45 7, 134, 156, 157, 36, 7, 141, 19, 7, 7, 158, 0, 159, 160, 161, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
46 7, 12, 12, 12, 162, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 127, 7, 7, 127, 163, 7,
47 141, 7, 7, 7, 164, 165, 166, 107, 165, 0, 0, 0, 167, 149, 168, 0, 169, 0, 107, 0, 0, 0, 110,
48 170, 149, 171, 172, 173, 174, 175, 0, 7, 7, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
49 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
50 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
51 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
52 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
53 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 139, 7, 7, 139, 7,
54 7, 7, 7, 7, 7, 7, 7, 176, 177, 7, 7, 118, 7, 7, 7, 178, 167, 7, 179, 180, 180, 180, 180, 12,
55 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
56 0, 0, 181, 0, 182, 183, 2, 7, 7, 7, 7, 184, 2, 7, 7, 7, 7, 119, 185, 7, 7, 2, 7, 7, 7, 7, 139,
57 0, 7, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
58 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
59 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
60 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
61 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
62 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
63 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
64 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
65 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
66 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
67 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
68 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
69 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
70 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
71 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
72 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
73 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
74 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
75 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
76 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
77 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
78 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
79 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
80 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
81 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
82 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
83 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
84 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
85 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
86 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
87 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
88 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
89 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
90 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
91 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
92 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
93 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
94 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
95 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
96 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
97 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
98 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
99 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
100 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
101 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
102 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
103 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
104 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
105 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
106 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
107 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
108 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
109 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
110 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
111 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
112 7, 7, 7, 7, 7, 7, 107, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
113 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
114 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 107, 0, 0, 0, 0, 7, 7, 141, 7, 7, 7, 7, 7, 7,
115 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 107, 7, 186, 0, 7, 7, 187, 188, 7, 189, 7, 7, 7, 7, 7, 126, 0,
116 190, 191, 7, 7, 7, 7, 7, 192, 7, 7, 7, 193, 0, 0, 185, 194, 7, 195, 0, 7, 7, 7, 196, 197, 7, 7,
117 134, 198, 1, 12, 199, 36, 7, 200, 7, 201, 153, 7, 107, 45, 7, 7, 202, 203, 1, 204, 205, 7, 7,
118 206, 207, 208, 1, 7, 209, 7, 7, 7, 210, 211, 212, 26, 213, 214, 215, 180, 7, 7, 119, 144, 7, 7,
119 7, 7, 7, 7, 7, 216, 1, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
120 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
121 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
122 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
123 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
124 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
125 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
126 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
127 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
128 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
129 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
130 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
131 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
132 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
133 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
134 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
135 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
136 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
137 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
138 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
139 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
140 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
141 7, 7, 196, 7, 217, 7, 7, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
151 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7,
158 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 141, 7, 7, 7, 7, 7, 7, 144, 0, 0, 179, 218, 51,
159 219, 220, 7, 7, 7, 7, 7, 7, 10, 0, 221, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
160 7, 7, 7, 141, 0, 7, 7, 7, 7, 191, 7, 7, 42, 0, 0, 143, 12, 0, 12, 222, 223, 0, 0, 41, 7, 7, 7,
161 7, 7, 7, 7, 107, 0, 1, 2, 3, 2, 4, 224, 7, 7, 7, 7, 139, 225, 226, 0, 0,
162 ];
163
164 pub const INDEX2: &'static [u8] = &[
165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
166 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 1,
167 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
168 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
169 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
170 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0,
171 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 2, 2, 2, 2, 0, 2,
172 0, 0, 0, 0, 0, 0, 2, 1, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
173 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, 0, 0, 2, 2, 2, 2, 2, 2,
174 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0,
175 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1,
176 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2,
177 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
178 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2,
179 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1,
180 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 0, 0, 2,
181 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 2, 2,
182 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
183 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 2, 0, 0, 1, 0, 0,
184 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 0, 0,
185 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
186 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
187 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
188 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
189 2, 2, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2,
190 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2,
191 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 2, 0,
192 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0,
193 0, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 1, 0, 1, 1,
194 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 0,
195 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
196 0, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 1, 2, 1, 1,
197 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
198 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2,
199 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 2, 2, 0, 2,
200 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2,
201 2, 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 2, 0, 2, 2, 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2,
202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0,
203 2, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2,
204 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 1, 1,
205 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 2, 2, 2, 0, 0, 0, 0, 0,
206 2, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 1, 2, 1, 1,
207 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
208 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 1, 1,
209 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 2,
210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
211 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0,
212 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,
213 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
214 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 2, 0, 2, 0, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2,
215 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 0,
216 2, 2, 2, 2, 2, 0, 2, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 2, 2, 2,
217 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1,
218 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
219 1, 1, 1, 1, 1, 0, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
220 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
221 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1,
222 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
223 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
224 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2,
225 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0,
226 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
227 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1,
228 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0,
229 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2,
230 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
231 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
232 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 2, 1, 0, 0,
233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 0, 0, 0, 0, 0,
234 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0,
235 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0,
236 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
237 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0,
238 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1,
239 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
240 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0,
241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
242 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
243 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 2, 2, 2,
244 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
245 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 1, 1, 2, 0, 0, 0, 0, 0,
246 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2,
247 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0,
248 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
249 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
250 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2,
251 2, 2, 2, 2, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 2, 2, 2, 2, 2,
252 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0,
253 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 1, 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
254 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
255 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0,
256 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0,
257 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
258 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
259 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1,
260 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
261 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0,
262 2, 2, 1, 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0,
263 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
264 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 0, 2, 2, 1,
265 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
266 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
267 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 0,
268 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
269 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 1, 1, 1, 2, 2,
270 1, 2, 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
271 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
272 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
273 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2,
274 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 0,
275 2, 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
276 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
277 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2,
278 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0,
279 ];
280
281 const SHIFT: usize = 4;
282
char_info(c: char) -> &'static CharInfo283 pub fn char_info(c: char) -> &'static CharInfo {
284 let code = c as usize;
285 let index = INDEX1[code >> SHIFT] as usize;
286 let index = INDEX2[(index << SHIFT) + (code & ((1 << SHIFT) - 1))] as usize;
287
288 &CHAR_INFO_TABLE[index]
289 }
290
291 pub const IS_ID_START_TABLE: &'static [bool] = &[
292 false, false, false, false, false, false, false, false, false, false, false, false, false,
293 false, false, false, false, false, false, false, false, false, false, false, false, false,
294 false, false, false, false, false, false, false, false, false, false, false, false, false,
295 false, false, false, false, false, false, false, false, false, false, false, false, false,
296 false, false, false, false, false, false, false, false, false, false, false, false, false,
297 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
298 true, true, true, true, true, true, true, true, true, true, false, false, false, false, false,
299 false, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
300 true, true, true, true, true, true, true, true, true, true, true, true, false, false, false,
301 false, false,
302 ];
303
304 pub const IS_ID_CONTINUE_TABLE: &'static [bool] = &[
305 false, false, false, false, false, false, false, false, false, false, false, false, false,
306 false, false, false, false, false, false, false, false, false, false, false, false, false,
307 false, false, false, false, false, false, false, false, false, false, false, false, false,
308 false, false, false, false, false, false, false, false, false, true, true, true, true, true,
309 true, true, true, true, true, false, false, false, false, false, false, false, true, true,
310 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
311 true, true, true, true, true, true, true, true, false, false, false, false, true, false, true,
312 true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true,
313 true, true, true, true, true, true, true, true, true, false, false, false, false, false,
314 ];
315
is_id_start_non_bmp(c: char) -> bool316 pub fn is_id_start_non_bmp(c: char) -> bool {
317 if c >= '\u{10000}' && c <= '\u{1000B}' {
318 return true;
319 }
320 if c >= '\u{1000D}' && c <= '\u{10026}' {
321 return true;
322 }
323 if c >= '\u{10028}' && c <= '\u{1003A}' {
324 return true;
325 }
326 if c >= '\u{1003C}' && c <= '\u{1003D}' {
327 return true;
328 }
329 if c >= '\u{1003F}' && c <= '\u{1004D}' {
330 return true;
331 }
332 if c >= '\u{10050}' && c <= '\u{1005D}' {
333 return true;
334 }
335 if c >= '\u{10080}' && c <= '\u{100FA}' {
336 return true;
337 }
338 if c >= '\u{10140}' && c <= '\u{10174}' {
339 return true;
340 }
341 if c >= '\u{10280}' && c <= '\u{1029C}' {
342 return true;
343 }
344 if c >= '\u{102A0}' && c <= '\u{102D0}' {
345 return true;
346 }
347 if c >= '\u{10300}' && c <= '\u{1031F}' {
348 return true;
349 }
350 if c >= '\u{1032D}' && c <= '\u{1034A}' {
351 return true;
352 }
353 if c >= '\u{10350}' && c <= '\u{10375}' {
354 return true;
355 }
356 if c >= '\u{10380}' && c <= '\u{1039D}' {
357 return true;
358 }
359 if c >= '\u{103A0}' && c <= '\u{103C3}' {
360 return true;
361 }
362 if c >= '\u{103C8}' && c <= '\u{103CF}' {
363 return true;
364 }
365 if c >= '\u{103D1}' && c <= '\u{103D5}' {
366 return true;
367 }
368 if c >= '\u{10400}' && c <= '\u{1049D}' {
369 return true;
370 }
371 if c >= '\u{104B0}' && c <= '\u{104D3}' {
372 return true;
373 }
374 if c >= '\u{104D8}' && c <= '\u{104FB}' {
375 return true;
376 }
377 if c >= '\u{10500}' && c <= '\u{10527}' {
378 return true;
379 }
380 if c >= '\u{10530}' && c <= '\u{10563}' {
381 return true;
382 }
383 if c >= '\u{10600}' && c <= '\u{10736}' {
384 return true;
385 }
386 if c >= '\u{10740}' && c <= '\u{10755}' {
387 return true;
388 }
389 if c >= '\u{10760}' && c <= '\u{10767}' {
390 return true;
391 }
392 if c >= '\u{10800}' && c <= '\u{10805}' {
393 return true;
394 }
395 if c >= '\u{10808}' && c <= '\u{10808}' {
396 return true;
397 }
398 if c >= '\u{1080A}' && c <= '\u{10835}' {
399 return true;
400 }
401 if c >= '\u{10837}' && c <= '\u{10838}' {
402 return true;
403 }
404 if c >= '\u{1083C}' && c <= '\u{1083C}' {
405 return true;
406 }
407 if c >= '\u{1083F}' && c <= '\u{10855}' {
408 return true;
409 }
410 if c >= '\u{10860}' && c <= '\u{10876}' {
411 return true;
412 }
413 if c >= '\u{10880}' && c <= '\u{1089E}' {
414 return true;
415 }
416 if c >= '\u{108E0}' && c <= '\u{108F2}' {
417 return true;
418 }
419 if c >= '\u{108F4}' && c <= '\u{108F5}' {
420 return true;
421 }
422 if c >= '\u{10900}' && c <= '\u{10915}' {
423 return true;
424 }
425 if c >= '\u{10920}' && c <= '\u{10939}' {
426 return true;
427 }
428 if c >= '\u{10980}' && c <= '\u{109B7}' {
429 return true;
430 }
431 if c >= '\u{109BE}' && c <= '\u{109BF}' {
432 return true;
433 }
434 if c >= '\u{10A00}' && c <= '\u{10A00}' {
435 return true;
436 }
437 if c >= '\u{10A10}' && c <= '\u{10A13}' {
438 return true;
439 }
440 if c >= '\u{10A15}' && c <= '\u{10A17}' {
441 return true;
442 }
443 if c >= '\u{10A19}' && c <= '\u{10A35}' {
444 return true;
445 }
446 if c >= '\u{10A60}' && c <= '\u{10A7C}' {
447 return true;
448 }
449 if c >= '\u{10A80}' && c <= '\u{10A9C}' {
450 return true;
451 }
452 if c >= '\u{10AC0}' && c <= '\u{10AC7}' {
453 return true;
454 }
455 if c >= '\u{10AC9}' && c <= '\u{10AE4}' {
456 return true;
457 }
458 if c >= '\u{10B00}' && c <= '\u{10B35}' {
459 return true;
460 }
461 if c >= '\u{10B40}' && c <= '\u{10B55}' {
462 return true;
463 }
464 if c >= '\u{10B60}' && c <= '\u{10B72}' {
465 return true;
466 }
467 if c >= '\u{10B80}' && c <= '\u{10B91}' {
468 return true;
469 }
470 if c >= '\u{10C00}' && c <= '\u{10C48}' {
471 return true;
472 }
473 if c >= '\u{10C80}' && c <= '\u{10CB2}' {
474 return true;
475 }
476 if c >= '\u{10CC0}' && c <= '\u{10CF2}' {
477 return true;
478 }
479 if c >= '\u{10D00}' && c <= '\u{10D23}' {
480 return true;
481 }
482 if c >= '\u{10E80}' && c <= '\u{10EA9}' {
483 return true;
484 }
485 if c >= '\u{10EB0}' && c <= '\u{10EB1}' {
486 return true;
487 }
488 if c >= '\u{10F00}' && c <= '\u{10F1C}' {
489 return true;
490 }
491 if c >= '\u{10F27}' && c <= '\u{10F27}' {
492 return true;
493 }
494 if c >= '\u{10F30}' && c <= '\u{10F45}' {
495 return true;
496 }
497 if c >= '\u{10FB0}' && c <= '\u{10FC4}' {
498 return true;
499 }
500 if c >= '\u{10FE0}' && c <= '\u{10FF6}' {
501 return true;
502 }
503 if c >= '\u{11003}' && c <= '\u{11037}' {
504 return true;
505 }
506 if c >= '\u{11083}' && c <= '\u{110AF}' {
507 return true;
508 }
509 if c >= '\u{110D0}' && c <= '\u{110E8}' {
510 return true;
511 }
512 if c >= '\u{11103}' && c <= '\u{11126}' {
513 return true;
514 }
515 if c >= '\u{11144}' && c <= '\u{11144}' {
516 return true;
517 }
518 if c >= '\u{11147}' && c <= '\u{11147}' {
519 return true;
520 }
521 if c >= '\u{11150}' && c <= '\u{11172}' {
522 return true;
523 }
524 if c >= '\u{11176}' && c <= '\u{11176}' {
525 return true;
526 }
527 if c >= '\u{11183}' && c <= '\u{111B2}' {
528 return true;
529 }
530 if c >= '\u{111C1}' && c <= '\u{111C4}' {
531 return true;
532 }
533 if c >= '\u{111DA}' && c <= '\u{111DA}' {
534 return true;
535 }
536 if c >= '\u{111DC}' && c <= '\u{111DC}' {
537 return true;
538 }
539 if c >= '\u{11200}' && c <= '\u{11211}' {
540 return true;
541 }
542 if c >= '\u{11213}' && c <= '\u{1122B}' {
543 return true;
544 }
545 if c >= '\u{11280}' && c <= '\u{11286}' {
546 return true;
547 }
548 if c >= '\u{11288}' && c <= '\u{11288}' {
549 return true;
550 }
551 if c >= '\u{1128A}' && c <= '\u{1128D}' {
552 return true;
553 }
554 if c >= '\u{1128F}' && c <= '\u{1129D}' {
555 return true;
556 }
557 if c >= '\u{1129F}' && c <= '\u{112A8}' {
558 return true;
559 }
560 if c >= '\u{112B0}' && c <= '\u{112DE}' {
561 return true;
562 }
563 if c >= '\u{11305}' && c <= '\u{1130C}' {
564 return true;
565 }
566 if c >= '\u{1130F}' && c <= '\u{11310}' {
567 return true;
568 }
569 if c >= '\u{11313}' && c <= '\u{11328}' {
570 return true;
571 }
572 if c >= '\u{1132A}' && c <= '\u{11330}' {
573 return true;
574 }
575 if c >= '\u{11332}' && c <= '\u{11333}' {
576 return true;
577 }
578 if c >= '\u{11335}' && c <= '\u{11339}' {
579 return true;
580 }
581 if c >= '\u{1133D}' && c <= '\u{1133D}' {
582 return true;
583 }
584 if c >= '\u{11350}' && c <= '\u{11350}' {
585 return true;
586 }
587 if c >= '\u{1135D}' && c <= '\u{11361}' {
588 return true;
589 }
590 if c >= '\u{11400}' && c <= '\u{11434}' {
591 return true;
592 }
593 if c >= '\u{11447}' && c <= '\u{1144A}' {
594 return true;
595 }
596 if c >= '\u{1145F}' && c <= '\u{11461}' {
597 return true;
598 }
599 if c >= '\u{11480}' && c <= '\u{114AF}' {
600 return true;
601 }
602 if c >= '\u{114C4}' && c <= '\u{114C5}' {
603 return true;
604 }
605 if c >= '\u{114C7}' && c <= '\u{114C7}' {
606 return true;
607 }
608 if c >= '\u{11580}' && c <= '\u{115AE}' {
609 return true;
610 }
611 if c >= '\u{115D8}' && c <= '\u{115DB}' {
612 return true;
613 }
614 if c >= '\u{11600}' && c <= '\u{1162F}' {
615 return true;
616 }
617 if c >= '\u{11644}' && c <= '\u{11644}' {
618 return true;
619 }
620 if c >= '\u{11680}' && c <= '\u{116AA}' {
621 return true;
622 }
623 if c >= '\u{116B8}' && c <= '\u{116B8}' {
624 return true;
625 }
626 if c >= '\u{11700}' && c <= '\u{1171A}' {
627 return true;
628 }
629 if c >= '\u{11800}' && c <= '\u{1182B}' {
630 return true;
631 }
632 if c >= '\u{118A0}' && c <= '\u{118DF}' {
633 return true;
634 }
635 if c >= '\u{118FF}' && c <= '\u{11906}' {
636 return true;
637 }
638 if c >= '\u{11909}' && c <= '\u{11909}' {
639 return true;
640 }
641 if c >= '\u{1190C}' && c <= '\u{11913}' {
642 return true;
643 }
644 if c >= '\u{11915}' && c <= '\u{11916}' {
645 return true;
646 }
647 if c >= '\u{11918}' && c <= '\u{1192F}' {
648 return true;
649 }
650 if c >= '\u{1193F}' && c <= '\u{1193F}' {
651 return true;
652 }
653 if c >= '\u{11941}' && c <= '\u{11941}' {
654 return true;
655 }
656 if c >= '\u{119A0}' && c <= '\u{119A7}' {
657 return true;
658 }
659 if c >= '\u{119AA}' && c <= '\u{119D0}' {
660 return true;
661 }
662 if c >= '\u{119E1}' && c <= '\u{119E1}' {
663 return true;
664 }
665 if c >= '\u{119E3}' && c <= '\u{119E3}' {
666 return true;
667 }
668 if c >= '\u{11A00}' && c <= '\u{11A00}' {
669 return true;
670 }
671 if c >= '\u{11A0B}' && c <= '\u{11A32}' {
672 return true;
673 }
674 if c >= '\u{11A3A}' && c <= '\u{11A3A}' {
675 return true;
676 }
677 if c >= '\u{11A50}' && c <= '\u{11A50}' {
678 return true;
679 }
680 if c >= '\u{11A5C}' && c <= '\u{11A89}' {
681 return true;
682 }
683 if c >= '\u{11A9D}' && c <= '\u{11A9D}' {
684 return true;
685 }
686 if c >= '\u{11AC0}' && c <= '\u{11AF8}' {
687 return true;
688 }
689 if c >= '\u{11C00}' && c <= '\u{11C08}' {
690 return true;
691 }
692 if c >= '\u{11C0A}' && c <= '\u{11C2E}' {
693 return true;
694 }
695 if c >= '\u{11C40}' && c <= '\u{11C40}' {
696 return true;
697 }
698 if c >= '\u{11C72}' && c <= '\u{11C8F}' {
699 return true;
700 }
701 if c >= '\u{11D00}' && c <= '\u{11D06}' {
702 return true;
703 }
704 if c >= '\u{11D08}' && c <= '\u{11D09}' {
705 return true;
706 }
707 if c >= '\u{11D0B}' && c <= '\u{11D30}' {
708 return true;
709 }
710 if c >= '\u{11D46}' && c <= '\u{11D46}' {
711 return true;
712 }
713 if c >= '\u{11D60}' && c <= '\u{11D65}' {
714 return true;
715 }
716 if c >= '\u{11D67}' && c <= '\u{11D68}' {
717 return true;
718 }
719 if c >= '\u{11D6A}' && c <= '\u{11D89}' {
720 return true;
721 }
722 if c >= '\u{11D98}' && c <= '\u{11D98}' {
723 return true;
724 }
725 if c >= '\u{11EE0}' && c <= '\u{11EF2}' {
726 return true;
727 }
728 if c >= '\u{11FB0}' && c <= '\u{11FB0}' {
729 return true;
730 }
731 if c >= '\u{12000}' && c <= '\u{12399}' {
732 return true;
733 }
734 if c >= '\u{12400}' && c <= '\u{1246E}' {
735 return true;
736 }
737 if c >= '\u{12480}' && c <= '\u{12543}' {
738 return true;
739 }
740 if c >= '\u{13000}' && c <= '\u{1342E}' {
741 return true;
742 }
743 if c >= '\u{14400}' && c <= '\u{14646}' {
744 return true;
745 }
746 if c >= '\u{16800}' && c <= '\u{16A38}' {
747 return true;
748 }
749 if c >= '\u{16A40}' && c <= '\u{16A5E}' {
750 return true;
751 }
752 if c >= '\u{16AD0}' && c <= '\u{16AED}' {
753 return true;
754 }
755 if c >= '\u{16B00}' && c <= '\u{16B2F}' {
756 return true;
757 }
758 if c >= '\u{16B40}' && c <= '\u{16B43}' {
759 return true;
760 }
761 if c >= '\u{16B63}' && c <= '\u{16B77}' {
762 return true;
763 }
764 if c >= '\u{16B7D}' && c <= '\u{16B8F}' {
765 return true;
766 }
767 if c >= '\u{16E40}' && c <= '\u{16E7F}' {
768 return true;
769 }
770 if c >= '\u{16F00}' && c <= '\u{16F4A}' {
771 return true;
772 }
773 if c >= '\u{16F50}' && c <= '\u{16F50}' {
774 return true;
775 }
776 if c >= '\u{16F93}' && c <= '\u{16F9F}' {
777 return true;
778 }
779 if c >= '\u{16FE0}' && c <= '\u{16FE1}' {
780 return true;
781 }
782 if c >= '\u{16FE3}' && c <= '\u{16FE3}' {
783 return true;
784 }
785 if c >= '\u{17000}' && c <= '\u{187F7}' {
786 return true;
787 }
788 if c >= '\u{18800}' && c <= '\u{18CD5}' {
789 return true;
790 }
791 if c >= '\u{18D00}' && c <= '\u{18D08}' {
792 return true;
793 }
794 if c >= '\u{1B000}' && c <= '\u{1B11E}' {
795 return true;
796 }
797 if c >= '\u{1B150}' && c <= '\u{1B152}' {
798 return true;
799 }
800 if c >= '\u{1B164}' && c <= '\u{1B167}' {
801 return true;
802 }
803 if c >= '\u{1B170}' && c <= '\u{1B2FB}' {
804 return true;
805 }
806 if c >= '\u{1BC00}' && c <= '\u{1BC6A}' {
807 return true;
808 }
809 if c >= '\u{1BC70}' && c <= '\u{1BC7C}' {
810 return true;
811 }
812 if c >= '\u{1BC80}' && c <= '\u{1BC88}' {
813 return true;
814 }
815 if c >= '\u{1BC90}' && c <= '\u{1BC99}' {
816 return true;
817 }
818 if c >= '\u{1D400}' && c <= '\u{1D454}' {
819 return true;
820 }
821 if c >= '\u{1D456}' && c <= '\u{1D49C}' {
822 return true;
823 }
824 if c >= '\u{1D49E}' && c <= '\u{1D49F}' {
825 return true;
826 }
827 if c >= '\u{1D4A2}' && c <= '\u{1D4A2}' {
828 return true;
829 }
830 if c >= '\u{1D4A5}' && c <= '\u{1D4A6}' {
831 return true;
832 }
833 if c >= '\u{1D4A9}' && c <= '\u{1D4AC}' {
834 return true;
835 }
836 if c >= '\u{1D4AE}' && c <= '\u{1D4B9}' {
837 return true;
838 }
839 if c >= '\u{1D4BB}' && c <= '\u{1D4BB}' {
840 return true;
841 }
842 if c >= '\u{1D4BD}' && c <= '\u{1D4C3}' {
843 return true;
844 }
845 if c >= '\u{1D4C5}' && c <= '\u{1D505}' {
846 return true;
847 }
848 if c >= '\u{1D507}' && c <= '\u{1D50A}' {
849 return true;
850 }
851 if c >= '\u{1D50D}' && c <= '\u{1D514}' {
852 return true;
853 }
854 if c >= '\u{1D516}' && c <= '\u{1D51C}' {
855 return true;
856 }
857 if c >= '\u{1D51E}' && c <= '\u{1D539}' {
858 return true;
859 }
860 if c >= '\u{1D53B}' && c <= '\u{1D53E}' {
861 return true;
862 }
863 if c >= '\u{1D540}' && c <= '\u{1D544}' {
864 return true;
865 }
866 if c >= '\u{1D546}' && c <= '\u{1D546}' {
867 return true;
868 }
869 if c >= '\u{1D54A}' && c <= '\u{1D550}' {
870 return true;
871 }
872 if c >= '\u{1D552}' && c <= '\u{1D6A5}' {
873 return true;
874 }
875 if c >= '\u{1D6A8}' && c <= '\u{1D6C0}' {
876 return true;
877 }
878 if c >= '\u{1D6C2}' && c <= '\u{1D6DA}' {
879 return true;
880 }
881 if c >= '\u{1D6DC}' && c <= '\u{1D6FA}' {
882 return true;
883 }
884 if c >= '\u{1D6FC}' && c <= '\u{1D714}' {
885 return true;
886 }
887 if c >= '\u{1D716}' && c <= '\u{1D734}' {
888 return true;
889 }
890 if c >= '\u{1D736}' && c <= '\u{1D74E}' {
891 return true;
892 }
893 if c >= '\u{1D750}' && c <= '\u{1D76E}' {
894 return true;
895 }
896 if c >= '\u{1D770}' && c <= '\u{1D788}' {
897 return true;
898 }
899 if c >= '\u{1D78A}' && c <= '\u{1D7A8}' {
900 return true;
901 }
902 if c >= '\u{1D7AA}' && c <= '\u{1D7C2}' {
903 return true;
904 }
905 if c >= '\u{1D7C4}' && c <= '\u{1D7CB}' {
906 return true;
907 }
908 if c >= '\u{1E100}' && c <= '\u{1E12C}' {
909 return true;
910 }
911 if c >= '\u{1E137}' && c <= '\u{1E13D}' {
912 return true;
913 }
914 if c >= '\u{1E14E}' && c <= '\u{1E14E}' {
915 return true;
916 }
917 if c >= '\u{1E2C0}' && c <= '\u{1E2EB}' {
918 return true;
919 }
920 if c >= '\u{1E800}' && c <= '\u{1E8C4}' {
921 return true;
922 }
923 if c >= '\u{1E900}' && c <= '\u{1E943}' {
924 return true;
925 }
926 if c >= '\u{1E94B}' && c <= '\u{1E94B}' {
927 return true;
928 }
929 if c >= '\u{1EE00}' && c <= '\u{1EE03}' {
930 return true;
931 }
932 if c >= '\u{1EE05}' && c <= '\u{1EE1F}' {
933 return true;
934 }
935 if c >= '\u{1EE21}' && c <= '\u{1EE22}' {
936 return true;
937 }
938 if c >= '\u{1EE24}' && c <= '\u{1EE24}' {
939 return true;
940 }
941 if c >= '\u{1EE27}' && c <= '\u{1EE27}' {
942 return true;
943 }
944 if c >= '\u{1EE29}' && c <= '\u{1EE32}' {
945 return true;
946 }
947 if c >= '\u{1EE34}' && c <= '\u{1EE37}' {
948 return true;
949 }
950 if c >= '\u{1EE39}' && c <= '\u{1EE39}' {
951 return true;
952 }
953 if c >= '\u{1EE3B}' && c <= '\u{1EE3B}' {
954 return true;
955 }
956 if c >= '\u{1EE42}' && c <= '\u{1EE42}' {
957 return true;
958 }
959 if c >= '\u{1EE47}' && c <= '\u{1EE47}' {
960 return true;
961 }
962 if c >= '\u{1EE49}' && c <= '\u{1EE49}' {
963 return true;
964 }
965 if c >= '\u{1EE4B}' && c <= '\u{1EE4B}' {
966 return true;
967 }
968 if c >= '\u{1EE4D}' && c <= '\u{1EE4F}' {
969 return true;
970 }
971 if c >= '\u{1EE51}' && c <= '\u{1EE52}' {
972 return true;
973 }
974 if c >= '\u{1EE54}' && c <= '\u{1EE54}' {
975 return true;
976 }
977 if c >= '\u{1EE57}' && c <= '\u{1EE57}' {
978 return true;
979 }
980 if c >= '\u{1EE59}' && c <= '\u{1EE59}' {
981 return true;
982 }
983 if c >= '\u{1EE5B}' && c <= '\u{1EE5B}' {
984 return true;
985 }
986 if c >= '\u{1EE5D}' && c <= '\u{1EE5D}' {
987 return true;
988 }
989 if c >= '\u{1EE5F}' && c <= '\u{1EE5F}' {
990 return true;
991 }
992 if c >= '\u{1EE61}' && c <= '\u{1EE62}' {
993 return true;
994 }
995 if c >= '\u{1EE64}' && c <= '\u{1EE64}' {
996 return true;
997 }
998 if c >= '\u{1EE67}' && c <= '\u{1EE6A}' {
999 return true;
1000 }
1001 if c >= '\u{1EE6C}' && c <= '\u{1EE72}' {
1002 return true;
1003 }
1004 if c >= '\u{1EE74}' && c <= '\u{1EE77}' {
1005 return true;
1006 }
1007 if c >= '\u{1EE79}' && c <= '\u{1EE7C}' {
1008 return true;
1009 }
1010 if c >= '\u{1EE7E}' && c <= '\u{1EE7E}' {
1011 return true;
1012 }
1013 if c >= '\u{1EE80}' && c <= '\u{1EE89}' {
1014 return true;
1015 }
1016 if c >= '\u{1EE8B}' && c <= '\u{1EE9B}' {
1017 return true;
1018 }
1019 if c >= '\u{1EEA1}' && c <= '\u{1EEA3}' {
1020 return true;
1021 }
1022 if c >= '\u{1EEA5}' && c <= '\u{1EEA9}' {
1023 return true;
1024 }
1025 if c >= '\u{1EEAB}' && c <= '\u{1EEBB}' {
1026 return true;
1027 }
1028 if c >= '\u{20000}' && c <= '\u{2A6DD}' {
1029 return true;
1030 }
1031 if c >= '\u{2A700}' && c <= '\u{2B734}' {
1032 return true;
1033 }
1034 if c >= '\u{2B740}' && c <= '\u{2B81D}' {
1035 return true;
1036 }
1037 if c >= '\u{2B820}' && c <= '\u{2CEA1}' {
1038 return true;
1039 }
1040 if c >= '\u{2CEB0}' && c <= '\u{2EBE0}' {
1041 return true;
1042 }
1043 if c >= '\u{2F800}' && c <= '\u{2FA1D}' {
1044 return true;
1045 }
1046 if c >= '\u{30000}' && c <= '\u{3134A}' {
1047 return true;
1048 }
1049 false
1050 }
1051
is_id_continue_non_bmp(c: char) -> bool1052 pub fn is_id_continue_non_bmp(c: char) -> bool {
1053 if c >= '\u{10000}' && c <= '\u{1000B}' {
1054 return true;
1055 }
1056 if c >= '\u{1000D}' && c <= '\u{10026}' {
1057 return true;
1058 }
1059 if c >= '\u{10028}' && c <= '\u{1003A}' {
1060 return true;
1061 }
1062 if c >= '\u{1003C}' && c <= '\u{1003D}' {
1063 return true;
1064 }
1065 if c >= '\u{1003F}' && c <= '\u{1004D}' {
1066 return true;
1067 }
1068 if c >= '\u{10050}' && c <= '\u{1005D}' {
1069 return true;
1070 }
1071 if c >= '\u{10080}' && c <= '\u{100FA}' {
1072 return true;
1073 }
1074 if c >= '\u{10140}' && c <= '\u{10174}' {
1075 return true;
1076 }
1077 if c >= '\u{101FD}' && c <= '\u{101FD}' {
1078 return true;
1079 }
1080 if c >= '\u{10280}' && c <= '\u{1029C}' {
1081 return true;
1082 }
1083 if c >= '\u{102A0}' && c <= '\u{102D0}' {
1084 return true;
1085 }
1086 if c >= '\u{102E0}' && c <= '\u{102E0}' {
1087 return true;
1088 }
1089 if c >= '\u{10300}' && c <= '\u{1031F}' {
1090 return true;
1091 }
1092 if c >= '\u{1032D}' && c <= '\u{1034A}' {
1093 return true;
1094 }
1095 if c >= '\u{10350}' && c <= '\u{1037A}' {
1096 return true;
1097 }
1098 if c >= '\u{10380}' && c <= '\u{1039D}' {
1099 return true;
1100 }
1101 if c >= '\u{103A0}' && c <= '\u{103C3}' {
1102 return true;
1103 }
1104 if c >= '\u{103C8}' && c <= '\u{103CF}' {
1105 return true;
1106 }
1107 if c >= '\u{103D1}' && c <= '\u{103D5}' {
1108 return true;
1109 }
1110 if c >= '\u{10400}' && c <= '\u{1049D}' {
1111 return true;
1112 }
1113 if c >= '\u{104A0}' && c <= '\u{104A9}' {
1114 return true;
1115 }
1116 if c >= '\u{104B0}' && c <= '\u{104D3}' {
1117 return true;
1118 }
1119 if c >= '\u{104D8}' && c <= '\u{104FB}' {
1120 return true;
1121 }
1122 if c >= '\u{10500}' && c <= '\u{10527}' {
1123 return true;
1124 }
1125 if c >= '\u{10530}' && c <= '\u{10563}' {
1126 return true;
1127 }
1128 if c >= '\u{10600}' && c <= '\u{10736}' {
1129 return true;
1130 }
1131 if c >= '\u{10740}' && c <= '\u{10755}' {
1132 return true;
1133 }
1134 if c >= '\u{10760}' && c <= '\u{10767}' {
1135 return true;
1136 }
1137 if c >= '\u{10800}' && c <= '\u{10805}' {
1138 return true;
1139 }
1140 if c >= '\u{10808}' && c <= '\u{10808}' {
1141 return true;
1142 }
1143 if c >= '\u{1080A}' && c <= '\u{10835}' {
1144 return true;
1145 }
1146 if c >= '\u{10837}' && c <= '\u{10838}' {
1147 return true;
1148 }
1149 if c >= '\u{1083C}' && c <= '\u{1083C}' {
1150 return true;
1151 }
1152 if c >= '\u{1083F}' && c <= '\u{10855}' {
1153 return true;
1154 }
1155 if c >= '\u{10860}' && c <= '\u{10876}' {
1156 return true;
1157 }
1158 if c >= '\u{10880}' && c <= '\u{1089E}' {
1159 return true;
1160 }
1161 if c >= '\u{108E0}' && c <= '\u{108F2}' {
1162 return true;
1163 }
1164 if c >= '\u{108F4}' && c <= '\u{108F5}' {
1165 return true;
1166 }
1167 if c >= '\u{10900}' && c <= '\u{10915}' {
1168 return true;
1169 }
1170 if c >= '\u{10920}' && c <= '\u{10939}' {
1171 return true;
1172 }
1173 if c >= '\u{10980}' && c <= '\u{109B7}' {
1174 return true;
1175 }
1176 if c >= '\u{109BE}' && c <= '\u{109BF}' {
1177 return true;
1178 }
1179 if c >= '\u{10A00}' && c <= '\u{10A03}' {
1180 return true;
1181 }
1182 if c >= '\u{10A05}' && c <= '\u{10A06}' {
1183 return true;
1184 }
1185 if c >= '\u{10A0C}' && c <= '\u{10A13}' {
1186 return true;
1187 }
1188 if c >= '\u{10A15}' && c <= '\u{10A17}' {
1189 return true;
1190 }
1191 if c >= '\u{10A19}' && c <= '\u{10A35}' {
1192 return true;
1193 }
1194 if c >= '\u{10A38}' && c <= '\u{10A3A}' {
1195 return true;
1196 }
1197 if c >= '\u{10A3F}' && c <= '\u{10A3F}' {
1198 return true;
1199 }
1200 if c >= '\u{10A60}' && c <= '\u{10A7C}' {
1201 return true;
1202 }
1203 if c >= '\u{10A80}' && c <= '\u{10A9C}' {
1204 return true;
1205 }
1206 if c >= '\u{10AC0}' && c <= '\u{10AC7}' {
1207 return true;
1208 }
1209 if c >= '\u{10AC9}' && c <= '\u{10AE6}' {
1210 return true;
1211 }
1212 if c >= '\u{10B00}' && c <= '\u{10B35}' {
1213 return true;
1214 }
1215 if c >= '\u{10B40}' && c <= '\u{10B55}' {
1216 return true;
1217 }
1218 if c >= '\u{10B60}' && c <= '\u{10B72}' {
1219 return true;
1220 }
1221 if c >= '\u{10B80}' && c <= '\u{10B91}' {
1222 return true;
1223 }
1224 if c >= '\u{10C00}' && c <= '\u{10C48}' {
1225 return true;
1226 }
1227 if c >= '\u{10C80}' && c <= '\u{10CB2}' {
1228 return true;
1229 }
1230 if c >= '\u{10CC0}' && c <= '\u{10CF2}' {
1231 return true;
1232 }
1233 if c >= '\u{10D00}' && c <= '\u{10D27}' {
1234 return true;
1235 }
1236 if c >= '\u{10D30}' && c <= '\u{10D39}' {
1237 return true;
1238 }
1239 if c >= '\u{10E80}' && c <= '\u{10EA9}' {
1240 return true;
1241 }
1242 if c >= '\u{10EAB}' && c <= '\u{10EAC}' {
1243 return true;
1244 }
1245 if c >= '\u{10EB0}' && c <= '\u{10EB1}' {
1246 return true;
1247 }
1248 if c >= '\u{10F00}' && c <= '\u{10F1C}' {
1249 return true;
1250 }
1251 if c >= '\u{10F27}' && c <= '\u{10F27}' {
1252 return true;
1253 }
1254 if c >= '\u{10F30}' && c <= '\u{10F50}' {
1255 return true;
1256 }
1257 if c >= '\u{10FB0}' && c <= '\u{10FC4}' {
1258 return true;
1259 }
1260 if c >= '\u{10FE0}' && c <= '\u{10FF6}' {
1261 return true;
1262 }
1263 if c >= '\u{11000}' && c <= '\u{11046}' {
1264 return true;
1265 }
1266 if c >= '\u{11066}' && c <= '\u{1106F}' {
1267 return true;
1268 }
1269 if c >= '\u{1107F}' && c <= '\u{110BA}' {
1270 return true;
1271 }
1272 if c >= '\u{110D0}' && c <= '\u{110E8}' {
1273 return true;
1274 }
1275 if c >= '\u{110F0}' && c <= '\u{110F9}' {
1276 return true;
1277 }
1278 if c >= '\u{11100}' && c <= '\u{11134}' {
1279 return true;
1280 }
1281 if c >= '\u{11136}' && c <= '\u{1113F}' {
1282 return true;
1283 }
1284 if c >= '\u{11144}' && c <= '\u{11147}' {
1285 return true;
1286 }
1287 if c >= '\u{11150}' && c <= '\u{11173}' {
1288 return true;
1289 }
1290 if c >= '\u{11176}' && c <= '\u{11176}' {
1291 return true;
1292 }
1293 if c >= '\u{11180}' && c <= '\u{111C4}' {
1294 return true;
1295 }
1296 if c >= '\u{111C9}' && c <= '\u{111CC}' {
1297 return true;
1298 }
1299 if c >= '\u{111CE}' && c <= '\u{111DA}' {
1300 return true;
1301 }
1302 if c >= '\u{111DC}' && c <= '\u{111DC}' {
1303 return true;
1304 }
1305 if c >= '\u{11200}' && c <= '\u{11211}' {
1306 return true;
1307 }
1308 if c >= '\u{11213}' && c <= '\u{11237}' {
1309 return true;
1310 }
1311 if c >= '\u{1123E}' && c <= '\u{1123E}' {
1312 return true;
1313 }
1314 if c >= '\u{11280}' && c <= '\u{11286}' {
1315 return true;
1316 }
1317 if c >= '\u{11288}' && c <= '\u{11288}' {
1318 return true;
1319 }
1320 if c >= '\u{1128A}' && c <= '\u{1128D}' {
1321 return true;
1322 }
1323 if c >= '\u{1128F}' && c <= '\u{1129D}' {
1324 return true;
1325 }
1326 if c >= '\u{1129F}' && c <= '\u{112A8}' {
1327 return true;
1328 }
1329 if c >= '\u{112B0}' && c <= '\u{112EA}' {
1330 return true;
1331 }
1332 if c >= '\u{112F0}' && c <= '\u{112F9}' {
1333 return true;
1334 }
1335 if c >= '\u{11300}' && c <= '\u{11303}' {
1336 return true;
1337 }
1338 if c >= '\u{11305}' && c <= '\u{1130C}' {
1339 return true;
1340 }
1341 if c >= '\u{1130F}' && c <= '\u{11310}' {
1342 return true;
1343 }
1344 if c >= '\u{11313}' && c <= '\u{11328}' {
1345 return true;
1346 }
1347 if c >= '\u{1132A}' && c <= '\u{11330}' {
1348 return true;
1349 }
1350 if c >= '\u{11332}' && c <= '\u{11333}' {
1351 return true;
1352 }
1353 if c >= '\u{11335}' && c <= '\u{11339}' {
1354 return true;
1355 }
1356 if c >= '\u{1133B}' && c <= '\u{11344}' {
1357 return true;
1358 }
1359 if c >= '\u{11347}' && c <= '\u{11348}' {
1360 return true;
1361 }
1362 if c >= '\u{1134B}' && c <= '\u{1134D}' {
1363 return true;
1364 }
1365 if c >= '\u{11350}' && c <= '\u{11350}' {
1366 return true;
1367 }
1368 if c >= '\u{11357}' && c <= '\u{11357}' {
1369 return true;
1370 }
1371 if c >= '\u{1135D}' && c <= '\u{11363}' {
1372 return true;
1373 }
1374 if c >= '\u{11366}' && c <= '\u{1136C}' {
1375 return true;
1376 }
1377 if c >= '\u{11370}' && c <= '\u{11374}' {
1378 return true;
1379 }
1380 if c >= '\u{11400}' && c <= '\u{1144A}' {
1381 return true;
1382 }
1383 if c >= '\u{11450}' && c <= '\u{11459}' {
1384 return true;
1385 }
1386 if c >= '\u{1145E}' && c <= '\u{11461}' {
1387 return true;
1388 }
1389 if c >= '\u{11480}' && c <= '\u{114C5}' {
1390 return true;
1391 }
1392 if c >= '\u{114C7}' && c <= '\u{114C7}' {
1393 return true;
1394 }
1395 if c >= '\u{114D0}' && c <= '\u{114D9}' {
1396 return true;
1397 }
1398 if c >= '\u{11580}' && c <= '\u{115B5}' {
1399 return true;
1400 }
1401 if c >= '\u{115B8}' && c <= '\u{115C0}' {
1402 return true;
1403 }
1404 if c >= '\u{115D8}' && c <= '\u{115DD}' {
1405 return true;
1406 }
1407 if c >= '\u{11600}' && c <= '\u{11640}' {
1408 return true;
1409 }
1410 if c >= '\u{11644}' && c <= '\u{11644}' {
1411 return true;
1412 }
1413 if c >= '\u{11650}' && c <= '\u{11659}' {
1414 return true;
1415 }
1416 if c >= '\u{11680}' && c <= '\u{116B8}' {
1417 return true;
1418 }
1419 if c >= '\u{116C0}' && c <= '\u{116C9}' {
1420 return true;
1421 }
1422 if c >= '\u{11700}' && c <= '\u{1171A}' {
1423 return true;
1424 }
1425 if c >= '\u{1171D}' && c <= '\u{1172B}' {
1426 return true;
1427 }
1428 if c >= '\u{11730}' && c <= '\u{11739}' {
1429 return true;
1430 }
1431 if c >= '\u{11800}' && c <= '\u{1183A}' {
1432 return true;
1433 }
1434 if c >= '\u{118A0}' && c <= '\u{118E9}' {
1435 return true;
1436 }
1437 if c >= '\u{118FF}' && c <= '\u{11906}' {
1438 return true;
1439 }
1440 if c >= '\u{11909}' && c <= '\u{11909}' {
1441 return true;
1442 }
1443 if c >= '\u{1190C}' && c <= '\u{11913}' {
1444 return true;
1445 }
1446 if c >= '\u{11915}' && c <= '\u{11916}' {
1447 return true;
1448 }
1449 if c >= '\u{11918}' && c <= '\u{11935}' {
1450 return true;
1451 }
1452 if c >= '\u{11937}' && c <= '\u{11938}' {
1453 return true;
1454 }
1455 if c >= '\u{1193B}' && c <= '\u{11943}' {
1456 return true;
1457 }
1458 if c >= '\u{11950}' && c <= '\u{11959}' {
1459 return true;
1460 }
1461 if c >= '\u{119A0}' && c <= '\u{119A7}' {
1462 return true;
1463 }
1464 if c >= '\u{119AA}' && c <= '\u{119D7}' {
1465 return true;
1466 }
1467 if c >= '\u{119DA}' && c <= '\u{119E1}' {
1468 return true;
1469 }
1470 if c >= '\u{119E3}' && c <= '\u{119E4}' {
1471 return true;
1472 }
1473 if c >= '\u{11A00}' && c <= '\u{11A3E}' {
1474 return true;
1475 }
1476 if c >= '\u{11A47}' && c <= '\u{11A47}' {
1477 return true;
1478 }
1479 if c >= '\u{11A50}' && c <= '\u{11A99}' {
1480 return true;
1481 }
1482 if c >= '\u{11A9D}' && c <= '\u{11A9D}' {
1483 return true;
1484 }
1485 if c >= '\u{11AC0}' && c <= '\u{11AF8}' {
1486 return true;
1487 }
1488 if c >= '\u{11C00}' && c <= '\u{11C08}' {
1489 return true;
1490 }
1491 if c >= '\u{11C0A}' && c <= '\u{11C36}' {
1492 return true;
1493 }
1494 if c >= '\u{11C38}' && c <= '\u{11C40}' {
1495 return true;
1496 }
1497 if c >= '\u{11C50}' && c <= '\u{11C59}' {
1498 return true;
1499 }
1500 if c >= '\u{11C72}' && c <= '\u{11C8F}' {
1501 return true;
1502 }
1503 if c >= '\u{11C92}' && c <= '\u{11CA7}' {
1504 return true;
1505 }
1506 if c >= '\u{11CA9}' && c <= '\u{11CB6}' {
1507 return true;
1508 }
1509 if c >= '\u{11D00}' && c <= '\u{11D06}' {
1510 return true;
1511 }
1512 if c >= '\u{11D08}' && c <= '\u{11D09}' {
1513 return true;
1514 }
1515 if c >= '\u{11D0B}' && c <= '\u{11D36}' {
1516 return true;
1517 }
1518 if c >= '\u{11D3A}' && c <= '\u{11D3A}' {
1519 return true;
1520 }
1521 if c >= '\u{11D3C}' && c <= '\u{11D3D}' {
1522 return true;
1523 }
1524 if c >= '\u{11D3F}' && c <= '\u{11D47}' {
1525 return true;
1526 }
1527 if c >= '\u{11D50}' && c <= '\u{11D59}' {
1528 return true;
1529 }
1530 if c >= '\u{11D60}' && c <= '\u{11D65}' {
1531 return true;
1532 }
1533 if c >= '\u{11D67}' && c <= '\u{11D68}' {
1534 return true;
1535 }
1536 if c >= '\u{11D6A}' && c <= '\u{11D8E}' {
1537 return true;
1538 }
1539 if c >= '\u{11D90}' && c <= '\u{11D91}' {
1540 return true;
1541 }
1542 if c >= '\u{11D93}' && c <= '\u{11D98}' {
1543 return true;
1544 }
1545 if c >= '\u{11DA0}' && c <= '\u{11DA9}' {
1546 return true;
1547 }
1548 if c >= '\u{11EE0}' && c <= '\u{11EF6}' {
1549 return true;
1550 }
1551 if c >= '\u{11FB0}' && c <= '\u{11FB0}' {
1552 return true;
1553 }
1554 if c >= '\u{12000}' && c <= '\u{12399}' {
1555 return true;
1556 }
1557 if c >= '\u{12400}' && c <= '\u{1246E}' {
1558 return true;
1559 }
1560 if c >= '\u{12480}' && c <= '\u{12543}' {
1561 return true;
1562 }
1563 if c >= '\u{13000}' && c <= '\u{1342E}' {
1564 return true;
1565 }
1566 if c >= '\u{14400}' && c <= '\u{14646}' {
1567 return true;
1568 }
1569 if c >= '\u{16800}' && c <= '\u{16A38}' {
1570 return true;
1571 }
1572 if c >= '\u{16A40}' && c <= '\u{16A5E}' {
1573 return true;
1574 }
1575 if c >= '\u{16A60}' && c <= '\u{16A69}' {
1576 return true;
1577 }
1578 if c >= '\u{16AD0}' && c <= '\u{16AED}' {
1579 return true;
1580 }
1581 if c >= '\u{16AF0}' && c <= '\u{16AF4}' {
1582 return true;
1583 }
1584 if c >= '\u{16B00}' && c <= '\u{16B36}' {
1585 return true;
1586 }
1587 if c >= '\u{16B40}' && c <= '\u{16B43}' {
1588 return true;
1589 }
1590 if c >= '\u{16B50}' && c <= '\u{16B59}' {
1591 return true;
1592 }
1593 if c >= '\u{16B63}' && c <= '\u{16B77}' {
1594 return true;
1595 }
1596 if c >= '\u{16B7D}' && c <= '\u{16B8F}' {
1597 return true;
1598 }
1599 if c >= '\u{16E40}' && c <= '\u{16E7F}' {
1600 return true;
1601 }
1602 if c >= '\u{16F00}' && c <= '\u{16F4A}' {
1603 return true;
1604 }
1605 if c >= '\u{16F4F}' && c <= '\u{16F87}' {
1606 return true;
1607 }
1608 if c >= '\u{16F8F}' && c <= '\u{16F9F}' {
1609 return true;
1610 }
1611 if c >= '\u{16FE0}' && c <= '\u{16FE1}' {
1612 return true;
1613 }
1614 if c >= '\u{16FE3}' && c <= '\u{16FE4}' {
1615 return true;
1616 }
1617 if c >= '\u{16FF0}' && c <= '\u{16FF1}' {
1618 return true;
1619 }
1620 if c >= '\u{17000}' && c <= '\u{187F7}' {
1621 return true;
1622 }
1623 if c >= '\u{18800}' && c <= '\u{18CD5}' {
1624 return true;
1625 }
1626 if c >= '\u{18D00}' && c <= '\u{18D08}' {
1627 return true;
1628 }
1629 if c >= '\u{1B000}' && c <= '\u{1B11E}' {
1630 return true;
1631 }
1632 if c >= '\u{1B150}' && c <= '\u{1B152}' {
1633 return true;
1634 }
1635 if c >= '\u{1B164}' && c <= '\u{1B167}' {
1636 return true;
1637 }
1638 if c >= '\u{1B170}' && c <= '\u{1B2FB}' {
1639 return true;
1640 }
1641 if c >= '\u{1BC00}' && c <= '\u{1BC6A}' {
1642 return true;
1643 }
1644 if c >= '\u{1BC70}' && c <= '\u{1BC7C}' {
1645 return true;
1646 }
1647 if c >= '\u{1BC80}' && c <= '\u{1BC88}' {
1648 return true;
1649 }
1650 if c >= '\u{1BC90}' && c <= '\u{1BC99}' {
1651 return true;
1652 }
1653 if c >= '\u{1BC9D}' && c <= '\u{1BC9E}' {
1654 return true;
1655 }
1656 if c >= '\u{1D165}' && c <= '\u{1D169}' {
1657 return true;
1658 }
1659 if c >= '\u{1D16D}' && c <= '\u{1D172}' {
1660 return true;
1661 }
1662 if c >= '\u{1D17B}' && c <= '\u{1D182}' {
1663 return true;
1664 }
1665 if c >= '\u{1D185}' && c <= '\u{1D18B}' {
1666 return true;
1667 }
1668 if c >= '\u{1D1AA}' && c <= '\u{1D1AD}' {
1669 return true;
1670 }
1671 if c >= '\u{1D242}' && c <= '\u{1D244}' {
1672 return true;
1673 }
1674 if c >= '\u{1D400}' && c <= '\u{1D454}' {
1675 return true;
1676 }
1677 if c >= '\u{1D456}' && c <= '\u{1D49C}' {
1678 return true;
1679 }
1680 if c >= '\u{1D49E}' && c <= '\u{1D49F}' {
1681 return true;
1682 }
1683 if c >= '\u{1D4A2}' && c <= '\u{1D4A2}' {
1684 return true;
1685 }
1686 if c >= '\u{1D4A5}' && c <= '\u{1D4A6}' {
1687 return true;
1688 }
1689 if c >= '\u{1D4A9}' && c <= '\u{1D4AC}' {
1690 return true;
1691 }
1692 if c >= '\u{1D4AE}' && c <= '\u{1D4B9}' {
1693 return true;
1694 }
1695 if c >= '\u{1D4BB}' && c <= '\u{1D4BB}' {
1696 return true;
1697 }
1698 if c >= '\u{1D4BD}' && c <= '\u{1D4C3}' {
1699 return true;
1700 }
1701 if c >= '\u{1D4C5}' && c <= '\u{1D505}' {
1702 return true;
1703 }
1704 if c >= '\u{1D507}' && c <= '\u{1D50A}' {
1705 return true;
1706 }
1707 if c >= '\u{1D50D}' && c <= '\u{1D514}' {
1708 return true;
1709 }
1710 if c >= '\u{1D516}' && c <= '\u{1D51C}' {
1711 return true;
1712 }
1713 if c >= '\u{1D51E}' && c <= '\u{1D539}' {
1714 return true;
1715 }
1716 if c >= '\u{1D53B}' && c <= '\u{1D53E}' {
1717 return true;
1718 }
1719 if c >= '\u{1D540}' && c <= '\u{1D544}' {
1720 return true;
1721 }
1722 if c >= '\u{1D546}' && c <= '\u{1D546}' {
1723 return true;
1724 }
1725 if c >= '\u{1D54A}' && c <= '\u{1D550}' {
1726 return true;
1727 }
1728 if c >= '\u{1D552}' && c <= '\u{1D6A5}' {
1729 return true;
1730 }
1731 if c >= '\u{1D6A8}' && c <= '\u{1D6C0}' {
1732 return true;
1733 }
1734 if c >= '\u{1D6C2}' && c <= '\u{1D6DA}' {
1735 return true;
1736 }
1737 if c >= '\u{1D6DC}' && c <= '\u{1D6FA}' {
1738 return true;
1739 }
1740 if c >= '\u{1D6FC}' && c <= '\u{1D714}' {
1741 return true;
1742 }
1743 if c >= '\u{1D716}' && c <= '\u{1D734}' {
1744 return true;
1745 }
1746 if c >= '\u{1D736}' && c <= '\u{1D74E}' {
1747 return true;
1748 }
1749 if c >= '\u{1D750}' && c <= '\u{1D76E}' {
1750 return true;
1751 }
1752 if c >= '\u{1D770}' && c <= '\u{1D788}' {
1753 return true;
1754 }
1755 if c >= '\u{1D78A}' && c <= '\u{1D7A8}' {
1756 return true;
1757 }
1758 if c >= '\u{1D7AA}' && c <= '\u{1D7C2}' {
1759 return true;
1760 }
1761 if c >= '\u{1D7C4}' && c <= '\u{1D7CB}' {
1762 return true;
1763 }
1764 if c >= '\u{1D7CE}' && c <= '\u{1D7FF}' {
1765 return true;
1766 }
1767 if c >= '\u{1DA00}' && c <= '\u{1DA36}' {
1768 return true;
1769 }
1770 if c >= '\u{1DA3B}' && c <= '\u{1DA6C}' {
1771 return true;
1772 }
1773 if c >= '\u{1DA75}' && c <= '\u{1DA75}' {
1774 return true;
1775 }
1776 if c >= '\u{1DA84}' && c <= '\u{1DA84}' {
1777 return true;
1778 }
1779 if c >= '\u{1DA9B}' && c <= '\u{1DA9F}' {
1780 return true;
1781 }
1782 if c >= '\u{1DAA1}' && c <= '\u{1DAAF}' {
1783 return true;
1784 }
1785 if c >= '\u{1E000}' && c <= '\u{1E006}' {
1786 return true;
1787 }
1788 if c >= '\u{1E008}' && c <= '\u{1E018}' {
1789 return true;
1790 }
1791 if c >= '\u{1E01B}' && c <= '\u{1E021}' {
1792 return true;
1793 }
1794 if c >= '\u{1E023}' && c <= '\u{1E024}' {
1795 return true;
1796 }
1797 if c >= '\u{1E026}' && c <= '\u{1E02A}' {
1798 return true;
1799 }
1800 if c >= '\u{1E100}' && c <= '\u{1E12C}' {
1801 return true;
1802 }
1803 if c >= '\u{1E130}' && c <= '\u{1E13D}' {
1804 return true;
1805 }
1806 if c >= '\u{1E140}' && c <= '\u{1E149}' {
1807 return true;
1808 }
1809 if c >= '\u{1E14E}' && c <= '\u{1E14E}' {
1810 return true;
1811 }
1812 if c >= '\u{1E2C0}' && c <= '\u{1E2F9}' {
1813 return true;
1814 }
1815 if c >= '\u{1E800}' && c <= '\u{1E8C4}' {
1816 return true;
1817 }
1818 if c >= '\u{1E8D0}' && c <= '\u{1E8D6}' {
1819 return true;
1820 }
1821 if c >= '\u{1E900}' && c <= '\u{1E94B}' {
1822 return true;
1823 }
1824 if c >= '\u{1E950}' && c <= '\u{1E959}' {
1825 return true;
1826 }
1827 if c >= '\u{1EE00}' && c <= '\u{1EE03}' {
1828 return true;
1829 }
1830 if c >= '\u{1EE05}' && c <= '\u{1EE1F}' {
1831 return true;
1832 }
1833 if c >= '\u{1EE21}' && c <= '\u{1EE22}' {
1834 return true;
1835 }
1836 if c >= '\u{1EE24}' && c <= '\u{1EE24}' {
1837 return true;
1838 }
1839 if c >= '\u{1EE27}' && c <= '\u{1EE27}' {
1840 return true;
1841 }
1842 if c >= '\u{1EE29}' && c <= '\u{1EE32}' {
1843 return true;
1844 }
1845 if c >= '\u{1EE34}' && c <= '\u{1EE37}' {
1846 return true;
1847 }
1848 if c >= '\u{1EE39}' && c <= '\u{1EE39}' {
1849 return true;
1850 }
1851 if c >= '\u{1EE3B}' && c <= '\u{1EE3B}' {
1852 return true;
1853 }
1854 if c >= '\u{1EE42}' && c <= '\u{1EE42}' {
1855 return true;
1856 }
1857 if c >= '\u{1EE47}' && c <= '\u{1EE47}' {
1858 return true;
1859 }
1860 if c >= '\u{1EE49}' && c <= '\u{1EE49}' {
1861 return true;
1862 }
1863 if c >= '\u{1EE4B}' && c <= '\u{1EE4B}' {
1864 return true;
1865 }
1866 if c >= '\u{1EE4D}' && c <= '\u{1EE4F}' {
1867 return true;
1868 }
1869 if c >= '\u{1EE51}' && c <= '\u{1EE52}' {
1870 return true;
1871 }
1872 if c >= '\u{1EE54}' && c <= '\u{1EE54}' {
1873 return true;
1874 }
1875 if c >= '\u{1EE57}' && c <= '\u{1EE57}' {
1876 return true;
1877 }
1878 if c >= '\u{1EE59}' && c <= '\u{1EE59}' {
1879 return true;
1880 }
1881 if c >= '\u{1EE5B}' && c <= '\u{1EE5B}' {
1882 return true;
1883 }
1884 if c >= '\u{1EE5D}' && c <= '\u{1EE5D}' {
1885 return true;
1886 }
1887 if c >= '\u{1EE5F}' && c <= '\u{1EE5F}' {
1888 return true;
1889 }
1890 if c >= '\u{1EE61}' && c <= '\u{1EE62}' {
1891 return true;
1892 }
1893 if c >= '\u{1EE64}' && c <= '\u{1EE64}' {
1894 return true;
1895 }
1896 if c >= '\u{1EE67}' && c <= '\u{1EE6A}' {
1897 return true;
1898 }
1899 if c >= '\u{1EE6C}' && c <= '\u{1EE72}' {
1900 return true;
1901 }
1902 if c >= '\u{1EE74}' && c <= '\u{1EE77}' {
1903 return true;
1904 }
1905 if c >= '\u{1EE79}' && c <= '\u{1EE7C}' {
1906 return true;
1907 }
1908 if c >= '\u{1EE7E}' && c <= '\u{1EE7E}' {
1909 return true;
1910 }
1911 if c >= '\u{1EE80}' && c <= '\u{1EE89}' {
1912 return true;
1913 }
1914 if c >= '\u{1EE8B}' && c <= '\u{1EE9B}' {
1915 return true;
1916 }
1917 if c >= '\u{1EEA1}' && c <= '\u{1EEA3}' {
1918 return true;
1919 }
1920 if c >= '\u{1EEA5}' && c <= '\u{1EEA9}' {
1921 return true;
1922 }
1923 if c >= '\u{1EEAB}' && c <= '\u{1EEBB}' {
1924 return true;
1925 }
1926 if c >= '\u{1FBF0}' && c <= '\u{1FBF9}' {
1927 return true;
1928 }
1929 if c >= '\u{20000}' && c <= '\u{2A6DD}' {
1930 return true;
1931 }
1932 if c >= '\u{2A700}' && c <= '\u{2B734}' {
1933 return true;
1934 }
1935 if c >= '\u{2B740}' && c <= '\u{2B81D}' {
1936 return true;
1937 }
1938 if c >= '\u{2B820}' && c <= '\u{2CEA1}' {
1939 return true;
1940 }
1941 if c >= '\u{2CEB0}' && c <= '\u{2EBE0}' {
1942 return true;
1943 }
1944 if c >= '\u{2F800}' && c <= '\u{2FA1D}' {
1945 return true;
1946 }
1947 if c >= '\u{30000}' && c <= '\u{3134A}' {
1948 return true;
1949 }
1950 if c >= '\u{E0100}' && c <= '\u{E01EF}' {
1951 return true;
1952 }
1953 false
1954 }
1955