@nebulaaa/grapheme 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1902 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * 字素断点属性数据(Unicode 16.0.0)
5
+ * 由 scripts/gen-break-data.mjs 生成,请勿手工修改。
6
+ */
7
+ /**
8
+ * 字素断点属性区间表:BREAK_TABLE
9
+ * 由 scripts/gen-break-data.mjs 从 Unicode 16.0.0 官方数据生成,请勿手工修改。
10
+ * 扁平结构 [start, end, type, ...],按 start 升序,类型编号见 src/index.ts 常量。
11
+ */
12
+ const BREAK_TABLE = [
13
+ 0, 9, 3, // U+0000..U+0009 Control
14
+ 10, 10, 2, // U+000A..U+000A LF
15
+ 11, 12, 3, // U+000B..U+000C Control
16
+ 13, 13, 1, // U+000D..U+000D CR
17
+ 14, 31, 3, // U+000E..U+001F Control
18
+ 127, 159, 3, // U+007F..U+009F Control
19
+ 173, 173, 3, // U+00AD..U+00AD Control
20
+ 768, 879, 4, // U+0300..U+036F Extend
21
+ 1155, 1161, 4, // U+0483..U+0489 Extend
22
+ 1425, 1469, 4, // U+0591..U+05BD Extend
23
+ 1471, 1471, 4, // U+05BF..U+05BF Extend
24
+ 1473, 1474, 4, // U+05C1..U+05C2 Extend
25
+ 1476, 1477, 4, // U+05C4..U+05C5 Extend
26
+ 1479, 1479, 4, // U+05C7..U+05C7 Extend
27
+ 1536, 1541, 7, // U+0600..U+0605 Prepend
28
+ 1552, 1562, 4, // U+0610..U+061A Extend
29
+ 1564, 1564, 3, // U+061C..U+061C Control
30
+ 1611, 1631, 4, // U+064B..U+065F Extend
31
+ 1648, 1648, 4, // U+0670..U+0670 Extend
32
+ 1750, 1756, 4, // U+06D6..U+06DC Extend
33
+ 1757, 1757, 7, // U+06DD..U+06DD Prepend
34
+ 1759, 1764, 4, // U+06DF..U+06E4 Extend
35
+ 1767, 1768, 4, // U+06E7..U+06E8 Extend
36
+ 1770, 1773, 4, // U+06EA..U+06ED Extend
37
+ 1807, 1807, 7, // U+070F..U+070F Prepend
38
+ 1809, 1809, 4, // U+0711..U+0711 Extend
39
+ 1840, 1866, 4, // U+0730..U+074A Extend
40
+ 1958, 1968, 4, // U+07A6..U+07B0 Extend
41
+ 2027, 2035, 4, // U+07EB..U+07F3 Extend
42
+ 2045, 2045, 4, // U+07FD..U+07FD Extend
43
+ 2070, 2073, 4, // U+0816..U+0819 Extend
44
+ 2075, 2083, 4, // U+081B..U+0823 Extend
45
+ 2085, 2087, 4, // U+0825..U+0827 Extend
46
+ 2089, 2093, 4, // U+0829..U+082D Extend
47
+ 2137, 2139, 4, // U+0859..U+085B Extend
48
+ 2192, 2193, 7, // U+0890..U+0891 Prepend
49
+ 2199, 2207, 4, // U+0897..U+089F Extend
50
+ 2250, 2273, 4, // U+08CA..U+08E1 Extend
51
+ 2274, 2274, 7, // U+08E2..U+08E2 Prepend
52
+ 2275, 2306, 4, // U+08E3..U+0902 Extend
53
+ 2307, 2307, 8, // U+0903..U+0903 SpacingMark
54
+ 2362, 2362, 4, // U+093A..U+093A Extend
55
+ 2363, 2363, 8, // U+093B..U+093B SpacingMark
56
+ 2364, 2364, 4, // U+093C..U+093C Extend
57
+ 2366, 2368, 8, // U+093E..U+0940 SpacingMark
58
+ 2369, 2376, 4, // U+0941..U+0948 Extend
59
+ 2377, 2380, 8, // U+0949..U+094C SpacingMark
60
+ 2381, 2381, 4, // U+094D..U+094D Extend
61
+ 2382, 2383, 8, // U+094E..U+094F SpacingMark
62
+ 2385, 2391, 4, // U+0951..U+0957 Extend
63
+ 2402, 2403, 4, // U+0962..U+0963 Extend
64
+ 2433, 2433, 4, // U+0981..U+0981 Extend
65
+ 2434, 2435, 8, // U+0982..U+0983 SpacingMark
66
+ 2492, 2492, 4, // U+09BC..U+09BC Extend
67
+ 2494, 2494, 4, // U+09BE..U+09BE Extend
68
+ 2495, 2496, 8, // U+09BF..U+09C0 SpacingMark
69
+ 2497, 2500, 4, // U+09C1..U+09C4 Extend
70
+ 2503, 2504, 8, // U+09C7..U+09C8 SpacingMark
71
+ 2507, 2508, 8, // U+09CB..U+09CC SpacingMark
72
+ 2509, 2509, 4, // U+09CD..U+09CD Extend
73
+ 2519, 2519, 4, // U+09D7..U+09D7 Extend
74
+ 2530, 2531, 4, // U+09E2..U+09E3 Extend
75
+ 2558, 2558, 4, // U+09FE..U+09FE Extend
76
+ 2561, 2562, 4, // U+0A01..U+0A02 Extend
77
+ 2563, 2563, 8, // U+0A03..U+0A03 SpacingMark
78
+ 2620, 2620, 4, // U+0A3C..U+0A3C Extend
79
+ 2622, 2624, 8, // U+0A3E..U+0A40 SpacingMark
80
+ 2625, 2626, 4, // U+0A41..U+0A42 Extend
81
+ 2631, 2632, 4, // U+0A47..U+0A48 Extend
82
+ 2635, 2637, 4, // U+0A4B..U+0A4D Extend
83
+ 2641, 2641, 4, // U+0A51..U+0A51 Extend
84
+ 2672, 2673, 4, // U+0A70..U+0A71 Extend
85
+ 2677, 2677, 4, // U+0A75..U+0A75 Extend
86
+ 2689, 2690, 4, // U+0A81..U+0A82 Extend
87
+ 2691, 2691, 8, // U+0A83..U+0A83 SpacingMark
88
+ 2748, 2748, 4, // U+0ABC..U+0ABC Extend
89
+ 2750, 2752, 8, // U+0ABE..U+0AC0 SpacingMark
90
+ 2753, 2757, 4, // U+0AC1..U+0AC5 Extend
91
+ 2759, 2760, 4, // U+0AC7..U+0AC8 Extend
92
+ 2761, 2761, 8, // U+0AC9..U+0AC9 SpacingMark
93
+ 2763, 2764, 8, // U+0ACB..U+0ACC SpacingMark
94
+ 2765, 2765, 4, // U+0ACD..U+0ACD Extend
95
+ 2786, 2787, 4, // U+0AE2..U+0AE3 Extend
96
+ 2810, 2815, 4, // U+0AFA..U+0AFF Extend
97
+ 2817, 2817, 4, // U+0B01..U+0B01 Extend
98
+ 2818, 2819, 8, // U+0B02..U+0B03 SpacingMark
99
+ 2876, 2876, 4, // U+0B3C..U+0B3C Extend
100
+ 2878, 2879, 4, // U+0B3E..U+0B3F Extend
101
+ 2880, 2880, 8, // U+0B40..U+0B40 SpacingMark
102
+ 2881, 2884, 4, // U+0B41..U+0B44 Extend
103
+ 2887, 2888, 8, // U+0B47..U+0B48 SpacingMark
104
+ 2891, 2892, 8, // U+0B4B..U+0B4C SpacingMark
105
+ 2893, 2893, 4, // U+0B4D..U+0B4D Extend
106
+ 2901, 2903, 4, // U+0B55..U+0B57 Extend
107
+ 2914, 2915, 4, // U+0B62..U+0B63 Extend
108
+ 2946, 2946, 4, // U+0B82..U+0B82 Extend
109
+ 3006, 3006, 4, // U+0BBE..U+0BBE Extend
110
+ 3007, 3007, 8, // U+0BBF..U+0BBF SpacingMark
111
+ 3008, 3008, 4, // U+0BC0..U+0BC0 Extend
112
+ 3009, 3010, 8, // U+0BC1..U+0BC2 SpacingMark
113
+ 3014, 3016, 8, // U+0BC6..U+0BC8 SpacingMark
114
+ 3018, 3020, 8, // U+0BCA..U+0BCC SpacingMark
115
+ 3021, 3021, 4, // U+0BCD..U+0BCD Extend
116
+ 3031, 3031, 4, // U+0BD7..U+0BD7 Extend
117
+ 3072, 3072, 4, // U+0C00..U+0C00 Extend
118
+ 3073, 3075, 8, // U+0C01..U+0C03 SpacingMark
119
+ 3076, 3076, 4, // U+0C04..U+0C04 Extend
120
+ 3132, 3132, 4, // U+0C3C..U+0C3C Extend
121
+ 3134, 3136, 4, // U+0C3E..U+0C40 Extend
122
+ 3137, 3140, 8, // U+0C41..U+0C44 SpacingMark
123
+ 3142, 3144, 4, // U+0C46..U+0C48 Extend
124
+ 3146, 3149, 4, // U+0C4A..U+0C4D Extend
125
+ 3157, 3158, 4, // U+0C55..U+0C56 Extend
126
+ 3170, 3171, 4, // U+0C62..U+0C63 Extend
127
+ 3201, 3201, 4, // U+0C81..U+0C81 Extend
128
+ 3202, 3203, 8, // U+0C82..U+0C83 SpacingMark
129
+ 3260, 3260, 4, // U+0CBC..U+0CBC Extend
130
+ 3262, 3262, 8, // U+0CBE..U+0CBE SpacingMark
131
+ 3263, 3264, 4, // U+0CBF..U+0CC0 Extend
132
+ 3265, 3265, 8, // U+0CC1..U+0CC1 SpacingMark
133
+ 3266, 3266, 4, // U+0CC2..U+0CC2 Extend
134
+ 3267, 3268, 8, // U+0CC3..U+0CC4 SpacingMark
135
+ 3270, 3272, 4, // U+0CC6..U+0CC8 Extend
136
+ 3274, 3277, 4, // U+0CCA..U+0CCD Extend
137
+ 3285, 3286, 4, // U+0CD5..U+0CD6 Extend
138
+ 3298, 3299, 4, // U+0CE2..U+0CE3 Extend
139
+ 3315, 3315, 8, // U+0CF3..U+0CF3 SpacingMark
140
+ 3328, 3329, 4, // U+0D00..U+0D01 Extend
141
+ 3330, 3331, 8, // U+0D02..U+0D03 SpacingMark
142
+ 3387, 3388, 4, // U+0D3B..U+0D3C Extend
143
+ 3390, 3390, 4, // U+0D3E..U+0D3E Extend
144
+ 3391, 3392, 8, // U+0D3F..U+0D40 SpacingMark
145
+ 3393, 3396, 4, // U+0D41..U+0D44 Extend
146
+ 3398, 3400, 8, // U+0D46..U+0D48 SpacingMark
147
+ 3402, 3404, 8, // U+0D4A..U+0D4C SpacingMark
148
+ 3405, 3405, 4, // U+0D4D..U+0D4D Extend
149
+ 3406, 3406, 7, // U+0D4E..U+0D4E Prepend
150
+ 3415, 3415, 4, // U+0D57..U+0D57 Extend
151
+ 3426, 3427, 4, // U+0D62..U+0D63 Extend
152
+ 3457, 3457, 4, // U+0D81..U+0D81 Extend
153
+ 3458, 3459, 8, // U+0D82..U+0D83 SpacingMark
154
+ 3530, 3530, 4, // U+0DCA..U+0DCA Extend
155
+ 3535, 3535, 4, // U+0DCF..U+0DCF Extend
156
+ 3536, 3537, 8, // U+0DD0..U+0DD1 SpacingMark
157
+ 3538, 3540, 4, // U+0DD2..U+0DD4 Extend
158
+ 3542, 3542, 4, // U+0DD6..U+0DD6 Extend
159
+ 3544, 3550, 8, // U+0DD8..U+0DDE SpacingMark
160
+ 3551, 3551, 4, // U+0DDF..U+0DDF Extend
161
+ 3570, 3571, 8, // U+0DF2..U+0DF3 SpacingMark
162
+ 3633, 3633, 4, // U+0E31..U+0E31 Extend
163
+ 3635, 3635, 8, // U+0E33..U+0E33 SpacingMark
164
+ 3636, 3642, 4, // U+0E34..U+0E3A Extend
165
+ 3655, 3662, 4, // U+0E47..U+0E4E Extend
166
+ 3761, 3761, 4, // U+0EB1..U+0EB1 Extend
167
+ 3763, 3763, 8, // U+0EB3..U+0EB3 SpacingMark
168
+ 3764, 3772, 4, // U+0EB4..U+0EBC Extend
169
+ 3784, 3790, 4, // U+0EC8..U+0ECE Extend
170
+ 3864, 3865, 4, // U+0F18..U+0F19 Extend
171
+ 3893, 3893, 4, // U+0F35..U+0F35 Extend
172
+ 3895, 3895, 4, // U+0F37..U+0F37 Extend
173
+ 3897, 3897, 4, // U+0F39..U+0F39 Extend
174
+ 3902, 3903, 8, // U+0F3E..U+0F3F SpacingMark
175
+ 3953, 3966, 4, // U+0F71..U+0F7E Extend
176
+ 3967, 3967, 8, // U+0F7F..U+0F7F SpacingMark
177
+ 3968, 3972, 4, // U+0F80..U+0F84 Extend
178
+ 3974, 3975, 4, // U+0F86..U+0F87 Extend
179
+ 3981, 3991, 4, // U+0F8D..U+0F97 Extend
180
+ 3993, 4028, 4, // U+0F99..U+0FBC Extend
181
+ 4038, 4038, 4, // U+0FC6..U+0FC6 Extend
182
+ 4141, 4144, 4, // U+102D..U+1030 Extend
183
+ 4145, 4145, 8, // U+1031..U+1031 SpacingMark
184
+ 4146, 4151, 4, // U+1032..U+1037 Extend
185
+ 4153, 4154, 4, // U+1039..U+103A Extend
186
+ 4155, 4156, 8, // U+103B..U+103C SpacingMark
187
+ 4157, 4158, 4, // U+103D..U+103E Extend
188
+ 4182, 4183, 8, // U+1056..U+1057 SpacingMark
189
+ 4184, 4185, 4, // U+1058..U+1059 Extend
190
+ 4190, 4192, 4, // U+105E..U+1060 Extend
191
+ 4209, 4212, 4, // U+1071..U+1074 Extend
192
+ 4226, 4226, 4, // U+1082..U+1082 Extend
193
+ 4228, 4228, 8, // U+1084..U+1084 SpacingMark
194
+ 4229, 4230, 4, // U+1085..U+1086 Extend
195
+ 4237, 4237, 4, // U+108D..U+108D Extend
196
+ 4253, 4253, 4, // U+109D..U+109D Extend
197
+ 4352, 4447, 9, // U+1100..U+115F L
198
+ 4448, 4519, 10, // U+1160..U+11A7 V
199
+ 4520, 4607, 11, // U+11A8..U+11FF T
200
+ 4957, 4959, 4, // U+135D..U+135F Extend
201
+ 5906, 5909, 4, // U+1712..U+1715 Extend
202
+ 5938, 5940, 4, // U+1732..U+1734 Extend
203
+ 5970, 5971, 4, // U+1752..U+1753 Extend
204
+ 6002, 6003, 4, // U+1772..U+1773 Extend
205
+ 6068, 6069, 4, // U+17B4..U+17B5 Extend
206
+ 6070, 6070, 8, // U+17B6..U+17B6 SpacingMark
207
+ 6071, 6077, 4, // U+17B7..U+17BD Extend
208
+ 6078, 6085, 8, // U+17BE..U+17C5 SpacingMark
209
+ 6086, 6086, 4, // U+17C6..U+17C6 Extend
210
+ 6087, 6088, 8, // U+17C7..U+17C8 SpacingMark
211
+ 6089, 6099, 4, // U+17C9..U+17D3 Extend
212
+ 6109, 6109, 4, // U+17DD..U+17DD Extend
213
+ 6155, 6157, 4, // U+180B..U+180D Extend
214
+ 6158, 6158, 3, // U+180E..U+180E Control
215
+ 6159, 6159, 4, // U+180F..U+180F Extend
216
+ 6277, 6278, 4, // U+1885..U+1886 Extend
217
+ 6313, 6313, 4, // U+18A9..U+18A9 Extend
218
+ 6432, 6434, 4, // U+1920..U+1922 Extend
219
+ 6435, 6438, 8, // U+1923..U+1926 SpacingMark
220
+ 6439, 6440, 4, // U+1927..U+1928 Extend
221
+ 6441, 6443, 8, // U+1929..U+192B SpacingMark
222
+ 6448, 6449, 8, // U+1930..U+1931 SpacingMark
223
+ 6450, 6450, 4, // U+1932..U+1932 Extend
224
+ 6451, 6456, 8, // U+1933..U+1938 SpacingMark
225
+ 6457, 6459, 4, // U+1939..U+193B Extend
226
+ 6679, 6680, 4, // U+1A17..U+1A18 Extend
227
+ 6681, 6682, 8, // U+1A19..U+1A1A SpacingMark
228
+ 6683, 6683, 4, // U+1A1B..U+1A1B Extend
229
+ 6741, 6741, 8, // U+1A55..U+1A55 SpacingMark
230
+ 6742, 6742, 4, // U+1A56..U+1A56 Extend
231
+ 6743, 6743, 8, // U+1A57..U+1A57 SpacingMark
232
+ 6744, 6750, 4, // U+1A58..U+1A5E Extend
233
+ 6752, 6752, 4, // U+1A60..U+1A60 Extend
234
+ 6754, 6754, 4, // U+1A62..U+1A62 Extend
235
+ 6757, 6764, 4, // U+1A65..U+1A6C Extend
236
+ 6765, 6770, 8, // U+1A6D..U+1A72 SpacingMark
237
+ 6771, 6780, 4, // U+1A73..U+1A7C Extend
238
+ 6783, 6783, 4, // U+1A7F..U+1A7F Extend
239
+ 6832, 6862, 4, // U+1AB0..U+1ACE Extend
240
+ 6912, 6915, 4, // U+1B00..U+1B03 Extend
241
+ 6916, 6916, 8, // U+1B04..U+1B04 SpacingMark
242
+ 6964, 6973, 4, // U+1B34..U+1B3D Extend
243
+ 6974, 6977, 8, // U+1B3E..U+1B41 SpacingMark
244
+ 6978, 6980, 4, // U+1B42..U+1B44 Extend
245
+ 7019, 7027, 4, // U+1B6B..U+1B73 Extend
246
+ 7040, 7041, 4, // U+1B80..U+1B81 Extend
247
+ 7042, 7042, 8, // U+1B82..U+1B82 SpacingMark
248
+ 7073, 7073, 8, // U+1BA1..U+1BA1 SpacingMark
249
+ 7074, 7077, 4, // U+1BA2..U+1BA5 Extend
250
+ 7078, 7079, 8, // U+1BA6..U+1BA7 SpacingMark
251
+ 7080, 7085, 4, // U+1BA8..U+1BAD Extend
252
+ 7142, 7142, 4, // U+1BE6..U+1BE6 Extend
253
+ 7143, 7143, 8, // U+1BE7..U+1BE7 SpacingMark
254
+ 7144, 7145, 4, // U+1BE8..U+1BE9 Extend
255
+ 7146, 7148, 8, // U+1BEA..U+1BEC SpacingMark
256
+ 7149, 7149, 4, // U+1BED..U+1BED Extend
257
+ 7150, 7150, 8, // U+1BEE..U+1BEE SpacingMark
258
+ 7151, 7155, 4, // U+1BEF..U+1BF3 Extend
259
+ 7204, 7211, 8, // U+1C24..U+1C2B SpacingMark
260
+ 7212, 7219, 4, // U+1C2C..U+1C33 Extend
261
+ 7220, 7221, 8, // U+1C34..U+1C35 SpacingMark
262
+ 7222, 7223, 4, // U+1C36..U+1C37 Extend
263
+ 7376, 7378, 4, // U+1CD0..U+1CD2 Extend
264
+ 7380, 7392, 4, // U+1CD4..U+1CE0 Extend
265
+ 7393, 7393, 8, // U+1CE1..U+1CE1 SpacingMark
266
+ 7394, 7400, 4, // U+1CE2..U+1CE8 Extend
267
+ 7405, 7405, 4, // U+1CED..U+1CED Extend
268
+ 7412, 7412, 4, // U+1CF4..U+1CF4 Extend
269
+ 7415, 7415, 8, // U+1CF7..U+1CF7 SpacingMark
270
+ 7416, 7417, 4, // U+1CF8..U+1CF9 Extend
271
+ 7616, 7679, 4, // U+1DC0..U+1DFF Extend
272
+ 8203, 8203, 3, // U+200B..U+200B Control
273
+ 8204, 8204, 4, // U+200C..U+200C Extend
274
+ 8205, 8205, 5, // U+200D..U+200D ZWJ
275
+ 8206, 8207, 3, // U+200E..U+200F Control
276
+ 8232, 8238, 3, // U+2028..U+202E Control
277
+ 8288, 8303, 3, // U+2060..U+206F Control
278
+ 8400, 8432, 4, // U+20D0..U+20F0 Extend
279
+ 11503, 11505, 4, // U+2CEF..U+2CF1 Extend
280
+ 11647, 11647, 4, // U+2D7F..U+2D7F Extend
281
+ 11744, 11775, 4, // U+2DE0..U+2DFF Extend
282
+ 12330, 12335, 4, // U+302A..U+302F Extend
283
+ 12441, 12442, 4, // U+3099..U+309A Extend
284
+ 42607, 42610, 4, // U+A66F..U+A672 Extend
285
+ 42612, 42621, 4, // U+A674..U+A67D Extend
286
+ 42654, 42655, 4, // U+A69E..U+A69F Extend
287
+ 42736, 42737, 4, // U+A6F0..U+A6F1 Extend
288
+ 43010, 43010, 4, // U+A802..U+A802 Extend
289
+ 43014, 43014, 4, // U+A806..U+A806 Extend
290
+ 43019, 43019, 4, // U+A80B..U+A80B Extend
291
+ 43043, 43044, 8, // U+A823..U+A824 SpacingMark
292
+ 43045, 43046, 4, // U+A825..U+A826 Extend
293
+ 43047, 43047, 8, // U+A827..U+A827 SpacingMark
294
+ 43052, 43052, 4, // U+A82C..U+A82C Extend
295
+ 43136, 43137, 8, // U+A880..U+A881 SpacingMark
296
+ 43188, 43203, 8, // U+A8B4..U+A8C3 SpacingMark
297
+ 43204, 43205, 4, // U+A8C4..U+A8C5 Extend
298
+ 43232, 43249, 4, // U+A8E0..U+A8F1 Extend
299
+ 43263, 43263, 4, // U+A8FF..U+A8FF Extend
300
+ 43302, 43309, 4, // U+A926..U+A92D Extend
301
+ 43335, 43345, 4, // U+A947..U+A951 Extend
302
+ 43346, 43346, 8, // U+A952..U+A952 SpacingMark
303
+ 43347, 43347, 4, // U+A953..U+A953 Extend
304
+ 43360, 43388, 9, // U+A960..U+A97C L
305
+ 43392, 43394, 4, // U+A980..U+A982 Extend
306
+ 43395, 43395, 8, // U+A983..U+A983 SpacingMark
307
+ 43443, 43443, 4, // U+A9B3..U+A9B3 Extend
308
+ 43444, 43445, 8, // U+A9B4..U+A9B5 SpacingMark
309
+ 43446, 43449, 4, // U+A9B6..U+A9B9 Extend
310
+ 43450, 43451, 8, // U+A9BA..U+A9BB SpacingMark
311
+ 43452, 43453, 4, // U+A9BC..U+A9BD Extend
312
+ 43454, 43455, 8, // U+A9BE..U+A9BF SpacingMark
313
+ 43456, 43456, 4, // U+A9C0..U+A9C0 Extend
314
+ 43493, 43493, 4, // U+A9E5..U+A9E5 Extend
315
+ 43561, 43566, 4, // U+AA29..U+AA2E Extend
316
+ 43567, 43568, 8, // U+AA2F..U+AA30 SpacingMark
317
+ 43569, 43570, 4, // U+AA31..U+AA32 Extend
318
+ 43571, 43572, 8, // U+AA33..U+AA34 SpacingMark
319
+ 43573, 43574, 4, // U+AA35..U+AA36 Extend
320
+ 43587, 43587, 4, // U+AA43..U+AA43 Extend
321
+ 43596, 43596, 4, // U+AA4C..U+AA4C Extend
322
+ 43597, 43597, 8, // U+AA4D..U+AA4D SpacingMark
323
+ 43644, 43644, 4, // U+AA7C..U+AA7C Extend
324
+ 43696, 43696, 4, // U+AAB0..U+AAB0 Extend
325
+ 43698, 43700, 4, // U+AAB2..U+AAB4 Extend
326
+ 43703, 43704, 4, // U+AAB7..U+AAB8 Extend
327
+ 43710, 43711, 4, // U+AABE..U+AABF Extend
328
+ 43713, 43713, 4, // U+AAC1..U+AAC1 Extend
329
+ 43755, 43755, 8, // U+AAEB..U+AAEB SpacingMark
330
+ 43756, 43757, 4, // U+AAEC..U+AAED Extend
331
+ 43758, 43759, 8, // U+AAEE..U+AAEF SpacingMark
332
+ 43765, 43765, 8, // U+AAF5..U+AAF5 SpacingMark
333
+ 43766, 43766, 4, // U+AAF6..U+AAF6 Extend
334
+ 44003, 44004, 8, // U+ABE3..U+ABE4 SpacingMark
335
+ 44005, 44005, 4, // U+ABE5..U+ABE5 Extend
336
+ 44006, 44007, 8, // U+ABE6..U+ABE7 SpacingMark
337
+ 44008, 44008, 4, // U+ABE8..U+ABE8 Extend
338
+ 44009, 44010, 8, // U+ABE9..U+ABEA SpacingMark
339
+ 44012, 44012, 8, // U+ABEC..U+ABEC SpacingMark
340
+ 44013, 44013, 4, // U+ABED..U+ABED Extend
341
+ 44032, 44032, 12, // U+AC00..U+AC00 LV
342
+ 44033, 44059, 13, // U+AC01..U+AC1B LVT
343
+ 44060, 44060, 12, // U+AC1C..U+AC1C LV
344
+ 44061, 44087, 13, // U+AC1D..U+AC37 LVT
345
+ 44088, 44088, 12, // U+AC38..U+AC38 LV
346
+ 44089, 44115, 13, // U+AC39..U+AC53 LVT
347
+ 44116, 44116, 12, // U+AC54..U+AC54 LV
348
+ 44117, 44143, 13, // U+AC55..U+AC6F LVT
349
+ 44144, 44144, 12, // U+AC70..U+AC70 LV
350
+ 44145, 44171, 13, // U+AC71..U+AC8B LVT
351
+ 44172, 44172, 12, // U+AC8C..U+AC8C LV
352
+ 44173, 44199, 13, // U+AC8D..U+ACA7 LVT
353
+ 44200, 44200, 12, // U+ACA8..U+ACA8 LV
354
+ 44201, 44227, 13, // U+ACA9..U+ACC3 LVT
355
+ 44228, 44228, 12, // U+ACC4..U+ACC4 LV
356
+ 44229, 44255, 13, // U+ACC5..U+ACDF LVT
357
+ 44256, 44256, 12, // U+ACE0..U+ACE0 LV
358
+ 44257, 44283, 13, // U+ACE1..U+ACFB LVT
359
+ 44284, 44284, 12, // U+ACFC..U+ACFC LV
360
+ 44285, 44311, 13, // U+ACFD..U+AD17 LVT
361
+ 44312, 44312, 12, // U+AD18..U+AD18 LV
362
+ 44313, 44339, 13, // U+AD19..U+AD33 LVT
363
+ 44340, 44340, 12, // U+AD34..U+AD34 LV
364
+ 44341, 44367, 13, // U+AD35..U+AD4F LVT
365
+ 44368, 44368, 12, // U+AD50..U+AD50 LV
366
+ 44369, 44395, 13, // U+AD51..U+AD6B LVT
367
+ 44396, 44396, 12, // U+AD6C..U+AD6C LV
368
+ 44397, 44423, 13, // U+AD6D..U+AD87 LVT
369
+ 44424, 44424, 12, // U+AD88..U+AD88 LV
370
+ 44425, 44451, 13, // U+AD89..U+ADA3 LVT
371
+ 44452, 44452, 12, // U+ADA4..U+ADA4 LV
372
+ 44453, 44479, 13, // U+ADA5..U+ADBF LVT
373
+ 44480, 44480, 12, // U+ADC0..U+ADC0 LV
374
+ 44481, 44507, 13, // U+ADC1..U+ADDB LVT
375
+ 44508, 44508, 12, // U+ADDC..U+ADDC LV
376
+ 44509, 44535, 13, // U+ADDD..U+ADF7 LVT
377
+ 44536, 44536, 12, // U+ADF8..U+ADF8 LV
378
+ 44537, 44563, 13, // U+ADF9..U+AE13 LVT
379
+ 44564, 44564, 12, // U+AE14..U+AE14 LV
380
+ 44565, 44591, 13, // U+AE15..U+AE2F LVT
381
+ 44592, 44592, 12, // U+AE30..U+AE30 LV
382
+ 44593, 44619, 13, // U+AE31..U+AE4B LVT
383
+ 44620, 44620, 12, // U+AE4C..U+AE4C LV
384
+ 44621, 44647, 13, // U+AE4D..U+AE67 LVT
385
+ 44648, 44648, 12, // U+AE68..U+AE68 LV
386
+ 44649, 44675, 13, // U+AE69..U+AE83 LVT
387
+ 44676, 44676, 12, // U+AE84..U+AE84 LV
388
+ 44677, 44703, 13, // U+AE85..U+AE9F LVT
389
+ 44704, 44704, 12, // U+AEA0..U+AEA0 LV
390
+ 44705, 44731, 13, // U+AEA1..U+AEBB LVT
391
+ 44732, 44732, 12, // U+AEBC..U+AEBC LV
392
+ 44733, 44759, 13, // U+AEBD..U+AED7 LVT
393
+ 44760, 44760, 12, // U+AED8..U+AED8 LV
394
+ 44761, 44787, 13, // U+AED9..U+AEF3 LVT
395
+ 44788, 44788, 12, // U+AEF4..U+AEF4 LV
396
+ 44789, 44815, 13, // U+AEF5..U+AF0F LVT
397
+ 44816, 44816, 12, // U+AF10..U+AF10 LV
398
+ 44817, 44843, 13, // U+AF11..U+AF2B LVT
399
+ 44844, 44844, 12, // U+AF2C..U+AF2C LV
400
+ 44845, 44871, 13, // U+AF2D..U+AF47 LVT
401
+ 44872, 44872, 12, // U+AF48..U+AF48 LV
402
+ 44873, 44899, 13, // U+AF49..U+AF63 LVT
403
+ 44900, 44900, 12, // U+AF64..U+AF64 LV
404
+ 44901, 44927, 13, // U+AF65..U+AF7F LVT
405
+ 44928, 44928, 12, // U+AF80..U+AF80 LV
406
+ 44929, 44955, 13, // U+AF81..U+AF9B LVT
407
+ 44956, 44956, 12, // U+AF9C..U+AF9C LV
408
+ 44957, 44983, 13, // U+AF9D..U+AFB7 LVT
409
+ 44984, 44984, 12, // U+AFB8..U+AFB8 LV
410
+ 44985, 45011, 13, // U+AFB9..U+AFD3 LVT
411
+ 45012, 45012, 12, // U+AFD4..U+AFD4 LV
412
+ 45013, 45039, 13, // U+AFD5..U+AFEF LVT
413
+ 45040, 45040, 12, // U+AFF0..U+AFF0 LV
414
+ 45041, 45067, 13, // U+AFF1..U+B00B LVT
415
+ 45068, 45068, 12, // U+B00C..U+B00C LV
416
+ 45069, 45095, 13, // U+B00D..U+B027 LVT
417
+ 45096, 45096, 12, // U+B028..U+B028 LV
418
+ 45097, 45123, 13, // U+B029..U+B043 LVT
419
+ 45124, 45124, 12, // U+B044..U+B044 LV
420
+ 45125, 45151, 13, // U+B045..U+B05F LVT
421
+ 45152, 45152, 12, // U+B060..U+B060 LV
422
+ 45153, 45179, 13, // U+B061..U+B07B LVT
423
+ 45180, 45180, 12, // U+B07C..U+B07C LV
424
+ 45181, 45207, 13, // U+B07D..U+B097 LVT
425
+ 45208, 45208, 12, // U+B098..U+B098 LV
426
+ 45209, 45235, 13, // U+B099..U+B0B3 LVT
427
+ 45236, 45236, 12, // U+B0B4..U+B0B4 LV
428
+ 45237, 45263, 13, // U+B0B5..U+B0CF LVT
429
+ 45264, 45264, 12, // U+B0D0..U+B0D0 LV
430
+ 45265, 45291, 13, // U+B0D1..U+B0EB LVT
431
+ 45292, 45292, 12, // U+B0EC..U+B0EC LV
432
+ 45293, 45319, 13, // U+B0ED..U+B107 LVT
433
+ 45320, 45320, 12, // U+B108..U+B108 LV
434
+ 45321, 45347, 13, // U+B109..U+B123 LVT
435
+ 45348, 45348, 12, // U+B124..U+B124 LV
436
+ 45349, 45375, 13, // U+B125..U+B13F LVT
437
+ 45376, 45376, 12, // U+B140..U+B140 LV
438
+ 45377, 45403, 13, // U+B141..U+B15B LVT
439
+ 45404, 45404, 12, // U+B15C..U+B15C LV
440
+ 45405, 45431, 13, // U+B15D..U+B177 LVT
441
+ 45432, 45432, 12, // U+B178..U+B178 LV
442
+ 45433, 45459, 13, // U+B179..U+B193 LVT
443
+ 45460, 45460, 12, // U+B194..U+B194 LV
444
+ 45461, 45487, 13, // U+B195..U+B1AF LVT
445
+ 45488, 45488, 12, // U+B1B0..U+B1B0 LV
446
+ 45489, 45515, 13, // U+B1B1..U+B1CB LVT
447
+ 45516, 45516, 12, // U+B1CC..U+B1CC LV
448
+ 45517, 45543, 13, // U+B1CD..U+B1E7 LVT
449
+ 45544, 45544, 12, // U+B1E8..U+B1E8 LV
450
+ 45545, 45571, 13, // U+B1E9..U+B203 LVT
451
+ 45572, 45572, 12, // U+B204..U+B204 LV
452
+ 45573, 45599, 13, // U+B205..U+B21F LVT
453
+ 45600, 45600, 12, // U+B220..U+B220 LV
454
+ 45601, 45627, 13, // U+B221..U+B23B LVT
455
+ 45628, 45628, 12, // U+B23C..U+B23C LV
456
+ 45629, 45655, 13, // U+B23D..U+B257 LVT
457
+ 45656, 45656, 12, // U+B258..U+B258 LV
458
+ 45657, 45683, 13, // U+B259..U+B273 LVT
459
+ 45684, 45684, 12, // U+B274..U+B274 LV
460
+ 45685, 45711, 13, // U+B275..U+B28F LVT
461
+ 45712, 45712, 12, // U+B290..U+B290 LV
462
+ 45713, 45739, 13, // U+B291..U+B2AB LVT
463
+ 45740, 45740, 12, // U+B2AC..U+B2AC LV
464
+ 45741, 45767, 13, // U+B2AD..U+B2C7 LVT
465
+ 45768, 45768, 12, // U+B2C8..U+B2C8 LV
466
+ 45769, 45795, 13, // U+B2C9..U+B2E3 LVT
467
+ 45796, 45796, 12, // U+B2E4..U+B2E4 LV
468
+ 45797, 45823, 13, // U+B2E5..U+B2FF LVT
469
+ 45824, 45824, 12, // U+B300..U+B300 LV
470
+ 45825, 45851, 13, // U+B301..U+B31B LVT
471
+ 45852, 45852, 12, // U+B31C..U+B31C LV
472
+ 45853, 45879, 13, // U+B31D..U+B337 LVT
473
+ 45880, 45880, 12, // U+B338..U+B338 LV
474
+ 45881, 45907, 13, // U+B339..U+B353 LVT
475
+ 45908, 45908, 12, // U+B354..U+B354 LV
476
+ 45909, 45935, 13, // U+B355..U+B36F LVT
477
+ 45936, 45936, 12, // U+B370..U+B370 LV
478
+ 45937, 45963, 13, // U+B371..U+B38B LVT
479
+ 45964, 45964, 12, // U+B38C..U+B38C LV
480
+ 45965, 45991, 13, // U+B38D..U+B3A7 LVT
481
+ 45992, 45992, 12, // U+B3A8..U+B3A8 LV
482
+ 45993, 46019, 13, // U+B3A9..U+B3C3 LVT
483
+ 46020, 46020, 12, // U+B3C4..U+B3C4 LV
484
+ 46021, 46047, 13, // U+B3C5..U+B3DF LVT
485
+ 46048, 46048, 12, // U+B3E0..U+B3E0 LV
486
+ 46049, 46075, 13, // U+B3E1..U+B3FB LVT
487
+ 46076, 46076, 12, // U+B3FC..U+B3FC LV
488
+ 46077, 46103, 13, // U+B3FD..U+B417 LVT
489
+ 46104, 46104, 12, // U+B418..U+B418 LV
490
+ 46105, 46131, 13, // U+B419..U+B433 LVT
491
+ 46132, 46132, 12, // U+B434..U+B434 LV
492
+ 46133, 46159, 13, // U+B435..U+B44F LVT
493
+ 46160, 46160, 12, // U+B450..U+B450 LV
494
+ 46161, 46187, 13, // U+B451..U+B46B LVT
495
+ 46188, 46188, 12, // U+B46C..U+B46C LV
496
+ 46189, 46215, 13, // U+B46D..U+B487 LVT
497
+ 46216, 46216, 12, // U+B488..U+B488 LV
498
+ 46217, 46243, 13, // U+B489..U+B4A3 LVT
499
+ 46244, 46244, 12, // U+B4A4..U+B4A4 LV
500
+ 46245, 46271, 13, // U+B4A5..U+B4BF LVT
501
+ 46272, 46272, 12, // U+B4C0..U+B4C0 LV
502
+ 46273, 46299, 13, // U+B4C1..U+B4DB LVT
503
+ 46300, 46300, 12, // U+B4DC..U+B4DC LV
504
+ 46301, 46327, 13, // U+B4DD..U+B4F7 LVT
505
+ 46328, 46328, 12, // U+B4F8..U+B4F8 LV
506
+ 46329, 46355, 13, // U+B4F9..U+B513 LVT
507
+ 46356, 46356, 12, // U+B514..U+B514 LV
508
+ 46357, 46383, 13, // U+B515..U+B52F LVT
509
+ 46384, 46384, 12, // U+B530..U+B530 LV
510
+ 46385, 46411, 13, // U+B531..U+B54B LVT
511
+ 46412, 46412, 12, // U+B54C..U+B54C LV
512
+ 46413, 46439, 13, // U+B54D..U+B567 LVT
513
+ 46440, 46440, 12, // U+B568..U+B568 LV
514
+ 46441, 46467, 13, // U+B569..U+B583 LVT
515
+ 46468, 46468, 12, // U+B584..U+B584 LV
516
+ 46469, 46495, 13, // U+B585..U+B59F LVT
517
+ 46496, 46496, 12, // U+B5A0..U+B5A0 LV
518
+ 46497, 46523, 13, // U+B5A1..U+B5BB LVT
519
+ 46524, 46524, 12, // U+B5BC..U+B5BC LV
520
+ 46525, 46551, 13, // U+B5BD..U+B5D7 LVT
521
+ 46552, 46552, 12, // U+B5D8..U+B5D8 LV
522
+ 46553, 46579, 13, // U+B5D9..U+B5F3 LVT
523
+ 46580, 46580, 12, // U+B5F4..U+B5F4 LV
524
+ 46581, 46607, 13, // U+B5F5..U+B60F LVT
525
+ 46608, 46608, 12, // U+B610..U+B610 LV
526
+ 46609, 46635, 13, // U+B611..U+B62B LVT
527
+ 46636, 46636, 12, // U+B62C..U+B62C LV
528
+ 46637, 46663, 13, // U+B62D..U+B647 LVT
529
+ 46664, 46664, 12, // U+B648..U+B648 LV
530
+ 46665, 46691, 13, // U+B649..U+B663 LVT
531
+ 46692, 46692, 12, // U+B664..U+B664 LV
532
+ 46693, 46719, 13, // U+B665..U+B67F LVT
533
+ 46720, 46720, 12, // U+B680..U+B680 LV
534
+ 46721, 46747, 13, // U+B681..U+B69B LVT
535
+ 46748, 46748, 12, // U+B69C..U+B69C LV
536
+ 46749, 46775, 13, // U+B69D..U+B6B7 LVT
537
+ 46776, 46776, 12, // U+B6B8..U+B6B8 LV
538
+ 46777, 46803, 13, // U+B6B9..U+B6D3 LVT
539
+ 46804, 46804, 12, // U+B6D4..U+B6D4 LV
540
+ 46805, 46831, 13, // U+B6D5..U+B6EF LVT
541
+ 46832, 46832, 12, // U+B6F0..U+B6F0 LV
542
+ 46833, 46859, 13, // U+B6F1..U+B70B LVT
543
+ 46860, 46860, 12, // U+B70C..U+B70C LV
544
+ 46861, 46887, 13, // U+B70D..U+B727 LVT
545
+ 46888, 46888, 12, // U+B728..U+B728 LV
546
+ 46889, 46915, 13, // U+B729..U+B743 LVT
547
+ 46916, 46916, 12, // U+B744..U+B744 LV
548
+ 46917, 46943, 13, // U+B745..U+B75F LVT
549
+ 46944, 46944, 12, // U+B760..U+B760 LV
550
+ 46945, 46971, 13, // U+B761..U+B77B LVT
551
+ 46972, 46972, 12, // U+B77C..U+B77C LV
552
+ 46973, 46999, 13, // U+B77D..U+B797 LVT
553
+ 47000, 47000, 12, // U+B798..U+B798 LV
554
+ 47001, 47027, 13, // U+B799..U+B7B3 LVT
555
+ 47028, 47028, 12, // U+B7B4..U+B7B4 LV
556
+ 47029, 47055, 13, // U+B7B5..U+B7CF LVT
557
+ 47056, 47056, 12, // U+B7D0..U+B7D0 LV
558
+ 47057, 47083, 13, // U+B7D1..U+B7EB LVT
559
+ 47084, 47084, 12, // U+B7EC..U+B7EC LV
560
+ 47085, 47111, 13, // U+B7ED..U+B807 LVT
561
+ 47112, 47112, 12, // U+B808..U+B808 LV
562
+ 47113, 47139, 13, // U+B809..U+B823 LVT
563
+ 47140, 47140, 12, // U+B824..U+B824 LV
564
+ 47141, 47167, 13, // U+B825..U+B83F LVT
565
+ 47168, 47168, 12, // U+B840..U+B840 LV
566
+ 47169, 47195, 13, // U+B841..U+B85B LVT
567
+ 47196, 47196, 12, // U+B85C..U+B85C LV
568
+ 47197, 47223, 13, // U+B85D..U+B877 LVT
569
+ 47224, 47224, 12, // U+B878..U+B878 LV
570
+ 47225, 47251, 13, // U+B879..U+B893 LVT
571
+ 47252, 47252, 12, // U+B894..U+B894 LV
572
+ 47253, 47279, 13, // U+B895..U+B8AF LVT
573
+ 47280, 47280, 12, // U+B8B0..U+B8B0 LV
574
+ 47281, 47307, 13, // U+B8B1..U+B8CB LVT
575
+ 47308, 47308, 12, // U+B8CC..U+B8CC LV
576
+ 47309, 47335, 13, // U+B8CD..U+B8E7 LVT
577
+ 47336, 47336, 12, // U+B8E8..U+B8E8 LV
578
+ 47337, 47363, 13, // U+B8E9..U+B903 LVT
579
+ 47364, 47364, 12, // U+B904..U+B904 LV
580
+ 47365, 47391, 13, // U+B905..U+B91F LVT
581
+ 47392, 47392, 12, // U+B920..U+B920 LV
582
+ 47393, 47419, 13, // U+B921..U+B93B LVT
583
+ 47420, 47420, 12, // U+B93C..U+B93C LV
584
+ 47421, 47447, 13, // U+B93D..U+B957 LVT
585
+ 47448, 47448, 12, // U+B958..U+B958 LV
586
+ 47449, 47475, 13, // U+B959..U+B973 LVT
587
+ 47476, 47476, 12, // U+B974..U+B974 LV
588
+ 47477, 47503, 13, // U+B975..U+B98F LVT
589
+ 47504, 47504, 12, // U+B990..U+B990 LV
590
+ 47505, 47531, 13, // U+B991..U+B9AB LVT
591
+ 47532, 47532, 12, // U+B9AC..U+B9AC LV
592
+ 47533, 47559, 13, // U+B9AD..U+B9C7 LVT
593
+ 47560, 47560, 12, // U+B9C8..U+B9C8 LV
594
+ 47561, 47587, 13, // U+B9C9..U+B9E3 LVT
595
+ 47588, 47588, 12, // U+B9E4..U+B9E4 LV
596
+ 47589, 47615, 13, // U+B9E5..U+B9FF LVT
597
+ 47616, 47616, 12, // U+BA00..U+BA00 LV
598
+ 47617, 47643, 13, // U+BA01..U+BA1B LVT
599
+ 47644, 47644, 12, // U+BA1C..U+BA1C LV
600
+ 47645, 47671, 13, // U+BA1D..U+BA37 LVT
601
+ 47672, 47672, 12, // U+BA38..U+BA38 LV
602
+ 47673, 47699, 13, // U+BA39..U+BA53 LVT
603
+ 47700, 47700, 12, // U+BA54..U+BA54 LV
604
+ 47701, 47727, 13, // U+BA55..U+BA6F LVT
605
+ 47728, 47728, 12, // U+BA70..U+BA70 LV
606
+ 47729, 47755, 13, // U+BA71..U+BA8B LVT
607
+ 47756, 47756, 12, // U+BA8C..U+BA8C LV
608
+ 47757, 47783, 13, // U+BA8D..U+BAA7 LVT
609
+ 47784, 47784, 12, // U+BAA8..U+BAA8 LV
610
+ 47785, 47811, 13, // U+BAA9..U+BAC3 LVT
611
+ 47812, 47812, 12, // U+BAC4..U+BAC4 LV
612
+ 47813, 47839, 13, // U+BAC5..U+BADF LVT
613
+ 47840, 47840, 12, // U+BAE0..U+BAE0 LV
614
+ 47841, 47867, 13, // U+BAE1..U+BAFB LVT
615
+ 47868, 47868, 12, // U+BAFC..U+BAFC LV
616
+ 47869, 47895, 13, // U+BAFD..U+BB17 LVT
617
+ 47896, 47896, 12, // U+BB18..U+BB18 LV
618
+ 47897, 47923, 13, // U+BB19..U+BB33 LVT
619
+ 47924, 47924, 12, // U+BB34..U+BB34 LV
620
+ 47925, 47951, 13, // U+BB35..U+BB4F LVT
621
+ 47952, 47952, 12, // U+BB50..U+BB50 LV
622
+ 47953, 47979, 13, // U+BB51..U+BB6B LVT
623
+ 47980, 47980, 12, // U+BB6C..U+BB6C LV
624
+ 47981, 48007, 13, // U+BB6D..U+BB87 LVT
625
+ 48008, 48008, 12, // U+BB88..U+BB88 LV
626
+ 48009, 48035, 13, // U+BB89..U+BBA3 LVT
627
+ 48036, 48036, 12, // U+BBA4..U+BBA4 LV
628
+ 48037, 48063, 13, // U+BBA5..U+BBBF LVT
629
+ 48064, 48064, 12, // U+BBC0..U+BBC0 LV
630
+ 48065, 48091, 13, // U+BBC1..U+BBDB LVT
631
+ 48092, 48092, 12, // U+BBDC..U+BBDC LV
632
+ 48093, 48119, 13, // U+BBDD..U+BBF7 LVT
633
+ 48120, 48120, 12, // U+BBF8..U+BBF8 LV
634
+ 48121, 48147, 13, // U+BBF9..U+BC13 LVT
635
+ 48148, 48148, 12, // U+BC14..U+BC14 LV
636
+ 48149, 48175, 13, // U+BC15..U+BC2F LVT
637
+ 48176, 48176, 12, // U+BC30..U+BC30 LV
638
+ 48177, 48203, 13, // U+BC31..U+BC4B LVT
639
+ 48204, 48204, 12, // U+BC4C..U+BC4C LV
640
+ 48205, 48231, 13, // U+BC4D..U+BC67 LVT
641
+ 48232, 48232, 12, // U+BC68..U+BC68 LV
642
+ 48233, 48259, 13, // U+BC69..U+BC83 LVT
643
+ 48260, 48260, 12, // U+BC84..U+BC84 LV
644
+ 48261, 48287, 13, // U+BC85..U+BC9F LVT
645
+ 48288, 48288, 12, // U+BCA0..U+BCA0 LV
646
+ 48289, 48315, 13, // U+BCA1..U+BCBB LVT
647
+ 48316, 48316, 12, // U+BCBC..U+BCBC LV
648
+ 48317, 48343, 13, // U+BCBD..U+BCD7 LVT
649
+ 48344, 48344, 12, // U+BCD8..U+BCD8 LV
650
+ 48345, 48371, 13, // U+BCD9..U+BCF3 LVT
651
+ 48372, 48372, 12, // U+BCF4..U+BCF4 LV
652
+ 48373, 48399, 13, // U+BCF5..U+BD0F LVT
653
+ 48400, 48400, 12, // U+BD10..U+BD10 LV
654
+ 48401, 48427, 13, // U+BD11..U+BD2B LVT
655
+ 48428, 48428, 12, // U+BD2C..U+BD2C LV
656
+ 48429, 48455, 13, // U+BD2D..U+BD47 LVT
657
+ 48456, 48456, 12, // U+BD48..U+BD48 LV
658
+ 48457, 48483, 13, // U+BD49..U+BD63 LVT
659
+ 48484, 48484, 12, // U+BD64..U+BD64 LV
660
+ 48485, 48511, 13, // U+BD65..U+BD7F LVT
661
+ 48512, 48512, 12, // U+BD80..U+BD80 LV
662
+ 48513, 48539, 13, // U+BD81..U+BD9B LVT
663
+ 48540, 48540, 12, // U+BD9C..U+BD9C LV
664
+ 48541, 48567, 13, // U+BD9D..U+BDB7 LVT
665
+ 48568, 48568, 12, // U+BDB8..U+BDB8 LV
666
+ 48569, 48595, 13, // U+BDB9..U+BDD3 LVT
667
+ 48596, 48596, 12, // U+BDD4..U+BDD4 LV
668
+ 48597, 48623, 13, // U+BDD5..U+BDEF LVT
669
+ 48624, 48624, 12, // U+BDF0..U+BDF0 LV
670
+ 48625, 48651, 13, // U+BDF1..U+BE0B LVT
671
+ 48652, 48652, 12, // U+BE0C..U+BE0C LV
672
+ 48653, 48679, 13, // U+BE0D..U+BE27 LVT
673
+ 48680, 48680, 12, // U+BE28..U+BE28 LV
674
+ 48681, 48707, 13, // U+BE29..U+BE43 LVT
675
+ 48708, 48708, 12, // U+BE44..U+BE44 LV
676
+ 48709, 48735, 13, // U+BE45..U+BE5F LVT
677
+ 48736, 48736, 12, // U+BE60..U+BE60 LV
678
+ 48737, 48763, 13, // U+BE61..U+BE7B LVT
679
+ 48764, 48764, 12, // U+BE7C..U+BE7C LV
680
+ 48765, 48791, 13, // U+BE7D..U+BE97 LVT
681
+ 48792, 48792, 12, // U+BE98..U+BE98 LV
682
+ 48793, 48819, 13, // U+BE99..U+BEB3 LVT
683
+ 48820, 48820, 12, // U+BEB4..U+BEB4 LV
684
+ 48821, 48847, 13, // U+BEB5..U+BECF LVT
685
+ 48848, 48848, 12, // U+BED0..U+BED0 LV
686
+ 48849, 48875, 13, // U+BED1..U+BEEB LVT
687
+ 48876, 48876, 12, // U+BEEC..U+BEEC LV
688
+ 48877, 48903, 13, // U+BEED..U+BF07 LVT
689
+ 48904, 48904, 12, // U+BF08..U+BF08 LV
690
+ 48905, 48931, 13, // U+BF09..U+BF23 LVT
691
+ 48932, 48932, 12, // U+BF24..U+BF24 LV
692
+ 48933, 48959, 13, // U+BF25..U+BF3F LVT
693
+ 48960, 48960, 12, // U+BF40..U+BF40 LV
694
+ 48961, 48987, 13, // U+BF41..U+BF5B LVT
695
+ 48988, 48988, 12, // U+BF5C..U+BF5C LV
696
+ 48989, 49015, 13, // U+BF5D..U+BF77 LVT
697
+ 49016, 49016, 12, // U+BF78..U+BF78 LV
698
+ 49017, 49043, 13, // U+BF79..U+BF93 LVT
699
+ 49044, 49044, 12, // U+BF94..U+BF94 LV
700
+ 49045, 49071, 13, // U+BF95..U+BFAF LVT
701
+ 49072, 49072, 12, // U+BFB0..U+BFB0 LV
702
+ 49073, 49099, 13, // U+BFB1..U+BFCB LVT
703
+ 49100, 49100, 12, // U+BFCC..U+BFCC LV
704
+ 49101, 49127, 13, // U+BFCD..U+BFE7 LVT
705
+ 49128, 49128, 12, // U+BFE8..U+BFE8 LV
706
+ 49129, 49155, 13, // U+BFE9..U+C003 LVT
707
+ 49156, 49156, 12, // U+C004..U+C004 LV
708
+ 49157, 49183, 13, // U+C005..U+C01F LVT
709
+ 49184, 49184, 12, // U+C020..U+C020 LV
710
+ 49185, 49211, 13, // U+C021..U+C03B LVT
711
+ 49212, 49212, 12, // U+C03C..U+C03C LV
712
+ 49213, 49239, 13, // U+C03D..U+C057 LVT
713
+ 49240, 49240, 12, // U+C058..U+C058 LV
714
+ 49241, 49267, 13, // U+C059..U+C073 LVT
715
+ 49268, 49268, 12, // U+C074..U+C074 LV
716
+ 49269, 49295, 13, // U+C075..U+C08F LVT
717
+ 49296, 49296, 12, // U+C090..U+C090 LV
718
+ 49297, 49323, 13, // U+C091..U+C0AB LVT
719
+ 49324, 49324, 12, // U+C0AC..U+C0AC LV
720
+ 49325, 49351, 13, // U+C0AD..U+C0C7 LVT
721
+ 49352, 49352, 12, // U+C0C8..U+C0C8 LV
722
+ 49353, 49379, 13, // U+C0C9..U+C0E3 LVT
723
+ 49380, 49380, 12, // U+C0E4..U+C0E4 LV
724
+ 49381, 49407, 13, // U+C0E5..U+C0FF LVT
725
+ 49408, 49408, 12, // U+C100..U+C100 LV
726
+ 49409, 49435, 13, // U+C101..U+C11B LVT
727
+ 49436, 49436, 12, // U+C11C..U+C11C LV
728
+ 49437, 49463, 13, // U+C11D..U+C137 LVT
729
+ 49464, 49464, 12, // U+C138..U+C138 LV
730
+ 49465, 49491, 13, // U+C139..U+C153 LVT
731
+ 49492, 49492, 12, // U+C154..U+C154 LV
732
+ 49493, 49519, 13, // U+C155..U+C16F LVT
733
+ 49520, 49520, 12, // U+C170..U+C170 LV
734
+ 49521, 49547, 13, // U+C171..U+C18B LVT
735
+ 49548, 49548, 12, // U+C18C..U+C18C LV
736
+ 49549, 49575, 13, // U+C18D..U+C1A7 LVT
737
+ 49576, 49576, 12, // U+C1A8..U+C1A8 LV
738
+ 49577, 49603, 13, // U+C1A9..U+C1C3 LVT
739
+ 49604, 49604, 12, // U+C1C4..U+C1C4 LV
740
+ 49605, 49631, 13, // U+C1C5..U+C1DF LVT
741
+ 49632, 49632, 12, // U+C1E0..U+C1E0 LV
742
+ 49633, 49659, 13, // U+C1E1..U+C1FB LVT
743
+ 49660, 49660, 12, // U+C1FC..U+C1FC LV
744
+ 49661, 49687, 13, // U+C1FD..U+C217 LVT
745
+ 49688, 49688, 12, // U+C218..U+C218 LV
746
+ 49689, 49715, 13, // U+C219..U+C233 LVT
747
+ 49716, 49716, 12, // U+C234..U+C234 LV
748
+ 49717, 49743, 13, // U+C235..U+C24F LVT
749
+ 49744, 49744, 12, // U+C250..U+C250 LV
750
+ 49745, 49771, 13, // U+C251..U+C26B LVT
751
+ 49772, 49772, 12, // U+C26C..U+C26C LV
752
+ 49773, 49799, 13, // U+C26D..U+C287 LVT
753
+ 49800, 49800, 12, // U+C288..U+C288 LV
754
+ 49801, 49827, 13, // U+C289..U+C2A3 LVT
755
+ 49828, 49828, 12, // U+C2A4..U+C2A4 LV
756
+ 49829, 49855, 13, // U+C2A5..U+C2BF LVT
757
+ 49856, 49856, 12, // U+C2C0..U+C2C0 LV
758
+ 49857, 49883, 13, // U+C2C1..U+C2DB LVT
759
+ 49884, 49884, 12, // U+C2DC..U+C2DC LV
760
+ 49885, 49911, 13, // U+C2DD..U+C2F7 LVT
761
+ 49912, 49912, 12, // U+C2F8..U+C2F8 LV
762
+ 49913, 49939, 13, // U+C2F9..U+C313 LVT
763
+ 49940, 49940, 12, // U+C314..U+C314 LV
764
+ 49941, 49967, 13, // U+C315..U+C32F LVT
765
+ 49968, 49968, 12, // U+C330..U+C330 LV
766
+ 49969, 49995, 13, // U+C331..U+C34B LVT
767
+ 49996, 49996, 12, // U+C34C..U+C34C LV
768
+ 49997, 50023, 13, // U+C34D..U+C367 LVT
769
+ 50024, 50024, 12, // U+C368..U+C368 LV
770
+ 50025, 50051, 13, // U+C369..U+C383 LVT
771
+ 50052, 50052, 12, // U+C384..U+C384 LV
772
+ 50053, 50079, 13, // U+C385..U+C39F LVT
773
+ 50080, 50080, 12, // U+C3A0..U+C3A0 LV
774
+ 50081, 50107, 13, // U+C3A1..U+C3BB LVT
775
+ 50108, 50108, 12, // U+C3BC..U+C3BC LV
776
+ 50109, 50135, 13, // U+C3BD..U+C3D7 LVT
777
+ 50136, 50136, 12, // U+C3D8..U+C3D8 LV
778
+ 50137, 50163, 13, // U+C3D9..U+C3F3 LVT
779
+ 50164, 50164, 12, // U+C3F4..U+C3F4 LV
780
+ 50165, 50191, 13, // U+C3F5..U+C40F LVT
781
+ 50192, 50192, 12, // U+C410..U+C410 LV
782
+ 50193, 50219, 13, // U+C411..U+C42B LVT
783
+ 50220, 50220, 12, // U+C42C..U+C42C LV
784
+ 50221, 50247, 13, // U+C42D..U+C447 LVT
785
+ 50248, 50248, 12, // U+C448..U+C448 LV
786
+ 50249, 50275, 13, // U+C449..U+C463 LVT
787
+ 50276, 50276, 12, // U+C464..U+C464 LV
788
+ 50277, 50303, 13, // U+C465..U+C47F LVT
789
+ 50304, 50304, 12, // U+C480..U+C480 LV
790
+ 50305, 50331, 13, // U+C481..U+C49B LVT
791
+ 50332, 50332, 12, // U+C49C..U+C49C LV
792
+ 50333, 50359, 13, // U+C49D..U+C4B7 LVT
793
+ 50360, 50360, 12, // U+C4B8..U+C4B8 LV
794
+ 50361, 50387, 13, // U+C4B9..U+C4D3 LVT
795
+ 50388, 50388, 12, // U+C4D4..U+C4D4 LV
796
+ 50389, 50415, 13, // U+C4D5..U+C4EF LVT
797
+ 50416, 50416, 12, // U+C4F0..U+C4F0 LV
798
+ 50417, 50443, 13, // U+C4F1..U+C50B LVT
799
+ 50444, 50444, 12, // U+C50C..U+C50C LV
800
+ 50445, 50471, 13, // U+C50D..U+C527 LVT
801
+ 50472, 50472, 12, // U+C528..U+C528 LV
802
+ 50473, 50499, 13, // U+C529..U+C543 LVT
803
+ 50500, 50500, 12, // U+C544..U+C544 LV
804
+ 50501, 50527, 13, // U+C545..U+C55F LVT
805
+ 50528, 50528, 12, // U+C560..U+C560 LV
806
+ 50529, 50555, 13, // U+C561..U+C57B LVT
807
+ 50556, 50556, 12, // U+C57C..U+C57C LV
808
+ 50557, 50583, 13, // U+C57D..U+C597 LVT
809
+ 50584, 50584, 12, // U+C598..U+C598 LV
810
+ 50585, 50611, 13, // U+C599..U+C5B3 LVT
811
+ 50612, 50612, 12, // U+C5B4..U+C5B4 LV
812
+ 50613, 50639, 13, // U+C5B5..U+C5CF LVT
813
+ 50640, 50640, 12, // U+C5D0..U+C5D0 LV
814
+ 50641, 50667, 13, // U+C5D1..U+C5EB LVT
815
+ 50668, 50668, 12, // U+C5EC..U+C5EC LV
816
+ 50669, 50695, 13, // U+C5ED..U+C607 LVT
817
+ 50696, 50696, 12, // U+C608..U+C608 LV
818
+ 50697, 50723, 13, // U+C609..U+C623 LVT
819
+ 50724, 50724, 12, // U+C624..U+C624 LV
820
+ 50725, 50751, 13, // U+C625..U+C63F LVT
821
+ 50752, 50752, 12, // U+C640..U+C640 LV
822
+ 50753, 50779, 13, // U+C641..U+C65B LVT
823
+ 50780, 50780, 12, // U+C65C..U+C65C LV
824
+ 50781, 50807, 13, // U+C65D..U+C677 LVT
825
+ 50808, 50808, 12, // U+C678..U+C678 LV
826
+ 50809, 50835, 13, // U+C679..U+C693 LVT
827
+ 50836, 50836, 12, // U+C694..U+C694 LV
828
+ 50837, 50863, 13, // U+C695..U+C6AF LVT
829
+ 50864, 50864, 12, // U+C6B0..U+C6B0 LV
830
+ 50865, 50891, 13, // U+C6B1..U+C6CB LVT
831
+ 50892, 50892, 12, // U+C6CC..U+C6CC LV
832
+ 50893, 50919, 13, // U+C6CD..U+C6E7 LVT
833
+ 50920, 50920, 12, // U+C6E8..U+C6E8 LV
834
+ 50921, 50947, 13, // U+C6E9..U+C703 LVT
835
+ 50948, 50948, 12, // U+C704..U+C704 LV
836
+ 50949, 50975, 13, // U+C705..U+C71F LVT
837
+ 50976, 50976, 12, // U+C720..U+C720 LV
838
+ 50977, 51003, 13, // U+C721..U+C73B LVT
839
+ 51004, 51004, 12, // U+C73C..U+C73C LV
840
+ 51005, 51031, 13, // U+C73D..U+C757 LVT
841
+ 51032, 51032, 12, // U+C758..U+C758 LV
842
+ 51033, 51059, 13, // U+C759..U+C773 LVT
843
+ 51060, 51060, 12, // U+C774..U+C774 LV
844
+ 51061, 51087, 13, // U+C775..U+C78F LVT
845
+ 51088, 51088, 12, // U+C790..U+C790 LV
846
+ 51089, 51115, 13, // U+C791..U+C7AB LVT
847
+ 51116, 51116, 12, // U+C7AC..U+C7AC LV
848
+ 51117, 51143, 13, // U+C7AD..U+C7C7 LVT
849
+ 51144, 51144, 12, // U+C7C8..U+C7C8 LV
850
+ 51145, 51171, 13, // U+C7C9..U+C7E3 LVT
851
+ 51172, 51172, 12, // U+C7E4..U+C7E4 LV
852
+ 51173, 51199, 13, // U+C7E5..U+C7FF LVT
853
+ 51200, 51200, 12, // U+C800..U+C800 LV
854
+ 51201, 51227, 13, // U+C801..U+C81B LVT
855
+ 51228, 51228, 12, // U+C81C..U+C81C LV
856
+ 51229, 51255, 13, // U+C81D..U+C837 LVT
857
+ 51256, 51256, 12, // U+C838..U+C838 LV
858
+ 51257, 51283, 13, // U+C839..U+C853 LVT
859
+ 51284, 51284, 12, // U+C854..U+C854 LV
860
+ 51285, 51311, 13, // U+C855..U+C86F LVT
861
+ 51312, 51312, 12, // U+C870..U+C870 LV
862
+ 51313, 51339, 13, // U+C871..U+C88B LVT
863
+ 51340, 51340, 12, // U+C88C..U+C88C LV
864
+ 51341, 51367, 13, // U+C88D..U+C8A7 LVT
865
+ 51368, 51368, 12, // U+C8A8..U+C8A8 LV
866
+ 51369, 51395, 13, // U+C8A9..U+C8C3 LVT
867
+ 51396, 51396, 12, // U+C8C4..U+C8C4 LV
868
+ 51397, 51423, 13, // U+C8C5..U+C8DF LVT
869
+ 51424, 51424, 12, // U+C8E0..U+C8E0 LV
870
+ 51425, 51451, 13, // U+C8E1..U+C8FB LVT
871
+ 51452, 51452, 12, // U+C8FC..U+C8FC LV
872
+ 51453, 51479, 13, // U+C8FD..U+C917 LVT
873
+ 51480, 51480, 12, // U+C918..U+C918 LV
874
+ 51481, 51507, 13, // U+C919..U+C933 LVT
875
+ 51508, 51508, 12, // U+C934..U+C934 LV
876
+ 51509, 51535, 13, // U+C935..U+C94F LVT
877
+ 51536, 51536, 12, // U+C950..U+C950 LV
878
+ 51537, 51563, 13, // U+C951..U+C96B LVT
879
+ 51564, 51564, 12, // U+C96C..U+C96C LV
880
+ 51565, 51591, 13, // U+C96D..U+C987 LVT
881
+ 51592, 51592, 12, // U+C988..U+C988 LV
882
+ 51593, 51619, 13, // U+C989..U+C9A3 LVT
883
+ 51620, 51620, 12, // U+C9A4..U+C9A4 LV
884
+ 51621, 51647, 13, // U+C9A5..U+C9BF LVT
885
+ 51648, 51648, 12, // U+C9C0..U+C9C0 LV
886
+ 51649, 51675, 13, // U+C9C1..U+C9DB LVT
887
+ 51676, 51676, 12, // U+C9DC..U+C9DC LV
888
+ 51677, 51703, 13, // U+C9DD..U+C9F7 LVT
889
+ 51704, 51704, 12, // U+C9F8..U+C9F8 LV
890
+ 51705, 51731, 13, // U+C9F9..U+CA13 LVT
891
+ 51732, 51732, 12, // U+CA14..U+CA14 LV
892
+ 51733, 51759, 13, // U+CA15..U+CA2F LVT
893
+ 51760, 51760, 12, // U+CA30..U+CA30 LV
894
+ 51761, 51787, 13, // U+CA31..U+CA4B LVT
895
+ 51788, 51788, 12, // U+CA4C..U+CA4C LV
896
+ 51789, 51815, 13, // U+CA4D..U+CA67 LVT
897
+ 51816, 51816, 12, // U+CA68..U+CA68 LV
898
+ 51817, 51843, 13, // U+CA69..U+CA83 LVT
899
+ 51844, 51844, 12, // U+CA84..U+CA84 LV
900
+ 51845, 51871, 13, // U+CA85..U+CA9F LVT
901
+ 51872, 51872, 12, // U+CAA0..U+CAA0 LV
902
+ 51873, 51899, 13, // U+CAA1..U+CABB LVT
903
+ 51900, 51900, 12, // U+CABC..U+CABC LV
904
+ 51901, 51927, 13, // U+CABD..U+CAD7 LVT
905
+ 51928, 51928, 12, // U+CAD8..U+CAD8 LV
906
+ 51929, 51955, 13, // U+CAD9..U+CAF3 LVT
907
+ 51956, 51956, 12, // U+CAF4..U+CAF4 LV
908
+ 51957, 51983, 13, // U+CAF5..U+CB0F LVT
909
+ 51984, 51984, 12, // U+CB10..U+CB10 LV
910
+ 51985, 52011, 13, // U+CB11..U+CB2B LVT
911
+ 52012, 52012, 12, // U+CB2C..U+CB2C LV
912
+ 52013, 52039, 13, // U+CB2D..U+CB47 LVT
913
+ 52040, 52040, 12, // U+CB48..U+CB48 LV
914
+ 52041, 52067, 13, // U+CB49..U+CB63 LVT
915
+ 52068, 52068, 12, // U+CB64..U+CB64 LV
916
+ 52069, 52095, 13, // U+CB65..U+CB7F LVT
917
+ 52096, 52096, 12, // U+CB80..U+CB80 LV
918
+ 52097, 52123, 13, // U+CB81..U+CB9B LVT
919
+ 52124, 52124, 12, // U+CB9C..U+CB9C LV
920
+ 52125, 52151, 13, // U+CB9D..U+CBB7 LVT
921
+ 52152, 52152, 12, // U+CBB8..U+CBB8 LV
922
+ 52153, 52179, 13, // U+CBB9..U+CBD3 LVT
923
+ 52180, 52180, 12, // U+CBD4..U+CBD4 LV
924
+ 52181, 52207, 13, // U+CBD5..U+CBEF LVT
925
+ 52208, 52208, 12, // U+CBF0..U+CBF0 LV
926
+ 52209, 52235, 13, // U+CBF1..U+CC0B LVT
927
+ 52236, 52236, 12, // U+CC0C..U+CC0C LV
928
+ 52237, 52263, 13, // U+CC0D..U+CC27 LVT
929
+ 52264, 52264, 12, // U+CC28..U+CC28 LV
930
+ 52265, 52291, 13, // U+CC29..U+CC43 LVT
931
+ 52292, 52292, 12, // U+CC44..U+CC44 LV
932
+ 52293, 52319, 13, // U+CC45..U+CC5F LVT
933
+ 52320, 52320, 12, // U+CC60..U+CC60 LV
934
+ 52321, 52347, 13, // U+CC61..U+CC7B LVT
935
+ 52348, 52348, 12, // U+CC7C..U+CC7C LV
936
+ 52349, 52375, 13, // U+CC7D..U+CC97 LVT
937
+ 52376, 52376, 12, // U+CC98..U+CC98 LV
938
+ 52377, 52403, 13, // U+CC99..U+CCB3 LVT
939
+ 52404, 52404, 12, // U+CCB4..U+CCB4 LV
940
+ 52405, 52431, 13, // U+CCB5..U+CCCF LVT
941
+ 52432, 52432, 12, // U+CCD0..U+CCD0 LV
942
+ 52433, 52459, 13, // U+CCD1..U+CCEB LVT
943
+ 52460, 52460, 12, // U+CCEC..U+CCEC LV
944
+ 52461, 52487, 13, // U+CCED..U+CD07 LVT
945
+ 52488, 52488, 12, // U+CD08..U+CD08 LV
946
+ 52489, 52515, 13, // U+CD09..U+CD23 LVT
947
+ 52516, 52516, 12, // U+CD24..U+CD24 LV
948
+ 52517, 52543, 13, // U+CD25..U+CD3F LVT
949
+ 52544, 52544, 12, // U+CD40..U+CD40 LV
950
+ 52545, 52571, 13, // U+CD41..U+CD5B LVT
951
+ 52572, 52572, 12, // U+CD5C..U+CD5C LV
952
+ 52573, 52599, 13, // U+CD5D..U+CD77 LVT
953
+ 52600, 52600, 12, // U+CD78..U+CD78 LV
954
+ 52601, 52627, 13, // U+CD79..U+CD93 LVT
955
+ 52628, 52628, 12, // U+CD94..U+CD94 LV
956
+ 52629, 52655, 13, // U+CD95..U+CDAF LVT
957
+ 52656, 52656, 12, // U+CDB0..U+CDB0 LV
958
+ 52657, 52683, 13, // U+CDB1..U+CDCB LVT
959
+ 52684, 52684, 12, // U+CDCC..U+CDCC LV
960
+ 52685, 52711, 13, // U+CDCD..U+CDE7 LVT
961
+ 52712, 52712, 12, // U+CDE8..U+CDE8 LV
962
+ 52713, 52739, 13, // U+CDE9..U+CE03 LVT
963
+ 52740, 52740, 12, // U+CE04..U+CE04 LV
964
+ 52741, 52767, 13, // U+CE05..U+CE1F LVT
965
+ 52768, 52768, 12, // U+CE20..U+CE20 LV
966
+ 52769, 52795, 13, // U+CE21..U+CE3B LVT
967
+ 52796, 52796, 12, // U+CE3C..U+CE3C LV
968
+ 52797, 52823, 13, // U+CE3D..U+CE57 LVT
969
+ 52824, 52824, 12, // U+CE58..U+CE58 LV
970
+ 52825, 52851, 13, // U+CE59..U+CE73 LVT
971
+ 52852, 52852, 12, // U+CE74..U+CE74 LV
972
+ 52853, 52879, 13, // U+CE75..U+CE8F LVT
973
+ 52880, 52880, 12, // U+CE90..U+CE90 LV
974
+ 52881, 52907, 13, // U+CE91..U+CEAB LVT
975
+ 52908, 52908, 12, // U+CEAC..U+CEAC LV
976
+ 52909, 52935, 13, // U+CEAD..U+CEC7 LVT
977
+ 52936, 52936, 12, // U+CEC8..U+CEC8 LV
978
+ 52937, 52963, 13, // U+CEC9..U+CEE3 LVT
979
+ 52964, 52964, 12, // U+CEE4..U+CEE4 LV
980
+ 52965, 52991, 13, // U+CEE5..U+CEFF LVT
981
+ 52992, 52992, 12, // U+CF00..U+CF00 LV
982
+ 52993, 53019, 13, // U+CF01..U+CF1B LVT
983
+ 53020, 53020, 12, // U+CF1C..U+CF1C LV
984
+ 53021, 53047, 13, // U+CF1D..U+CF37 LVT
985
+ 53048, 53048, 12, // U+CF38..U+CF38 LV
986
+ 53049, 53075, 13, // U+CF39..U+CF53 LVT
987
+ 53076, 53076, 12, // U+CF54..U+CF54 LV
988
+ 53077, 53103, 13, // U+CF55..U+CF6F LVT
989
+ 53104, 53104, 12, // U+CF70..U+CF70 LV
990
+ 53105, 53131, 13, // U+CF71..U+CF8B LVT
991
+ 53132, 53132, 12, // U+CF8C..U+CF8C LV
992
+ 53133, 53159, 13, // U+CF8D..U+CFA7 LVT
993
+ 53160, 53160, 12, // U+CFA8..U+CFA8 LV
994
+ 53161, 53187, 13, // U+CFA9..U+CFC3 LVT
995
+ 53188, 53188, 12, // U+CFC4..U+CFC4 LV
996
+ 53189, 53215, 13, // U+CFC5..U+CFDF LVT
997
+ 53216, 53216, 12, // U+CFE0..U+CFE0 LV
998
+ 53217, 53243, 13, // U+CFE1..U+CFFB LVT
999
+ 53244, 53244, 12, // U+CFFC..U+CFFC LV
1000
+ 53245, 53271, 13, // U+CFFD..U+D017 LVT
1001
+ 53272, 53272, 12, // U+D018..U+D018 LV
1002
+ 53273, 53299, 13, // U+D019..U+D033 LVT
1003
+ 53300, 53300, 12, // U+D034..U+D034 LV
1004
+ 53301, 53327, 13, // U+D035..U+D04F LVT
1005
+ 53328, 53328, 12, // U+D050..U+D050 LV
1006
+ 53329, 53355, 13, // U+D051..U+D06B LVT
1007
+ 53356, 53356, 12, // U+D06C..U+D06C LV
1008
+ 53357, 53383, 13, // U+D06D..U+D087 LVT
1009
+ 53384, 53384, 12, // U+D088..U+D088 LV
1010
+ 53385, 53411, 13, // U+D089..U+D0A3 LVT
1011
+ 53412, 53412, 12, // U+D0A4..U+D0A4 LV
1012
+ 53413, 53439, 13, // U+D0A5..U+D0BF LVT
1013
+ 53440, 53440, 12, // U+D0C0..U+D0C0 LV
1014
+ 53441, 53467, 13, // U+D0C1..U+D0DB LVT
1015
+ 53468, 53468, 12, // U+D0DC..U+D0DC LV
1016
+ 53469, 53495, 13, // U+D0DD..U+D0F7 LVT
1017
+ 53496, 53496, 12, // U+D0F8..U+D0F8 LV
1018
+ 53497, 53523, 13, // U+D0F9..U+D113 LVT
1019
+ 53524, 53524, 12, // U+D114..U+D114 LV
1020
+ 53525, 53551, 13, // U+D115..U+D12F LVT
1021
+ 53552, 53552, 12, // U+D130..U+D130 LV
1022
+ 53553, 53579, 13, // U+D131..U+D14B LVT
1023
+ 53580, 53580, 12, // U+D14C..U+D14C LV
1024
+ 53581, 53607, 13, // U+D14D..U+D167 LVT
1025
+ 53608, 53608, 12, // U+D168..U+D168 LV
1026
+ 53609, 53635, 13, // U+D169..U+D183 LVT
1027
+ 53636, 53636, 12, // U+D184..U+D184 LV
1028
+ 53637, 53663, 13, // U+D185..U+D19F LVT
1029
+ 53664, 53664, 12, // U+D1A0..U+D1A0 LV
1030
+ 53665, 53691, 13, // U+D1A1..U+D1BB LVT
1031
+ 53692, 53692, 12, // U+D1BC..U+D1BC LV
1032
+ 53693, 53719, 13, // U+D1BD..U+D1D7 LVT
1033
+ 53720, 53720, 12, // U+D1D8..U+D1D8 LV
1034
+ 53721, 53747, 13, // U+D1D9..U+D1F3 LVT
1035
+ 53748, 53748, 12, // U+D1F4..U+D1F4 LV
1036
+ 53749, 53775, 13, // U+D1F5..U+D20F LVT
1037
+ 53776, 53776, 12, // U+D210..U+D210 LV
1038
+ 53777, 53803, 13, // U+D211..U+D22B LVT
1039
+ 53804, 53804, 12, // U+D22C..U+D22C LV
1040
+ 53805, 53831, 13, // U+D22D..U+D247 LVT
1041
+ 53832, 53832, 12, // U+D248..U+D248 LV
1042
+ 53833, 53859, 13, // U+D249..U+D263 LVT
1043
+ 53860, 53860, 12, // U+D264..U+D264 LV
1044
+ 53861, 53887, 13, // U+D265..U+D27F LVT
1045
+ 53888, 53888, 12, // U+D280..U+D280 LV
1046
+ 53889, 53915, 13, // U+D281..U+D29B LVT
1047
+ 53916, 53916, 12, // U+D29C..U+D29C LV
1048
+ 53917, 53943, 13, // U+D29D..U+D2B7 LVT
1049
+ 53944, 53944, 12, // U+D2B8..U+D2B8 LV
1050
+ 53945, 53971, 13, // U+D2B9..U+D2D3 LVT
1051
+ 53972, 53972, 12, // U+D2D4..U+D2D4 LV
1052
+ 53973, 53999, 13, // U+D2D5..U+D2EF LVT
1053
+ 54000, 54000, 12, // U+D2F0..U+D2F0 LV
1054
+ 54001, 54027, 13, // U+D2F1..U+D30B LVT
1055
+ 54028, 54028, 12, // U+D30C..U+D30C LV
1056
+ 54029, 54055, 13, // U+D30D..U+D327 LVT
1057
+ 54056, 54056, 12, // U+D328..U+D328 LV
1058
+ 54057, 54083, 13, // U+D329..U+D343 LVT
1059
+ 54084, 54084, 12, // U+D344..U+D344 LV
1060
+ 54085, 54111, 13, // U+D345..U+D35F LVT
1061
+ 54112, 54112, 12, // U+D360..U+D360 LV
1062
+ 54113, 54139, 13, // U+D361..U+D37B LVT
1063
+ 54140, 54140, 12, // U+D37C..U+D37C LV
1064
+ 54141, 54167, 13, // U+D37D..U+D397 LVT
1065
+ 54168, 54168, 12, // U+D398..U+D398 LV
1066
+ 54169, 54195, 13, // U+D399..U+D3B3 LVT
1067
+ 54196, 54196, 12, // U+D3B4..U+D3B4 LV
1068
+ 54197, 54223, 13, // U+D3B5..U+D3CF LVT
1069
+ 54224, 54224, 12, // U+D3D0..U+D3D0 LV
1070
+ 54225, 54251, 13, // U+D3D1..U+D3EB LVT
1071
+ 54252, 54252, 12, // U+D3EC..U+D3EC LV
1072
+ 54253, 54279, 13, // U+D3ED..U+D407 LVT
1073
+ 54280, 54280, 12, // U+D408..U+D408 LV
1074
+ 54281, 54307, 13, // U+D409..U+D423 LVT
1075
+ 54308, 54308, 12, // U+D424..U+D424 LV
1076
+ 54309, 54335, 13, // U+D425..U+D43F LVT
1077
+ 54336, 54336, 12, // U+D440..U+D440 LV
1078
+ 54337, 54363, 13, // U+D441..U+D45B LVT
1079
+ 54364, 54364, 12, // U+D45C..U+D45C LV
1080
+ 54365, 54391, 13, // U+D45D..U+D477 LVT
1081
+ 54392, 54392, 12, // U+D478..U+D478 LV
1082
+ 54393, 54419, 13, // U+D479..U+D493 LVT
1083
+ 54420, 54420, 12, // U+D494..U+D494 LV
1084
+ 54421, 54447, 13, // U+D495..U+D4AF LVT
1085
+ 54448, 54448, 12, // U+D4B0..U+D4B0 LV
1086
+ 54449, 54475, 13, // U+D4B1..U+D4CB LVT
1087
+ 54476, 54476, 12, // U+D4CC..U+D4CC LV
1088
+ 54477, 54503, 13, // U+D4CD..U+D4E7 LVT
1089
+ 54504, 54504, 12, // U+D4E8..U+D4E8 LV
1090
+ 54505, 54531, 13, // U+D4E9..U+D503 LVT
1091
+ 54532, 54532, 12, // U+D504..U+D504 LV
1092
+ 54533, 54559, 13, // U+D505..U+D51F LVT
1093
+ 54560, 54560, 12, // U+D520..U+D520 LV
1094
+ 54561, 54587, 13, // U+D521..U+D53B LVT
1095
+ 54588, 54588, 12, // U+D53C..U+D53C LV
1096
+ 54589, 54615, 13, // U+D53D..U+D557 LVT
1097
+ 54616, 54616, 12, // U+D558..U+D558 LV
1098
+ 54617, 54643, 13, // U+D559..U+D573 LVT
1099
+ 54644, 54644, 12, // U+D574..U+D574 LV
1100
+ 54645, 54671, 13, // U+D575..U+D58F LVT
1101
+ 54672, 54672, 12, // U+D590..U+D590 LV
1102
+ 54673, 54699, 13, // U+D591..U+D5AB LVT
1103
+ 54700, 54700, 12, // U+D5AC..U+D5AC LV
1104
+ 54701, 54727, 13, // U+D5AD..U+D5C7 LVT
1105
+ 54728, 54728, 12, // U+D5C8..U+D5C8 LV
1106
+ 54729, 54755, 13, // U+D5C9..U+D5E3 LVT
1107
+ 54756, 54756, 12, // U+D5E4..U+D5E4 LV
1108
+ 54757, 54783, 13, // U+D5E5..U+D5FF LVT
1109
+ 54784, 54784, 12, // U+D600..U+D600 LV
1110
+ 54785, 54811, 13, // U+D601..U+D61B LVT
1111
+ 54812, 54812, 12, // U+D61C..U+D61C LV
1112
+ 54813, 54839, 13, // U+D61D..U+D637 LVT
1113
+ 54840, 54840, 12, // U+D638..U+D638 LV
1114
+ 54841, 54867, 13, // U+D639..U+D653 LVT
1115
+ 54868, 54868, 12, // U+D654..U+D654 LV
1116
+ 54869, 54895, 13, // U+D655..U+D66F LVT
1117
+ 54896, 54896, 12, // U+D670..U+D670 LV
1118
+ 54897, 54923, 13, // U+D671..U+D68B LVT
1119
+ 54924, 54924, 12, // U+D68C..U+D68C LV
1120
+ 54925, 54951, 13, // U+D68D..U+D6A7 LVT
1121
+ 54952, 54952, 12, // U+D6A8..U+D6A8 LV
1122
+ 54953, 54979, 13, // U+D6A9..U+D6C3 LVT
1123
+ 54980, 54980, 12, // U+D6C4..U+D6C4 LV
1124
+ 54981, 55007, 13, // U+D6C5..U+D6DF LVT
1125
+ 55008, 55008, 12, // U+D6E0..U+D6E0 LV
1126
+ 55009, 55035, 13, // U+D6E1..U+D6FB LVT
1127
+ 55036, 55036, 12, // U+D6FC..U+D6FC LV
1128
+ 55037, 55063, 13, // U+D6FD..U+D717 LVT
1129
+ 55064, 55064, 12, // U+D718..U+D718 LV
1130
+ 55065, 55091, 13, // U+D719..U+D733 LVT
1131
+ 55092, 55092, 12, // U+D734..U+D734 LV
1132
+ 55093, 55119, 13, // U+D735..U+D74F LVT
1133
+ 55120, 55120, 12, // U+D750..U+D750 LV
1134
+ 55121, 55147, 13, // U+D751..U+D76B LVT
1135
+ 55148, 55148, 12, // U+D76C..U+D76C LV
1136
+ 55149, 55175, 13, // U+D76D..U+D787 LVT
1137
+ 55176, 55176, 12, // U+D788..U+D788 LV
1138
+ 55177, 55203, 13, // U+D789..U+D7A3 LVT
1139
+ 55216, 55238, 10, // U+D7B0..U+D7C6 V
1140
+ 55243, 55291, 11, // U+D7CB..U+D7FB T
1141
+ 64286, 64286, 4, // U+FB1E..U+FB1E Extend
1142
+ 65024, 65039, 4, // U+FE00..U+FE0F Extend
1143
+ 65056, 65071, 4, // U+FE20..U+FE2F Extend
1144
+ 65279, 65279, 3, // U+FEFF..U+FEFF Control
1145
+ 65438, 65439, 4, // U+FF9E..U+FF9F Extend
1146
+ 65520, 65531, 3, // U+FFF0..U+FFFB Control
1147
+ 66045, 66045, 4, // U+101FD..U+101FD Extend
1148
+ 66272, 66272, 4, // U+102E0..U+102E0 Extend
1149
+ 66422, 66426, 4, // U+10376..U+1037A Extend
1150
+ 68097, 68099, 4, // U+10A01..U+10A03 Extend
1151
+ 68101, 68102, 4, // U+10A05..U+10A06 Extend
1152
+ 68108, 68111, 4, // U+10A0C..U+10A0F Extend
1153
+ 68152, 68154, 4, // U+10A38..U+10A3A Extend
1154
+ 68159, 68159, 4, // U+10A3F..U+10A3F Extend
1155
+ 68325, 68326, 4, // U+10AE5..U+10AE6 Extend
1156
+ 68900, 68903, 4, // U+10D24..U+10D27 Extend
1157
+ 68969, 68973, 4, // U+10D69..U+10D6D Extend
1158
+ 69291, 69292, 4, // U+10EAB..U+10EAC Extend
1159
+ 69372, 69375, 4, // U+10EFC..U+10EFF Extend
1160
+ 69446, 69456, 4, // U+10F46..U+10F50 Extend
1161
+ 69506, 69509, 4, // U+10F82..U+10F85 Extend
1162
+ 69632, 69632, 8, // U+11000..U+11000 SpacingMark
1163
+ 69633, 69633, 4, // U+11001..U+11001 Extend
1164
+ 69634, 69634, 8, // U+11002..U+11002 SpacingMark
1165
+ 69688, 69702, 4, // U+11038..U+11046 Extend
1166
+ 69744, 69744, 4, // U+11070..U+11070 Extend
1167
+ 69747, 69748, 4, // U+11073..U+11074 Extend
1168
+ 69759, 69761, 4, // U+1107F..U+11081 Extend
1169
+ 69762, 69762, 8, // U+11082..U+11082 SpacingMark
1170
+ 69808, 69810, 8, // U+110B0..U+110B2 SpacingMark
1171
+ 69811, 69814, 4, // U+110B3..U+110B6 Extend
1172
+ 69815, 69816, 8, // U+110B7..U+110B8 SpacingMark
1173
+ 69817, 69818, 4, // U+110B9..U+110BA Extend
1174
+ 69821, 69821, 7, // U+110BD..U+110BD Prepend
1175
+ 69826, 69826, 4, // U+110C2..U+110C2 Extend
1176
+ 69837, 69837, 7, // U+110CD..U+110CD Prepend
1177
+ 69888, 69890, 4, // U+11100..U+11102 Extend
1178
+ 69927, 69931, 4, // U+11127..U+1112B Extend
1179
+ 69932, 69932, 8, // U+1112C..U+1112C SpacingMark
1180
+ 69933, 69940, 4, // U+1112D..U+11134 Extend
1181
+ 69957, 69958, 8, // U+11145..U+11146 SpacingMark
1182
+ 70003, 70003, 4, // U+11173..U+11173 Extend
1183
+ 70016, 70017, 4, // U+11180..U+11181 Extend
1184
+ 70018, 70018, 8, // U+11182..U+11182 SpacingMark
1185
+ 70067, 70069, 8, // U+111B3..U+111B5 SpacingMark
1186
+ 70070, 70078, 4, // U+111B6..U+111BE Extend
1187
+ 70079, 70079, 8, // U+111BF..U+111BF SpacingMark
1188
+ 70080, 70080, 4, // U+111C0..U+111C0 Extend
1189
+ 70082, 70083, 7, // U+111C2..U+111C3 Prepend
1190
+ 70089, 70092, 4, // U+111C9..U+111CC Extend
1191
+ 70094, 70094, 8, // U+111CE..U+111CE SpacingMark
1192
+ 70095, 70095, 4, // U+111CF..U+111CF Extend
1193
+ 70188, 70190, 8, // U+1122C..U+1122E SpacingMark
1194
+ 70191, 70193, 4, // U+1122F..U+11231 Extend
1195
+ 70194, 70195, 8, // U+11232..U+11233 SpacingMark
1196
+ 70196, 70199, 4, // U+11234..U+11237 Extend
1197
+ 70206, 70206, 4, // U+1123E..U+1123E Extend
1198
+ 70209, 70209, 4, // U+11241..U+11241 Extend
1199
+ 70367, 70367, 4, // U+112DF..U+112DF Extend
1200
+ 70368, 70370, 8, // U+112E0..U+112E2 SpacingMark
1201
+ 70371, 70378, 4, // U+112E3..U+112EA Extend
1202
+ 70400, 70401, 4, // U+11300..U+11301 Extend
1203
+ 70402, 70403, 8, // U+11302..U+11303 SpacingMark
1204
+ 70459, 70460, 4, // U+1133B..U+1133C Extend
1205
+ 70462, 70462, 4, // U+1133E..U+1133E Extend
1206
+ 70463, 70463, 8, // U+1133F..U+1133F SpacingMark
1207
+ 70464, 70464, 4, // U+11340..U+11340 Extend
1208
+ 70465, 70468, 8, // U+11341..U+11344 SpacingMark
1209
+ 70471, 70472, 8, // U+11347..U+11348 SpacingMark
1210
+ 70475, 70476, 8, // U+1134B..U+1134C SpacingMark
1211
+ 70477, 70477, 4, // U+1134D..U+1134D Extend
1212
+ 70487, 70487, 4, // U+11357..U+11357 Extend
1213
+ 70498, 70499, 8, // U+11362..U+11363 SpacingMark
1214
+ 70502, 70508, 4, // U+11366..U+1136C Extend
1215
+ 70512, 70516, 4, // U+11370..U+11374 Extend
1216
+ 70584, 70584, 4, // U+113B8..U+113B8 Extend
1217
+ 70585, 70586, 8, // U+113B9..U+113BA SpacingMark
1218
+ 70587, 70592, 4, // U+113BB..U+113C0 Extend
1219
+ 70594, 70594, 4, // U+113C2..U+113C2 Extend
1220
+ 70597, 70597, 4, // U+113C5..U+113C5 Extend
1221
+ 70599, 70601, 4, // U+113C7..U+113C9 Extend
1222
+ 70602, 70602, 8, // U+113CA..U+113CA SpacingMark
1223
+ 70604, 70605, 8, // U+113CC..U+113CD SpacingMark
1224
+ 70606, 70608, 4, // U+113CE..U+113D0 Extend
1225
+ 70609, 70609, 7, // U+113D1..U+113D1 Prepend
1226
+ 70610, 70610, 4, // U+113D2..U+113D2 Extend
1227
+ 70625, 70626, 4, // U+113E1..U+113E2 Extend
1228
+ 70709, 70711, 8, // U+11435..U+11437 SpacingMark
1229
+ 70712, 70719, 4, // U+11438..U+1143F Extend
1230
+ 70720, 70721, 8, // U+11440..U+11441 SpacingMark
1231
+ 70722, 70724, 4, // U+11442..U+11444 Extend
1232
+ 70725, 70725, 8, // U+11445..U+11445 SpacingMark
1233
+ 70726, 70726, 4, // U+11446..U+11446 Extend
1234
+ 70750, 70750, 4, // U+1145E..U+1145E Extend
1235
+ 70832, 70832, 4, // U+114B0..U+114B0 Extend
1236
+ 70833, 70834, 8, // U+114B1..U+114B2 SpacingMark
1237
+ 70835, 70840, 4, // U+114B3..U+114B8 Extend
1238
+ 70841, 70841, 8, // U+114B9..U+114B9 SpacingMark
1239
+ 70842, 70842, 4, // U+114BA..U+114BA Extend
1240
+ 70843, 70844, 8, // U+114BB..U+114BC SpacingMark
1241
+ 70845, 70845, 4, // U+114BD..U+114BD Extend
1242
+ 70846, 70846, 8, // U+114BE..U+114BE SpacingMark
1243
+ 70847, 70848, 4, // U+114BF..U+114C0 Extend
1244
+ 70849, 70849, 8, // U+114C1..U+114C1 SpacingMark
1245
+ 70850, 70851, 4, // U+114C2..U+114C3 Extend
1246
+ 71087, 71087, 4, // U+115AF..U+115AF Extend
1247
+ 71088, 71089, 8, // U+115B0..U+115B1 SpacingMark
1248
+ 71090, 71093, 4, // U+115B2..U+115B5 Extend
1249
+ 71096, 71099, 8, // U+115B8..U+115BB SpacingMark
1250
+ 71100, 71101, 4, // U+115BC..U+115BD Extend
1251
+ 71102, 71102, 8, // U+115BE..U+115BE SpacingMark
1252
+ 71103, 71104, 4, // U+115BF..U+115C0 Extend
1253
+ 71132, 71133, 4, // U+115DC..U+115DD Extend
1254
+ 71216, 71218, 8, // U+11630..U+11632 SpacingMark
1255
+ 71219, 71226, 4, // U+11633..U+1163A Extend
1256
+ 71227, 71228, 8, // U+1163B..U+1163C SpacingMark
1257
+ 71229, 71229, 4, // U+1163D..U+1163D Extend
1258
+ 71230, 71230, 8, // U+1163E..U+1163E SpacingMark
1259
+ 71231, 71232, 4, // U+1163F..U+11640 Extend
1260
+ 71339, 71339, 4, // U+116AB..U+116AB Extend
1261
+ 71340, 71340, 8, // U+116AC..U+116AC SpacingMark
1262
+ 71341, 71341, 4, // U+116AD..U+116AD Extend
1263
+ 71342, 71343, 8, // U+116AE..U+116AF SpacingMark
1264
+ 71344, 71351, 4, // U+116B0..U+116B7 Extend
1265
+ 71453, 71453, 4, // U+1171D..U+1171D Extend
1266
+ 71454, 71454, 8, // U+1171E..U+1171E SpacingMark
1267
+ 71455, 71455, 4, // U+1171F..U+1171F Extend
1268
+ 71458, 71461, 4, // U+11722..U+11725 Extend
1269
+ 71462, 71462, 8, // U+11726..U+11726 SpacingMark
1270
+ 71463, 71467, 4, // U+11727..U+1172B Extend
1271
+ 71724, 71726, 8, // U+1182C..U+1182E SpacingMark
1272
+ 71727, 71735, 4, // U+1182F..U+11837 Extend
1273
+ 71736, 71736, 8, // U+11838..U+11838 SpacingMark
1274
+ 71737, 71738, 4, // U+11839..U+1183A Extend
1275
+ 71984, 71984, 4, // U+11930..U+11930 Extend
1276
+ 71985, 71989, 8, // U+11931..U+11935 SpacingMark
1277
+ 71991, 71992, 8, // U+11937..U+11938 SpacingMark
1278
+ 71995, 71998, 4, // U+1193B..U+1193E Extend
1279
+ 71999, 71999, 7, // U+1193F..U+1193F Prepend
1280
+ 72000, 72000, 8, // U+11940..U+11940 SpacingMark
1281
+ 72001, 72001, 7, // U+11941..U+11941 Prepend
1282
+ 72002, 72002, 8, // U+11942..U+11942 SpacingMark
1283
+ 72003, 72003, 4, // U+11943..U+11943 Extend
1284
+ 72145, 72147, 8, // U+119D1..U+119D3 SpacingMark
1285
+ 72148, 72151, 4, // U+119D4..U+119D7 Extend
1286
+ 72154, 72155, 4, // U+119DA..U+119DB Extend
1287
+ 72156, 72159, 8, // U+119DC..U+119DF SpacingMark
1288
+ 72160, 72160, 4, // U+119E0..U+119E0 Extend
1289
+ 72164, 72164, 8, // U+119E4..U+119E4 SpacingMark
1290
+ 72193, 72202, 4, // U+11A01..U+11A0A Extend
1291
+ 72243, 72248, 4, // U+11A33..U+11A38 Extend
1292
+ 72249, 72249, 8, // U+11A39..U+11A39 SpacingMark
1293
+ 72250, 72250, 7, // U+11A3A..U+11A3A Prepend
1294
+ 72251, 72254, 4, // U+11A3B..U+11A3E Extend
1295
+ 72263, 72263, 4, // U+11A47..U+11A47 Extend
1296
+ 72273, 72278, 4, // U+11A51..U+11A56 Extend
1297
+ 72279, 72280, 8, // U+11A57..U+11A58 SpacingMark
1298
+ 72281, 72283, 4, // U+11A59..U+11A5B Extend
1299
+ 72324, 72329, 7, // U+11A84..U+11A89 Prepend
1300
+ 72330, 72342, 4, // U+11A8A..U+11A96 Extend
1301
+ 72343, 72343, 8, // U+11A97..U+11A97 SpacingMark
1302
+ 72344, 72345, 4, // U+11A98..U+11A99 Extend
1303
+ 72751, 72751, 8, // U+11C2F..U+11C2F SpacingMark
1304
+ 72752, 72758, 4, // U+11C30..U+11C36 Extend
1305
+ 72760, 72765, 4, // U+11C38..U+11C3D Extend
1306
+ 72766, 72766, 8, // U+11C3E..U+11C3E SpacingMark
1307
+ 72767, 72767, 4, // U+11C3F..U+11C3F Extend
1308
+ 72850, 72871, 4, // U+11C92..U+11CA7 Extend
1309
+ 72873, 72873, 8, // U+11CA9..U+11CA9 SpacingMark
1310
+ 72874, 72880, 4, // U+11CAA..U+11CB0 Extend
1311
+ 72881, 72881, 8, // U+11CB1..U+11CB1 SpacingMark
1312
+ 72882, 72883, 4, // U+11CB2..U+11CB3 Extend
1313
+ 72884, 72884, 8, // U+11CB4..U+11CB4 SpacingMark
1314
+ 72885, 72886, 4, // U+11CB5..U+11CB6 Extend
1315
+ 73009, 73014, 4, // U+11D31..U+11D36 Extend
1316
+ 73018, 73018, 4, // U+11D3A..U+11D3A Extend
1317
+ 73020, 73021, 4, // U+11D3C..U+11D3D Extend
1318
+ 73023, 73029, 4, // U+11D3F..U+11D45 Extend
1319
+ 73030, 73030, 7, // U+11D46..U+11D46 Prepend
1320
+ 73031, 73031, 4, // U+11D47..U+11D47 Extend
1321
+ 73098, 73102, 8, // U+11D8A..U+11D8E SpacingMark
1322
+ 73104, 73105, 4, // U+11D90..U+11D91 Extend
1323
+ 73107, 73108, 8, // U+11D93..U+11D94 SpacingMark
1324
+ 73109, 73109, 4, // U+11D95..U+11D95 Extend
1325
+ 73110, 73110, 8, // U+11D96..U+11D96 SpacingMark
1326
+ 73111, 73111, 4, // U+11D97..U+11D97 Extend
1327
+ 73459, 73460, 4, // U+11EF3..U+11EF4 Extend
1328
+ 73461, 73462, 8, // U+11EF5..U+11EF6 SpacingMark
1329
+ 73472, 73473, 4, // U+11F00..U+11F01 Extend
1330
+ 73474, 73474, 7, // U+11F02..U+11F02 Prepend
1331
+ 73475, 73475, 8, // U+11F03..U+11F03 SpacingMark
1332
+ 73524, 73525, 8, // U+11F34..U+11F35 SpacingMark
1333
+ 73526, 73530, 4, // U+11F36..U+11F3A Extend
1334
+ 73534, 73535, 8, // U+11F3E..U+11F3F SpacingMark
1335
+ 73536, 73538, 4, // U+11F40..U+11F42 Extend
1336
+ 73562, 73562, 4, // U+11F5A..U+11F5A Extend
1337
+ 78896, 78911, 3, // U+13430..U+1343F Control
1338
+ 78912, 78912, 4, // U+13440..U+13440 Extend
1339
+ 78919, 78933, 4, // U+13447..U+13455 Extend
1340
+ 90398, 90409, 4, // U+1611E..U+16129 Extend
1341
+ 90410, 90412, 8, // U+1612A..U+1612C SpacingMark
1342
+ 90413, 90415, 4, // U+1612D..U+1612F Extend
1343
+ 92912, 92916, 4, // U+16AF0..U+16AF4 Extend
1344
+ 92976, 92982, 4, // U+16B30..U+16B36 Extend
1345
+ 93539, 93539, 10, // U+16D63..U+16D63 V
1346
+ 93543, 93546, 10, // U+16D67..U+16D6A V
1347
+ 94031, 94031, 4, // U+16F4F..U+16F4F Extend
1348
+ 94033, 94087, 8, // U+16F51..U+16F87 SpacingMark
1349
+ 94095, 94098, 4, // U+16F8F..U+16F92 Extend
1350
+ 94180, 94180, 4, // U+16FE4..U+16FE4 Extend
1351
+ 94192, 94193, 4, // U+16FF0..U+16FF1 Extend
1352
+ 113821, 113822, 4, // U+1BC9D..U+1BC9E Extend
1353
+ 113824, 113827, 3, // U+1BCA0..U+1BCA3 Control
1354
+ 118528, 118573, 4, // U+1CF00..U+1CF2D Extend
1355
+ 118576, 118598, 4, // U+1CF30..U+1CF46 Extend
1356
+ 119141, 119145, 4, // U+1D165..U+1D169 Extend
1357
+ 119149, 119154, 4, // U+1D16D..U+1D172 Extend
1358
+ 119155, 119162, 3, // U+1D173..U+1D17A Control
1359
+ 119163, 119170, 4, // U+1D17B..U+1D182 Extend
1360
+ 119173, 119179, 4, // U+1D185..U+1D18B Extend
1361
+ 119210, 119213, 4, // U+1D1AA..U+1D1AD Extend
1362
+ 119362, 119364, 4, // U+1D242..U+1D244 Extend
1363
+ 121344, 121398, 4, // U+1DA00..U+1DA36 Extend
1364
+ 121403, 121452, 4, // U+1DA3B..U+1DA6C Extend
1365
+ 121461, 121461, 4, // U+1DA75..U+1DA75 Extend
1366
+ 121476, 121476, 4, // U+1DA84..U+1DA84 Extend
1367
+ 121499, 121503, 4, // U+1DA9B..U+1DA9F Extend
1368
+ 121505, 121519, 4, // U+1DAA1..U+1DAAF Extend
1369
+ 122880, 122886, 4, // U+1E000..U+1E006 Extend
1370
+ 122888, 122904, 4, // U+1E008..U+1E018 Extend
1371
+ 122907, 122913, 4, // U+1E01B..U+1E021 Extend
1372
+ 122915, 122916, 4, // U+1E023..U+1E024 Extend
1373
+ 122918, 122922, 4, // U+1E026..U+1E02A Extend
1374
+ 123023, 123023, 4, // U+1E08F..U+1E08F Extend
1375
+ 123184, 123190, 4, // U+1E130..U+1E136 Extend
1376
+ 123566, 123566, 4, // U+1E2AE..U+1E2AE Extend
1377
+ 123628, 123631, 4, // U+1E2EC..U+1E2EF Extend
1378
+ 124140, 124143, 4, // U+1E4EC..U+1E4EF Extend
1379
+ 124398, 124399, 4, // U+1E5EE..U+1E5EF Extend
1380
+ 125136, 125142, 4, // U+1E8D0..U+1E8D6 Extend
1381
+ 125252, 125258, 4, // U+1E944..U+1E94A Extend
1382
+ 127462, 127487, 6, // U+1F1E6..U+1F1FF Regional_Indicator
1383
+ 127995, 127999, 4, // U+1F3FB..U+1F3FF Extend
1384
+ 917504, 917535, 3, // U+E0000..U+E001F Control
1385
+ 917536, 917631, 4, // U+E0020..U+E007F Extend
1386
+ 917632, 917759, 3, // U+E0080..U+E00FF Control
1387
+ 917760, 917999, 4, // U+E0100..U+E01EF Extend
1388
+ 918000, 921599, 3, // U+E01F0..U+E0FFF Control
1389
+ ];
1390
+ /**
1391
+ * 字素断点属性区间表:EXT_PICT_TABLE
1392
+ * 由 scripts/gen-break-data.mjs 从 Unicode 16.0.0 官方数据生成,请勿手工修改。
1393
+ * 扁平结构 [start, end, type, ...],按 start 升序,类型编号见 src/index.ts 常量。
1394
+ */
1395
+ const EXT_PICT_TABLE = [
1396
+ 169, 169, 1, // U+00A9..U+00A9 Extended_Pictographic
1397
+ 174, 174, 1, // U+00AE..U+00AE Extended_Pictographic
1398
+ 8252, 8252, 1, // U+203C..U+203C Extended_Pictographic
1399
+ 8265, 8265, 1, // U+2049..U+2049 Extended_Pictographic
1400
+ 8482, 8482, 1, // U+2122..U+2122 Extended_Pictographic
1401
+ 8505, 8505, 1, // U+2139..U+2139 Extended_Pictographic
1402
+ 8596, 8601, 1, // U+2194..U+2199 Extended_Pictographic
1403
+ 8617, 8618, 1, // U+21A9..U+21AA Extended_Pictographic
1404
+ 8986, 8987, 1, // U+231A..U+231B Extended_Pictographic
1405
+ 9000, 9000, 1, // U+2328..U+2328 Extended_Pictographic
1406
+ 9096, 9096, 1, // U+2388..U+2388 Extended_Pictographic
1407
+ 9167, 9167, 1, // U+23CF..U+23CF Extended_Pictographic
1408
+ 9193, 9203, 1, // U+23E9..U+23F3 Extended_Pictographic
1409
+ 9208, 9210, 1, // U+23F8..U+23FA Extended_Pictographic
1410
+ 9410, 9410, 1, // U+24C2..U+24C2 Extended_Pictographic
1411
+ 9642, 9643, 1, // U+25AA..U+25AB Extended_Pictographic
1412
+ 9654, 9654, 1, // U+25B6..U+25B6 Extended_Pictographic
1413
+ 9664, 9664, 1, // U+25C0..U+25C0 Extended_Pictographic
1414
+ 9723, 9726, 1, // U+25FB..U+25FE Extended_Pictographic
1415
+ 9728, 9733, 1, // U+2600..U+2605 Extended_Pictographic
1416
+ 9735, 9746, 1, // U+2607..U+2612 Extended_Pictographic
1417
+ 9748, 9861, 1, // U+2614..U+2685 Extended_Pictographic
1418
+ 9872, 9989, 1, // U+2690..U+2705 Extended_Pictographic
1419
+ 9992, 10002, 1, // U+2708..U+2712 Extended_Pictographic
1420
+ 10004, 10004, 1, // U+2714..U+2714 Extended_Pictographic
1421
+ 10006, 10006, 1, // U+2716..U+2716 Extended_Pictographic
1422
+ 10013, 10013, 1, // U+271D..U+271D Extended_Pictographic
1423
+ 10017, 10017, 1, // U+2721..U+2721 Extended_Pictographic
1424
+ 10024, 10024, 1, // U+2728..U+2728 Extended_Pictographic
1425
+ 10035, 10036, 1, // U+2733..U+2734 Extended_Pictographic
1426
+ 10052, 10052, 1, // U+2744..U+2744 Extended_Pictographic
1427
+ 10055, 10055, 1, // U+2747..U+2747 Extended_Pictographic
1428
+ 10060, 10060, 1, // U+274C..U+274C Extended_Pictographic
1429
+ 10062, 10062, 1, // U+274E..U+274E Extended_Pictographic
1430
+ 10067, 10069, 1, // U+2753..U+2755 Extended_Pictographic
1431
+ 10071, 10071, 1, // U+2757..U+2757 Extended_Pictographic
1432
+ 10083, 10087, 1, // U+2763..U+2767 Extended_Pictographic
1433
+ 10133, 10135, 1, // U+2795..U+2797 Extended_Pictographic
1434
+ 10145, 10145, 1, // U+27A1..U+27A1 Extended_Pictographic
1435
+ 10160, 10160, 1, // U+27B0..U+27B0 Extended_Pictographic
1436
+ 10175, 10175, 1, // U+27BF..U+27BF Extended_Pictographic
1437
+ 10548, 10549, 1, // U+2934..U+2935 Extended_Pictographic
1438
+ 11013, 11015, 1, // U+2B05..U+2B07 Extended_Pictographic
1439
+ 11035, 11036, 1, // U+2B1B..U+2B1C Extended_Pictographic
1440
+ 11088, 11088, 1, // U+2B50..U+2B50 Extended_Pictographic
1441
+ 11093, 11093, 1, // U+2B55..U+2B55 Extended_Pictographic
1442
+ 12336, 12336, 1, // U+3030..U+3030 Extended_Pictographic
1443
+ 12349, 12349, 1, // U+303D..U+303D Extended_Pictographic
1444
+ 12951, 12951, 1, // U+3297..U+3297 Extended_Pictographic
1445
+ 12953, 12953, 1, // U+3299..U+3299 Extended_Pictographic
1446
+ 126976, 127231, 1, // U+1F000..U+1F0FF Extended_Pictographic
1447
+ 127245, 127247, 1, // U+1F10D..U+1F10F Extended_Pictographic
1448
+ 127279, 127279, 1, // U+1F12F..U+1F12F Extended_Pictographic
1449
+ 127340, 127345, 1, // U+1F16C..U+1F171 Extended_Pictographic
1450
+ 127358, 127359, 1, // U+1F17E..U+1F17F Extended_Pictographic
1451
+ 127374, 127374, 1, // U+1F18E..U+1F18E Extended_Pictographic
1452
+ 127377, 127386, 1, // U+1F191..U+1F19A Extended_Pictographic
1453
+ 127405, 127461, 1, // U+1F1AD..U+1F1E5 Extended_Pictographic
1454
+ 127489, 127503, 1, // U+1F201..U+1F20F Extended_Pictographic
1455
+ 127514, 127514, 1, // U+1F21A..U+1F21A Extended_Pictographic
1456
+ 127535, 127535, 1, // U+1F22F..U+1F22F Extended_Pictographic
1457
+ 127538, 127546, 1, // U+1F232..U+1F23A Extended_Pictographic
1458
+ 127548, 127551, 1, // U+1F23C..U+1F23F Extended_Pictographic
1459
+ 127561, 127994, 1, // U+1F249..U+1F3FA Extended_Pictographic
1460
+ 128000, 128317, 1, // U+1F400..U+1F53D Extended_Pictographic
1461
+ 128326, 128591, 1, // U+1F546..U+1F64F Extended_Pictographic
1462
+ 128640, 128767, 1, // U+1F680..U+1F6FF Extended_Pictographic
1463
+ 128884, 128895, 1, // U+1F774..U+1F77F Extended_Pictographic
1464
+ 128981, 129023, 1, // U+1F7D5..U+1F7FF Extended_Pictographic
1465
+ 129036, 129039, 1, // U+1F80C..U+1F80F Extended_Pictographic
1466
+ 129096, 129103, 1, // U+1F848..U+1F84F Extended_Pictographic
1467
+ 129114, 129119, 1, // U+1F85A..U+1F85F Extended_Pictographic
1468
+ 129160, 129167, 1, // U+1F888..U+1F88F Extended_Pictographic
1469
+ 129198, 129279, 1, // U+1F8AE..U+1F8FF Extended_Pictographic
1470
+ 129292, 129338, 1, // U+1F90C..U+1F93A Extended_Pictographic
1471
+ 129340, 129349, 1, // U+1F93C..U+1F945 Extended_Pictographic
1472
+ 129351, 129791, 1, // U+1F947..U+1FAFF Extended_Pictographic
1473
+ 130048, 131069, 1, // U+1FC00..U+1FFFD Extended_Pictographic
1474
+ ];
1475
+
1476
+ /**
1477
+ * 字素簇分割(Unicode UAX #29 extended grapheme clusters)
1478
+ *
1479
+ * 断点规则按 GB1-GB999 顺序短路判定:
1480
+ * GB3 CR × LF
1481
+ * GB4 (Control | CR | LF) ÷
1482
+ * GB5 ÷ (Control | CR | LF)
1483
+ * GB6 L × (L | V | LV | LVT)
1484
+ * GB7 (LV | V) × (V | T)
1485
+ * GB8 (LVT | T) × T
1486
+ * GB9 × (Extend | ZWJ)
1487
+ * GB9a × SpacingMark
1488
+ * GB9b Prepend ×
1489
+ * GB11 ExtPict Extend* ZWJ × ExtPict
1490
+ * GB12 sot (RI RI)* RI × RI
1491
+ * GB13 [^RI] (RI RI)* RI × RI
1492
+ * GB999 Any ÷ Any
1493
+ *
1494
+ * 属性数据来自 Unicode 16.0.0 官方文件,由 scripts/gen-break-data.mjs
1495
+ * 生成 src/data.ts(Unicode 版本升级时重新运行脚本即可)。
1496
+ */
1497
+ // Grapheme_Cluster_Break 属性编号(与 scripts/gen-break-data.mjs 的 TYPE_IDS 一致)
1498
+ const OTHER = 0;
1499
+ const CR = 1;
1500
+ const LF = 2;
1501
+ const CONTROL = 3;
1502
+ const EXTEND = 4;
1503
+ const ZWJ = 5;
1504
+ const REGIONAL_INDICATOR = 6;
1505
+ const PREPEND = 7;
1506
+ const SPACINGMARK = 8;
1507
+ const HANGUL_L = 9;
1508
+ const HANGUL_V = 10;
1509
+ const HANGUL_T = 11;
1510
+ const HANGUL_LV = 12;
1511
+ const HANGUL_LVT = 13;
1512
+ // GB11 匹配进度(双状态 NFA,码点可同时具备 ExtPict / Extend / ZWJ 多种属性,
1513
+ // 如 U+200D 既是 ZWJ 又是 ExtPict,肤色修饰符既是 Extend 又是 ExtPict):
1514
+ // pictChain - 后缀已匹配 ExtPict Extend*
1515
+ // pictZwj - 后缀已匹配 ExtPict Extend* ZWJ
1516
+ /** 在升序区间表中查找码点的属性,未命中返回 OTHER */
1517
+ function lookupType(table, codePoint) {
1518
+ let lo = 0;
1519
+ let hi = table.length / 3 - 1;
1520
+ while (lo <= hi) {
1521
+ const mid = (lo + hi) >> 1;
1522
+ if (codePoint < table[mid * 3]) {
1523
+ hi = mid - 1;
1524
+ }
1525
+ else if (codePoint > table[mid * 3 + 1]) {
1526
+ lo = mid + 1;
1527
+ }
1528
+ else {
1529
+ return table[mid * 3 + 2];
1530
+ }
1531
+ }
1532
+ return OTHER;
1533
+ }
1534
+ /**
1535
+ * 获取 Unicode 码点的字素断点属性
1536
+ * @param codePoint - Unicode 码点
1537
+ * @returns 属性类型编号
1538
+ */
1539
+ function getGraphemeType(codePoint) {
1540
+ return lookupType(BREAK_TABLE, codePoint);
1541
+ }
1542
+ /** 判断码点是否具有 Extended_Pictographic 属性(GB11 规则所需) */
1543
+ function isExtendedPictographic(codePoint) {
1544
+ return lookupType(EXT_PICT_TABLE, codePoint) === 1;
1545
+ }
1546
+ /** 获取 index 处码点的数值(index 须为码点起点,支持代理对) */
1547
+ function codePointAt(str, index) {
1548
+ const char = str.charCodeAt(index);
1549
+ if (char >= 0xd800 && char <= 0xdbff && index + 1 < str.length) {
1550
+ const next = str.charCodeAt(index + 1);
1551
+ if (next >= 0xdc00 && next <= 0xdfff) {
1552
+ return (char - 0xd800) * 0x400 + (next - 0xdc00) + 0x10000;
1553
+ }
1554
+ }
1555
+ return char;
1556
+ }
1557
+ /** 获取 index 处码点的 UTF-16 长度(1 或 2) */
1558
+ function codePointLength(str, index) {
1559
+ const char = str.charCodeAt(index);
1560
+ if (char >= 0xd800 && char <= 0xdbff && index + 1 < str.length) {
1561
+ const next = str.charCodeAt(index + 1);
1562
+ if (next >= 0xdc00 && next <= 0xdfff) {
1563
+ return 2;
1564
+ }
1565
+ }
1566
+ return 1;
1567
+ }
1568
+ /** 获取 index 前一个码点的起点(用于向左回溯,正确跨越代理对) */
1569
+ function prevCodePointStart(str, index) {
1570
+ const prev = str.charCodeAt(index - 1);
1571
+ if (prev >= 0xdc00 && prev <= 0xdfff && index >= 2) {
1572
+ const before = str.charCodeAt(index - 2);
1573
+ if (before >= 0xd800 && before <= 0xdbff) {
1574
+ return index - 2;
1575
+ }
1576
+ }
1577
+ return index - 1;
1578
+ }
1579
+ /** 前一码点是否为 Control / CR / LF(GB4 的判定集合) */
1580
+ function isControlLike(type) {
1581
+ return type === CR || type === LF || type === CONTROL;
1582
+ }
1583
+ /**
1584
+ * 依据 UAX #29 规则判定 prev 与 curr 之间是否为字素边界
1585
+ * @param prevType - 前一码点的属性
1586
+ * @param riOdd - 截至 prev 的连续 RI 个数是否为奇数(GB12/13)
1587
+ * @param pictZwj - GB11 链是否推进到 ExtPict Extend* ZWJ
1588
+ * @param currCP - 当前码点
1589
+ * @param currType - 当前码点的属性
1590
+ * @returns 是否为边界
1591
+ */
1592
+ function isBoundary(prevType, riOdd, pictZwj, currCP, currType) {
1593
+ // GB3: CR × LF
1594
+ if (prevType === CR && currType === LF)
1595
+ return false;
1596
+ // GB4: (Control | CR | LF) ÷ Any
1597
+ if (isControlLike(prevType))
1598
+ return true;
1599
+ // GB5: Any ÷ (Control | CR | LF)
1600
+ if (isControlLike(currType))
1601
+ return true;
1602
+ // GB6: L × (L | V | LV | LVT)
1603
+ if (prevType === HANGUL_L &&
1604
+ (currType === HANGUL_L || currType === HANGUL_V || currType === HANGUL_LV || currType === HANGUL_LVT)) {
1605
+ return false;
1606
+ }
1607
+ // GB7: (LV | V) × (V | T)
1608
+ if ((prevType === HANGUL_LV || prevType === HANGUL_V) && (currType === HANGUL_V || currType === HANGUL_T)) {
1609
+ return false;
1610
+ }
1611
+ // GB8: (LVT | T) × T
1612
+ if ((prevType === HANGUL_LVT || prevType === HANGUL_T) && currType === HANGUL_T) {
1613
+ return false;
1614
+ }
1615
+ // GB9: × (Extend | ZWJ)
1616
+ if (currType === EXTEND || currType === ZWJ)
1617
+ return false;
1618
+ // GB9a: × SpacingMark
1619
+ if (currType === SPACINGMARK)
1620
+ return false;
1621
+ // GB9b: Prepend ×
1622
+ if (prevType === PREPEND)
1623
+ return false;
1624
+ // GB11: ExtPict Extend* ZWJ × ExtPict
1625
+ if (pictZwj && isExtendedPictographic(currCP))
1626
+ return false;
1627
+ // GB12/13: 前面连续 RI 为奇数个时 RI × RI
1628
+ if (prevType === REGIONAL_INDICATOR && currType === REGIONAL_INDICATOR && riOdd)
1629
+ return false;
1630
+ // GB999: Any ÷ Any
1631
+ return true;
1632
+ }
1633
+ /** 推进 GB11 链进度(curr 已确定并入当前簇),返回 [pictChain, pictZwj] */
1634
+ function advancePictState(pictChain, currCP, currType) {
1635
+ // S2 可达:S1 && 当前是 ZWJ;S1 可达:当前是非 ZWJ 的 ExtPict(开启/重开链,
1636
+ // ZWJ 虽具 ExtPict 属性但不作链头,与 ICU/Intl.Segmenter 行为对齐)或 S1 && Extend(延续)
1637
+ const pictZwj = pictChain && currType === ZWJ;
1638
+ const chain = (isExtendedPictographic(currCP) && currType !== ZWJ) || (pictChain && currType === EXTEND);
1639
+ return [chain, pictZwj];
1640
+ }
1641
+ /**
1642
+ * 向左回溯,找到包含 start 的字素簇的起点
1643
+ * 用于支持 nextBreak 从任意位置(含簇中间)调用;
1644
+ * split 等内部调用总在簇起点,回溯立即结束
1645
+ */
1646
+ function findClusterStart(str, start) {
1647
+ while (start > 0) {
1648
+ const prevStart = prevCodePointStart(str, start);
1649
+ const prevType = getGraphemeType(codePointAt(str, prevStart));
1650
+ const currCP = codePointAt(str, start);
1651
+ const currType = getGraphemeType(currCP);
1652
+ let isStart;
1653
+ if (prevType === CR && currType === LF) {
1654
+ isStart = false; // GB3
1655
+ }
1656
+ else if (isControlLike(prevType)) {
1657
+ isStart = true; // GB4
1658
+ }
1659
+ else if (isControlLike(currType)) {
1660
+ isStart = true; // GB5
1661
+ }
1662
+ else if (prevType === HANGUL_L &&
1663
+ (currType === HANGUL_L || currType === HANGUL_V || currType === HANGUL_LV || currType === HANGUL_LVT)) {
1664
+ isStart = false; // GB6
1665
+ }
1666
+ else if ((prevType === HANGUL_LV || prevType === HANGUL_V) && (currType === HANGUL_V || currType === HANGUL_T)) {
1667
+ isStart = false; // GB7
1668
+ }
1669
+ else if ((prevType === HANGUL_LVT || prevType === HANGUL_T) && currType === HANGUL_T) {
1670
+ isStart = false; // GB8
1671
+ }
1672
+ else if (currType === EXTEND || currType === ZWJ) {
1673
+ isStart = false; // GB9
1674
+ }
1675
+ else if (currType === SPACINGMARK) {
1676
+ isStart = false; // GB9a
1677
+ }
1678
+ else if (prevType === PREPEND) {
1679
+ isStart = false; // GB9b
1680
+ }
1681
+ else if (prevType === ZWJ && isExtendedPictographic(currCP)) {
1682
+ // GB11 镜像:向左扫描,遇到非 ZWJ 的 ExtPict 则链成立不分隔;
1683
+ // 纯 Extend 继续跳过;ZWJ 与其他码点则链断裂(与正向状态机对称)
1684
+ let k = prevCodePointStart(str, prevStart);
1685
+ let chainFound = false;
1686
+ while (k >= 0) {
1687
+ const cp = codePointAt(str, k);
1688
+ const type = getGraphemeType(cp);
1689
+ if (type === ZWJ)
1690
+ break;
1691
+ if (isExtendedPictographic(cp)) {
1692
+ chainFound = true;
1693
+ break;
1694
+ }
1695
+ if (type !== EXTEND)
1696
+ break;
1697
+ k = prevCodePointStart(str, k);
1698
+ }
1699
+ isStart = !chainFound;
1700
+ }
1701
+ else if (prevType === REGIONAL_INDICATOR && currType === REGIONAL_INDICATOR) {
1702
+ // GB12/13:向左统计连续 RI(含 prev)个数,奇数表示 prev 未配对
1703
+ let count = 1;
1704
+ let k = prevCodePointStart(str, prevStart);
1705
+ while (k >= 0 && getGraphemeType(codePointAt(str, k)) === REGIONAL_INDICATOR) {
1706
+ count++;
1707
+ k = prevCodePointStart(str, k);
1708
+ }
1709
+ isStart = count % 2 === 0;
1710
+ }
1711
+ else {
1712
+ isStart = true; // GB999
1713
+ }
1714
+ if (isStart)
1715
+ return start;
1716
+ start = prevStart;
1717
+ }
1718
+ return start;
1719
+ }
1720
+ /**
1721
+ * 计算字符串的字素数量
1722
+ * @param str - 要计算的字符串
1723
+ * @returns 字素数量
1724
+ */
1725
+ function GetLength(str) {
1726
+ if (str.length === 0)
1727
+ return 0;
1728
+ let count = 0;
1729
+ let index = 0;
1730
+ while (index < str.length) {
1731
+ const breakIndex = NextBreak(str, index);
1732
+ count++;
1733
+ index = breakIndex;
1734
+ }
1735
+ return count;
1736
+ }
1737
+ /**
1738
+ * 查找下一个字素边界位置(严格大于 index 的最小边界)
1739
+ * @param str - 字符串
1740
+ * @param index - 当前位置,允许落在字素簇中间(内部会回溯到簇起点)
1741
+ * @returns 下一个字素边界位置
1742
+ */
1743
+ function NextBreak(str, index = 0) {
1744
+ if (index < 0)
1745
+ return 0;
1746
+ if (index >= str.length)
1747
+ return str.length;
1748
+ // 落在代理对中间时回退到码点起点
1749
+ let start = index;
1750
+ if (start > 0) {
1751
+ const prev = str.charCodeAt(start - 1);
1752
+ if (prev >= 0xd800 && prev <= 0xdbff) {
1753
+ const curr = str.charCodeAt(start);
1754
+ if (curr >= 0xdc00 && curr <= 0xdfff) {
1755
+ start -= 1;
1756
+ }
1757
+ }
1758
+ }
1759
+ // 回溯到包含 index 的字素簇的起点,从起点运行状态机
1760
+ start = findClusterStart(str, start);
1761
+ const firstCP = codePointAt(str, start);
1762
+ let prevType = getGraphemeType(firstCP);
1763
+ let riOdd = prevType === REGIONAL_INDICATOR;
1764
+ let pictChain = isExtendedPictographic(firstCP);
1765
+ let pictZwj = false;
1766
+ let i = start + codePointLength(str, start);
1767
+ while (i < str.length) {
1768
+ const currCP = codePointAt(str, i);
1769
+ const currType = getGraphemeType(currCP);
1770
+ if (isBoundary(prevType, riOdd, pictZwj, currCP, currType)) {
1771
+ // start 是包含 index 的簇的起点,簇终点必然大于 index
1772
+ return i;
1773
+ }
1774
+ riOdd = currType === REGIONAL_INDICATOR && (prevType !== REGIONAL_INDICATOR || !riOdd);
1775
+ [pictChain, pictZwj] = advancePictState(pictChain, currCP, currType);
1776
+ prevType = currType;
1777
+ i += codePointLength(str, i);
1778
+ }
1779
+ return str.length;
1780
+ }
1781
+ /**
1782
+ * 将字符串拆分为字素数组
1783
+ * @param str - 要拆分的字符串
1784
+ * @returns 字素数组
1785
+ */
1786
+ function Split(str) {
1787
+ const result = [];
1788
+ let index = 0;
1789
+ while (index < str.length) {
1790
+ const breakIndex = NextBreak(str, index);
1791
+ result.push(str.slice(index, breakIndex));
1792
+ index = breakIndex;
1793
+ }
1794
+ return result;
1795
+ }
1796
+ /**
1797
+ * 截取字符串
1798
+ * @param str - 字符串
1799
+ * @param start - 起始位置
1800
+ * @param end - 结束位置
1801
+ * @returns 截取的字符串
1802
+ */
1803
+ function Slice(str, start = 0, end) {
1804
+ if (str.length === 0)
1805
+ return str;
1806
+ start = Math.max(0, Math.floor(start));
1807
+ end = Math.max(0, Math.floor(end !== null && end !== void 0 ? end : str.length));
1808
+ if (start > end)
1809
+ [start, end] = [end, start];
1810
+ let count = end - start;
1811
+ if (count <= 0)
1812
+ return '';
1813
+ const result = [];
1814
+ let index = 0;
1815
+ let chars = 0;
1816
+ while (index < str.length) {
1817
+ const breakIndex = NextBreak(str, index);
1818
+ if (chars++ >= start) {
1819
+ result.push(str.slice(index, breakIndex));
1820
+ if (--count <= 0)
1821
+ break;
1822
+ }
1823
+ index = breakIndex;
1824
+ }
1825
+ return result.join('');
1826
+ }
1827
+ /**
1828
+ * 获取字符串的字素迭代器
1829
+ * @param str - 字符串
1830
+ * @returns 可迭代的字素迭代器
1831
+ */
1832
+ function Iterate(str) {
1833
+ let index = 0;
1834
+ return {
1835
+ next() {
1836
+ if (index >= str.length) {
1837
+ return { value: undefined, done: true };
1838
+ }
1839
+ const breakIndex = NextBreak(str, index);
1840
+ const value = str.slice(index, breakIndex);
1841
+ index = breakIndex;
1842
+ return { value, done: false };
1843
+ },
1844
+ [Symbol.iterator]() {
1845
+ return this;
1846
+ },
1847
+ };
1848
+ }
1849
+ /**
1850
+ * 遍历字符串的每个字素
1851
+ * @param str - 字符串
1852
+ * @param callback - 回调函数
1853
+ */
1854
+ function Each(str, callback) {
1855
+ for (const grapheme of Iterate(str)) {
1856
+ callback(grapheme);
1857
+ }
1858
+ }
1859
+ /**
1860
+ * 获取字符串指定位置的字素
1861
+ * @param str - 字符串
1862
+ * @param index - 字素索引
1863
+ * @returns 指定位置的字素,如果不存在则返回 undefined
1864
+ */
1865
+ function Pick(str, index) {
1866
+ let count = 0;
1867
+ for (const grapheme of Iterate(str)) {
1868
+ if (count === index) {
1869
+ return grapheme;
1870
+ }
1871
+ count++;
1872
+ }
1873
+ return undefined;
1874
+ }
1875
+ /**
1876
+ * 截断字符串的字素
1877
+ * @param str - 字符串
1878
+ * @param length - 截断长度
1879
+ * @param ellipsis - 省略号,默认为 "..."
1880
+ * @returns 截断后的字符串
1881
+ */
1882
+ function Truncate(str, length, ellipsis = '...') {
1883
+ let result = '';
1884
+ let count = 0;
1885
+ for (const grapheme of Iterate(str)) {
1886
+ if (count >= length) {
1887
+ break;
1888
+ }
1889
+ result += grapheme;
1890
+ count++;
1891
+ }
1892
+ return result + ellipsis;
1893
+ }
1894
+
1895
+ exports.Each = Each;
1896
+ exports.GetLength = GetLength;
1897
+ exports.Iterate = Iterate;
1898
+ exports.NextBreak = NextBreak;
1899
+ exports.Pick = Pick;
1900
+ exports.Slice = Slice;
1901
+ exports.Split = Split;
1902
+ exports.Truncate = Truncate;