Mercurial > minori
comparison dep/anitomy/dep/srell/single-header/srell.hpp @ 347:a0aa8c8c4307
dep/anitomy: port to use UCS-4 rather than wide strings
rationale: wide strings are not the same on every platform, and
might not even be Unicode. (while they usually are, its possible
that they are not)
I was *going* to change StringToInt to use a string stream, but
outputting to an integer doesn't seem to work at all with UCS-4,
even though it ought to, so I just rolled my own that uses the
arabic digits only.
author | Paper <paper@paper.us.eu.org> |
---|---|
date | Sun, 23 Jun 2024 10:32:09 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
346:e65b89bcc528 | 347:a0aa8c8c4307 |
---|---|
1 /***************************************************************************** | |
2 ** | |
3 ** SRELL (std::regex-like library) version 4.045 | |
4 ** | |
5 ** Copyright (c) 2012-2024, Nozomu Katoo. All rights reserved. | |
6 ** | |
7 ** Redistribution and use in source and binary forms, with or without | |
8 ** modification, are permitted provided that the following conditions are | |
9 ** met: | |
10 ** | |
11 ** 1. Redistributions of source code must retain the above copyright notice, | |
12 ** this list of conditions and the following disclaimer. | |
13 ** | |
14 ** 2. Redistributions in binary form must reproduce the above copyright | |
15 ** notice, this list of conditions and the following disclaimer in the | |
16 ** documentation and/or other materials provided with the distribution. | |
17 ** | |
18 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS | |
19 ** IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, | |
20 ** THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
21 ** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR | |
22 ** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
23 ** EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
24 ** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |
25 ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |
26 ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
27 ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
28 ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
29 ** | |
30 ****************************************************************************** | |
31 **/ | |
32 | |
33 #ifndef SRELL_REGEX_TEMPLATE_LIBRARY | |
34 #define SRELL_REGEX_TEMPLATE_LIBRARY | |
35 | |
36 #include <stdexcept> | |
37 #include <climits> | |
38 #include <cwchar> | |
39 #include <string> | |
40 #include <locale> | |
41 #include <cstdio> | |
42 #include <cstdlib> | |
43 #include <cstring> | |
44 #include <cstddef> | |
45 #include <utility> | |
46 #include <vector> | |
47 #include <iterator> | |
48 #include <memory> | |
49 #include <algorithm> | |
50 | |
51 #if !defined(SRELL_NO_UNISTACK) && (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSC_VER) && (_MSC_VER >= 1900)) | |
52 #include <type_traits> | |
53 #define SRELL_HAS_TYPE_TRAITS | |
54 #endif | |
55 | |
56 #ifdef __cpp_unicode_characters | |
57 #ifndef SRELL_CPP11_CHAR1632_ENABLED | |
58 #define SRELL_CPP11_CHAR1632_ENABLED | |
59 #endif | |
60 #endif | |
61 #ifdef __cpp_initializer_lists | |
62 #ifndef SRELL_CPP11_INITIALIZER_LIST_ENABLED | |
63 #define SRELL_CPP11_INITIALIZER_LIST_ENABLED | |
64 #endif | |
65 #endif | |
66 #ifdef __cpp_rvalue_references | |
67 #ifndef SRELL_CPP11_MOVE_ENABLED | |
68 #define SRELL_CPP11_MOVE_ENABLED | |
69 #endif | |
70 #endif | |
71 #ifdef SRELL_CPP11_MOVE_ENABLED | |
72 #if defined(_MSC_VER) && _MSC_VER < 1900 | |
73 #define SRELL_NOEXCEPT | |
74 #else | |
75 #define SRELL_NOEXCEPT noexcept | |
76 #endif | |
77 #endif | |
78 #ifdef __cpp_char8_t | |
79 #ifndef SRELL_CPP20_CHAR8_ENABLED | |
80 #ifdef __cpp_lib_char8_t | |
81 #define SRELL_CPP20_CHAR8_ENABLED 2 | |
82 #else | |
83 #define SRELL_CPP20_CHAR8_ENABLED 1 | |
84 #endif | |
85 #endif | |
86 #endif | |
87 | |
88 // The following SRELL_NO_* macros would be useful when wanting to | |
89 // reduce the size of a binary by turning off some feature(s). | |
90 | |
91 #ifdef SRELL_NO_UNICODE_DATA | |
92 | |
93 // Prevents Unicode data used for icase (case-insensitive) matching | |
94 // from being output into a resulting binary. In this case only the | |
95 // ASCII characters are case-folded when icase matching is performed | |
96 // (i.e., [A-Z] -> [a-z] only). | |
97 #define SRELL_NO_UNICODE_ICASE | |
98 | |
99 // Disables the Unicode property (\p{...} and \P{...}) and prevents | |
100 // Unicode property data from being output into a resulting binary. | |
101 #define SRELL_NO_UNICODE_PROPERTY | |
102 #endif | |
103 | |
104 // Prevents icase matching specific functions into a resulting binary. | |
105 // In this case the icase flag is ignored and icase matching becomes | |
106 // unavailable. | |
107 #ifdef SRELL_NO_ICASE | |
108 #ifndef SRELL_NO_UNICODE_ICASE | |
109 #define SRELL_NO_UNICODE_ICASE | |
110 #endif | |
111 #endif | |
112 | |
113 // This macro might be removed in the future. | |
114 #ifdef SRELL_V1_COMPATIBLE | |
115 #ifndef SRELL_NO_UNICODE_PROPERTY | |
116 #define SRELL_NO_UNICODE_PROPERTY | |
117 #endif | |
118 #ifndef SRELL_NO_VMODE | |
119 #define SRELL_NO_VMODE | |
120 #endif | |
121 #define SRELL_NO_NAMEDCAPTURE | |
122 #define SRELL_NO_SINGLELINE | |
123 //#define SRELL_FIXEDWIDTHLOOKBEHIND | |
124 // Since version 4.019, SRELL highly depends on the variable-length | |
125 // lookbehind feature. Uncommenting this line is not recommended. | |
126 #endif | |
127 | |
128 namespace srell | |
129 { | |
130 // ["regex_constants.h" ... | |
131 | |
132 namespace regex_constants | |
133 { | |
134 enum syntax_option_type | |
135 { | |
136 icase = 1 << 1, | |
137 nosubs = 1 << 2, | |
138 optimize = 1 << 3, | |
139 collate = 0, | |
140 ECMAScript = 1 << 0, | |
141 basic = 0, | |
142 extended = 0, | |
143 awk = 0, | |
144 grep = 0, | |
145 egrep = 0, | |
146 multiline = 1 << 4, | |
147 | |
148 // SRELL's extension. | |
149 dotall = 1 << 5, // singleline. | |
150 unicodesets = 1 << 6, | |
151 | |
152 // For internal use. | |
153 back_ = 1 << 7, | |
154 pflagsmask_ = (1 << 7) - 1 | |
155 }; | |
156 | |
157 inline syntax_option_type operator&(const syntax_option_type left, const syntax_option_type right) | |
158 { | |
159 return static_cast<syntax_option_type>(static_cast<int>(left) & static_cast<int>(right)); | |
160 } | |
161 inline syntax_option_type operator|(const syntax_option_type left, const syntax_option_type right) | |
162 { | |
163 return static_cast<syntax_option_type>(static_cast<int>(left) | static_cast<int>(right)); | |
164 } | |
165 inline syntax_option_type operator^(const syntax_option_type left, const syntax_option_type right) | |
166 { | |
167 return static_cast<syntax_option_type>(static_cast<int>(left) ^ static_cast<int>(right)); | |
168 } | |
169 inline syntax_option_type operator~(const syntax_option_type b) | |
170 { | |
171 return static_cast<syntax_option_type>(~static_cast<int>(b)); | |
172 } | |
173 inline syntax_option_type &operator&=(syntax_option_type &left, const syntax_option_type right) | |
174 { | |
175 left = left & right; | |
176 return left; | |
177 } | |
178 inline syntax_option_type &operator|=(syntax_option_type &left, const syntax_option_type right) | |
179 { | |
180 left = left | right; | |
181 return left; | |
182 } | |
183 inline syntax_option_type &operator^=(syntax_option_type &left, const syntax_option_type right) | |
184 { | |
185 left = left ^ right; | |
186 return left; | |
187 } | |
188 } | |
189 // namespace regex_constants | |
190 | |
191 namespace regex_constants | |
192 { | |
193 enum match_flag_type | |
194 { | |
195 match_default = 0, | |
196 match_not_bol = 1 << 0, | |
197 match_not_eol = 1 << 1, | |
198 match_not_bow = 1 << 2, | |
199 match_not_eow = 1 << 3, | |
200 match_any = 1 << 4, | |
201 match_not_null = 1 << 5, | |
202 match_continuous = 1 << 6, | |
203 match_prev_avail = 1 << 7, | |
204 | |
205 format_default = 0, | |
206 format_sed = 1 << 8, | |
207 format_no_copy = 1 << 9, | |
208 format_first_only = 1 << 10, | |
209 | |
210 // For internal use. | |
211 match_match_ = 1 << 11 | |
212 }; | |
213 | |
214 inline match_flag_type operator&(const match_flag_type left, const match_flag_type right) | |
215 { | |
216 return static_cast<match_flag_type>(static_cast<int>(left) & static_cast<int>(right)); | |
217 } | |
218 inline match_flag_type operator|(const match_flag_type left, const match_flag_type right) | |
219 { | |
220 return static_cast<match_flag_type>(static_cast<int>(left) | static_cast<int>(right)); | |
221 } | |
222 inline match_flag_type operator^(const match_flag_type left, const match_flag_type right) | |
223 { | |
224 return static_cast<match_flag_type>(static_cast<int>(left) ^ static_cast<int>(right)); | |
225 } | |
226 inline match_flag_type operator~(const match_flag_type b) | |
227 { | |
228 return static_cast<match_flag_type>(~static_cast<int>(b)); | |
229 } | |
230 inline match_flag_type &operator&=(match_flag_type &left, const match_flag_type right) | |
231 { | |
232 left = left & right; | |
233 return left; | |
234 } | |
235 inline match_flag_type &operator|=(match_flag_type &left, const match_flag_type right) | |
236 { | |
237 left = left | right; | |
238 return left; | |
239 } | |
240 inline match_flag_type &operator^=(match_flag_type &left, const match_flag_type right) | |
241 { | |
242 left = left ^ right; | |
243 return left; | |
244 } | |
245 } | |
246 // namespace regex_constants | |
247 | |
248 // 28.5, regex constants: | |
249 namespace regex_constants | |
250 { | |
251 typedef int error_type; | |
252 | |
253 static const error_type error_collate = 100; | |
254 static const error_type error_ctype = 101; | |
255 static const error_type error_escape = 102; | |
256 static const error_type error_backref = 103; | |
257 static const error_type error_brack = 104; | |
258 static const error_type error_paren = 105; | |
259 static const error_type error_brace = 106; | |
260 static const error_type error_badbrace = 107; | |
261 static const error_type error_range = 108; | |
262 static const error_type error_space = 109; | |
263 static const error_type error_badrepeat = 110; | |
264 static const error_type error_complexity = 111; | |
265 static const error_type error_stack = 112; | |
266 | |
267 // SRELL's extensions. | |
268 static const error_type error_utf8 = 113; | |
269 // The expression contained an invalid UTF-8 sequence. | |
270 | |
271 static const error_type error_property = 114; | |
272 // The expression contained an invalid Unicode property name or value. | |
273 | |
274 static const error_type error_noescape = 115; | |
275 // (Only in v-mode) ( ) [ ] { } / - \ | need to be escaped in a character class. | |
276 | |
277 static const error_type error_operator = 116; | |
278 // (Only in v-mode) A character class contained a reserved double punctuation | |
279 // operator or different types of operators at the same level, such as [ab--cd]. | |
280 | |
281 static const error_type error_complement = 117; | |
282 // (Only in v-mode) \P or a negated character class contained a property of strings. | |
283 | |
284 static const error_type error_modifier = 118; | |
285 // A specific flag modifier appeared more then once, or the un-bounded form | |
286 // ((?ism-ism)) appeared at a position other than the beginning of the expression. | |
287 | |
288 #if defined(SRELL_FIXEDWIDTHLOOKBEHIND) | |
289 static const error_type error_lookbehind = 200; | |
290 #endif | |
291 static const error_type error_internal = 999; | |
292 } | |
293 // namespace regex_constants | |
294 | |
295 // ... "regex_constants.h"] | |
296 // ["regex_error.hpp" ... | |
297 | |
298 // 28.6, class regex_error: | |
299 class regex_error : public std::runtime_error | |
300 { | |
301 public: | |
302 | |
303 explicit regex_error(const regex_constants::error_type ecode) | |
304 : std::runtime_error("regex_error") // added for error C2512. | |
305 , ecode_(ecode) | |
306 { | |
307 } | |
308 | |
309 regex_constants::error_type code() const | |
310 { | |
311 return ecode_; | |
312 } | |
313 | |
314 private: | |
315 | |
316 regex_constants::error_type ecode_; | |
317 }; | |
318 | |
319 // ... "regex_error.hpp"] | |
320 // ["rei_type.h" ... | |
321 | |
322 namespace re_detail | |
323 { | |
324 | |
325 #if defined(SRELL_CPP11_CHAR1632_ENABLED) | |
326 | |
327 typedef char32_t ui_l32; // uint_least32. | |
328 | |
329 #elif defined(UINT_MAX) && UINT_MAX >= 0xFFFFFFFF | |
330 | |
331 typedef unsigned int ui_l32; | |
332 | |
333 #elif defined(ULONG_MAX) && ULONG_MAX >= 0xFFFFFFFF | |
334 | |
335 typedef unsigned long ui_l32; | |
336 | |
337 #else | |
338 #error could not find a suitable type for 32-bit Unicode integer values. | |
339 #endif // defined(SRELL_CPP11_CHAR1632_ENABLED) | |
340 } // namespace re_detail | |
341 | |
342 // ... "rei_type.h"] | |
343 // ["rei_constants.h" ... | |
344 | |
345 namespace re_detail | |
346 { | |
347 enum re_state_type | |
348 { | |
349 st_character, // 0x00 | |
350 st_character_class, // 0x01 | |
351 | |
352 st_epsilon, // 0x02 | |
353 | |
354 st_check_counter, // 0x03 | |
355 st_increment_counter, // 0x04 | |
356 st_decrement_counter, // 0x05 | |
357 st_save_and_reset_counter, // 0x06 | |
358 st_restore_counter, // 0x07 | |
359 | |
360 st_roundbracket_open, // 0x08 | |
361 st_roundbracket_pop, // 0x09 | |
362 st_roundbracket_close, // 0x0a | |
363 | |
364 st_repeat_in_push, // 0x0b | |
365 st_repeat_in_pop, // 0x0c | |
366 st_check_0_width_repeat, // 0x0d | |
367 | |
368 st_backreference, // 0x0e | |
369 | |
370 st_lookaround_open, // 0x0f | |
371 | |
372 st_lookaround_pop, // 0x10 | |
373 | |
374 st_bol, // 0x11 | |
375 st_eol, // 0x12 | |
376 st_boundary, // 0x13 | |
377 | |
378 st_success, // 0x14 | |
379 | |
380 #if defined(SRELLTEST_NEXTPOS_OPT) | |
381 st_move_nextpos, // 0x15 | |
382 #endif | |
383 | |
384 st_lookaround_close = st_success, | |
385 st_zero_width_boundary = st_lookaround_open, | |
386 }; | |
387 // re_state_type | |
388 | |
389 namespace constants | |
390 { | |
391 static const ui_l32 unicode_max_codepoint = 0x10ffff; | |
392 static const ui_l32 invalid_u32value = static_cast<ui_l32>(-1); | |
393 static const ui_l32 max_u32value = static_cast<ui_l32>(-2); | |
394 static const ui_l32 ccstr_empty = static_cast<ui_l32>(-1); | |
395 static const ui_l32 infinity = static_cast<ui_l32>(~0); | |
396 static const ui_l32 pos_charbits = 21; | |
397 } | |
398 // constants | |
399 | |
400 namespace masks | |
401 { | |
402 static const ui_l32 asc_icase = 0x20; | |
403 static const ui_l32 pos_cf = 0x200000; // 1 << 21. | |
404 static const ui_l32 pos_char = 0x1fffff; | |
405 } | |
406 // masks | |
407 | |
408 namespace sflags | |
409 { | |
410 static const ui_l32 is_not = 1; | |
411 static const ui_l32 icase = 1; | |
412 static const ui_l32 multiline = 1; | |
413 static const ui_l32 backrefno_unresolved = 1 << 1; | |
414 static const ui_l32 hooking = 1 << 2; | |
415 static const ui_l32 hookedlast = 1 << 3; | |
416 static const ui_l32 byn2 = 1 << 4; | |
417 } | |
418 // sflags | |
419 | |
420 namespace meta_char | |
421 { | |
422 static const ui_l32 mc_exclam = 0x21; // '!' | |
423 static const ui_l32 mc_sharp = 0x23; // '#' | |
424 static const ui_l32 mc_dollar = 0x24; // '$' | |
425 static const ui_l32 mc_rbraop = 0x28; // '(' | |
426 static const ui_l32 mc_rbracl = 0x29; // ')' | |
427 static const ui_l32 mc_astrsk = 0x2a; // '*' | |
428 static const ui_l32 mc_plus = 0x2b; // '+' | |
429 static const ui_l32 mc_comma = 0x2c; // ',' | |
430 static const ui_l32 mc_minus = 0x2d; // '-' | |
431 static const ui_l32 mc_period = 0x2e; // '.' | |
432 static const ui_l32 mc_colon = 0x3a; // ':' | |
433 static const ui_l32 mc_lt = 0x3c; // '<' | |
434 static const ui_l32 mc_eq = 0x3d; // '=' | |
435 static const ui_l32 mc_gt = 0x3e; // '>' | |
436 static const ui_l32 mc_query = 0x3f; // '?' | |
437 static const ui_l32 mc_sbraop = 0x5b; // '[' | |
438 static const ui_l32 mc_escape = 0x5c; // '\\' | |
439 static const ui_l32 mc_sbracl = 0x5d; // ']' | |
440 static const ui_l32 mc_caret = 0x5e; // '^' | |
441 static const ui_l32 mc_cbraop = 0x7b; // '{' | |
442 static const ui_l32 mc_bar = 0x7c; // '|' | |
443 static const ui_l32 mc_cbracl = 0x7d; // '}' | |
444 } | |
445 // meta_char | |
446 | |
447 namespace char_ctrl | |
448 { | |
449 static const ui_l32 cc_nul = 0x00; // '\0' //0x00:NUL | |
450 static const ui_l32 cc_bs = 0x08; // '\b' //0x08:BS | |
451 static const ui_l32 cc_htab = 0x09; // '\t' //0x09:HT | |
452 static const ui_l32 cc_nl = 0x0a; // '\n' //0x0a:LF | |
453 static const ui_l32 cc_vtab = 0x0b; // '\v' //0x0b:VT | |
454 static const ui_l32 cc_ff = 0x0c; // '\f' //0x0c:FF | |
455 static const ui_l32 cc_cr = 0x0d; // '\r' //0x0d:CR | |
456 } | |
457 // char_ctrl | |
458 | |
459 namespace char_alnum | |
460 { | |
461 static const ui_l32 ch_0 = 0x30; // '0' | |
462 static const ui_l32 ch_1 = 0x31; // '1' | |
463 static const ui_l32 ch_7 = 0x37; // '7' | |
464 static const ui_l32 ch_8 = 0x38; // '8' | |
465 static const ui_l32 ch_9 = 0x39; // '9' | |
466 static const ui_l32 ch_A = 0x41; // 'A' | |
467 static const ui_l32 ch_B = 0x42; // 'B' | |
468 static const ui_l32 ch_D = 0x44; // 'D' | |
469 static const ui_l32 ch_F = 0x46; // 'F' | |
470 static const ui_l32 ch_P = 0x50; // 'P' | |
471 static const ui_l32 ch_S = 0x53; // 'S' | |
472 static const ui_l32 ch_W = 0x57; // 'W' | |
473 static const ui_l32 ch_Z = 0x5a; // 'Z' | |
474 static const ui_l32 ch_a = 0x61; // 'a' | |
475 static const ui_l32 ch_b = 0x62; // 'b' | |
476 static const ui_l32 ch_c = 0x63; // 'c' | |
477 static const ui_l32 ch_d = 0x64; // 'd' | |
478 static const ui_l32 ch_f = 0x66; // 'f' | |
479 static const ui_l32 ch_i = 0x69; // 'i' | |
480 static const ui_l32 ch_k = 0x6b; // 'k' | |
481 static const ui_l32 ch_m = 0x6d; // 'm' | |
482 static const ui_l32 ch_n = 0x6e; // 'n' | |
483 static const ui_l32 ch_p = 0x70; // 'p' | |
484 static const ui_l32 ch_q = 0x71; // 'q' | |
485 static const ui_l32 ch_r = 0x72; // 'r' | |
486 static const ui_l32 ch_s = 0x73; // 's' | |
487 static const ui_l32 ch_t = 0x74; // 't' | |
488 static const ui_l32 ch_u = 0x75; // 'u' | |
489 static const ui_l32 ch_v = 0x76; // 'v' | |
490 static const ui_l32 ch_w = 0x77; // 'w' | |
491 static const ui_l32 ch_x = 0x78; // 'x' | |
492 static const ui_l32 ch_z = 0x7a; // 'z' | |
493 } | |
494 // char_alnum | |
495 | |
496 namespace char_other | |
497 { | |
498 static const ui_l32 co_sp = 0x20; // ' ' | |
499 static const ui_l32 co_perc = 0x25; // '%' | |
500 static const ui_l32 co_amp = 0x26; // '&' | |
501 static const ui_l32 co_apos = 0x27; // '\'' | |
502 static const ui_l32 co_slash = 0x2f; // '/' | |
503 static const ui_l32 co_smcln = 0x3b; // ';' | |
504 static const ui_l32 co_atmrk = 0x40; // '@' | |
505 static const ui_l32 co_ll = 0x5f; // '_' | |
506 static const ui_l32 co_grav = 0x60; // '`' | |
507 static const ui_l32 co_tilde = 0x7e; // '~' | |
508 } | |
509 // char_other | |
510 | |
511 namespace epsilon_type // Used only in the pattern compiler. | |
512 { | |
513 static const ui_l32 et_dfastrsk = 0x40; // '@' | |
514 static const ui_l32 et_ccastrsk = 0x2a; // '*' | |
515 static const ui_l32 et_alt = 0x7c; // '|' | |
516 static const ui_l32 et_ncgopen = 0x3a; // ':' | |
517 static const ui_l32 et_ncgclose = 0x3b; // ';' | |
518 static const ui_l32 et_jmpinlp = 0x2b; // '+' | |
519 static const ui_l32 et_brnchend = 0x2f; // '/' | |
520 static const ui_l32 et_fmrbckrf = 0x5c; // '\\' | |
521 static const ui_l32 et_bo1fmrbr = 0x31; // '1' | |
522 static const ui_l32 et_bo2skpd = 0x21; // '!' | |
523 static const ui_l32 et_bo2fmrbr = 0x32; // '2' | |
524 static const ui_l32 et_rvfmrcg = 0x28; // '(' | |
525 static const ui_l32 et_mfrfmrcg = 0x29; // ')' | |
526 static const ui_l32 et_aofmrast = 0x78; // 'x' | |
527 } | |
528 // epsilon_type | |
529 } | |
530 // namespace re_detail | |
531 | |
532 // ... "rei_constants.h"] | |
533 // ["rei_utf_traits.hpp" ... | |
534 | |
535 namespace re_detail | |
536 { | |
537 | |
538 #if defined(_MSC_VER) | |
539 #define SRELL_FORCEINLINE __forceinline | |
540 #elif defined(__GNUC__) | |
541 #define SRELL_FORCEINLINE __attribute__((always_inline)) | |
542 #else | |
543 #define SRELL_FORCEINLINE | |
544 #endif | |
545 | |
546 template <typename charT> | |
547 struct utf_traits_core | |
548 { | |
549 public: | |
550 | |
551 typedef charT char_type; | |
552 | |
553 static const std::size_t maxseqlen = 1; | |
554 static const int utftype = 0; | |
555 | |
556 static const ui_l32 one = 1; | |
557 static const ui_l32 charbit = (sizeof (charT) * CHAR_BIT) > 21 ? 21 : (sizeof (charT) * CHAR_BIT); | |
558 static const ui_l32 bitsetsize = one << (charbit > 18 ? 18 : charbit); | |
559 static const ui_l32 bitsetmask = bitsetsize - 1; | |
560 static const ui_l32 maxcpvalue = charbit == 21 ? 0x10ffff : ((one << charbit) - 1); | |
561 | |
562 // *iter | |
563 template <typename ForwardIterator> | |
564 static ui_l32 codepoint(ForwardIterator begin, const ForwardIterator /* end */) | |
565 { | |
566 return static_cast<ui_l32>(*begin); | |
567 // Caller is responsible for begin != end. | |
568 } | |
569 | |
570 // *iter++ | |
571 template <typename ForwardIterator> | |
572 static ui_l32 codepoint_inc(ForwardIterator &begin, const ForwardIterator /* end */) | |
573 { | |
574 return static_cast<ui_l32>(*begin++); | |
575 // Caller is responsible for begin != end. | |
576 } | |
577 | |
578 // iter2 = iter; return *--iter2; | |
579 template <typename BidirectionalIterator> | |
580 static ui_l32 prevcodepoint(BidirectionalIterator cur, const BidirectionalIterator /* begin */) | |
581 { | |
582 return static_cast<ui_l32>(*--cur); | |
583 } | |
584 | |
585 // *--iter | |
586 template <typename BidirectionalIterator> | |
587 static ui_l32 dec_codepoint(BidirectionalIterator &cur, const BidirectionalIterator /* begin */) | |
588 { | |
589 return static_cast<ui_l32>(*--cur); | |
590 // Caller is responsible for cur != begin. | |
591 } | |
592 | |
593 #if !defined(SRELLDBG_NO_BMH) | |
594 | |
595 template <typename charT2> | |
596 static bool is_trailing(const charT2 /* cu */) | |
597 { | |
598 return false; | |
599 } | |
600 | |
601 #endif // !defined(SRELLDBG_NO_BMH) | |
602 | |
603 static ui_l32 to_codeunits(charT out[maxseqlen], ui_l32 cp) | |
604 { | |
605 out[0] = static_cast<charT>(cp); | |
606 return 1; | |
607 } | |
608 | |
609 static ui_l32 firstcodeunit(const ui_l32 cp) | |
610 { | |
611 return cp; | |
612 } | |
613 }; | |
614 template <typename charT> const std::size_t utf_traits_core<charT>::maxseqlen; | |
615 template <typename charT> const int utf_traits_core<charT>::utftype; | |
616 template <typename charT> const ui_l32 utf_traits_core<charT>::charbit; | |
617 template <typename charT> const ui_l32 utf_traits_core<charT>::bitsetsize; | |
618 template <typename charT> const ui_l32 utf_traits_core<charT>::bitsetmask; | |
619 template <typename charT> const ui_l32 utf_traits_core<charT>::maxcpvalue; | |
620 // utf_traits_core | |
621 | |
622 // common and utf-32. | |
623 template <typename charT> | |
624 struct utf_traits : public utf_traits_core<charT> | |
625 { | |
626 static const int utftype = 32; | |
627 }; | |
628 template <typename charT> const int utf_traits<charT>::utftype; | |
629 // utf_traits | |
630 | |
631 // utf-8 specific. | |
632 template <typename charT> | |
633 struct utf8_traits : public utf_traits_core<charT> | |
634 { | |
635 public: | |
636 | |
637 // utf-8 specific. | |
638 static const std::size_t maxseqlen = 4; | |
639 static const int utftype = 8; | |
640 | |
641 static const ui_l32 charbit = 8; | |
642 static const ui_l32 bitsetsize = 0x100; | |
643 static const ui_l32 bitsetmask = 0xff; | |
644 static const ui_l32 maxcpvalue = 0x10ffff; | |
645 | |
646 template <typename ForwardIterator> | |
647 static SRELL_FORCEINLINE ui_l32 codepoint(ForwardIterator begin, const ForwardIterator end) | |
648 { | |
649 ui_l32 codepoint = static_cast<ui_l32>(*begin & 0xff); | |
650 | |
651 if ((codepoint & 0x80) == 0) // 1 octet. | |
652 return codepoint; | |
653 | |
654 if (++begin != end && codepoint >= 0xc0 && (*begin & 0xc0) == 0x80) | |
655 { | |
656 codepoint = static_cast<ui_l32>((codepoint << 6) | (*begin & 0x3f)); | |
657 | |
658 if ((codepoint & 0x800) == 0) // 2 octets. | |
659 return static_cast<ui_l32>(codepoint & 0x7ff); | |
660 | |
661 if (++begin != end && (*begin & 0xc0) == 0x80) | |
662 { | |
663 codepoint = static_cast<ui_l32>((codepoint << 6) | (*begin & 0x3f)); | |
664 | |
665 if ((codepoint & 0x10000) == 0) // 3 octets. | |
666 return static_cast<ui_l32>(codepoint & 0xffff); | |
667 | |
668 if (++begin != end && (*begin & 0xc0) == 0x80) | |
669 { | |
670 codepoint = static_cast<ui_l32>((codepoint << 6) | (*begin & 0x3f)); | |
671 | |
672 if (codepoint <= 0x3dfffff) // 4 octets. | |
673 return static_cast<ui_l32>(codepoint & 0x1fffff); | |
674 } | |
675 } | |
676 } | |
677 // else // 80-bf, f8-ff: invalid. | |
678 | |
679 return re_detail::constants::invalid_u32value; | |
680 } | |
681 | |
682 template <typename ForwardIterator> | |
683 static SRELL_FORCEINLINE ui_l32 codepoint_inc(ForwardIterator &begin, const ForwardIterator end) | |
684 { | |
685 ui_l32 codepoint = static_cast<ui_l32>(*begin++ & 0xff); | |
686 | |
687 if ((codepoint & 0x80) == 0) // 1 octet. | |
688 return codepoint; | |
689 | |
690 // if (begin != end && (0x7f00 & (1 << ((codepoint >> 3) & 0xf))) && (*begin & 0xc0) == 0x80) // c0, c8, d0, d8, e0, e8, f0. | |
691 if (begin != end && codepoint >= 0xc0 && (*begin & 0xc0) == 0x80) | |
692 { | |
693 codepoint = static_cast<ui_l32>((codepoint << 6) | (*begin++ & 0x3f)); | |
694 | |
695 // 11 ?aaa aabb bbbb | |
696 if ((codepoint & 0x800) == 0) // 2 octets. | |
697 return static_cast<ui_l32>(codepoint & 0x7ff); | |
698 // c080-c1bf: invalid. 00-7F. | |
699 // c280-dfbf: valid. 080-7FF. | |
700 | |
701 // 11 1aaa aabb bbbb | |
702 if (begin != end && (*begin & 0xc0) == 0x80) | |
703 { | |
704 codepoint = static_cast<ui_l32>((codepoint << 6) | (*begin++ & 0x3f)); | |
705 | |
706 // 111? aaaa bbbb bbcc cccc | |
707 if ((codepoint & 0x10000) == 0) // 3 octets. | |
708 return static_cast<ui_l32>(codepoint & 0xffff); | |
709 // e08080-e09fbf: invalid. 000-7FF. | |
710 // e0a080-efbfbf: valid. 0800-FFFF. | |
711 | |
712 // 1111 aaaa bbbb bbcc cccc | |
713 if (begin != end && (*begin & 0xc0) == 0x80) | |
714 { | |
715 codepoint = static_cast<ui_l32>((codepoint << 6) | (*begin++ & 0x3f)); | |
716 // f0808080-f08fbfbf: invalid. 0000-FFFF. | |
717 // f0908080-f3bfbfbf: valid. 10000-FFFFF. | |
718 // f4808080-f48fbfbf: valid. 100000-10FFFF. | |
719 // f4908080-f4bfbfbf: invalid. 110000-13FFFF. | |
720 // f5808080-f7bfbfbf: invalid. 140000-1FFFFF. | |
721 | |
722 // 11 11?a aabb bbbb cccc ccdd dddd | |
723 if (codepoint <= 0x3dfffff) // 4 octets. | |
724 return static_cast<ui_l32>(codepoint & 0x1fffff); | |
725 // 11 110a aabb bbbb cccc ccdd dddd | |
726 } | |
727 } | |
728 } | |
729 // else // 80-bf, f8-ff: invalid. | |
730 | |
731 return re_detail::constants::invalid_u32value; | |
732 } | |
733 | |
734 template <typename BidirectionalIterator> | |
735 static SRELL_FORCEINLINE ui_l32 prevcodepoint(BidirectionalIterator cur, const BidirectionalIterator begin) | |
736 { | |
737 ui_l32 codepoint = static_cast<ui_l32>(*--cur); | |
738 | |
739 if ((codepoint & 0x80) == 0) | |
740 return static_cast<ui_l32>(codepoint & 0xff); | |
741 | |
742 if ((codepoint & 0x40) == 0 && cur != begin) | |
743 { | |
744 codepoint = static_cast<ui_l32>((codepoint & 0x3f) | (*--cur << 6)); | |
745 | |
746 if ((codepoint & 0x3800) == 0x3000) // 2 octets. | |
747 return static_cast<ui_l32>(codepoint & 0x7ff); | |
748 | |
749 if ((codepoint & 0x3000) == 0x2000 && cur != begin) | |
750 { | |
751 codepoint = static_cast<ui_l32>((codepoint & 0xfff) | (*--cur << 12)); | |
752 | |
753 if ((codepoint & 0xf0000) == 0xe0000) // 3 octets. | |
754 return static_cast<ui_l32>(codepoint & 0xffff); | |
755 | |
756 if ((codepoint & 0xc0000) == 0x80000 && cur != begin) | |
757 { | |
758 if ((*--cur & 0xf8) == 0xf0) // 4 octets. | |
759 return static_cast<ui_l32>((codepoint & 0x3ffff) | ((*cur & 7) << 18)); | |
760 } | |
761 } | |
762 } | |
763 return re_detail::constants::invalid_u32value; | |
764 } | |
765 | |
766 template <typename BidirectionalIterator> | |
767 static SRELL_FORCEINLINE ui_l32 dec_codepoint(BidirectionalIterator &cur, const BidirectionalIterator begin) | |
768 { | |
769 ui_l32 codepoint = static_cast<ui_l32>(*--cur); | |
770 | |
771 if ((codepoint & 0x80) == 0) | |
772 return static_cast<ui_l32>(codepoint & 0xff); | |
773 | |
774 if ((codepoint & 0x40) == 0 && cur != begin) | |
775 { | |
776 codepoint = static_cast<ui_l32>((codepoint & 0x3f) | (*--cur << 6)); | |
777 | |
778 // 11 0bbb bbaa aaaa? | |
779 if ((codepoint & 0x3800) == 0x3000) // 2 octets. | |
780 return static_cast<ui_l32>(codepoint & 0x7ff); | |
781 | |
782 // 10 bbbb bbaa aaaa? | |
783 if ((codepoint & 0x3000) == 0x2000 && cur != begin) // [\x80-\xbf]{2}. | |
784 { | |
785 codepoint = static_cast<ui_l32>((codepoint & 0xfff) | (*--cur << 12)); | |
786 | |
787 // 1110 cccc bbbb bbaa aaaa? | |
788 if ((codepoint & 0xf0000) == 0xe0000) // 3 octets. | |
789 return static_cast<ui_l32>(codepoint & 0xffff); | |
790 | |
791 // 10cc cccc bbbb bbaa aaaa? | |
792 if ((codepoint & 0xc0000) == 0x80000 && cur != begin) // [\x80-\xbf]{3}. | |
793 { | |
794 if ((*--cur & 0xf8) == 0xf0) // 4 octets. | |
795 return static_cast<ui_l32>((codepoint & 0x3ffff) | ((*cur & 7) << 18)); | |
796 // d ddcc cccc bbbb bbaa aaaa | |
797 } | |
798 } | |
799 } | |
800 return re_detail::constants::invalid_u32value; | |
801 } | |
802 | |
803 #if !defined(SRELLDBG_NO_BMH) | |
804 | |
805 template <typename charT2> | |
806 static bool is_trailing(const charT2 cu) | |
807 { | |
808 return (cu & 0xc0) == 0x80; | |
809 } | |
810 | |
811 #endif // !defined(SRELLDBG_NO_BMH) | |
812 | |
813 static ui_l32 to_codeunits(charT out[maxseqlen], ui_l32 cp) | |
814 { | |
815 if (cp < 0x80) | |
816 { | |
817 out[0] = static_cast<charT>(cp); | |
818 return 1; | |
819 } | |
820 else if (cp < 0x800) | |
821 { | |
822 out[0] = static_cast<charT>(((cp >> 6) & 0x1f) | 0xc0); | |
823 out[1] = static_cast<charT>((cp & 0x3f) | 0x80); | |
824 return 2; | |
825 } | |
826 else if (cp < 0x10000) | |
827 { | |
828 out[0] = static_cast<charT>(((cp >> 12) & 0x0f) | 0xe0); | |
829 out[1] = static_cast<charT>(((cp >> 6) & 0x3f) | 0x80); | |
830 out[2] = static_cast<charT>((cp & 0x3f) | 0x80); | |
831 return 3; | |
832 } | |
833 // else // if (cp < 0x110000) | |
834 | |
835 out[0] = static_cast<charT>(((cp >> 18) & 0x07) | 0xf0); | |
836 out[1] = static_cast<charT>(((cp >> 12) & 0x3f) | 0x80); | |
837 out[2] = static_cast<charT>(((cp >> 6) & 0x3f) | 0x80); | |
838 out[3] = static_cast<charT>((cp & 0x3f) | 0x80); | |
839 return 4; | |
840 } | |
841 | |
842 static ui_l32 firstcodeunit(const ui_l32 cp) | |
843 { | |
844 if (cp < 0x80) | |
845 return cp; | |
846 | |
847 if (cp < 0x800) | |
848 return static_cast<ui_l32>(((cp >> 6) & 0x1f) | 0xc0); | |
849 | |
850 if (cp < 0x10000) | |
851 return static_cast<ui_l32>(((cp >> 12) & 0x0f) | 0xe0); | |
852 | |
853 return static_cast<ui_l32>(((cp >> 18) & 0x07) | 0xf0); | |
854 } | |
855 }; | |
856 template <typename charT> const std::size_t utf8_traits<charT>::maxseqlen; | |
857 template <typename charT> const int utf8_traits<charT>::utftype; | |
858 template <typename charT> const ui_l32 utf8_traits<charT>::charbit; | |
859 template <typename charT> const ui_l32 utf8_traits<charT>::bitsetsize; | |
860 template <typename charT> const ui_l32 utf8_traits<charT>::bitsetmask; | |
861 template <typename charT> const ui_l32 utf8_traits<charT>::maxcpvalue; | |
862 // utf8_traits | |
863 | |
864 // utf-16 specific. | |
865 template <typename charT> | |
866 struct utf16_traits : public utf_traits_core<charT> | |
867 { | |
868 public: | |
869 | |
870 // utf-16 specific. | |
871 static const std::size_t maxseqlen = 2; | |
872 static const int utftype = 16; | |
873 | |
874 static const ui_l32 charbit = 16; | |
875 static const ui_l32 bitsetsize = 0x10000; | |
876 static const ui_l32 bitsetmask = 0xffff; | |
877 static const ui_l32 maxcpvalue = 0x10ffff; | |
878 | |
879 template <typename ForwardIterator> | |
880 static SRELL_FORCEINLINE ui_l32 codepoint(ForwardIterator begin, const ForwardIterator end) | |
881 { | |
882 const ui_l32 codeunit = *begin; | |
883 | |
884 if ((codeunit & 0xdc00) != 0xd800) | |
885 return static_cast<ui_l32>(codeunit & 0xffff); | |
886 | |
887 if (++begin != end && (*begin & 0xdc00) == 0xdc00) | |
888 return static_cast<ui_l32>((((codeunit & 0x3ff) << 10) | (*begin & 0x3ff)) + 0x10000); | |
889 | |
890 return static_cast<ui_l32>(codeunit & 0xffff); | |
891 } | |
892 | |
893 template <typename ForwardIterator> | |
894 static SRELL_FORCEINLINE ui_l32 codepoint_inc(ForwardIterator &begin, const ForwardIterator end) | |
895 { | |
896 const ui_l32 codeunit = *begin++; | |
897 | |
898 if ((codeunit & 0xdc00) != 0xd800) | |
899 return static_cast<ui_l32>(codeunit & 0xffff); | |
900 | |
901 if (begin != end && (*begin & 0xdc00) == 0xdc00) | |
902 return static_cast<ui_l32>((((codeunit & 0x3ff) << 10) | (*begin++ & 0x3ff)) + 0x10000); | |
903 | |
904 return static_cast<ui_l32>(codeunit & 0xffff); | |
905 } | |
906 | |
907 template <typename BidirectionalIterator> | |
908 static SRELL_FORCEINLINE ui_l32 prevcodepoint(BidirectionalIterator cur, const BidirectionalIterator begin) | |
909 { | |
910 const ui_l32 codeunit = *--cur; | |
911 | |
912 if ((codeunit & 0xdc00) != 0xdc00 || cur == begin) | |
913 return static_cast<ui_l32>(codeunit & 0xffff); | |
914 | |
915 if ((*--cur & 0xdc00) == 0xd800) | |
916 return static_cast<ui_l32>((((*cur & 0x3ff) << 10) | (codeunit & 0x3ff)) + 0x10000); | |
917 | |
918 return static_cast<ui_l32>(codeunit & 0xffff); | |
919 } | |
920 | |
921 template <typename BidirectionalIterator> | |
922 static SRELL_FORCEINLINE ui_l32 dec_codepoint(BidirectionalIterator &cur, const BidirectionalIterator begin) | |
923 { | |
924 const ui_l32 codeunit = *--cur; | |
925 | |
926 if ((codeunit & 0xdc00) != 0xdc00 || cur == begin) | |
927 return static_cast<ui_l32>(codeunit & 0xffff); | |
928 | |
929 if ((*--cur & 0xdc00) == 0xd800) | |
930 return static_cast<ui_l32>((((*cur & 0x3ff) << 10) | (codeunit & 0x3ff)) + 0x10000); | |
931 //else // (codeunit & 0xdc00) == 0xdc00 && (*cur & 0xdc00) != 0xd800 | |
932 | |
933 ++cur; | |
934 | |
935 return static_cast<ui_l32>(codeunit & 0xffff); | |
936 } | |
937 | |
938 #if !defined(SRELLDBG_NO_BMH) | |
939 | |
940 template <typename charT2> | |
941 static bool is_trailing(const charT2 cu) | |
942 { | |
943 return (cu & 0xdc00) == 0xdc00; | |
944 } | |
945 | |
946 #endif // !defined(SRELLDBG_NO_BMH) | |
947 | |
948 static ui_l32 to_codeunits(charT out[maxseqlen], ui_l32 cp) | |
949 { | |
950 if (cp < 0x10000) | |
951 { | |
952 out[0] = static_cast<charT>(cp); | |
953 return 1; | |
954 } | |
955 // else // if (cp < 0x110000) | |
956 | |
957 cp -= 0x10000; | |
958 out[0] = static_cast<charT>(((cp >> 10) & 0x3ff) | 0xd800); | |
959 out[1] = static_cast<charT>((cp & 0x3ff) | 0xdc00); | |
960 return 2; | |
961 } | |
962 | |
963 static ui_l32 firstcodeunit(const ui_l32 cp) | |
964 { | |
965 if (cp < 0x10000) | |
966 return cp; | |
967 | |
968 return static_cast<ui_l32>((cp >> 10) + 0xd7c0); | |
969 // aaaaa bbbbcccc ddddeeee -> AA AAbb bbcc/cc dddd eeee where AAAA = aaaaa - 1. | |
970 } | |
971 }; | |
972 template <typename charT> const std::size_t utf16_traits<charT>::maxseqlen; | |
973 template <typename charT> const int utf16_traits<charT>::utftype; | |
974 template <typename charT> const ui_l32 utf16_traits<charT>::charbit; | |
975 template <typename charT> const ui_l32 utf16_traits<charT>::bitsetsize; | |
976 template <typename charT> const ui_l32 utf16_traits<charT>::bitsetmask; | |
977 template <typename charT> const ui_l32 utf16_traits<charT>::maxcpvalue; | |
978 // utf16_traits | |
979 | |
980 // specialisation for char. | |
981 template <> | |
982 struct utf_traits<char> : public utf_traits_core<char> | |
983 { | |
984 public: | |
985 | |
986 template <typename ForwardIterator> | |
987 static ui_l32 codepoint(ForwardIterator begin, const ForwardIterator /* end */) | |
988 { | |
989 return static_cast<ui_l32>(static_cast<unsigned char>(*begin)); | |
990 } | |
991 | |
992 template <typename ForwardIterator> | |
993 static ui_l32 codepoint_inc(ForwardIterator &begin, const ForwardIterator /* end */) | |
994 { | |
995 return static_cast<ui_l32>(static_cast<unsigned char>(*begin++)); | |
996 } | |
997 | |
998 template <typename BidirectionalIterator> | |
999 static ui_l32 prevcodepoint(BidirectionalIterator cur, const BidirectionalIterator /* begin */) | |
1000 { | |
1001 return static_cast<ui_l32>(static_cast<unsigned char>(*--cur)); | |
1002 } | |
1003 | |
1004 template <typename BidirectionalIterator> | |
1005 static ui_l32 dec_codepoint(BidirectionalIterator &cur, const BidirectionalIterator /* begin */) | |
1006 { | |
1007 return static_cast<ui_l32>(static_cast<unsigned char>(*--cur)); | |
1008 } | |
1009 | |
1010 #if !defined(SRELLDBG_NO_BMH) | |
1011 #endif // !defined(SRELLDBG_NO_BMH) | |
1012 }; // utf_traits<char> | |
1013 | |
1014 // specialisation for signed char. | |
1015 template <> | |
1016 struct utf_traits<signed char> : public utf_traits<char> | |
1017 { | |
1018 }; | |
1019 | |
1020 // (signed) short, (signed) int, (signed) long, (signed) long long, ... | |
1021 | |
1022 #if defined(SRELL_CPP11_CHAR1632_ENABLED) | |
1023 template <> | |
1024 struct utf_traits<char16_t> : public utf16_traits<char16_t> | |
1025 { | |
1026 }; | |
1027 #endif | |
1028 | |
1029 #if defined(SRELL_CPP20_CHAR8_ENABLED) | |
1030 template <> | |
1031 struct utf_traits<char8_t> : public utf8_traits<char8_t> | |
1032 { | |
1033 }; | |
1034 #endif | |
1035 | |
1036 } // re_detail | |
1037 | |
1038 // ... "rei_utf_traits.hpp"] | |
1039 // ["regex_traits.hpp" ... | |
1040 | |
1041 // 28.7, class template regex_traits: | |
1042 template <class charT> | |
1043 struct regex_traits | |
1044 { | |
1045 public: | |
1046 | |
1047 typedef charT char_type; | |
1048 typedef std::basic_string<char_type> string_type; | |
1049 typedef std::locale locale_type; | |
1050 // typedef bitmask_type char_class_type; | |
1051 typedef int char_class_type; | |
1052 | |
1053 typedef re_detail::utf_traits<charT> utf_traits; | |
1054 | |
1055 public: | |
1056 | |
1057 // regex_traits(); | |
1058 | |
1059 static std::size_t length(const char_type *p) | |
1060 { | |
1061 return std::char_traits<charT>::length(p); | |
1062 } | |
1063 | |
1064 charT translate(const charT c) const | |
1065 { | |
1066 return c; | |
1067 } | |
1068 | |
1069 charT translate_nocase(const charT c) const | |
1070 { | |
1071 return c; | |
1072 } | |
1073 | |
1074 template <class ForwardIterator> | |
1075 string_type transform(ForwardIterator first, ForwardIterator last) const | |
1076 { | |
1077 return string_type(first, last); | |
1078 } | |
1079 | |
1080 template <class ForwardIterator> | |
1081 string_type transform_primary(ForwardIterator first, ForwardIterator last) const | |
1082 { | |
1083 return string_type(first, last); | |
1084 } | |
1085 | |
1086 template <class ForwardIterator> | |
1087 string_type lookup_collatename(ForwardIterator first, ForwardIterator last) const | |
1088 { | |
1089 return string_type(first, last); | |
1090 } | |
1091 | |
1092 template <class ForwardIterator> | |
1093 char_class_type lookup_classname(ForwardIterator /* first */, ForwardIterator /* last */, bool /* icase */ = false) const | |
1094 { | |
1095 return static_cast<char_class_type>(0); | |
1096 } | |
1097 | |
1098 bool isctype(const charT /* c */, const char_class_type /* f */) const | |
1099 { | |
1100 return false; | |
1101 } | |
1102 | |
1103 int value(const charT /* ch */, const int /* radix */) const | |
1104 { | |
1105 return -1; | |
1106 } | |
1107 | |
1108 locale_type imbue(const locale_type /* l */) | |
1109 { | |
1110 return locale_type(); | |
1111 } | |
1112 | |
1113 locale_type getloc() const | |
1114 { | |
1115 return locale_type(); | |
1116 } | |
1117 }; // regex_traits | |
1118 | |
1119 template <class charT> | |
1120 struct u8regex_traits : public regex_traits<charT> | |
1121 { | |
1122 typedef re_detail::utf8_traits<charT> utf_traits; | |
1123 }; | |
1124 | |
1125 template <class charT> | |
1126 struct u16regex_traits : public regex_traits<charT> | |
1127 { | |
1128 typedef re_detail::utf16_traits<charT> utf_traits; | |
1129 }; | |
1130 | |
1131 // ... "regex_traits.hpp"] | |
1132 // ["rei_memory.hpp" ... | |
1133 | |
1134 namespace re_detail | |
1135 { | |
1136 /* | |
1137 * Similar to std::basic_string, except for: | |
1138 * a. only allocates memory, does not initialise it. | |
1139 * b. uses realloc() to avoid moving data as much as possible when | |
1140 * resizing an allocated buffer. | |
1141 */ | |
1142 template <typename ElemT> | |
1143 class simple_array | |
1144 { | |
1145 public: | |
1146 | |
1147 typedef ElemT value_type; | |
1148 typedef std::size_t size_type; | |
1149 typedef ElemT &reference; | |
1150 typedef const ElemT &const_reference; | |
1151 typedef ElemT *pointer; | |
1152 typedef const ElemT *const_pointer; | |
1153 | |
1154 static const size_type npos = static_cast<size_type>(-1); | |
1155 | |
1156 public: | |
1157 | |
1158 simple_array() | |
1159 : buffer_(NULL) | |
1160 , size_(0) | |
1161 , capacity_(0) | |
1162 { | |
1163 } | |
1164 | |
1165 simple_array(const size_type initsize) | |
1166 : buffer_(NULL) | |
1167 , size_(0) | |
1168 , capacity_(0) | |
1169 { | |
1170 if (initsize) | |
1171 { | |
1172 buffer_ = static_cast<pointer>(std::malloc(initsize * sizeof (ElemT))); | |
1173 | |
1174 if (buffer_ != NULL) | |
1175 size_ = capacity_ = initsize; | |
1176 else | |
1177 throw std::bad_alloc(); | |
1178 } | |
1179 } | |
1180 | |
1181 simple_array(const simple_array &right, size_type pos, size_type len = npos) | |
1182 : buffer_(NULL) | |
1183 , size_(0) | |
1184 , capacity_(0) | |
1185 { | |
1186 if (pos > right.size_) | |
1187 pos = right.size_; | |
1188 | |
1189 { | |
1190 const size_type len2 = right.size_ - pos; | |
1191 if (len > len2) | |
1192 len = len2; | |
1193 } | |
1194 | |
1195 if (len) | |
1196 { | |
1197 buffer_ = static_cast<pointer>(std::malloc(len * sizeof (ElemT))); | |
1198 | |
1199 if (buffer_ != NULL) | |
1200 { | |
1201 for (capacity_ = len; size_ < capacity_;) | |
1202 buffer_[size_++] = right[pos++]; | |
1203 } | |
1204 else | |
1205 { | |
1206 throw std::bad_alloc(); | |
1207 } | |
1208 } | |
1209 } | |
1210 | |
1211 simple_array(const simple_array &right) | |
1212 : buffer_(NULL) | |
1213 , size_(0) | |
1214 , capacity_(0) | |
1215 { | |
1216 operator=(right); | |
1217 } | |
1218 | |
1219 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
1220 simple_array(simple_array &&right) SRELL_NOEXCEPT | |
1221 : buffer_(right.buffer_) | |
1222 , size_(right.size_) | |
1223 , capacity_(right.capacity_) | |
1224 { | |
1225 right.size_ = 0; | |
1226 right.capacity_ = 0; | |
1227 right.buffer_ = NULL; | |
1228 } | |
1229 #endif | |
1230 | |
1231 simple_array &operator=(const simple_array &right) | |
1232 { | |
1233 if (this != &right) | |
1234 { | |
1235 resize(right.size_); | |
1236 for (size_type i = 0; i < right.size_; ++i) | |
1237 buffer_[i] = right.buffer_[i]; | |
1238 } | |
1239 return *this; | |
1240 } | |
1241 | |
1242 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
1243 simple_array &operator=(simple_array &&right) SRELL_NOEXCEPT | |
1244 { | |
1245 if (this != &right) | |
1246 { | |
1247 if (this->buffer_ != NULL) | |
1248 std::free(this->buffer_); | |
1249 | |
1250 this->size_ = right.size_; | |
1251 this->capacity_ = right.capacity_; | |
1252 this->buffer_ = right.buffer_; | |
1253 | |
1254 right.size_ = 0; | |
1255 right.capacity_ = 0; | |
1256 right.buffer_ = NULL; | |
1257 } | |
1258 return *this; | |
1259 } | |
1260 #endif | |
1261 | |
1262 ~simple_array() | |
1263 { | |
1264 if (buffer_ != NULL) | |
1265 std::free(buffer_); | |
1266 } | |
1267 | |
1268 size_type size() const | |
1269 { | |
1270 return size_; | |
1271 } | |
1272 | |
1273 void clear() | |
1274 { | |
1275 size_ = 0; | |
1276 } | |
1277 | |
1278 void resize(const size_type newsize) | |
1279 { | |
1280 if (newsize > capacity_) | |
1281 reserve(newsize); | |
1282 | |
1283 size_ = newsize; | |
1284 } | |
1285 | |
1286 void resize(const size_type newsize, const ElemT &type) | |
1287 { | |
1288 size_type oldsize = size_; | |
1289 | |
1290 resize(newsize); | |
1291 for (; oldsize < size_; ++oldsize) | |
1292 buffer_[oldsize] = type; | |
1293 } | |
1294 | |
1295 reference operator[](const size_type pos) | |
1296 { | |
1297 return buffer_[pos]; | |
1298 } | |
1299 | |
1300 const_reference operator[](const size_type pos) const | |
1301 { | |
1302 return buffer_[pos]; | |
1303 } | |
1304 | |
1305 void push_back(const_reference n) | |
1306 { | |
1307 const size_type oldsize = size_; | |
1308 | |
1309 if (++size_ > capacity_) | |
1310 reserve(size_); | |
1311 | |
1312 buffer_[oldsize] = n; | |
1313 } | |
1314 | |
1315 void push_backncr(const ElemT e) | |
1316 { | |
1317 push_back(e); | |
1318 } | |
1319 | |
1320 const_reference back() const | |
1321 { | |
1322 return buffer_[size_ - 1]; | |
1323 } | |
1324 | |
1325 reference back() | |
1326 { | |
1327 return buffer_[size_ - 1]; | |
1328 } | |
1329 | |
1330 void pop_back() | |
1331 { | |
1332 --size_; | |
1333 } | |
1334 | |
1335 simple_array &operator+=(const simple_array &right) | |
1336 { | |
1337 return append(right); | |
1338 } | |
1339 | |
1340 simple_array &append(const size_type size, const ElemT &type) | |
1341 { | |
1342 resize(size_ + size, type); | |
1343 return *this; | |
1344 } | |
1345 | |
1346 simple_array &append(const simple_array &right) | |
1347 { | |
1348 size_type oldsize = size_; | |
1349 | |
1350 resize(size_ + right.size_); | |
1351 for (size_type i = 0; i < right.size_; ++i, ++oldsize) | |
1352 buffer_[oldsize] = right.buffer_[i]; | |
1353 | |
1354 return *this; | |
1355 } | |
1356 | |
1357 simple_array &append(const simple_array &right, size_type pos, size_type len /* = npos */) | |
1358 { | |
1359 { | |
1360 const size_type len2 = right.size_ - pos; | |
1361 if (len > len2) | |
1362 len = len2; | |
1363 } | |
1364 | |
1365 size_type oldsize = size_; | |
1366 | |
1367 resize(size_ + len); | |
1368 len += pos; // end. | |
1369 for (; pos < len; ++oldsize, ++pos) | |
1370 buffer_[oldsize] = right.buffer_[pos]; | |
1371 | |
1372 return *this; | |
1373 } | |
1374 | |
1375 void erase(const size_type pos) | |
1376 { | |
1377 if (pos < size_) | |
1378 { | |
1379 std::memmove(buffer_ + pos, buffer_ + pos + 1, (size_ - pos - 1) * sizeof (ElemT)); | |
1380 --size_; | |
1381 } | |
1382 } | |
1383 void erase(const size_type pos, const size_type len) | |
1384 { | |
1385 if (pos < size_) | |
1386 { | |
1387 size_type rmndr = size_ - pos; | |
1388 | |
1389 if (rmndr > len) | |
1390 { | |
1391 rmndr -= len; | |
1392 std::memmove(buffer_ + pos, buffer_ + pos + len, rmndr * sizeof (ElemT)); | |
1393 size_ -= len; | |
1394 } | |
1395 else | |
1396 size_ = pos; | |
1397 } | |
1398 } | |
1399 | |
1400 // For rei_compiler class. | |
1401 void insert(const size_type pos, const ElemT &type) | |
1402 { | |
1403 move_forward(pos, 1); | |
1404 buffer_[pos] = type; | |
1405 } | |
1406 | |
1407 void insert(size_type pos, const simple_array &right) | |
1408 { | |
1409 move_forward(pos, right.size_); | |
1410 for (size_type i = 0; i < right.size_; ++i, ++pos) | |
1411 buffer_[pos] = right.buffer_[i]; | |
1412 } | |
1413 | |
1414 void insert(size_type destpos, const simple_array &right, size_type srcpos, size_type srclen = npos) | |
1415 { | |
1416 { | |
1417 const size_type len2 = right.size_ - srcpos; | |
1418 if (srclen > len2) | |
1419 srclen = len2; | |
1420 } | |
1421 | |
1422 move_forward(destpos, srclen); | |
1423 srclen += srcpos; // srcend. | |
1424 for (; srcpos < srclen; ++destpos, ++srcpos) | |
1425 buffer_[destpos] = right.buffer_[srcpos]; | |
1426 } | |
1427 | |
1428 simple_array &replace(size_type pos, size_type count, const simple_array &right) | |
1429 { | |
1430 if (count < right.size_) | |
1431 move_forward(pos + count, right.size_ - count); | |
1432 else if (count > right.size_) | |
1433 { | |
1434 const pointer base = buffer_ + pos; | |
1435 | |
1436 std::memmove(base + right.size_, base + count, (size_ - pos - count) * sizeof (ElemT)); | |
1437 size_ -= count - right.size_; | |
1438 } | |
1439 | |
1440 for (size_type i = 0; i < right.size_; ++pos, ++i) | |
1441 buffer_[pos] = right[i]; | |
1442 | |
1443 return *this; | |
1444 } | |
1445 | |
1446 size_type find(const value_type c, size_type pos = 0) const | |
1447 { | |
1448 for (; pos <= size_; ++pos) | |
1449 if (buffer_[pos] == c) | |
1450 return pos; | |
1451 | |
1452 return npos; | |
1453 } | |
1454 | |
1455 const_pointer data() const | |
1456 { | |
1457 return buffer_; | |
1458 } | |
1459 | |
1460 size_type max_size() const | |
1461 { | |
1462 return maxsize_; | |
1463 } | |
1464 | |
1465 void swap(simple_array &right) | |
1466 { | |
1467 if (this != &right) | |
1468 { | |
1469 const pointer tmpbuffer = this->buffer_; | |
1470 const size_type tmpsize = this->size_; | |
1471 const size_type tmpcapacity = this->capacity_; | |
1472 | |
1473 this->buffer_ = right.buffer_; | |
1474 this->size_ = right.size_; | |
1475 this->capacity_ = right.capacity_; | |
1476 | |
1477 right.buffer_ = tmpbuffer; | |
1478 right.size_ = tmpsize; | |
1479 right.capacity_ = tmpcapacity; | |
1480 } | |
1481 } | |
1482 | |
1483 protected: | |
1484 | |
1485 void reserve(const size_type newsize) | |
1486 { | |
1487 if (newsize <= maxsize_) | |
1488 { | |
1489 // capacity_ = newsize + (newsize >> 1); // newsize * 1.5. | |
1490 capacity_ = ((newsize >> 8) + 1) << 8; // Round up to a multiple of 256. | |
1491 | |
1492 if (capacity_ > maxsize_) | |
1493 capacity_ = maxsize_; | |
1494 | |
1495 const size_type newsize_in_byte = capacity_ * sizeof (ElemT); | |
1496 const pointer oldbuffer = buffer_; | |
1497 | |
1498 buffer_ = static_cast<pointer>(std::realloc(buffer_, newsize_in_byte)); | |
1499 if (buffer_ != NULL) | |
1500 return; | |
1501 | |
1502 // Even if realloc() failed, already-existing buffer remains valid. | |
1503 std::free(oldbuffer); | |
1504 // buffer_ = NULL; | |
1505 size_ = capacity_ = 0; | |
1506 } | |
1507 throw std::bad_alloc(); | |
1508 } | |
1509 | |
1510 void move_forward(const size_type pos, const size_type count) | |
1511 { | |
1512 const size_type oldsize = size_; | |
1513 | |
1514 resize(size_ + count); | |
1515 | |
1516 if (pos < oldsize) | |
1517 { | |
1518 const pointer base = buffer_ + pos; | |
1519 | |
1520 std::memmove(base + count, base, (oldsize - pos) * sizeof (ElemT)); | |
1521 } | |
1522 } | |
1523 | |
1524 protected: | |
1525 | |
1526 pointer buffer_; | |
1527 size_type size_; | |
1528 size_type capacity_; | |
1529 | |
1530 // static const size_type maxsize_ = (npos - sizeof (simple_array)) / sizeof (ElemT); | |
1531 static const size_type maxsize_ = (npos - sizeof (pointer) - sizeof (size_type) * 2) / sizeof (ElemT) / 2; | |
1532 }; | |
1533 template <typename ElemT> | |
1534 const typename simple_array<ElemT>::size_type simple_array<ElemT>::npos; | |
1535 // simple_array | |
1536 | |
1537 struct simple_stack : protected simple_array<char> | |
1538 { | |
1539 using simple_array<char>::size_type; | |
1540 using simple_array<char>::clear; | |
1541 using simple_array<char>::size; | |
1542 using simple_array<char>::resize; | |
1543 | |
1544 template <typename T> | |
1545 void push_back_t(const T &n) | |
1546 { | |
1547 const size_type oldsize = size_; | |
1548 | |
1549 size_ += (sizeof (T) + sizeof (void *) - 1) / sizeof (void *) * sizeof (void *); | |
1550 if (size_ > capacity_) | |
1551 reserve(size_); | |
1552 | |
1553 *reinterpret_cast<T *>(buffer_ + oldsize) = n; | |
1554 } | |
1555 | |
1556 template <typename T> | |
1557 T pop_back_t() | |
1558 { | |
1559 size_ -= (sizeof (T) + sizeof (void *) - 1) / sizeof (void *) * sizeof (void *); | |
1560 return *reinterpret_cast<const T *>(buffer_ + size_); | |
1561 } | |
1562 | |
1563 size_type capacity() const | |
1564 { | |
1565 return capacity_; | |
1566 } | |
1567 | |
1568 #if 0 | |
1569 | |
1570 template <typename Type> | |
1571 const Type &back_t() const | |
1572 { | |
1573 return *reinterpret_cast<const Type *>(buffer_ + size_ - sizeof (Type)); | |
1574 } | |
1575 #endif | |
1576 }; | |
1577 // simple_stack | |
1578 | |
1579 } // namespace re_detail | |
1580 | |
1581 // ... "rei_memory.hpp"] | |
1582 // ["rei_bitset.hpp" ... | |
1583 | |
1584 namespace re_detail | |
1585 { | |
1586 | |
1587 // Always uses a heap instead of the stack. | |
1588 template <const std::size_t Bits> | |
1589 class bitset | |
1590 { | |
1591 private: | |
1592 | |
1593 typedef unsigned long array_type; | |
1594 | |
1595 public: | |
1596 | |
1597 bitset() | |
1598 : buffer_(static_cast<array_type *>(std::malloc(size_in_byte_))) | |
1599 { | |
1600 if (buffer_ != NULL) | |
1601 { | |
1602 reset(); | |
1603 return; | |
1604 } | |
1605 throw std::bad_alloc(); | |
1606 } | |
1607 | |
1608 bitset(const bitset &right) | |
1609 : buffer_(static_cast<array_type *>(std::malloc(size_in_byte_))) | |
1610 { | |
1611 if (buffer_ != NULL) | |
1612 { | |
1613 operator=(right); | |
1614 return; | |
1615 } | |
1616 throw std::bad_alloc(); | |
1617 } | |
1618 | |
1619 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
1620 bitset(bitset &&right) SRELL_NOEXCEPT | |
1621 : buffer_(right.buffer_) | |
1622 { | |
1623 right.buffer_ = NULL; | |
1624 } | |
1625 #endif | |
1626 | |
1627 bitset &operator=(const bitset &right) | |
1628 { | |
1629 if (this != &right) | |
1630 { | |
1631 std::memcpy(buffer_, right.buffer_, size_in_byte_); | |
1632 } | |
1633 return *this; | |
1634 } | |
1635 | |
1636 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
1637 bitset &operator=(bitset &&right) SRELL_NOEXCEPT | |
1638 { | |
1639 if (this != &right) | |
1640 { | |
1641 if (this->buffer_ != NULL) | |
1642 std::free(this->buffer_); | |
1643 | |
1644 this->buffer_ = right.buffer_; | |
1645 right.buffer_ = NULL; | |
1646 } | |
1647 return *this; | |
1648 } | |
1649 #endif | |
1650 | |
1651 ~bitset() | |
1652 { | |
1653 if (buffer_ != NULL) | |
1654 std::free(buffer_); | |
1655 } | |
1656 | |
1657 bitset &reset() | |
1658 { | |
1659 std::memset(buffer_, 0, size_in_byte_); | |
1660 return *this; | |
1661 } | |
1662 | |
1663 bitset &reset(const std::size_t bit) | |
1664 { | |
1665 buffer_[bit / bits_per_elem_] &= ~(1ul << (bit & bitmask_)); | |
1666 return *this; | |
1667 } | |
1668 | |
1669 bitset &set(const std::size_t bit) | |
1670 { | |
1671 buffer_[bit / bits_per_elem_] |= (1ul << (bit & bitmask_)); | |
1672 return *this; | |
1673 } | |
1674 | |
1675 bool test(const std::size_t bit) const | |
1676 { | |
1677 return ((buffer_[bit / bits_per_elem_] >> (bit & bitmask_)) & 1) != 0; | |
1678 } | |
1679 | |
1680 void swap(bitset &right) | |
1681 { | |
1682 if (this != &right) | |
1683 { | |
1684 array_type *const tmpbuffer = this->buffer_; | |
1685 this->buffer_ = right.buffer_; | |
1686 right.buffer_ = tmpbuffer; | |
1687 } | |
1688 } | |
1689 | |
1690 private: | |
1691 | |
1692 #if defined(__cpp_constexpr) | |
1693 static constexpr std::size_t pow2leN(const std::size_t n, const std::size_t p2) | |
1694 { | |
1695 return ((p2 << 1) == 0 || (p2 << 1) > n) ? p2 : pow2leN(n, p2 << 1); | |
1696 } | |
1697 static const std::size_t bits_per_elem_ = pow2leN(CHAR_BIT * sizeof (array_type), 8); | |
1698 #else | |
1699 static const std::size_t bpe_tmp_ = CHAR_BIT * sizeof (array_type); | |
1700 static const std::size_t bits_per_elem_ = bpe_tmp_ >= 64 ? 64 : (bpe_tmp_ >= 32 ? 32 : (bpe_tmp_ >= 16 ? 16 : 8)); | |
1701 #endif | |
1702 static const std::size_t bitmask_ = bits_per_elem_ - 1; | |
1703 static const std::size_t arraylength_ = (Bits + bitmask_) / bits_per_elem_; | |
1704 static const std::size_t size_in_byte_ = arraylength_ * sizeof (array_type); | |
1705 | |
1706 array_type *buffer_; | |
1707 }; | |
1708 | |
1709 } // namespace re_detail | |
1710 | |
1711 // ... "rei_bitset.hpp"] | |
1712 // ["rei_ucf.hpp" ... | |
1713 | |
1714 namespace re_detail | |
1715 { | |
1716 | |
1717 #if !defined(SRELL_NO_UNICODE_ICASE) | |
1718 | |
1719 namespace ucf_constants | |
1720 { | |
1721 | |
1722 // ["srell_ucfdata2.h" ... | |
1723 // CaseFolding-15.1.0.txt | |
1724 // Date: 2023-05-12, 21:53:10 GMT | |
1725 // © 2023 Unicode®, Inc. | |
1726 // Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. | |
1727 // For terms of use, see https://www.unicode.org/terms_of_use.html | |
1728 | |
1729 template <typename T2, typename T3> | |
1730 struct unicode_casefolding | |
1731 { | |
1732 static const T2 ucf_maxcodepoint = 0x1E921; | |
1733 static const T3 ucf_deltatablesize = 0x1A00; | |
1734 static const T2 rev_maxcodepoint = 0x1E943; | |
1735 static const T3 rev_indextablesize = 0x1C00; | |
1736 static const T3 rev_charsettablesize = 4312; // 1 + 1427 * 2 + 1457 | |
1737 static const T3 rev_maxset = 4; | |
1738 static const T2 eos = 0; | |
1739 | |
1740 static const T2 ucf_deltatable[]; | |
1741 static const T3 ucf_segmenttable[]; | |
1742 static const T3 rev_indextable[]; | |
1743 static const T3 rev_segmenttable[]; | |
1744 static const T2 rev_charsettable[]; | |
1745 }; | |
1746 template <typename T2, typename T3> | |
1747 const T2 unicode_casefolding<T2, T3>::ucf_maxcodepoint; | |
1748 template <typename T2, typename T3> | |
1749 const T3 unicode_casefolding<T2, T3>::ucf_deltatablesize; | |
1750 template <typename T2, typename T3> | |
1751 const T2 unicode_casefolding<T2, T3>::rev_maxcodepoint; | |
1752 template <typename T2, typename T3> | |
1753 const T3 unicode_casefolding<T2, T3>::rev_indextablesize; | |
1754 template <typename T2, typename T3> | |
1755 const T3 unicode_casefolding<T2, T3>::rev_charsettablesize; | |
1756 template <typename T2, typename T3> | |
1757 const T3 unicode_casefolding<T2, T3>::rev_maxset; | |
1758 template <typename T2, typename T3> | |
1759 const T2 unicode_casefolding<T2, T3>::eos; | |
1760 | |
1761 template <typename T2, typename T3> | |
1762 const T2 unicode_casefolding<T2, T3>::ucf_deltatable[] = | |
1763 { | |
1764 // For common (0) | |
1765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1778 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1779 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1780 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1781 | |
1782 // For u+00xx (256) | |
1783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1787 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, | |
1788 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, | |
1789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1790 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1794 0, 0, 0, 0, 0, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1795 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, | |
1796 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 0, | |
1797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1799 | |
1800 // For u+01xx (512) | |
1801 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1802 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1803 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1804 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, | |
1805 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, | |
1806 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1807 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1808 1, 0, 1, 0, 1, 0, 1, 0, static_cast<T2>(-121), 1, 0, 1, 0, 1, 0, static_cast<T2>(-268), | |
1809 0, 210, 1, 0, 1, 0, 206, 1, 0, 205, 205, 1, 0, 0, 79, 202, | |
1810 203, 1, 0, 205, 207, 0, 211, 209, 1, 0, 0, 0, 211, 213, 0, 214, | |
1811 1, 0, 1, 0, 1, 0, 218, 1, 0, 218, 0, 0, 1, 0, 218, 1, | |
1812 0, 217, 217, 1, 0, 1, 0, 219, 1, 0, 0, 0, 1, 0, 0, 0, | |
1813 0, 0, 0, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 1, 0, 1, | |
1814 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, | |
1815 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1816 0, 2, 1, 0, 1, 0, static_cast<T2>(-97), static_cast<T2>(-56), 1, 0, 1, 0, 1, 0, 1, 0, | |
1817 | |
1818 // For u+02xx (768) | |
1819 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1820 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1821 static_cast<T2>(-130), 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1822 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 10795, 1, 0, static_cast<T2>(-163), 10792, 0, | |
1823 0, 1, 0, static_cast<T2>(-195), 69, 71, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1824 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1825 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1826 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1828 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1829 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1831 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1832 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1833 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1834 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1835 | |
1836 // For u+03xx (1024) | |
1837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1839 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1841 0, 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1842 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1843 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1844 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 116, | |
1845 0, 0, 0, 0, 0, 0, 38, 0, 37, 37, 37, 0, 64, 0, 63, 63, | |
1846 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, | |
1847 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, | |
1848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1849 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, | |
1850 static_cast<T2>(-30), static_cast<T2>(-25), 0, 0, 0, static_cast<T2>(-15), static_cast<T2>(-22), 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1851 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1852 static_cast<T2>(-54), static_cast<T2>(-48), 0, 0, static_cast<T2>(-60), static_cast<T2>(-64), 0, 1, 0, static_cast<T2>(-7), 1, 0, 0, static_cast<T2>(-130), static_cast<T2>(-130), static_cast<T2>(-130), | |
1853 | |
1854 // For u+04xx (1280) | |
1855 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, | |
1856 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, | |
1857 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, | |
1858 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1860 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1861 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1862 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1863 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, | |
1864 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1865 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1866 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1867 15, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, | |
1868 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1869 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1870 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1871 | |
1872 // For u+05xx (1536) | |
1873 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1874 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1875 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1876 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, | |
1877 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, | |
1878 48, 48, 48, 48, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1879 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1881 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1883 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1887 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1888 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1889 | |
1890 // For u+10xx (1792) | |
1891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1892 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1893 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1894 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1897 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1898 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1899 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1900 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1901 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, | |
1902 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, 7264, | |
1903 7264, 7264, 7264, 7264, 7264, 7264, 0, 7264, 0, 0, 0, 0, 0, 7264, 0, 0, | |
1904 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1907 | |
1908 // For u+13xx (2048) | |
1909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1910 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1912 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1914 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1915 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1916 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1918 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1919 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1921 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1922 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1923 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1924 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), 0, 0, | |
1925 | |
1926 // For u+1Cxx (2304) | |
1927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1929 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1930 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1931 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1932 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1933 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1934 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1935 static_cast<T2>(-6222), static_cast<T2>(-6221), static_cast<T2>(-6212), static_cast<T2>(-6210), static_cast<T2>(-6210), static_cast<T2>(-6211), static_cast<T2>(-6204), static_cast<T2>(-6180), 35267, 0, 0, 0, 0, 0, 0, 0, | |
1936 static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), | |
1937 static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), | |
1938 static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), 0, 0, static_cast<T2>(-3008), static_cast<T2>(-3008), static_cast<T2>(-3008), | |
1939 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1941 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1942 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1943 | |
1944 // For u+1Exx (2560) | |
1945 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1946 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1947 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1948 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1949 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1950 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1951 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1952 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1953 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1954 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, static_cast<T2>(-58), 0, 0, static_cast<T2>(-7615), 0, | |
1955 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1956 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1957 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1958 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1959 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1960 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
1961 | |
1962 // For u+1Fxx (2816) | |
1963 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), | |
1964 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), 0, 0, | |
1965 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), | |
1966 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), | |
1967 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), 0, 0, | |
1968 0, 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), 0, static_cast<T2>(-8), 0, static_cast<T2>(-8), 0, static_cast<T2>(-8), | |
1969 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), | |
1970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1971 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), | |
1972 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), | |
1973 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-8), | |
1974 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-74), static_cast<T2>(-74), static_cast<T2>(-9), 0, static_cast<T2>(-7173), 0, | |
1975 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-86), static_cast<T2>(-86), static_cast<T2>(-86), static_cast<T2>(-86), static_cast<T2>(-9), 0, 0, 0, | |
1976 0, 0, 0, static_cast<T2>(-7235), 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-100), static_cast<T2>(-100), 0, 0, 0, 0, | |
1977 0, 0, 0, static_cast<T2>(-7219), 0, 0, 0, 0, static_cast<T2>(-8), static_cast<T2>(-8), static_cast<T2>(-112), static_cast<T2>(-112), static_cast<T2>(-7), 0, 0, 0, | |
1978 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-128), static_cast<T2>(-128), static_cast<T2>(-126), static_cast<T2>(-126), static_cast<T2>(-9), 0, 0, 0, | |
1979 | |
1980 // For u+21xx (3072) | |
1981 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1983 0, 0, 0, 0, 0, 0, static_cast<T2>(-7517), 0, 0, 0, static_cast<T2>(-8383), static_cast<T2>(-8262), 0, 0, 0, 0, | |
1984 0, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1985 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1986 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1987 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, | |
1988 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1989 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1991 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1992 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1993 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1994 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1995 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
1997 | |
1998 // For u+24xx (3328) | |
1999 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2000 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2001 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2002 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2004 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2006 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2007 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2008 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2009 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2010 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, | |
2011 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, | |
2012 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2014 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2015 | |
2016 // For u+2Cxx (3584) | |
2017 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, | |
2018 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, | |
2019 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, | |
2020 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2021 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2022 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2023 1, 0, static_cast<T2>(-10743), static_cast<T2>(-3814), static_cast<T2>(-10727), 0, 0, 1, 0, 1, 0, 1, 0, static_cast<T2>(-10780), static_cast<T2>(-10749), static_cast<T2>(-10783), | |
2024 static_cast<T2>(-10782), 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, static_cast<T2>(-10815), static_cast<T2>(-10815), | |
2025 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2026 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2027 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2028 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2029 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2030 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2031 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, | |
2032 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2033 | |
2034 // For u+A6xx (3840) | |
2035 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2037 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2038 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2039 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2040 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2041 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, | |
2042 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2043 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2044 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, | |
2045 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2046 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2047 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2048 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2050 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2051 | |
2052 // For u+A7xx (4096) | |
2053 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2054 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2055 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2056 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2057 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2058 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2059 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2060 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, static_cast<T2>(-35332), 1, 0, | |
2061 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, static_cast<T2>(-42280), 0, 0, | |
2062 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2063 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, static_cast<T2>(-42308), static_cast<T2>(-42319), static_cast<T2>(-42315), static_cast<T2>(-42305), static_cast<T2>(-42308), 0, | |
2064 static_cast<T2>(-42258), static_cast<T2>(-42282), static_cast<T2>(-42261), 928, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, | |
2065 1, 0, 1, 0, static_cast<T2>(-48), static_cast<T2>(-42307), static_cast<T2>(-35384), 1, 0, 1, 0, 0, 0, 0, 0, 0, | |
2066 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, | |
2067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2068 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2069 | |
2070 // For u+ABxx (4352) | |
2071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2076 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2077 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2078 static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), | |
2079 static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), | |
2080 static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), | |
2081 static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), | |
2082 static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), static_cast<T2>(-38864), | |
2083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2084 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2085 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2086 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2087 | |
2088 // For u+FBxx (4608) | |
2089 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2090 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2091 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2092 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2093 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2094 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2095 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2096 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2097 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2099 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2100 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2105 | |
2106 // For u+FFxx (4864) | |
2107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2109 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, | |
2110 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, 0, 0, 0, | |
2111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2123 | |
2124 // For u+104xx (5120) | |
2125 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, | |
2126 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, | |
2127 40, 40, 40, 40, 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, | |
2128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2130 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2131 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2132 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2133 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2134 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2135 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2136 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, | |
2137 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, | |
2138 40, 40, 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2141 | |
2142 // For u+105xx (5376) | |
2143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2150 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, | |
2151 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, | |
2152 39, 39, 39, 0, 39, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2159 | |
2160 // For u+10Cxx (5632) | |
2161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2164 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2168 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2169 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | |
2170 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | |
2171 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, | |
2172 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2173 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2174 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2175 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2177 | |
2178 // For u+118xx (5888) | |
2179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2181 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2184 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2185 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2189 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, | |
2190 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, | |
2191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2193 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2194 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2195 | |
2196 // For u+16Exx (6144) | |
2197 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2198 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2199 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2201 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, | |
2202 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, | |
2203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2206 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2209 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2210 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2213 | |
2214 // For u+1E9xx (6400) | |
2215 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, | |
2216 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, | |
2217 34, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2221 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2222 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2223 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2224 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2225 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2226 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2227 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2230 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |
2231 }; | |
2232 | |
2233 template <typename T2, typename T3> | |
2234 const T3 unicode_casefolding<T2, T3>::ucf_segmenttable[] = | |
2235 { | |
2236 256, 512, 768, 1024, 1280, 1536, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2237 1792, 0, 0, 2048, 0, 0, 0, 0, 0, 0, 0, 0, 2304, 0, 2560, 2816, | |
2238 0, 3072, 0, 0, 3328, 0, 0, 0, 0, 0, 0, 0, 3584, 0, 0, 0, | |
2239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2245 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2246 0, 0, 0, 0, 0, 0, 3840, 4096, 0, 0, 0, 4352, 0, 0, 0, 0, | |
2247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2248 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2250 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2251 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4608, 0, 0, 0, 4864, | |
2252 0, 0, 0, 0, 5120, 5376, 0, 0, 0, 0, 0, 0, 5632, 0, 0, 0, | |
2253 0, 0, 0, 0, 0, 0, 0, 0, 5888, 0, 0, 0, 0, 0, 0, 0, | |
2254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2255 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2256 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2258 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6144, 0, | |
2259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2262 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2263 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2264 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2266 0, 0, 0, 0, 0, 0, 0, 0, 0, 6400 | |
2267 }; | |
2268 | |
2269 template <typename T2, typename T3> | |
2270 const T3 unicode_casefolding<T2, T3>::rev_indextable[] = | |
2271 { | |
2272 // For common (0) | |
2273 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2274 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2278 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2279 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2280 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2282 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2283 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2285 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2286 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2288 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2289 | |
2290 // For u+00xx (256) | |
2291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2294 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2295 0, 1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 35, 38, 41, 44, | |
2296 47, 50, 53, 56, 60, 63, 66, 69, 72, 75, 78, 0, 0, 0, 0, 0, | |
2297 0, 1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 35, 38, 41, 44, | |
2298 47, 50, 53, 56, 60, 63, 66, 69, 72, 75, 78, 0, 0, 0, 0, 0, | |
2299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2301 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2302 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2303 85, 88, 91, 94, 97, 100, 104, 107, 110, 113, 116, 119, 122, 125, 128, 131, | |
2304 134, 137, 140, 143, 146, 149, 152, 0, 155, 158, 161, 164, 167, 170, 173, 1924, | |
2305 85, 88, 91, 94, 97, 100, 104, 107, 110, 113, 116, 119, 122, 125, 128, 131, | |
2306 134, 137, 140, 143, 146, 149, 152, 0, 155, 158, 161, 164, 167, 170, 173, 350, | |
2307 | |
2308 // For u+21xx (512) | |
2309 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2310 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2311 0, 0, 0, 0, 0, 0, 785, 0, 0, 0, 31, 100, 0, 0, 0, 0, | |
2312 0, 0, 2365, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2365, 0, | |
2314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2315 2368, 2371, 2374, 2377, 2380, 2383, 2386, 2389, 2392, 2395, 2398, 2401, 2404, 2407, 2410, 2413, | |
2316 2368, 2371, 2374, 2377, 2380, 2383, 2386, 2389, 2392, 2395, 2398, 2401, 2404, 2407, 2410, 2413, | |
2317 0, 0, 0, 2416, 2416, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2323 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2324 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2325 | |
2326 // For u+01xx (768) | |
2327 176, 176, 179, 179, 182, 182, 185, 185, 188, 188, 191, 191, 194, 194, 197, 197, | |
2328 200, 200, 203, 203, 206, 206, 209, 209, 212, 212, 215, 215, 218, 218, 221, 221, | |
2329 224, 224, 227, 227, 230, 230, 233, 233, 236, 236, 239, 239, 242, 242, 245, 245, | |
2330 0, 0, 248, 248, 251, 251, 254, 254, 0, 257, 257, 260, 260, 263, 263, 266, | |
2331 266, 269, 269, 272, 272, 275, 275, 278, 278, 0, 281, 281, 284, 284, 287, 287, | |
2332 290, 290, 293, 293, 296, 296, 299, 299, 302, 302, 305, 305, 308, 308, 311, 311, | |
2333 314, 314, 317, 317, 320, 320, 323, 323, 326, 326, 329, 329, 332, 332, 335, 335, | |
2334 338, 338, 341, 341, 344, 344, 347, 347, 350, 353, 353, 356, 356, 359, 359, 56, | |
2335 651, 362, 365, 365, 368, 368, 371, 374, 374, 377, 380, 383, 383, 0, 386, 389, | |
2336 392, 395, 395, 398, 401, 540, 404, 407, 410, 410, 642, 0, 413, 416, 606, 419, | |
2337 422, 422, 425, 425, 428, 428, 431, 434, 434, 437, 0, 0, 440, 440, 443, 446, | |
2338 446, 449, 452, 455, 455, 458, 458, 461, 464, 464, 0, 0, 467, 467, 0, 543, | |
2339 0, 0, 0, 0, 470, 470, 470, 474, 474, 474, 478, 478, 478, 482, 482, 485, | |
2340 485, 488, 488, 491, 491, 494, 494, 497, 497, 500, 500, 503, 503, 386, 506, 506, | |
2341 509, 509, 512, 512, 515, 515, 518, 518, 521, 521, 524, 524, 527, 527, 530, 530, | |
2342 0, 533, 533, 533, 537, 537, 540, 543, 546, 546, 549, 549, 552, 552, 555, 555, | |
2343 | |
2344 // For u+03xx (1024) | |
2345 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2349 0, 0, 0, 0, 0, 675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2351 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2352 680, 680, 683, 683, 0, 0, 686, 686, 0, 0, 0, 843, 846, 849, 0, 689, | |
2353 0, 0, 0, 0, 0, 0, 692, 0, 695, 698, 701, 0, 704, 0, 707, 710, | |
2354 2317, 713, 716, 720, 723, 726, 730, 733, 736, 675, 741, 745, 81, 748, 751, 754, | |
2355 757, 761, 0, 765, 769, 772, 775, 779, 782, 785, 789, 792, 692, 695, 698, 701, | |
2356 2332, 713, 716, 720, 723, 726, 730, 733, 736, 675, 741, 745, 81, 748, 751, 754, | |
2357 757, 761, 765, 765, 769, 772, 775, 779, 782, 785, 789, 792, 704, 707, 710, 795, | |
2358 716, 736, 0, 0, 0, 775, 757, 795, 798, 798, 801, 801, 804, 804, 807, 807, | |
2359 810, 810, 813, 813, 816, 816, 819, 819, 822, 822, 825, 825, 828, 828, 831, 831, | |
2360 741, 761, 837, 689, 736, 726, 0, 834, 834, 837, 840, 840, 0, 843, 846, 849, | |
2361 | |
2362 // For u+02xx (1280) | |
2363 558, 558, 561, 561, 564, 564, 567, 567, 570, 570, 573, 573, 576, 576, 579, 579, | |
2364 582, 582, 585, 585, 588, 588, 591, 591, 594, 594, 597, 597, 600, 600, 603, 603, | |
2365 606, 0, 609, 609, 612, 612, 615, 615, 618, 618, 621, 621, 624, 624, 627, 627, | |
2366 630, 630, 633, 633, 0, 0, 0, 0, 0, 0, 636, 639, 639, 642, 645, 2680, | |
2367 2683, 648, 648, 651, 654, 657, 660, 660, 663, 663, 666, 666, 669, 669, 672, 672, | |
2368 2668, 2662, 2671, 362, 371, 0, 377, 380, 0, 389, 0, 392, 3136, 0, 0, 0, | |
2369 398, 3139, 0, 401, 0, 3094, 3133, 0, 407, 404, 3145, 2644, 3142, 0, 0, 413, | |
2370 0, 2665, 416, 0, 0, 419, 0, 0, 0, 0, 0, 0, 0, 2650, 0, 0, | |
2371 431, 0, 3187, 437, 0, 0, 0, 3151, 443, 654, 449, 452, 657, 0, 0, 0, | |
2372 0, 0, 461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3154, 3148, 0, | |
2373 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2377 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2378 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2379 | |
2380 // For u+2Cxx (1536) | |
2381 2497, 2500, 2503, 2506, 2509, 2512, 2515, 2518, 2521, 2524, 2527, 2530, 2533, 2536, 2539, 2542, | |
2382 2545, 2548, 2551, 2554, 2557, 2560, 2563, 2566, 2569, 2572, 2575, 2578, 2581, 2584, 2587, 2590, | |
2383 2593, 2596, 2599, 2602, 2605, 2608, 2611, 2614, 2617, 2620, 2623, 2626, 2629, 2632, 2635, 2638, | |
2384 2497, 2500, 2503, 2506, 2509, 2512, 2515, 2518, 2521, 2524, 2527, 2530, 2533, 2536, 2539, 2542, | |
2385 2545, 2548, 2551, 2554, 2557, 2560, 2563, 2566, 2569, 2572, 2575, 2578, 2581, 2584, 2587, 2590, | |
2386 2593, 2596, 2599, 2602, 2605, 2608, 2611, 2614, 2617, 2620, 2623, 2626, 2629, 2632, 2635, 2638, | |
2387 2641, 2641, 2644, 2647, 2650, 636, 645, 2653, 2653, 2656, 2656, 2659, 2659, 2662, 2665, 2668, | |
2388 2671, 0, 2674, 2674, 0, 2677, 2677, 0, 0, 0, 0, 0, 0, 0, 2680, 2683, | |
2389 2686, 2686, 2689, 2689, 2692, 2692, 2695, 2695, 2698, 2698, 2701, 2701, 2704, 2704, 2707, 2707, | |
2390 2710, 2710, 2713, 2713, 2716, 2716, 2719, 2719, 2722, 2722, 2725, 2725, 2728, 2728, 2731, 2731, | |
2391 2734, 2734, 2737, 2737, 2740, 2740, 2743, 2743, 2746, 2746, 2749, 2749, 2752, 2752, 2755, 2755, | |
2392 2758, 2758, 2761, 2761, 2764, 2764, 2767, 2767, 2770, 2770, 2773, 2773, 2776, 2776, 2779, 2779, | |
2393 2782, 2782, 2785, 2785, 2788, 2788, 2791, 2791, 2794, 2794, 2797, 2797, 2800, 2800, 2803, 2803, | |
2394 2806, 2806, 2809, 2809, 2812, 2812, 2815, 2815, 2818, 2818, 2821, 2821, 2824, 2824, 2827, 2827, | |
2395 2830, 2830, 2833, 2833, 0, 0, 0, 0, 0, 0, 0, 2836, 2836, 2839, 2839, 0, | |
2396 0, 0, 2842, 2842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2397 | |
2398 // For u+1Fxx (1792) | |
2399 2071, 2074, 2077, 2080, 2083, 2086, 2089, 2092, 2071, 2074, 2077, 2080, 2083, 2086, 2089, 2092, | |
2400 2095, 2098, 2101, 2104, 2107, 2110, 0, 0, 2095, 2098, 2101, 2104, 2107, 2110, 0, 0, | |
2401 2113, 2116, 2119, 2122, 2125, 2128, 2131, 2134, 2113, 2116, 2119, 2122, 2125, 2128, 2131, 2134, | |
2402 2137, 2140, 2143, 2146, 2149, 2152, 2155, 2158, 2137, 2140, 2143, 2146, 2149, 2152, 2155, 2158, | |
2403 2161, 2164, 2167, 2170, 2173, 2176, 0, 0, 2161, 2164, 2167, 2170, 2173, 2176, 0, 0, | |
2404 0, 2179, 0, 2182, 0, 2185, 0, 2188, 0, 2179, 0, 2182, 0, 2185, 0, 2188, | |
2405 2191, 2194, 2197, 2200, 2203, 2206, 2209, 2212, 2191, 2194, 2197, 2200, 2203, 2206, 2209, 2212, | |
2406 2293, 2296, 2302, 2305, 2308, 2311, 2326, 2329, 2350, 2353, 2341, 2344, 2356, 2359, 0, 0, | |
2407 2215, 2218, 2221, 2224, 2227, 2230, 2233, 2236, 2215, 2218, 2221, 2224, 2227, 2230, 2233, 2236, | |
2408 2239, 2242, 2245, 2248, 2251, 2254, 2257, 2260, 2239, 2242, 2245, 2248, 2251, 2254, 2257, 2260, | |
2409 2263, 2266, 2269, 2272, 2275, 2278, 2281, 2284, 2263, 2266, 2269, 2272, 2275, 2278, 2281, 2284, | |
2410 2287, 2290, 0, 2299, 0, 0, 0, 0, 2287, 2290, 2293, 2296, 2299, 0, 675, 0, | |
2411 0, 0, 0, 2314, 0, 0, 0, 0, 2302, 2305, 2308, 2311, 2314, 0, 0, 0, | |
2412 2320, 2323, 0, 2317, 0, 0, 0, 0, 2320, 2323, 2326, 2329, 0, 0, 0, 0, | |
2413 2335, 2338, 0, 2332, 0, 2347, 0, 0, 2335, 2338, 2341, 2344, 2347, 0, 0, 0, | |
2414 0, 0, 0, 2362, 0, 0, 0, 0, 2350, 2353, 2356, 2359, 2362, 0, 0, 0, | |
2415 | |
2416 // For u+04xx (2048) | |
2417 852, 855, 858, 861, 864, 867, 870, 873, 876, 879, 882, 885, 888, 891, 894, 897, | |
2418 900, 903, 906, 910, 913, 917, 920, 923, 926, 929, 932, 935, 938, 941, 944, 948, | |
2419 951, 954, 958, 963, 966, 969, 972, 975, 978, 981, 984, 988, 991, 994, 997, 1000, | |
2420 900, 903, 906, 910, 913, 917, 920, 923, 926, 929, 932, 935, 938, 941, 944, 948, | |
2421 951, 954, 958, 963, 966, 969, 972, 975, 978, 981, 984, 988, 991, 994, 997, 1000, | |
2422 852, 855, 858, 861, 864, 867, 870, 873, 876, 879, 882, 885, 888, 891, 894, 897, | |
2423 1003, 1003, 1006, 1006, 1010, 1010, 1013, 1013, 1016, 1016, 1019, 1019, 1022, 1022, 1025, 1025, | |
2424 1028, 1028, 1031, 1031, 1034, 1034, 1037, 1037, 1040, 1040, 1043, 1043, 1046, 1046, 1049, 1049, | |
2425 1052, 1052, 0, 0, 0, 0, 0, 0, 0, 0, 1055, 1055, 1058, 1058, 1061, 1061, | |
2426 1064, 1064, 1067, 1067, 1070, 1070, 1073, 1073, 1076, 1076, 1079, 1079, 1082, 1082, 1085, 1085, | |
2427 1088, 1088, 1091, 1091, 1094, 1094, 1097, 1097, 1100, 1100, 1103, 1103, 1106, 1106, 1109, 1109, | |
2428 1112, 1112, 1115, 1115, 1118, 1118, 1121, 1121, 1124, 1124, 1127, 1127, 1130, 1130, 1133, 1133, | |
2429 1136, 1139, 1139, 1142, 1142, 1145, 1145, 1148, 1148, 1151, 1151, 1154, 1154, 1157, 1157, 1136, | |
2430 1160, 1160, 1163, 1163, 1166, 1166, 1169, 1169, 1172, 1172, 1175, 1175, 1178, 1178, 1181, 1181, | |
2431 1184, 1184, 1187, 1187, 1190, 1190, 1193, 1193, 1196, 1196, 1199, 1199, 1202, 1202, 1205, 1205, | |
2432 1208, 1208, 1211, 1211, 1214, 1214, 1217, 1217, 1220, 1220, 1223, 1223, 1226, 1226, 1229, 1229, | |
2433 | |
2434 // For u+1Cxx (2304) | |
2435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2437 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2443 906, 913, 944, 954, 958, 958, 984, 1006, 1556, 0, 0, 0, 0, 0, 0, 0, | |
2444 1560, 1563, 1566, 1569, 1572, 1575, 1578, 1581, 1584, 1587, 1590, 1593, 1596, 1599, 1602, 1605, | |
2445 1608, 1611, 1614, 1617, 1620, 1623, 1626, 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1650, 1653, | |
2446 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 0, 0, 1689, 1692, 1695, | |
2447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2451 | |
2452 // For u+05xx (2560) | |
2453 1232, 1232, 1235, 1235, 1238, 1238, 1241, 1241, 1244, 1244, 1247, 1247, 1250, 1250, 1253, 1253, | |
2454 1256, 1256, 1259, 1259, 1262, 1262, 1265, 1265, 1268, 1268, 1271, 1271, 1274, 1274, 1277, 1277, | |
2455 1280, 1280, 1283, 1283, 1286, 1286, 1289, 1289, 1292, 1292, 1295, 1295, 1298, 1298, 1301, 1301, | |
2456 0, 1304, 1307, 1310, 1313, 1316, 1319, 1322, 1325, 1328, 1331, 1334, 1337, 1340, 1343, 1346, | |
2457 1349, 1352, 1355, 1358, 1361, 1364, 1367, 1370, 1373, 1376, 1379, 1382, 1385, 1388, 1391, 1394, | |
2458 1397, 1400, 1403, 1406, 1409, 1412, 1415, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2459 0, 1304, 1307, 1310, 1313, 1316, 1319, 1322, 1325, 1328, 1331, 1334, 1337, 1340, 1343, 1346, | |
2460 1349, 1352, 1355, 1358, 1361, 1364, 1367, 1370, 1373, 1376, 1379, 1382, 1385, 1388, 1391, 1394, | |
2461 1397, 1400, 1403, 1406, 1409, 1412, 1415, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2469 | |
2470 // For u+2Dxx (2816) | |
2471 1418, 1421, 1424, 1427, 1430, 1433, 1436, 1439, 1442, 1445, 1448, 1451, 1454, 1457, 1460, 1463, | |
2472 1466, 1469, 1472, 1475, 1478, 1481, 1484, 1487, 1490, 1493, 1496, 1499, 1502, 1505, 1508, 1511, | |
2473 1514, 1517, 1520, 1523, 1526, 1529, 0, 1532, 0, 0, 0, 0, 0, 1535, 0, 0, | |
2474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2487 | |
2488 // For u+10xx (3072) | |
2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2499 1418, 1421, 1424, 1427, 1430, 1433, 1436, 1439, 1442, 1445, 1448, 1451, 1454, 1457, 1460, 1463, | |
2500 1466, 1469, 1472, 1475, 1478, 1481, 1484, 1487, 1490, 1493, 1496, 1499, 1502, 1505, 1508, 1511, | |
2501 1514, 1517, 1520, 1523, 1526, 1529, 0, 1532, 0, 0, 0, 0, 0, 1535, 0, 0, | |
2502 1560, 1563, 1566, 1569, 1572, 1575, 1578, 1581, 1584, 1587, 1590, 1593, 1596, 1599, 1602, 1605, | |
2503 1608, 1611, 1614, 1617, 1620, 1623, 1626, 1629, 1632, 1635, 1638, 1641, 1644, 1647, 1650, 1653, | |
2504 1656, 1659, 1662, 1665, 1668, 1671, 1674, 1677, 1680, 1683, 1686, 0, 0, 1689, 1692, 1695, | |
2505 | |
2506 // For u+13xx (3328) | |
2507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2517 3211, 3214, 3217, 3220, 3223, 3226, 3229, 3232, 3235, 3238, 3241, 3244, 3247, 3250, 3253, 3256, | |
2518 3259, 3262, 3265, 3268, 3271, 3274, 3277, 3280, 3283, 3286, 3289, 3292, 3295, 3298, 3301, 3304, | |
2519 3307, 3310, 3313, 3316, 3319, 3322, 3325, 3328, 3331, 3334, 3337, 3340, 3343, 3346, 3349, 3352, | |
2520 3355, 3358, 3361, 3364, 3367, 3370, 3373, 3376, 3379, 3382, 3385, 3388, 3391, 3394, 3397, 3400, | |
2521 3403, 3406, 3409, 3412, 3415, 3418, 3421, 3424, 3427, 3430, 3433, 3436, 3439, 3442, 3445, 3448, | |
2522 1538, 1541, 1544, 1547, 1550, 1553, 0, 0, 1538, 1541, 1544, 1547, 1550, 1553, 0, 0, | |
2523 | |
2524 // For u+A6xx (3584) | |
2525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2529 2845, 2845, 2848, 2848, 2851, 2851, 2854, 2854, 2857, 2857, 1556, 1556, 2860, 2860, 2863, 2863, | |
2530 2866, 2866, 2869, 2869, 2872, 2872, 2875, 2875, 2878, 2878, 2881, 2881, 2884, 2884, 2887, 2887, | |
2531 2890, 2890, 2893, 2893, 2896, 2896, 2899, 2899, 2902, 2902, 2905, 2905, 2908, 2908, 0, 0, | |
2532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2533 2911, 2911, 2914, 2914, 2917, 2917, 2920, 2920, 2923, 2923, 2926, 2926, 2929, 2929, 2932, 2932, | |
2534 2935, 2935, 2938, 2938, 2941, 2941, 2944, 2944, 2947, 2947, 2950, 2950, 0, 0, 0, 0, | |
2535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2541 | |
2542 // For u+1Exx (3840) | |
2543 1698, 1698, 1701, 1701, 1704, 1704, 1707, 1707, 1710, 1710, 1713, 1713, 1716, 1716, 1719, 1719, | |
2544 1722, 1722, 1725, 1725, 1728, 1728, 1731, 1731, 1734, 1734, 1737, 1737, 1740, 1740, 1743, 1743, | |
2545 1746, 1746, 1749, 1749, 1752, 1752, 1755, 1755, 1758, 1758, 1761, 1761, 1764, 1764, 1767, 1767, | |
2546 1770, 1770, 1773, 1773, 1776, 1776, 1779, 1779, 1782, 1782, 1785, 1785, 1788, 1788, 1791, 1791, | |
2547 1794, 1794, 1797, 1797, 1800, 1800, 1803, 1803, 1806, 1806, 1809, 1809, 1812, 1812, 1815, 1815, | |
2548 1818, 1818, 1821, 1821, 1824, 1824, 1827, 1827, 1830, 1830, 1833, 1833, 1836, 1836, 1839, 1839, | |
2549 1842, 1842, 1846, 1846, 1849, 1849, 1852, 1852, 1855, 1855, 1858, 1858, 1861, 1861, 1864, 1864, | |
2550 1867, 1867, 1870, 1870, 1873, 1873, 1876, 1876, 1879, 1879, 1882, 1882, 1885, 1885, 1888, 1888, | |
2551 1891, 1891, 1894, 1894, 1897, 1897, 1900, 1900, 1903, 1903, 1906, 1906, 1909, 1909, 1912, 1912, | |
2552 1915, 1915, 1918, 1918, 1921, 1921, 0, 0, 0, 0, 0, 1842, 0, 0, 1924, 0, | |
2553 1927, 1927, 1930, 1930, 1933, 1933, 1936, 1936, 1939, 1939, 1942, 1942, 1945, 1945, 1948, 1948, | |
2554 1951, 1951, 1954, 1954, 1957, 1957, 1960, 1960, 1963, 1963, 1966, 1966, 1969, 1969, 1972, 1972, | |
2555 1975, 1975, 1978, 1978, 1981, 1981, 1984, 1984, 1987, 1987, 1990, 1990, 1993, 1993, 1996, 1996, | |
2556 1999, 1999, 2002, 2002, 2005, 2005, 2008, 2008, 2011, 2011, 2014, 2014, 2017, 2017, 2020, 2020, | |
2557 2023, 2023, 2026, 2026, 2029, 2029, 2032, 2032, 2035, 2035, 2038, 2038, 2041, 2041, 2044, 2044, | |
2558 2047, 2047, 2050, 2050, 2053, 2053, 2056, 2056, 2059, 2059, 2062, 2062, 2065, 2065, 2068, 2068, | |
2559 | |
2560 // For u+24xx (4096) | |
2561 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2562 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2563 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2566 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2567 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2569 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2570 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2571 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2572 0, 0, 0, 0, 0, 0, 2419, 2422, 2425, 2428, 2431, 2434, 2437, 2440, 2443, 2446, | |
2573 2449, 2452, 2455, 2458, 2461, 2464, 2467, 2470, 2473, 2476, 2479, 2482, 2485, 2488, 2491, 2494, | |
2574 2419, 2422, 2425, 2428, 2431, 2434, 2437, 2440, 2443, 2446, 2449, 2452, 2455, 2458, 2461, 2464, | |
2575 2467, 2470, 2473, 2476, 2479, 2482, 2485, 2488, 2491, 2494, 0, 0, 0, 0, 0, 0, | |
2576 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2577 | |
2578 // For u+1Dxx (4352) | |
2579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2581 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2584 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2585 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2586 0, 0, 0, 0, 0, 0, 0, 0, 0, 3073, 0, 0, 0, 2647, 0, 0, | |
2587 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3190, 0, | |
2588 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2589 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2590 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2591 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2592 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2593 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2595 | |
2596 // For u+A7xx (4608) | |
2597 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2598 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2599 0, 0, 2953, 2953, 2956, 2956, 2959, 2959, 2962, 2962, 2965, 2965, 2968, 2968, 2971, 2971, | |
2600 0, 0, 2974, 2974, 2977, 2977, 2980, 2980, 2983, 2983, 2986, 2986, 2989, 2989, 2992, 2992, | |
2601 2995, 2995, 2998, 2998, 3001, 3001, 3004, 3004, 3007, 3007, 3010, 3010, 3013, 3013, 3016, 3016, | |
2602 3019, 3019, 3022, 3022, 3025, 3025, 3028, 3028, 3031, 3031, 3034, 3034, 3037, 3037, 3040, 3040, | |
2603 3043, 3043, 3046, 3046, 3049, 3049, 3052, 3052, 3055, 3055, 3058, 3058, 3061, 3061, 3064, 3064, | |
2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 3067, 3067, 3070, 3070, 3073, 3076, 3076, | |
2605 3079, 3079, 3082, 3082, 3085, 3085, 3088, 3088, 0, 0, 0, 3091, 3091, 3094, 0, 0, | |
2606 3097, 3097, 3100, 3100, 3184, 0, 3103, 3103, 3106, 3106, 3109, 3109, 3112, 3112, 3115, 3115, | |
2607 3118, 3118, 3121, 3121, 3124, 3124, 3127, 3127, 3130, 3130, 3133, 3136, 3139, 3142, 3145, 0, | |
2608 3148, 3151, 3154, 3157, 3160, 3160, 3163, 3163, 3166, 3166, 3169, 3169, 3172, 3172, 3175, 3175, | |
2609 3178, 3178, 3181, 3181, 3184, 3187, 3190, 3193, 3193, 3196, 3196, 0, 0, 0, 0, 0, | |
2610 3199, 3199, 0, 0, 0, 0, 3202, 3202, 3205, 3205, 0, 0, 0, 0, 0, 0, | |
2611 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2612 0, 0, 0, 0, 0, 3208, 3208, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2613 | |
2614 // For u+ABxx (4864) | |
2615 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2618 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2619 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2620 0, 0, 0, 3157, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2621 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2622 3211, 3214, 3217, 3220, 3223, 3226, 3229, 3232, 3235, 3238, 3241, 3244, 3247, 3250, 3253, 3256, | |
2623 3259, 3262, 3265, 3268, 3271, 3274, 3277, 3280, 3283, 3286, 3289, 3292, 3295, 3298, 3301, 3304, | |
2624 3307, 3310, 3313, 3316, 3319, 3322, 3325, 3328, 3331, 3334, 3337, 3340, 3343, 3346, 3349, 3352, | |
2625 3355, 3358, 3361, 3364, 3367, 3370, 3373, 3376, 3379, 3382, 3385, 3388, 3391, 3394, 3397, 3400, | |
2626 3403, 3406, 3409, 3412, 3415, 3418, 3421, 3424, 3427, 3430, 3433, 3436, 3439, 3442, 3445, 3448, | |
2627 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2628 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2630 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2631 | |
2632 // For u+FBxx (5120) | |
2633 0, 0, 0, 0, 0, 3451, 3451, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2634 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2635 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2636 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2637 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2640 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2641 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2643 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2645 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2646 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2647 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2648 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2649 | |
2650 // For u+FFxx (5376) | |
2651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2653 0, 3454, 3457, 3460, 3463, 3466, 3469, 3472, 3475, 3478, 3481, 3484, 3487, 3490, 3493, 3496, | |
2654 3499, 3502, 3505, 3508, 3511, 3514, 3517, 3520, 3523, 3526, 3529, 0, 0, 0, 0, 0, | |
2655 0, 3454, 3457, 3460, 3463, 3466, 3469, 3472, 3475, 3478, 3481, 3484, 3487, 3490, 3493, 3496, | |
2656 3499, 3502, 3505, 3508, 3511, 3514, 3517, 3520, 3523, 3526, 3529, 0, 0, 0, 0, 0, | |
2657 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2658 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2659 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2660 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2665 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2666 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2667 | |
2668 // For u+104xx (5632) | |
2669 3532, 3535, 3538, 3541, 3544, 3547, 3550, 3553, 3556, 3559, 3562, 3565, 3568, 3571, 3574, 3577, | |
2670 3580, 3583, 3586, 3589, 3592, 3595, 3598, 3601, 3604, 3607, 3610, 3613, 3616, 3619, 3622, 3625, | |
2671 3628, 3631, 3634, 3637, 3640, 3643, 3646, 3649, 3532, 3535, 3538, 3541, 3544, 3547, 3550, 3553, | |
2672 3556, 3559, 3562, 3565, 3568, 3571, 3574, 3577, 3580, 3583, 3586, 3589, 3592, 3595, 3598, 3601, | |
2673 3604, 3607, 3610, 3613, 3616, 3619, 3622, 3625, 3628, 3631, 3634, 3637, 3640, 3643, 3646, 3649, | |
2674 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2677 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2679 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2680 3652, 3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3682, 3685, 3688, 3691, 3694, 3697, | |
2681 3700, 3703, 3706, 3709, 3712, 3715, 3718, 3721, 3724, 3727, 3730, 3733, 3736, 3739, 3742, 3745, | |
2682 3748, 3751, 3754, 3757, 0, 0, 0, 0, 3652, 3655, 3658, 3661, 3664, 3667, 3670, 3673, | |
2683 3676, 3679, 3682, 3685, 3688, 3691, 3694, 3697, 3700, 3703, 3706, 3709, 3712, 3715, 3718, 3721, | |
2684 3724, 3727, 3730, 3733, 3736, 3739, 3742, 3745, 3748, 3751, 3754, 3757, 0, 0, 0, 0, | |
2685 | |
2686 // For u+105xx (5888) | |
2687 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2688 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2689 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2690 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2692 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2693 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2694 3760, 3763, 3766, 3769, 3772, 3775, 3778, 3781, 3784, 3787, 3790, 0, 3793, 3796, 3799, 3802, | |
2695 3805, 3808, 3811, 3814, 3817, 3820, 3823, 3826, 3829, 3832, 3835, 0, 3838, 3841, 3844, 3847, | |
2696 3850, 3853, 3856, 0, 3859, 3862, 0, 3760, 3763, 3766, 3769, 3772, 3775, 3778, 3781, 3784, | |
2697 3787, 3790, 0, 3793, 3796, 3799, 3802, 3805, 3808, 3811, 3814, 3817, 3820, 3823, 3826, 3829, | |
2698 3832, 3835, 0, 3838, 3841, 3844, 3847, 3850, 3853, 3856, 0, 3859, 3862, 0, 0, 0, | |
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2703 | |
2704 // For u+10Cxx (6144) | |
2705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2709 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2711 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2712 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2713 3865, 3868, 3871, 3874, 3877, 3880, 3883, 3886, 3889, 3892, 3895, 3898, 3901, 3904, 3907, 3910, | |
2714 3913, 3916, 3919, 3922, 3925, 3928, 3931, 3934, 3937, 3940, 3943, 3946, 3949, 3952, 3955, 3958, | |
2715 3961, 3964, 3967, 3970, 3973, 3976, 3979, 3982, 3985, 3988, 3991, 3994, 3997, 4000, 4003, 4006, | |
2716 4009, 4012, 4015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2717 3865, 3868, 3871, 3874, 3877, 3880, 3883, 3886, 3889, 3892, 3895, 3898, 3901, 3904, 3907, 3910, | |
2718 3913, 3916, 3919, 3922, 3925, 3928, 3931, 3934, 3937, 3940, 3943, 3946, 3949, 3952, 3955, 3958, | |
2719 3961, 3964, 3967, 3970, 3973, 3976, 3979, 3982, 3985, 3988, 3991, 3994, 3997, 4000, 4003, 4006, | |
2720 4009, 4012, 4015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2721 | |
2722 // For u+118xx (6400) | |
2723 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2724 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2725 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2726 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2727 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2728 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2733 4018, 4021, 4024, 4027, 4030, 4033, 4036, 4039, 4042, 4045, 4048, 4051, 4054, 4057, 4060, 4063, | |
2734 4066, 4069, 4072, 4075, 4078, 4081, 4084, 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, | |
2735 4018, 4021, 4024, 4027, 4030, 4033, 4036, 4039, 4042, 4045, 4048, 4051, 4054, 4057, 4060, 4063, | |
2736 4066, 4069, 4072, 4075, 4078, 4081, 4084, 4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, | |
2737 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2738 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2739 | |
2740 // For u+16Exx (6656) | |
2741 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2743 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2744 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2745 4114, 4117, 4120, 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156, 4159, | |
2746 4162, 4165, 4168, 4171, 4174, 4177, 4180, 4183, 4186, 4189, 4192, 4195, 4198, 4201, 4204, 4207, | |
2747 4114, 4117, 4120, 4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156, 4159, | |
2748 4162, 4165, 4168, 4171, 4174, 4177, 4180, 4183, 4186, 4189, 4192, 4195, 4198, 4201, 4204, 4207, | |
2749 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2750 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2752 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2754 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2755 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2756 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2757 | |
2758 // For u+1E9xx (6912) | |
2759 4210, 4213, 4216, 4219, 4222, 4225, 4228, 4231, 4234, 4237, 4240, 4243, 4246, 4249, 4252, 4255, | |
2760 4258, 4261, 4264, 4267, 4270, 4273, 4276, 4279, 4282, 4285, 4288, 4291, 4294, 4297, 4300, 4303, | |
2761 4306, 4309, 4210, 4213, 4216, 4219, 4222, 4225, 4228, 4231, 4234, 4237, 4240, 4243, 4246, 4249, | |
2762 4252, 4255, 4258, 4261, 4264, 4267, 4270, 4273, 4276, 4279, 4282, 4285, 4288, 4291, 4294, 4297, | |
2763 4300, 4303, 4306, 4309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2765 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2766 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2767 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2770 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2771 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2774 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | |
2775 }; | |
2776 | |
2777 template <typename T2, typename T3> | |
2778 const T3 unicode_casefolding<T2, T3>::rev_segmenttable[] = | |
2779 { | |
2780 256, 768, 1280, 1024, 2048, 2560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2781 3072, 0, 0, 3328, 0, 0, 0, 0, 0, 0, 0, 0, 2304, 4352, 3840, 1792, | |
2782 0, 512, 0, 0, 4096, 0, 0, 0, 0, 0, 0, 0, 1536, 2816, 0, 0, | |
2783 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2785 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2788 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2789 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2790 0, 0, 0, 0, 0, 0, 3584, 4608, 0, 0, 0, 4864, 0, 0, 0, 0, | |
2791 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2793 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5120, 0, 0, 0, 5376, | |
2796 0, 0, 0, 0, 5632, 5888, 0, 0, 0, 0, 0, 0, 6144, 0, 0, 0, | |
2797 0, 0, 0, 0, 0, 0, 0, 0, 6400, 0, 0, 0, 0, 0, 0, 0, | |
2798 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2799 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2800 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2801 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6656, 0, | |
2803 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2804 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2805 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2807 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2809 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
2810 0, 0, 0, 0, 0, 0, 0, 0, 0, 6912 | |
2811 }; | |
2812 | |
2813 template <typename T2, typename T3> | |
2814 const T2 unicode_casefolding<T2, T3>::rev_charsettable[] = | |
2815 { | |
2816 eos, // 0 | |
2817 0x0061, 0x0041, eos, | |
2818 0x0062, 0x0042, eos, | |
2819 0x0063, 0x0043, eos, | |
2820 0x0064, 0x0044, eos, // 10 | |
2821 0x0065, 0x0045, eos, | |
2822 0x0066, 0x0046, eos, | |
2823 0x0067, 0x0047, eos, | |
2824 0x0068, 0x0048, eos, // 22 | |
2825 0x0069, 0x0049, eos, | |
2826 0x006A, 0x004A, eos, | |
2827 0x006B, 0x004B, 0x212A, eos, // 31 | |
2828 0x006C, 0x004C, eos, | |
2829 0x006D, 0x004D, eos, | |
2830 0x006E, 0x004E, eos, // 41 | |
2831 0x006F, 0x004F, eos, | |
2832 0x0070, 0x0050, eos, | |
2833 0x0071, 0x0051, eos, // 50 | |
2834 0x0072, 0x0052, eos, | |
2835 0x0073, 0x0053, 0x017F, eos, | |
2836 0x0074, 0x0054, eos, // 60 | |
2837 0x0075, 0x0055, eos, | |
2838 0x0076, 0x0056, eos, | |
2839 0x0077, 0x0057, eos, | |
2840 0x0078, 0x0058, eos, // 72 | |
2841 0x0079, 0x0059, eos, | |
2842 0x007A, 0x005A, eos, | |
2843 0x03BC, 0x00B5, 0x039C, eos, // 81 | |
2844 0x00E0, 0x00C0, eos, | |
2845 0x00E1, 0x00C1, eos, | |
2846 0x00E2, 0x00C2, eos, // 91 | |
2847 0x00E3, 0x00C3, eos, | |
2848 0x00E4, 0x00C4, eos, | |
2849 0x00E5, 0x00C5, 0x212B, eos, // 100 | |
2850 0x00E6, 0x00C6, eos, | |
2851 0x00E7, 0x00C7, eos, | |
2852 0x00E8, 0x00C8, eos, // 110 | |
2853 0x00E9, 0x00C9, eos, | |
2854 0x00EA, 0x00CA, eos, | |
2855 0x00EB, 0x00CB, eos, | |
2856 0x00EC, 0x00CC, eos, // 122 | |
2857 0x00ED, 0x00CD, eos, | |
2858 0x00EE, 0x00CE, eos, | |
2859 0x00EF, 0x00CF, eos, // 131 | |
2860 0x00F0, 0x00D0, eos, | |
2861 0x00F1, 0x00D1, eos, | |
2862 0x00F2, 0x00D2, eos, // 140 | |
2863 0x00F3, 0x00D3, eos, | |
2864 0x00F4, 0x00D4, eos, | |
2865 0x00F5, 0x00D5, eos, | |
2866 0x00F6, 0x00D6, eos, // 152 | |
2867 0x00F8, 0x00D8, eos, | |
2868 0x00F9, 0x00D9, eos, | |
2869 0x00FA, 0x00DA, eos, // 161 | |
2870 0x00FB, 0x00DB, eos, | |
2871 0x00FC, 0x00DC, eos, | |
2872 0x00FD, 0x00DD, eos, // 170 | |
2873 0x00FE, 0x00DE, eos, | |
2874 0x0101, 0x0100, eos, | |
2875 0x0103, 0x0102, eos, | |
2876 0x0105, 0x0104, eos, // 182 | |
2877 0x0107, 0x0106, eos, | |
2878 0x0109, 0x0108, eos, | |
2879 0x010B, 0x010A, eos, // 191 | |
2880 0x010D, 0x010C, eos, | |
2881 0x010F, 0x010E, eos, | |
2882 0x0111, 0x0110, eos, // 200 | |
2883 0x0113, 0x0112, eos, | |
2884 0x0115, 0x0114, eos, | |
2885 0x0117, 0x0116, eos, | |
2886 0x0119, 0x0118, eos, // 212 | |
2887 0x011B, 0x011A, eos, | |
2888 0x011D, 0x011C, eos, | |
2889 0x011F, 0x011E, eos, // 221 | |
2890 0x0121, 0x0120, eos, | |
2891 0x0123, 0x0122, eos, | |
2892 0x0125, 0x0124, eos, // 230 | |
2893 0x0127, 0x0126, eos, | |
2894 0x0129, 0x0128, eos, | |
2895 0x012B, 0x012A, eos, | |
2896 0x012D, 0x012C, eos, // 242 | |
2897 0x012F, 0x012E, eos, | |
2898 0x0133, 0x0132, eos, | |
2899 0x0135, 0x0134, eos, // 251 | |
2900 0x0137, 0x0136, eos, | |
2901 0x013A, 0x0139, eos, | |
2902 0x013C, 0x013B, eos, // 260 | |
2903 0x013E, 0x013D, eos, | |
2904 0x0140, 0x013F, eos, | |
2905 0x0142, 0x0141, eos, | |
2906 0x0144, 0x0143, eos, // 272 | |
2907 0x0146, 0x0145, eos, | |
2908 0x0148, 0x0147, eos, | |
2909 0x014B, 0x014A, eos, // 281 | |
2910 0x014D, 0x014C, eos, | |
2911 0x014F, 0x014E, eos, | |
2912 0x0151, 0x0150, eos, // 290 | |
2913 0x0153, 0x0152, eos, | |
2914 0x0155, 0x0154, eos, | |
2915 0x0157, 0x0156, eos, | |
2916 0x0159, 0x0158, eos, // 302 | |
2917 0x015B, 0x015A, eos, | |
2918 0x015D, 0x015C, eos, | |
2919 0x015F, 0x015E, eos, // 311 | |
2920 0x0161, 0x0160, eos, | |
2921 0x0163, 0x0162, eos, | |
2922 0x0165, 0x0164, eos, // 320 | |
2923 0x0167, 0x0166, eos, | |
2924 0x0169, 0x0168, eos, | |
2925 0x016B, 0x016A, eos, | |
2926 0x016D, 0x016C, eos, // 332 | |
2927 0x016F, 0x016E, eos, | |
2928 0x0171, 0x0170, eos, | |
2929 0x0173, 0x0172, eos, // 341 | |
2930 0x0175, 0x0174, eos, | |
2931 0x0177, 0x0176, eos, | |
2932 0x00FF, 0x0178, eos, // 350 | |
2933 0x017A, 0x0179, eos, | |
2934 0x017C, 0x017B, eos, | |
2935 0x017E, 0x017D, eos, | |
2936 0x0253, 0x0181, eos, // 362 | |
2937 0x0183, 0x0182, eos, | |
2938 0x0185, 0x0184, eos, | |
2939 0x0254, 0x0186, eos, // 371 | |
2940 0x0188, 0x0187, eos, | |
2941 0x0256, 0x0189, eos, | |
2942 0x0257, 0x018A, eos, // 380 | |
2943 0x018C, 0x018B, eos, | |
2944 0x01DD, 0x018E, eos, | |
2945 0x0259, 0x018F, eos, | |
2946 0x025B, 0x0190, eos, // 392 | |
2947 0x0192, 0x0191, eos, | |
2948 0x0260, 0x0193, eos, | |
2949 0x0263, 0x0194, eos, // 401 | |
2950 0x0269, 0x0196, eos, | |
2951 0x0268, 0x0197, eos, | |
2952 0x0199, 0x0198, eos, // 410 | |
2953 0x026F, 0x019C, eos, | |
2954 0x0272, 0x019D, eos, | |
2955 0x0275, 0x019F, eos, | |
2956 0x01A1, 0x01A0, eos, // 422 | |
2957 0x01A3, 0x01A2, eos, | |
2958 0x01A5, 0x01A4, eos, | |
2959 0x0280, 0x01A6, eos, // 431 | |
2960 0x01A8, 0x01A7, eos, | |
2961 0x0283, 0x01A9, eos, | |
2962 0x01AD, 0x01AC, eos, // 440 | |
2963 0x0288, 0x01AE, eos, | |
2964 0x01B0, 0x01AF, eos, | |
2965 0x028A, 0x01B1, eos, | |
2966 0x028B, 0x01B2, eos, // 452 | |
2967 0x01B4, 0x01B3, eos, | |
2968 0x01B6, 0x01B5, eos, | |
2969 0x0292, 0x01B7, eos, // 461 | |
2970 0x01B9, 0x01B8, eos, | |
2971 0x01BD, 0x01BC, eos, | |
2972 0x01C6, 0x01C4, 0x01C5, eos, // 470 | |
2973 0x01C9, 0x01C7, 0x01C8, eos, | |
2974 0x01CC, 0x01CA, 0x01CB, eos, | |
2975 0x01CE, 0x01CD, eos, // 482 | |
2976 0x01D0, 0x01CF, eos, | |
2977 0x01D2, 0x01D1, eos, | |
2978 0x01D4, 0x01D3, eos, // 491 | |
2979 0x01D6, 0x01D5, eos, | |
2980 0x01D8, 0x01D7, eos, | |
2981 0x01DA, 0x01D9, eos, // 500 | |
2982 0x01DC, 0x01DB, eos, | |
2983 0x01DF, 0x01DE, eos, | |
2984 0x01E1, 0x01E0, eos, | |
2985 0x01E3, 0x01E2, eos, // 512 | |
2986 0x01E5, 0x01E4, eos, | |
2987 0x01E7, 0x01E6, eos, | |
2988 0x01E9, 0x01E8, eos, // 521 | |
2989 0x01EB, 0x01EA, eos, | |
2990 0x01ED, 0x01EC, eos, | |
2991 0x01EF, 0x01EE, eos, // 530 | |
2992 0x01F3, 0x01F1, 0x01F2, eos, | |
2993 0x01F5, 0x01F4, eos, | |
2994 0x0195, 0x01F6, eos, // 540 | |
2995 0x01BF, 0x01F7, eos, | |
2996 0x01F9, 0x01F8, eos, | |
2997 0x01FB, 0x01FA, eos, | |
2998 0x01FD, 0x01FC, eos, // 552 | |
2999 0x01FF, 0x01FE, eos, | |
3000 0x0201, 0x0200, eos, | |
3001 0x0203, 0x0202, eos, // 561 | |
3002 0x0205, 0x0204, eos, | |
3003 0x0207, 0x0206, eos, | |
3004 0x0209, 0x0208, eos, // 570 | |
3005 0x020B, 0x020A, eos, | |
3006 0x020D, 0x020C, eos, | |
3007 0x020F, 0x020E, eos, | |
3008 0x0211, 0x0210, eos, // 582 | |
3009 0x0213, 0x0212, eos, | |
3010 0x0215, 0x0214, eos, | |
3011 0x0217, 0x0216, eos, // 591 | |
3012 0x0219, 0x0218, eos, | |
3013 0x021B, 0x021A, eos, | |
3014 0x021D, 0x021C, eos, // 600 | |
3015 0x021F, 0x021E, eos, | |
3016 0x019E, 0x0220, eos, | |
3017 0x0223, 0x0222, eos, | |
3018 0x0225, 0x0224, eos, // 612 | |
3019 0x0227, 0x0226, eos, | |
3020 0x0229, 0x0228, eos, | |
3021 0x022B, 0x022A, eos, // 621 | |
3022 0x022D, 0x022C, eos, | |
3023 0x022F, 0x022E, eos, | |
3024 0x0231, 0x0230, eos, // 630 | |
3025 0x0233, 0x0232, eos, | |
3026 0x2C65, 0x023A, eos, | |
3027 0x023C, 0x023B, eos, | |
3028 0x019A, 0x023D, eos, // 642 | |
3029 0x2C66, 0x023E, eos, | |
3030 0x0242, 0x0241, eos, | |
3031 0x0180, 0x0243, eos, // 651 | |
3032 0x0289, 0x0244, eos, | |
3033 0x028C, 0x0245, eos, | |
3034 0x0247, 0x0246, eos, // 660 | |
3035 0x0249, 0x0248, eos, | |
3036 0x024B, 0x024A, eos, | |
3037 0x024D, 0x024C, eos, | |
3038 0x024F, 0x024E, eos, // 672 | |
3039 0x03B9, 0x0345, 0x0399, 0x1FBE, eos, | |
3040 0x0371, 0x0370, eos, // 680 | |
3041 0x0373, 0x0372, eos, | |
3042 0x0377, 0x0376, eos, | |
3043 0x03F3, 0x037F, eos, | |
3044 0x03AC, 0x0386, eos, // 692 | |
3045 0x03AD, 0x0388, eos, | |
3046 0x03AE, 0x0389, eos, | |
3047 0x03AF, 0x038A, eos, // 701 | |
3048 0x03CC, 0x038C, eos, | |
3049 0x03CD, 0x038E, eos, | |
3050 0x03CE, 0x038F, eos, // 710 | |
3051 0x03B1, 0x0391, eos, | |
3052 0x03B2, 0x0392, 0x03D0, eos, | |
3053 0x03B3, 0x0393, eos, // 720 | |
3054 0x03B4, 0x0394, eos, | |
3055 0x03B5, 0x0395, 0x03F5, eos, | |
3056 0x03B6, 0x0396, eos, // 730 | |
3057 0x03B7, 0x0397, eos, | |
3058 0x03B8, 0x0398, 0x03D1, 0x03F4, eos, | |
3059 0x03BA, 0x039A, 0x03F0, eos, // 741 | |
3060 0x03BB, 0x039B, eos, | |
3061 0x03BD, 0x039D, eos, | |
3062 0x03BE, 0x039E, eos, // 751 | |
3063 0x03BF, 0x039F, eos, | |
3064 0x03C0, 0x03A0, 0x03D6, eos, | |
3065 0x03C1, 0x03A1, 0x03F1, eos, // 761 | |
3066 0x03C3, 0x03A3, 0x03C2, eos, | |
3067 0x03C4, 0x03A4, eos, | |
3068 0x03C5, 0x03A5, eos, // 772 | |
3069 0x03C6, 0x03A6, 0x03D5, eos, | |
3070 0x03C7, 0x03A7, eos, | |
3071 0x03C8, 0x03A8, eos, // 782 | |
3072 0x03C9, 0x03A9, 0x2126, eos, | |
3073 0x03CA, 0x03AA, eos, | |
3074 0x03CB, 0x03AB, eos, // 792 | |
3075 0x03D7, 0x03CF, eos, | |
3076 0x03D9, 0x03D8, eos, | |
3077 0x03DB, 0x03DA, eos, // 801 | |
3078 0x03DD, 0x03DC, eos, | |
3079 0x03DF, 0x03DE, eos, | |
3080 0x03E1, 0x03E0, eos, // 810 | |
3081 0x03E3, 0x03E2, eos, | |
3082 0x03E5, 0x03E4, eos, | |
3083 0x03E7, 0x03E6, eos, | |
3084 0x03E9, 0x03E8, eos, // 822 | |
3085 0x03EB, 0x03EA, eos, | |
3086 0x03ED, 0x03EC, eos, | |
3087 0x03EF, 0x03EE, eos, // 831 | |
3088 0x03F8, 0x03F7, eos, | |
3089 0x03F2, 0x03F9, eos, | |
3090 0x03FB, 0x03FA, eos, // 840 | |
3091 0x037B, 0x03FD, eos, | |
3092 0x037C, 0x03FE, eos, | |
3093 0x037D, 0x03FF, eos, | |
3094 0x0450, 0x0400, eos, // 852 | |
3095 0x0451, 0x0401, eos, | |
3096 0x0452, 0x0402, eos, | |
3097 0x0453, 0x0403, eos, // 861 | |
3098 0x0454, 0x0404, eos, | |
3099 0x0455, 0x0405, eos, | |
3100 0x0456, 0x0406, eos, // 870 | |
3101 0x0457, 0x0407, eos, | |
3102 0x0458, 0x0408, eos, | |
3103 0x0459, 0x0409, eos, | |
3104 0x045A, 0x040A, eos, // 882 | |
3105 0x045B, 0x040B, eos, | |
3106 0x045C, 0x040C, eos, | |
3107 0x045D, 0x040D, eos, // 891 | |
3108 0x045E, 0x040E, eos, | |
3109 0x045F, 0x040F, eos, | |
3110 0x0430, 0x0410, eos, // 900 | |
3111 0x0431, 0x0411, eos, | |
3112 0x0432, 0x0412, 0x1C80, eos, | |
3113 0x0433, 0x0413, eos, // 910 | |
3114 0x0434, 0x0414, 0x1C81, eos, | |
3115 0x0435, 0x0415, eos, | |
3116 0x0436, 0x0416, eos, // 920 | |
3117 0x0437, 0x0417, eos, | |
3118 0x0438, 0x0418, eos, | |
3119 0x0439, 0x0419, eos, | |
3120 0x043A, 0x041A, eos, // 932 | |
3121 0x043B, 0x041B, eos, | |
3122 0x043C, 0x041C, eos, | |
3123 0x043D, 0x041D, eos, // 941 | |
3124 0x043E, 0x041E, 0x1C82, eos, | |
3125 0x043F, 0x041F, eos, | |
3126 0x0440, 0x0420, eos, // 951 | |
3127 0x0441, 0x0421, 0x1C83, eos, | |
3128 0x0442, 0x0422, 0x1C84, 0x1C85, eos, | |
3129 0x0443, 0x0423, eos, // 963 | |
3130 0x0444, 0x0424, eos, | |
3131 0x0445, 0x0425, eos, | |
3132 0x0446, 0x0426, eos, // 972 | |
3133 0x0447, 0x0427, eos, | |
3134 0x0448, 0x0428, eos, | |
3135 0x0449, 0x0429, eos, // 981 | |
3136 0x044A, 0x042A, 0x1C86, eos, | |
3137 0x044B, 0x042B, eos, | |
3138 0x044C, 0x042C, eos, // 991 | |
3139 0x044D, 0x042D, eos, | |
3140 0x044E, 0x042E, eos, | |
3141 0x044F, 0x042F, eos, // 1000 | |
3142 0x0461, 0x0460, eos, | |
3143 0x0463, 0x0462, 0x1C87, eos, | |
3144 0x0465, 0x0464, eos, // 1010 | |
3145 0x0467, 0x0466, eos, | |
3146 0x0469, 0x0468, eos, | |
3147 0x046B, 0x046A, eos, | |
3148 0x046D, 0x046C, eos, // 1022 | |
3149 0x046F, 0x046E, eos, | |
3150 0x0471, 0x0470, eos, | |
3151 0x0473, 0x0472, eos, // 1031 | |
3152 0x0475, 0x0474, eos, | |
3153 0x0477, 0x0476, eos, | |
3154 0x0479, 0x0478, eos, // 1040 | |
3155 0x047B, 0x047A, eos, | |
3156 0x047D, 0x047C, eos, | |
3157 0x047F, 0x047E, eos, | |
3158 0x0481, 0x0480, eos, // 1052 | |
3159 0x048B, 0x048A, eos, | |
3160 0x048D, 0x048C, eos, | |
3161 0x048F, 0x048E, eos, // 1061 | |
3162 0x0491, 0x0490, eos, | |
3163 0x0493, 0x0492, eos, | |
3164 0x0495, 0x0494, eos, // 1070 | |
3165 0x0497, 0x0496, eos, | |
3166 0x0499, 0x0498, eos, | |
3167 0x049B, 0x049A, eos, | |
3168 0x049D, 0x049C, eos, // 1082 | |
3169 0x049F, 0x049E, eos, | |
3170 0x04A1, 0x04A0, eos, | |
3171 0x04A3, 0x04A2, eos, // 1091 | |
3172 0x04A5, 0x04A4, eos, | |
3173 0x04A7, 0x04A6, eos, | |
3174 0x04A9, 0x04A8, eos, // 1100 | |
3175 0x04AB, 0x04AA, eos, | |
3176 0x04AD, 0x04AC, eos, | |
3177 0x04AF, 0x04AE, eos, | |
3178 0x04B1, 0x04B0, eos, // 1112 | |
3179 0x04B3, 0x04B2, eos, | |
3180 0x04B5, 0x04B4, eos, | |
3181 0x04B7, 0x04B6, eos, // 1121 | |
3182 0x04B9, 0x04B8, eos, | |
3183 0x04BB, 0x04BA, eos, | |
3184 0x04BD, 0x04BC, eos, // 1130 | |
3185 0x04BF, 0x04BE, eos, | |
3186 0x04CF, 0x04C0, eos, | |
3187 0x04C2, 0x04C1, eos, | |
3188 0x04C4, 0x04C3, eos, // 1142 | |
3189 0x04C6, 0x04C5, eos, | |
3190 0x04C8, 0x04C7, eos, | |
3191 0x04CA, 0x04C9, eos, // 1151 | |
3192 0x04CC, 0x04CB, eos, | |
3193 0x04CE, 0x04CD, eos, | |
3194 0x04D1, 0x04D0, eos, // 1160 | |
3195 0x04D3, 0x04D2, eos, | |
3196 0x04D5, 0x04D4, eos, | |
3197 0x04D7, 0x04D6, eos, | |
3198 0x04D9, 0x04D8, eos, // 1172 | |
3199 0x04DB, 0x04DA, eos, | |
3200 0x04DD, 0x04DC, eos, | |
3201 0x04DF, 0x04DE, eos, // 1181 | |
3202 0x04E1, 0x04E0, eos, | |
3203 0x04E3, 0x04E2, eos, | |
3204 0x04E5, 0x04E4, eos, // 1190 | |
3205 0x04E7, 0x04E6, eos, | |
3206 0x04E9, 0x04E8, eos, | |
3207 0x04EB, 0x04EA, eos, | |
3208 0x04ED, 0x04EC, eos, // 1202 | |
3209 0x04EF, 0x04EE, eos, | |
3210 0x04F1, 0x04F0, eos, | |
3211 0x04F3, 0x04F2, eos, // 1211 | |
3212 0x04F5, 0x04F4, eos, | |
3213 0x04F7, 0x04F6, eos, | |
3214 0x04F9, 0x04F8, eos, // 1220 | |
3215 0x04FB, 0x04FA, eos, | |
3216 0x04FD, 0x04FC, eos, | |
3217 0x04FF, 0x04FE, eos, | |
3218 0x0501, 0x0500, eos, // 1232 | |
3219 0x0503, 0x0502, eos, | |
3220 0x0505, 0x0504, eos, | |
3221 0x0507, 0x0506, eos, // 1241 | |
3222 0x0509, 0x0508, eos, | |
3223 0x050B, 0x050A, eos, | |
3224 0x050D, 0x050C, eos, // 1250 | |
3225 0x050F, 0x050E, eos, | |
3226 0x0511, 0x0510, eos, | |
3227 0x0513, 0x0512, eos, | |
3228 0x0515, 0x0514, eos, // 1262 | |
3229 0x0517, 0x0516, eos, | |
3230 0x0519, 0x0518, eos, | |
3231 0x051B, 0x051A, eos, // 1271 | |
3232 0x051D, 0x051C, eos, | |
3233 0x051F, 0x051E, eos, | |
3234 0x0521, 0x0520, eos, // 1280 | |
3235 0x0523, 0x0522, eos, | |
3236 0x0525, 0x0524, eos, | |
3237 0x0527, 0x0526, eos, | |
3238 0x0529, 0x0528, eos, // 1292 | |
3239 0x052B, 0x052A, eos, | |
3240 0x052D, 0x052C, eos, | |
3241 0x052F, 0x052E, eos, // 1301 | |
3242 0x0561, 0x0531, eos, | |
3243 0x0562, 0x0532, eos, | |
3244 0x0563, 0x0533, eos, // 1310 | |
3245 0x0564, 0x0534, eos, | |
3246 0x0565, 0x0535, eos, | |
3247 0x0566, 0x0536, eos, | |
3248 0x0567, 0x0537, eos, // 1322 | |
3249 0x0568, 0x0538, eos, | |
3250 0x0569, 0x0539, eos, | |
3251 0x056A, 0x053A, eos, // 1331 | |
3252 0x056B, 0x053B, eos, | |
3253 0x056C, 0x053C, eos, | |
3254 0x056D, 0x053D, eos, // 1340 | |
3255 0x056E, 0x053E, eos, | |
3256 0x056F, 0x053F, eos, | |
3257 0x0570, 0x0540, eos, | |
3258 0x0571, 0x0541, eos, // 1352 | |
3259 0x0572, 0x0542, eos, | |
3260 0x0573, 0x0543, eos, | |
3261 0x0574, 0x0544, eos, // 1361 | |
3262 0x0575, 0x0545, eos, | |
3263 0x0576, 0x0546, eos, | |
3264 0x0577, 0x0547, eos, // 1370 | |
3265 0x0578, 0x0548, eos, | |
3266 0x0579, 0x0549, eos, | |
3267 0x057A, 0x054A, eos, | |
3268 0x057B, 0x054B, eos, // 1382 | |
3269 0x057C, 0x054C, eos, | |
3270 0x057D, 0x054D, eos, | |
3271 0x057E, 0x054E, eos, // 1391 | |
3272 0x057F, 0x054F, eos, | |
3273 0x0580, 0x0550, eos, | |
3274 0x0581, 0x0551, eos, // 1400 | |
3275 0x0582, 0x0552, eos, | |
3276 0x0583, 0x0553, eos, | |
3277 0x0584, 0x0554, eos, | |
3278 0x0585, 0x0555, eos, // 1412 | |
3279 0x0586, 0x0556, eos, | |
3280 0x2D00, 0x10A0, eos, | |
3281 0x2D01, 0x10A1, eos, // 1421 | |
3282 0x2D02, 0x10A2, eos, | |
3283 0x2D03, 0x10A3, eos, | |
3284 0x2D04, 0x10A4, eos, // 1430 | |
3285 0x2D05, 0x10A5, eos, | |
3286 0x2D06, 0x10A6, eos, | |
3287 0x2D07, 0x10A7, eos, | |
3288 0x2D08, 0x10A8, eos, // 1442 | |
3289 0x2D09, 0x10A9, eos, | |
3290 0x2D0A, 0x10AA, eos, | |
3291 0x2D0B, 0x10AB, eos, // 1451 | |
3292 0x2D0C, 0x10AC, eos, | |
3293 0x2D0D, 0x10AD, eos, | |
3294 0x2D0E, 0x10AE, eos, // 1460 | |
3295 0x2D0F, 0x10AF, eos, | |
3296 0x2D10, 0x10B0, eos, | |
3297 0x2D11, 0x10B1, eos, | |
3298 0x2D12, 0x10B2, eos, // 1472 | |
3299 0x2D13, 0x10B3, eos, | |
3300 0x2D14, 0x10B4, eos, | |
3301 0x2D15, 0x10B5, eos, // 1481 | |
3302 0x2D16, 0x10B6, eos, | |
3303 0x2D17, 0x10B7, eos, | |
3304 0x2D18, 0x10B8, eos, // 1490 | |
3305 0x2D19, 0x10B9, eos, | |
3306 0x2D1A, 0x10BA, eos, | |
3307 0x2D1B, 0x10BB, eos, | |
3308 0x2D1C, 0x10BC, eos, // 1502 | |
3309 0x2D1D, 0x10BD, eos, | |
3310 0x2D1E, 0x10BE, eos, | |
3311 0x2D1F, 0x10BF, eos, // 1511 | |
3312 0x2D20, 0x10C0, eos, | |
3313 0x2D21, 0x10C1, eos, | |
3314 0x2D22, 0x10C2, eos, // 1520 | |
3315 0x2D23, 0x10C3, eos, | |
3316 0x2D24, 0x10C4, eos, | |
3317 0x2D25, 0x10C5, eos, | |
3318 0x2D27, 0x10C7, eos, // 1532 | |
3319 0x2D2D, 0x10CD, eos, | |
3320 0x13F0, 0x13F8, eos, | |
3321 0x13F1, 0x13F9, eos, // 1541 | |
3322 0x13F2, 0x13FA, eos, | |
3323 0x13F3, 0x13FB, eos, | |
3324 0x13F4, 0x13FC, eos, // 1550 | |
3325 0x13F5, 0x13FD, eos, | |
3326 0xA64B, 0x1C88, 0xA64A, eos, | |
3327 0x10D0, 0x1C90, eos, // 1560 | |
3328 0x10D1, 0x1C91, eos, | |
3329 0x10D2, 0x1C92, eos, | |
3330 0x10D3, 0x1C93, eos, | |
3331 0x10D4, 0x1C94, eos, // 1572 | |
3332 0x10D5, 0x1C95, eos, | |
3333 0x10D6, 0x1C96, eos, | |
3334 0x10D7, 0x1C97, eos, // 1581 | |
3335 0x10D8, 0x1C98, eos, | |
3336 0x10D9, 0x1C99, eos, | |
3337 0x10DA, 0x1C9A, eos, // 1590 | |
3338 0x10DB, 0x1C9B, eos, | |
3339 0x10DC, 0x1C9C, eos, | |
3340 0x10DD, 0x1C9D, eos, | |
3341 0x10DE, 0x1C9E, eos, // 1602 | |
3342 0x10DF, 0x1C9F, eos, | |
3343 0x10E0, 0x1CA0, eos, | |
3344 0x10E1, 0x1CA1, eos, // 1611 | |
3345 0x10E2, 0x1CA2, eos, | |
3346 0x10E3, 0x1CA3, eos, | |
3347 0x10E4, 0x1CA4, eos, // 1620 | |
3348 0x10E5, 0x1CA5, eos, | |
3349 0x10E6, 0x1CA6, eos, | |
3350 0x10E7, 0x1CA7, eos, | |
3351 0x10E8, 0x1CA8, eos, // 1632 | |
3352 0x10E9, 0x1CA9, eos, | |
3353 0x10EA, 0x1CAA, eos, | |
3354 0x10EB, 0x1CAB, eos, // 1641 | |
3355 0x10EC, 0x1CAC, eos, | |
3356 0x10ED, 0x1CAD, eos, | |
3357 0x10EE, 0x1CAE, eos, // 1650 | |
3358 0x10EF, 0x1CAF, eos, | |
3359 0x10F0, 0x1CB0, eos, | |
3360 0x10F1, 0x1CB1, eos, | |
3361 0x10F2, 0x1CB2, eos, // 1662 | |
3362 0x10F3, 0x1CB3, eos, | |
3363 0x10F4, 0x1CB4, eos, | |
3364 0x10F5, 0x1CB5, eos, // 1671 | |
3365 0x10F6, 0x1CB6, eos, | |
3366 0x10F7, 0x1CB7, eos, | |
3367 0x10F8, 0x1CB8, eos, // 1680 | |
3368 0x10F9, 0x1CB9, eos, | |
3369 0x10FA, 0x1CBA, eos, | |
3370 0x10FD, 0x1CBD, eos, | |
3371 0x10FE, 0x1CBE, eos, // 1692 | |
3372 0x10FF, 0x1CBF, eos, | |
3373 0x1E01, 0x1E00, eos, | |
3374 0x1E03, 0x1E02, eos, // 1701 | |
3375 0x1E05, 0x1E04, eos, | |
3376 0x1E07, 0x1E06, eos, | |
3377 0x1E09, 0x1E08, eos, // 1710 | |
3378 0x1E0B, 0x1E0A, eos, | |
3379 0x1E0D, 0x1E0C, eos, | |
3380 0x1E0F, 0x1E0E, eos, | |
3381 0x1E11, 0x1E10, eos, // 1722 | |
3382 0x1E13, 0x1E12, eos, | |
3383 0x1E15, 0x1E14, eos, | |
3384 0x1E17, 0x1E16, eos, // 1731 | |
3385 0x1E19, 0x1E18, eos, | |
3386 0x1E1B, 0x1E1A, eos, | |
3387 0x1E1D, 0x1E1C, eos, // 1740 | |
3388 0x1E1F, 0x1E1E, eos, | |
3389 0x1E21, 0x1E20, eos, | |
3390 0x1E23, 0x1E22, eos, | |
3391 0x1E25, 0x1E24, eos, // 1752 | |
3392 0x1E27, 0x1E26, eos, | |
3393 0x1E29, 0x1E28, eos, | |
3394 0x1E2B, 0x1E2A, eos, // 1761 | |
3395 0x1E2D, 0x1E2C, eos, | |
3396 0x1E2F, 0x1E2E, eos, | |
3397 0x1E31, 0x1E30, eos, // 1770 | |
3398 0x1E33, 0x1E32, eos, | |
3399 0x1E35, 0x1E34, eos, | |
3400 0x1E37, 0x1E36, eos, | |
3401 0x1E39, 0x1E38, eos, // 1782 | |
3402 0x1E3B, 0x1E3A, eos, | |
3403 0x1E3D, 0x1E3C, eos, | |
3404 0x1E3F, 0x1E3E, eos, // 1791 | |
3405 0x1E41, 0x1E40, eos, | |
3406 0x1E43, 0x1E42, eos, | |
3407 0x1E45, 0x1E44, eos, // 1800 | |
3408 0x1E47, 0x1E46, eos, | |
3409 0x1E49, 0x1E48, eos, | |
3410 0x1E4B, 0x1E4A, eos, | |
3411 0x1E4D, 0x1E4C, eos, // 1812 | |
3412 0x1E4F, 0x1E4E, eos, | |
3413 0x1E51, 0x1E50, eos, | |
3414 0x1E53, 0x1E52, eos, // 1821 | |
3415 0x1E55, 0x1E54, eos, | |
3416 0x1E57, 0x1E56, eos, | |
3417 0x1E59, 0x1E58, eos, // 1830 | |
3418 0x1E5B, 0x1E5A, eos, | |
3419 0x1E5D, 0x1E5C, eos, | |
3420 0x1E5F, 0x1E5E, eos, | |
3421 0x1E61, 0x1E60, 0x1E9B, eos, // 1842 | |
3422 0x1E63, 0x1E62, eos, | |
3423 0x1E65, 0x1E64, eos, | |
3424 0x1E67, 0x1E66, eos, // 1852 | |
3425 0x1E69, 0x1E68, eos, | |
3426 0x1E6B, 0x1E6A, eos, | |
3427 0x1E6D, 0x1E6C, eos, // 1861 | |
3428 0x1E6F, 0x1E6E, eos, | |
3429 0x1E71, 0x1E70, eos, | |
3430 0x1E73, 0x1E72, eos, // 1870 | |
3431 0x1E75, 0x1E74, eos, | |
3432 0x1E77, 0x1E76, eos, | |
3433 0x1E79, 0x1E78, eos, | |
3434 0x1E7B, 0x1E7A, eos, // 1882 | |
3435 0x1E7D, 0x1E7C, eos, | |
3436 0x1E7F, 0x1E7E, eos, | |
3437 0x1E81, 0x1E80, eos, // 1891 | |
3438 0x1E83, 0x1E82, eos, | |
3439 0x1E85, 0x1E84, eos, | |
3440 0x1E87, 0x1E86, eos, // 1900 | |
3441 0x1E89, 0x1E88, eos, | |
3442 0x1E8B, 0x1E8A, eos, | |
3443 0x1E8D, 0x1E8C, eos, | |
3444 0x1E8F, 0x1E8E, eos, // 1912 | |
3445 0x1E91, 0x1E90, eos, | |
3446 0x1E93, 0x1E92, eos, | |
3447 0x1E95, 0x1E94, eos, // 1921 | |
3448 0x00DF, 0x1E9E, eos, | |
3449 0x1EA1, 0x1EA0, eos, | |
3450 0x1EA3, 0x1EA2, eos, // 1930 | |
3451 0x1EA5, 0x1EA4, eos, | |
3452 0x1EA7, 0x1EA6, eos, | |
3453 0x1EA9, 0x1EA8, eos, | |
3454 0x1EAB, 0x1EAA, eos, // 1942 | |
3455 0x1EAD, 0x1EAC, eos, | |
3456 0x1EAF, 0x1EAE, eos, | |
3457 0x1EB1, 0x1EB0, eos, // 1951 | |
3458 0x1EB3, 0x1EB2, eos, | |
3459 0x1EB5, 0x1EB4, eos, | |
3460 0x1EB7, 0x1EB6, eos, // 1960 | |
3461 0x1EB9, 0x1EB8, eos, | |
3462 0x1EBB, 0x1EBA, eos, | |
3463 0x1EBD, 0x1EBC, eos, | |
3464 0x1EBF, 0x1EBE, eos, // 1972 | |
3465 0x1EC1, 0x1EC0, eos, | |
3466 0x1EC3, 0x1EC2, eos, | |
3467 0x1EC5, 0x1EC4, eos, // 1981 | |
3468 0x1EC7, 0x1EC6, eos, | |
3469 0x1EC9, 0x1EC8, eos, | |
3470 0x1ECB, 0x1ECA, eos, // 1990 | |
3471 0x1ECD, 0x1ECC, eos, | |
3472 0x1ECF, 0x1ECE, eos, | |
3473 0x1ED1, 0x1ED0, eos, | |
3474 0x1ED3, 0x1ED2, eos, // 2002 | |
3475 0x1ED5, 0x1ED4, eos, | |
3476 0x1ED7, 0x1ED6, eos, | |
3477 0x1ED9, 0x1ED8, eos, // 2011 | |
3478 0x1EDB, 0x1EDA, eos, | |
3479 0x1EDD, 0x1EDC, eos, | |
3480 0x1EDF, 0x1EDE, eos, // 2020 | |
3481 0x1EE1, 0x1EE0, eos, | |
3482 0x1EE3, 0x1EE2, eos, | |
3483 0x1EE5, 0x1EE4, eos, | |
3484 0x1EE7, 0x1EE6, eos, // 2032 | |
3485 0x1EE9, 0x1EE8, eos, | |
3486 0x1EEB, 0x1EEA, eos, | |
3487 0x1EED, 0x1EEC, eos, // 2041 | |
3488 0x1EEF, 0x1EEE, eos, | |
3489 0x1EF1, 0x1EF0, eos, | |
3490 0x1EF3, 0x1EF2, eos, // 2050 | |
3491 0x1EF5, 0x1EF4, eos, | |
3492 0x1EF7, 0x1EF6, eos, | |
3493 0x1EF9, 0x1EF8, eos, | |
3494 0x1EFB, 0x1EFA, eos, // 2062 | |
3495 0x1EFD, 0x1EFC, eos, | |
3496 0x1EFF, 0x1EFE, eos, | |
3497 0x1F00, 0x1F08, eos, // 2071 | |
3498 0x1F01, 0x1F09, eos, | |
3499 0x1F02, 0x1F0A, eos, | |
3500 0x1F03, 0x1F0B, eos, // 2080 | |
3501 0x1F04, 0x1F0C, eos, | |
3502 0x1F05, 0x1F0D, eos, | |
3503 0x1F06, 0x1F0E, eos, | |
3504 0x1F07, 0x1F0F, eos, // 2092 | |
3505 0x1F10, 0x1F18, eos, | |
3506 0x1F11, 0x1F19, eos, | |
3507 0x1F12, 0x1F1A, eos, // 2101 | |
3508 0x1F13, 0x1F1B, eos, | |
3509 0x1F14, 0x1F1C, eos, | |
3510 0x1F15, 0x1F1D, eos, // 2110 | |
3511 0x1F20, 0x1F28, eos, | |
3512 0x1F21, 0x1F29, eos, | |
3513 0x1F22, 0x1F2A, eos, | |
3514 0x1F23, 0x1F2B, eos, // 2122 | |
3515 0x1F24, 0x1F2C, eos, | |
3516 0x1F25, 0x1F2D, eos, | |
3517 0x1F26, 0x1F2E, eos, // 2131 | |
3518 0x1F27, 0x1F2F, eos, | |
3519 0x1F30, 0x1F38, eos, | |
3520 0x1F31, 0x1F39, eos, // 2140 | |
3521 0x1F32, 0x1F3A, eos, | |
3522 0x1F33, 0x1F3B, eos, | |
3523 0x1F34, 0x1F3C, eos, | |
3524 0x1F35, 0x1F3D, eos, // 2152 | |
3525 0x1F36, 0x1F3E, eos, | |
3526 0x1F37, 0x1F3F, eos, | |
3527 0x1F40, 0x1F48, eos, // 2161 | |
3528 0x1F41, 0x1F49, eos, | |
3529 0x1F42, 0x1F4A, eos, | |
3530 0x1F43, 0x1F4B, eos, // 2170 | |
3531 0x1F44, 0x1F4C, eos, | |
3532 0x1F45, 0x1F4D, eos, | |
3533 0x1F51, 0x1F59, eos, | |
3534 0x1F53, 0x1F5B, eos, // 2182 | |
3535 0x1F55, 0x1F5D, eos, | |
3536 0x1F57, 0x1F5F, eos, | |
3537 0x1F60, 0x1F68, eos, // 2191 | |
3538 0x1F61, 0x1F69, eos, | |
3539 0x1F62, 0x1F6A, eos, | |
3540 0x1F63, 0x1F6B, eos, // 2200 | |
3541 0x1F64, 0x1F6C, eos, | |
3542 0x1F65, 0x1F6D, eos, | |
3543 0x1F66, 0x1F6E, eos, | |
3544 0x1F67, 0x1F6F, eos, // 2212 | |
3545 0x1F80, 0x1F88, eos, | |
3546 0x1F81, 0x1F89, eos, | |
3547 0x1F82, 0x1F8A, eos, // 2221 | |
3548 0x1F83, 0x1F8B, eos, | |
3549 0x1F84, 0x1F8C, eos, | |
3550 0x1F85, 0x1F8D, eos, // 2230 | |
3551 0x1F86, 0x1F8E, eos, | |
3552 0x1F87, 0x1F8F, eos, | |
3553 0x1F90, 0x1F98, eos, | |
3554 0x1F91, 0x1F99, eos, // 2242 | |
3555 0x1F92, 0x1F9A, eos, | |
3556 0x1F93, 0x1F9B, eos, | |
3557 0x1F94, 0x1F9C, eos, // 2251 | |
3558 0x1F95, 0x1F9D, eos, | |
3559 0x1F96, 0x1F9E, eos, | |
3560 0x1F97, 0x1F9F, eos, // 2260 | |
3561 0x1FA0, 0x1FA8, eos, | |
3562 0x1FA1, 0x1FA9, eos, | |
3563 0x1FA2, 0x1FAA, eos, | |
3564 0x1FA3, 0x1FAB, eos, // 2272 | |
3565 0x1FA4, 0x1FAC, eos, | |
3566 0x1FA5, 0x1FAD, eos, | |
3567 0x1FA6, 0x1FAE, eos, // 2281 | |
3568 0x1FA7, 0x1FAF, eos, | |
3569 0x1FB0, 0x1FB8, eos, | |
3570 0x1FB1, 0x1FB9, eos, // 2290 | |
3571 0x1F70, 0x1FBA, eos, | |
3572 0x1F71, 0x1FBB, eos, | |
3573 0x1FB3, 0x1FBC, eos, | |
3574 0x1F72, 0x1FC8, eos, // 2302 | |
3575 0x1F73, 0x1FC9, eos, | |
3576 0x1F74, 0x1FCA, eos, | |
3577 0x1F75, 0x1FCB, eos, // 2311 | |
3578 0x1FC3, 0x1FCC, eos, | |
3579 0x0390, 0x1FD3, eos, | |
3580 0x1FD0, 0x1FD8, eos, // 2320 | |
3581 0x1FD1, 0x1FD9, eos, | |
3582 0x1F76, 0x1FDA, eos, | |
3583 0x1F77, 0x1FDB, eos, | |
3584 0x03B0, 0x1FE3, eos, // 2332 | |
3585 0x1FE0, 0x1FE8, eos, | |
3586 0x1FE1, 0x1FE9, eos, | |
3587 0x1F7A, 0x1FEA, eos, // 2341 | |
3588 0x1F7B, 0x1FEB, eos, | |
3589 0x1FE5, 0x1FEC, eos, | |
3590 0x1F78, 0x1FF8, eos, // 2350 | |
3591 0x1F79, 0x1FF9, eos, | |
3592 0x1F7C, 0x1FFA, eos, | |
3593 0x1F7D, 0x1FFB, eos, | |
3594 0x1FF3, 0x1FFC, eos, // 2362 | |
3595 0x214E, 0x2132, eos, | |
3596 0x2170, 0x2160, eos, | |
3597 0x2171, 0x2161, eos, // 2371 | |
3598 0x2172, 0x2162, eos, | |
3599 0x2173, 0x2163, eos, | |
3600 0x2174, 0x2164, eos, // 2380 | |
3601 0x2175, 0x2165, eos, | |
3602 0x2176, 0x2166, eos, | |
3603 0x2177, 0x2167, eos, | |
3604 0x2178, 0x2168, eos, // 2392 | |
3605 0x2179, 0x2169, eos, | |
3606 0x217A, 0x216A, eos, | |
3607 0x217B, 0x216B, eos, // 2401 | |
3608 0x217C, 0x216C, eos, | |
3609 0x217D, 0x216D, eos, | |
3610 0x217E, 0x216E, eos, // 2410 | |
3611 0x217F, 0x216F, eos, | |
3612 0x2184, 0x2183, eos, | |
3613 0x24D0, 0x24B6, eos, | |
3614 0x24D1, 0x24B7, eos, // 2422 | |
3615 0x24D2, 0x24B8, eos, | |
3616 0x24D3, 0x24B9, eos, | |
3617 0x24D4, 0x24BA, eos, // 2431 | |
3618 0x24D5, 0x24BB, eos, | |
3619 0x24D6, 0x24BC, eos, | |
3620 0x24D7, 0x24BD, eos, // 2440 | |
3621 0x24D8, 0x24BE, eos, | |
3622 0x24D9, 0x24BF, eos, | |
3623 0x24DA, 0x24C0, eos, | |
3624 0x24DB, 0x24C1, eos, // 2452 | |
3625 0x24DC, 0x24C2, eos, | |
3626 0x24DD, 0x24C3, eos, | |
3627 0x24DE, 0x24C4, eos, // 2461 | |
3628 0x24DF, 0x24C5, eos, | |
3629 0x24E0, 0x24C6, eos, | |
3630 0x24E1, 0x24C7, eos, // 2470 | |
3631 0x24E2, 0x24C8, eos, | |
3632 0x24E3, 0x24C9, eos, | |
3633 0x24E4, 0x24CA, eos, | |
3634 0x24E5, 0x24CB, eos, // 2482 | |
3635 0x24E6, 0x24CC, eos, | |
3636 0x24E7, 0x24CD, eos, | |
3637 0x24E8, 0x24CE, eos, // 2491 | |
3638 0x24E9, 0x24CF, eos, | |
3639 0x2C30, 0x2C00, eos, | |
3640 0x2C31, 0x2C01, eos, // 2500 | |
3641 0x2C32, 0x2C02, eos, | |
3642 0x2C33, 0x2C03, eos, | |
3643 0x2C34, 0x2C04, eos, | |
3644 0x2C35, 0x2C05, eos, // 2512 | |
3645 0x2C36, 0x2C06, eos, | |
3646 0x2C37, 0x2C07, eos, | |
3647 0x2C38, 0x2C08, eos, // 2521 | |
3648 0x2C39, 0x2C09, eos, | |
3649 0x2C3A, 0x2C0A, eos, | |
3650 0x2C3B, 0x2C0B, eos, // 2530 | |
3651 0x2C3C, 0x2C0C, eos, | |
3652 0x2C3D, 0x2C0D, eos, | |
3653 0x2C3E, 0x2C0E, eos, | |
3654 0x2C3F, 0x2C0F, eos, // 2542 | |
3655 0x2C40, 0x2C10, eos, | |
3656 0x2C41, 0x2C11, eos, | |
3657 0x2C42, 0x2C12, eos, // 2551 | |
3658 0x2C43, 0x2C13, eos, | |
3659 0x2C44, 0x2C14, eos, | |
3660 0x2C45, 0x2C15, eos, // 2560 | |
3661 0x2C46, 0x2C16, eos, | |
3662 0x2C47, 0x2C17, eos, | |
3663 0x2C48, 0x2C18, eos, | |
3664 0x2C49, 0x2C19, eos, // 2572 | |
3665 0x2C4A, 0x2C1A, eos, | |
3666 0x2C4B, 0x2C1B, eos, | |
3667 0x2C4C, 0x2C1C, eos, // 2581 | |
3668 0x2C4D, 0x2C1D, eos, | |
3669 0x2C4E, 0x2C1E, eos, | |
3670 0x2C4F, 0x2C1F, eos, // 2590 | |
3671 0x2C50, 0x2C20, eos, | |
3672 0x2C51, 0x2C21, eos, | |
3673 0x2C52, 0x2C22, eos, | |
3674 0x2C53, 0x2C23, eos, // 2602 | |
3675 0x2C54, 0x2C24, eos, | |
3676 0x2C55, 0x2C25, eos, | |
3677 0x2C56, 0x2C26, eos, // 2611 | |
3678 0x2C57, 0x2C27, eos, | |
3679 0x2C58, 0x2C28, eos, | |
3680 0x2C59, 0x2C29, eos, // 2620 | |
3681 0x2C5A, 0x2C2A, eos, | |
3682 0x2C5B, 0x2C2B, eos, | |
3683 0x2C5C, 0x2C2C, eos, | |
3684 0x2C5D, 0x2C2D, eos, // 2632 | |
3685 0x2C5E, 0x2C2E, eos, | |
3686 0x2C5F, 0x2C2F, eos, | |
3687 0x2C61, 0x2C60, eos, // 2641 | |
3688 0x026B, 0x2C62, eos, | |
3689 0x1D7D, 0x2C63, eos, | |
3690 0x027D, 0x2C64, eos, // 2650 | |
3691 0x2C68, 0x2C67, eos, | |
3692 0x2C6A, 0x2C69, eos, | |
3693 0x2C6C, 0x2C6B, eos, | |
3694 0x0251, 0x2C6D, eos, // 2662 | |
3695 0x0271, 0x2C6E, eos, | |
3696 0x0250, 0x2C6F, eos, | |
3697 0x0252, 0x2C70, eos, // 2671 | |
3698 0x2C73, 0x2C72, eos, | |
3699 0x2C76, 0x2C75, eos, | |
3700 0x023F, 0x2C7E, eos, // 2680 | |
3701 0x0240, 0x2C7F, eos, | |
3702 0x2C81, 0x2C80, eos, | |
3703 0x2C83, 0x2C82, eos, | |
3704 0x2C85, 0x2C84, eos, // 2692 | |
3705 0x2C87, 0x2C86, eos, | |
3706 0x2C89, 0x2C88, eos, | |
3707 0x2C8B, 0x2C8A, eos, // 2701 | |
3708 0x2C8D, 0x2C8C, eos, | |
3709 0x2C8F, 0x2C8E, eos, | |
3710 0x2C91, 0x2C90, eos, // 2710 | |
3711 0x2C93, 0x2C92, eos, | |
3712 0x2C95, 0x2C94, eos, | |
3713 0x2C97, 0x2C96, eos, | |
3714 0x2C99, 0x2C98, eos, // 2722 | |
3715 0x2C9B, 0x2C9A, eos, | |
3716 0x2C9D, 0x2C9C, eos, | |
3717 0x2C9F, 0x2C9E, eos, // 2731 | |
3718 0x2CA1, 0x2CA0, eos, | |
3719 0x2CA3, 0x2CA2, eos, | |
3720 0x2CA5, 0x2CA4, eos, // 2740 | |
3721 0x2CA7, 0x2CA6, eos, | |
3722 0x2CA9, 0x2CA8, eos, | |
3723 0x2CAB, 0x2CAA, eos, | |
3724 0x2CAD, 0x2CAC, eos, // 2752 | |
3725 0x2CAF, 0x2CAE, eos, | |
3726 0x2CB1, 0x2CB0, eos, | |
3727 0x2CB3, 0x2CB2, eos, // 2761 | |
3728 0x2CB5, 0x2CB4, eos, | |
3729 0x2CB7, 0x2CB6, eos, | |
3730 0x2CB9, 0x2CB8, eos, // 2770 | |
3731 0x2CBB, 0x2CBA, eos, | |
3732 0x2CBD, 0x2CBC, eos, | |
3733 0x2CBF, 0x2CBE, eos, | |
3734 0x2CC1, 0x2CC0, eos, // 2782 | |
3735 0x2CC3, 0x2CC2, eos, | |
3736 0x2CC5, 0x2CC4, eos, | |
3737 0x2CC7, 0x2CC6, eos, // 2791 | |
3738 0x2CC9, 0x2CC8, eos, | |
3739 0x2CCB, 0x2CCA, eos, | |
3740 0x2CCD, 0x2CCC, eos, // 2800 | |
3741 0x2CCF, 0x2CCE, eos, | |
3742 0x2CD1, 0x2CD0, eos, | |
3743 0x2CD3, 0x2CD2, eos, | |
3744 0x2CD5, 0x2CD4, eos, // 2812 | |
3745 0x2CD7, 0x2CD6, eos, | |
3746 0x2CD9, 0x2CD8, eos, | |
3747 0x2CDB, 0x2CDA, eos, // 2821 | |
3748 0x2CDD, 0x2CDC, eos, | |
3749 0x2CDF, 0x2CDE, eos, | |
3750 0x2CE1, 0x2CE0, eos, // 2830 | |
3751 0x2CE3, 0x2CE2, eos, | |
3752 0x2CEC, 0x2CEB, eos, | |
3753 0x2CEE, 0x2CED, eos, | |
3754 0x2CF3, 0x2CF2, eos, // 2842 | |
3755 0xA641, 0xA640, eos, | |
3756 0xA643, 0xA642, eos, | |
3757 0xA645, 0xA644, eos, // 2851 | |
3758 0xA647, 0xA646, eos, | |
3759 0xA649, 0xA648, eos, | |
3760 0xA64D, 0xA64C, eos, // 2860 | |
3761 0xA64F, 0xA64E, eos, | |
3762 0xA651, 0xA650, eos, | |
3763 0xA653, 0xA652, eos, | |
3764 0xA655, 0xA654, eos, // 2872 | |
3765 0xA657, 0xA656, eos, | |
3766 0xA659, 0xA658, eos, | |
3767 0xA65B, 0xA65A, eos, // 2881 | |
3768 0xA65D, 0xA65C, eos, | |
3769 0xA65F, 0xA65E, eos, | |
3770 0xA661, 0xA660, eos, // 2890 | |
3771 0xA663, 0xA662, eos, | |
3772 0xA665, 0xA664, eos, | |
3773 0xA667, 0xA666, eos, | |
3774 0xA669, 0xA668, eos, // 2902 | |
3775 0xA66B, 0xA66A, eos, | |
3776 0xA66D, 0xA66C, eos, | |
3777 0xA681, 0xA680, eos, // 2911 | |
3778 0xA683, 0xA682, eos, | |
3779 0xA685, 0xA684, eos, | |
3780 0xA687, 0xA686, eos, // 2920 | |
3781 0xA689, 0xA688, eos, | |
3782 0xA68B, 0xA68A, eos, | |
3783 0xA68D, 0xA68C, eos, | |
3784 0xA68F, 0xA68E, eos, // 2932 | |
3785 0xA691, 0xA690, eos, | |
3786 0xA693, 0xA692, eos, | |
3787 0xA695, 0xA694, eos, // 2941 | |
3788 0xA697, 0xA696, eos, | |
3789 0xA699, 0xA698, eos, | |
3790 0xA69B, 0xA69A, eos, // 2950 | |
3791 0xA723, 0xA722, eos, | |
3792 0xA725, 0xA724, eos, | |
3793 0xA727, 0xA726, eos, | |
3794 0xA729, 0xA728, eos, // 2962 | |
3795 0xA72B, 0xA72A, eos, | |
3796 0xA72D, 0xA72C, eos, | |
3797 0xA72F, 0xA72E, eos, // 2971 | |
3798 0xA733, 0xA732, eos, | |
3799 0xA735, 0xA734, eos, | |
3800 0xA737, 0xA736, eos, // 2980 | |
3801 0xA739, 0xA738, eos, | |
3802 0xA73B, 0xA73A, eos, | |
3803 0xA73D, 0xA73C, eos, | |
3804 0xA73F, 0xA73E, eos, // 2992 | |
3805 0xA741, 0xA740, eos, | |
3806 0xA743, 0xA742, eos, | |
3807 0xA745, 0xA744, eos, // 3001 | |
3808 0xA747, 0xA746, eos, | |
3809 0xA749, 0xA748, eos, | |
3810 0xA74B, 0xA74A, eos, // 3010 | |
3811 0xA74D, 0xA74C, eos, | |
3812 0xA74F, 0xA74E, eos, | |
3813 0xA751, 0xA750, eos, | |
3814 0xA753, 0xA752, eos, // 3022 | |
3815 0xA755, 0xA754, eos, | |
3816 0xA757, 0xA756, eos, | |
3817 0xA759, 0xA758, eos, // 3031 | |
3818 0xA75B, 0xA75A, eos, | |
3819 0xA75D, 0xA75C, eos, | |
3820 0xA75F, 0xA75E, eos, // 3040 | |
3821 0xA761, 0xA760, eos, | |
3822 0xA763, 0xA762, eos, | |
3823 0xA765, 0xA764, eos, | |
3824 0xA767, 0xA766, eos, // 3052 | |
3825 0xA769, 0xA768, eos, | |
3826 0xA76B, 0xA76A, eos, | |
3827 0xA76D, 0xA76C, eos, // 3061 | |
3828 0xA76F, 0xA76E, eos, | |
3829 0xA77A, 0xA779, eos, | |
3830 0xA77C, 0xA77B, eos, // 3070 | |
3831 0x1D79, 0xA77D, eos, | |
3832 0xA77F, 0xA77E, eos, | |
3833 0xA781, 0xA780, eos, | |
3834 0xA783, 0xA782, eos, // 3082 | |
3835 0xA785, 0xA784, eos, | |
3836 0xA787, 0xA786, eos, | |
3837 0xA78C, 0xA78B, eos, // 3091 | |
3838 0x0265, 0xA78D, eos, | |
3839 0xA791, 0xA790, eos, | |
3840 0xA793, 0xA792, eos, // 3100 | |
3841 0xA797, 0xA796, eos, | |
3842 0xA799, 0xA798, eos, | |
3843 0xA79B, 0xA79A, eos, | |
3844 0xA79D, 0xA79C, eos, // 3112 | |
3845 0xA79F, 0xA79E, eos, | |
3846 0xA7A1, 0xA7A0, eos, | |
3847 0xA7A3, 0xA7A2, eos, // 3121 | |
3848 0xA7A5, 0xA7A4, eos, | |
3849 0xA7A7, 0xA7A6, eos, | |
3850 0xA7A9, 0xA7A8, eos, // 3130 | |
3851 0x0266, 0xA7AA, eos, | |
3852 0x025C, 0xA7AB, eos, | |
3853 0x0261, 0xA7AC, eos, | |
3854 0x026C, 0xA7AD, eos, // 3142 | |
3855 0x026A, 0xA7AE, eos, | |
3856 0x029E, 0xA7B0, eos, | |
3857 0x0287, 0xA7B1, eos, // 3151 | |
3858 0x029D, 0xA7B2, eos, | |
3859 0xAB53, 0xA7B3, eos, | |
3860 0xA7B5, 0xA7B4, eos, // 3160 | |
3861 0xA7B7, 0xA7B6, eos, | |
3862 0xA7B9, 0xA7B8, eos, | |
3863 0xA7BB, 0xA7BA, eos, | |
3864 0xA7BD, 0xA7BC, eos, // 3172 | |
3865 0xA7BF, 0xA7BE, eos, | |
3866 0xA7C1, 0xA7C0, eos, | |
3867 0xA7C3, 0xA7C2, eos, // 3181 | |
3868 0xA794, 0xA7C4, eos, | |
3869 0x0282, 0xA7C5, eos, | |
3870 0x1D8E, 0xA7C6, eos, // 3190 | |
3871 0xA7C8, 0xA7C7, eos, | |
3872 0xA7CA, 0xA7C9, eos, | |
3873 0xA7D1, 0xA7D0, eos, | |
3874 0xA7D7, 0xA7D6, eos, // 3202 | |
3875 0xA7D9, 0xA7D8, eos, | |
3876 0xA7F6, 0xA7F5, eos, | |
3877 0x13A0, 0xAB70, eos, // 3211 | |
3878 0x13A1, 0xAB71, eos, | |
3879 0x13A2, 0xAB72, eos, | |
3880 0x13A3, 0xAB73, eos, // 3220 | |
3881 0x13A4, 0xAB74, eos, | |
3882 0x13A5, 0xAB75, eos, | |
3883 0x13A6, 0xAB76, eos, | |
3884 0x13A7, 0xAB77, eos, // 3232 | |
3885 0x13A8, 0xAB78, eos, | |
3886 0x13A9, 0xAB79, eos, | |
3887 0x13AA, 0xAB7A, eos, // 3241 | |
3888 0x13AB, 0xAB7B, eos, | |
3889 0x13AC, 0xAB7C, eos, | |
3890 0x13AD, 0xAB7D, eos, // 3250 | |
3891 0x13AE, 0xAB7E, eos, | |
3892 0x13AF, 0xAB7F, eos, | |
3893 0x13B0, 0xAB80, eos, | |
3894 0x13B1, 0xAB81, eos, // 3262 | |
3895 0x13B2, 0xAB82, eos, | |
3896 0x13B3, 0xAB83, eos, | |
3897 0x13B4, 0xAB84, eos, // 3271 | |
3898 0x13B5, 0xAB85, eos, | |
3899 0x13B6, 0xAB86, eos, | |
3900 0x13B7, 0xAB87, eos, // 3280 | |
3901 0x13B8, 0xAB88, eos, | |
3902 0x13B9, 0xAB89, eos, | |
3903 0x13BA, 0xAB8A, eos, | |
3904 0x13BB, 0xAB8B, eos, // 3292 | |
3905 0x13BC, 0xAB8C, eos, | |
3906 0x13BD, 0xAB8D, eos, | |
3907 0x13BE, 0xAB8E, eos, // 3301 | |
3908 0x13BF, 0xAB8F, eos, | |
3909 0x13C0, 0xAB90, eos, | |
3910 0x13C1, 0xAB91, eos, // 3310 | |
3911 0x13C2, 0xAB92, eos, | |
3912 0x13C3, 0xAB93, eos, | |
3913 0x13C4, 0xAB94, eos, | |
3914 0x13C5, 0xAB95, eos, // 3322 | |
3915 0x13C6, 0xAB96, eos, | |
3916 0x13C7, 0xAB97, eos, | |
3917 0x13C8, 0xAB98, eos, // 3331 | |
3918 0x13C9, 0xAB99, eos, | |
3919 0x13CA, 0xAB9A, eos, | |
3920 0x13CB, 0xAB9B, eos, // 3340 | |
3921 0x13CC, 0xAB9C, eos, | |
3922 0x13CD, 0xAB9D, eos, | |
3923 0x13CE, 0xAB9E, eos, | |
3924 0x13CF, 0xAB9F, eos, // 3352 | |
3925 0x13D0, 0xABA0, eos, | |
3926 0x13D1, 0xABA1, eos, | |
3927 0x13D2, 0xABA2, eos, // 3361 | |
3928 0x13D3, 0xABA3, eos, | |
3929 0x13D4, 0xABA4, eos, | |
3930 0x13D5, 0xABA5, eos, // 3370 | |
3931 0x13D6, 0xABA6, eos, | |
3932 0x13D7, 0xABA7, eos, | |
3933 0x13D8, 0xABA8, eos, | |
3934 0x13D9, 0xABA9, eos, // 3382 | |
3935 0x13DA, 0xABAA, eos, | |
3936 0x13DB, 0xABAB, eos, | |
3937 0x13DC, 0xABAC, eos, // 3391 | |
3938 0x13DD, 0xABAD, eos, | |
3939 0x13DE, 0xABAE, eos, | |
3940 0x13DF, 0xABAF, eos, // 3400 | |
3941 0x13E0, 0xABB0, eos, | |
3942 0x13E1, 0xABB1, eos, | |
3943 0x13E2, 0xABB2, eos, | |
3944 0x13E3, 0xABB3, eos, // 3412 | |
3945 0x13E4, 0xABB4, eos, | |
3946 0x13E5, 0xABB5, eos, | |
3947 0x13E6, 0xABB6, eos, // 3421 | |
3948 0x13E7, 0xABB7, eos, | |
3949 0x13E8, 0xABB8, eos, | |
3950 0x13E9, 0xABB9, eos, // 3430 | |
3951 0x13EA, 0xABBA, eos, | |
3952 0x13EB, 0xABBB, eos, | |
3953 0x13EC, 0xABBC, eos, | |
3954 0x13ED, 0xABBD, eos, // 3442 | |
3955 0x13EE, 0xABBE, eos, | |
3956 0x13EF, 0xABBF, eos, | |
3957 0xFB06, 0xFB05, eos, // 3451 | |
3958 0xFF41, 0xFF21, eos, | |
3959 0xFF42, 0xFF22, eos, | |
3960 0xFF43, 0xFF23, eos, // 3460 | |
3961 0xFF44, 0xFF24, eos, | |
3962 0xFF45, 0xFF25, eos, | |
3963 0xFF46, 0xFF26, eos, | |
3964 0xFF47, 0xFF27, eos, // 3472 | |
3965 0xFF48, 0xFF28, eos, | |
3966 0xFF49, 0xFF29, eos, | |
3967 0xFF4A, 0xFF2A, eos, // 3481 | |
3968 0xFF4B, 0xFF2B, eos, | |
3969 0xFF4C, 0xFF2C, eos, | |
3970 0xFF4D, 0xFF2D, eos, // 3490 | |
3971 0xFF4E, 0xFF2E, eos, | |
3972 0xFF4F, 0xFF2F, eos, | |
3973 0xFF50, 0xFF30, eos, | |
3974 0xFF51, 0xFF31, eos, // 3502 | |
3975 0xFF52, 0xFF32, eos, | |
3976 0xFF53, 0xFF33, eos, | |
3977 0xFF54, 0xFF34, eos, // 3511 | |
3978 0xFF55, 0xFF35, eos, | |
3979 0xFF56, 0xFF36, eos, | |
3980 0xFF57, 0xFF37, eos, // 3520 | |
3981 0xFF58, 0xFF38, eos, | |
3982 0xFF59, 0xFF39, eos, | |
3983 0xFF5A, 0xFF3A, eos, | |
3984 0x10428, 0x10400, eos, // 3532 | |
3985 0x10429, 0x10401, eos, | |
3986 0x1042A, 0x10402, eos, | |
3987 0x1042B, 0x10403, eos, // 3541 | |
3988 0x1042C, 0x10404, eos, | |
3989 0x1042D, 0x10405, eos, | |
3990 0x1042E, 0x10406, eos, // 3550 | |
3991 0x1042F, 0x10407, eos, | |
3992 0x10430, 0x10408, eos, | |
3993 0x10431, 0x10409, eos, | |
3994 0x10432, 0x1040A, eos, // 3562 | |
3995 0x10433, 0x1040B, eos, | |
3996 0x10434, 0x1040C, eos, | |
3997 0x10435, 0x1040D, eos, // 3571 | |
3998 0x10436, 0x1040E, eos, | |
3999 0x10437, 0x1040F, eos, | |
4000 0x10438, 0x10410, eos, // 3580 | |
4001 0x10439, 0x10411, eos, | |
4002 0x1043A, 0x10412, eos, | |
4003 0x1043B, 0x10413, eos, | |
4004 0x1043C, 0x10414, eos, // 3592 | |
4005 0x1043D, 0x10415, eos, | |
4006 0x1043E, 0x10416, eos, | |
4007 0x1043F, 0x10417, eos, // 3601 | |
4008 0x10440, 0x10418, eos, | |
4009 0x10441, 0x10419, eos, | |
4010 0x10442, 0x1041A, eos, // 3610 | |
4011 0x10443, 0x1041B, eos, | |
4012 0x10444, 0x1041C, eos, | |
4013 0x10445, 0x1041D, eos, | |
4014 0x10446, 0x1041E, eos, // 3622 | |
4015 0x10447, 0x1041F, eos, | |
4016 0x10448, 0x10420, eos, | |
4017 0x10449, 0x10421, eos, // 3631 | |
4018 0x1044A, 0x10422, eos, | |
4019 0x1044B, 0x10423, eos, | |
4020 0x1044C, 0x10424, eos, // 3640 | |
4021 0x1044D, 0x10425, eos, | |
4022 0x1044E, 0x10426, eos, | |
4023 0x1044F, 0x10427, eos, | |
4024 0x104D8, 0x104B0, eos, // 3652 | |
4025 0x104D9, 0x104B1, eos, | |
4026 0x104DA, 0x104B2, eos, | |
4027 0x104DB, 0x104B3, eos, // 3661 | |
4028 0x104DC, 0x104B4, eos, | |
4029 0x104DD, 0x104B5, eos, | |
4030 0x104DE, 0x104B6, eos, // 3670 | |
4031 0x104DF, 0x104B7, eos, | |
4032 0x104E0, 0x104B8, eos, | |
4033 0x104E1, 0x104B9, eos, | |
4034 0x104E2, 0x104BA, eos, // 3682 | |
4035 0x104E3, 0x104BB, eos, | |
4036 0x104E4, 0x104BC, eos, | |
4037 0x104E5, 0x104BD, eos, // 3691 | |
4038 0x104E6, 0x104BE, eos, | |
4039 0x104E7, 0x104BF, eos, | |
4040 0x104E8, 0x104C0, eos, // 3700 | |
4041 0x104E9, 0x104C1, eos, | |
4042 0x104EA, 0x104C2, eos, | |
4043 0x104EB, 0x104C3, eos, | |
4044 0x104EC, 0x104C4, eos, // 3712 | |
4045 0x104ED, 0x104C5, eos, | |
4046 0x104EE, 0x104C6, eos, | |
4047 0x104EF, 0x104C7, eos, // 3721 | |
4048 0x104F0, 0x104C8, eos, | |
4049 0x104F1, 0x104C9, eos, | |
4050 0x104F2, 0x104CA, eos, // 3730 | |
4051 0x104F3, 0x104CB, eos, | |
4052 0x104F4, 0x104CC, eos, | |
4053 0x104F5, 0x104CD, eos, | |
4054 0x104F6, 0x104CE, eos, // 3742 | |
4055 0x104F7, 0x104CF, eos, | |
4056 0x104F8, 0x104D0, eos, | |
4057 0x104F9, 0x104D1, eos, // 3751 | |
4058 0x104FA, 0x104D2, eos, | |
4059 0x104FB, 0x104D3, eos, | |
4060 0x10597, 0x10570, eos, // 3760 | |
4061 0x10598, 0x10571, eos, | |
4062 0x10599, 0x10572, eos, | |
4063 0x1059A, 0x10573, eos, | |
4064 0x1059B, 0x10574, eos, // 3772 | |
4065 0x1059C, 0x10575, eos, | |
4066 0x1059D, 0x10576, eos, | |
4067 0x1059E, 0x10577, eos, // 3781 | |
4068 0x1059F, 0x10578, eos, | |
4069 0x105A0, 0x10579, eos, | |
4070 0x105A1, 0x1057A, eos, // 3790 | |
4071 0x105A3, 0x1057C, eos, | |
4072 0x105A4, 0x1057D, eos, | |
4073 0x105A5, 0x1057E, eos, | |
4074 0x105A6, 0x1057F, eos, // 3802 | |
4075 0x105A7, 0x10580, eos, | |
4076 0x105A8, 0x10581, eos, | |
4077 0x105A9, 0x10582, eos, // 3811 | |
4078 0x105AA, 0x10583, eos, | |
4079 0x105AB, 0x10584, eos, | |
4080 0x105AC, 0x10585, eos, // 3820 | |
4081 0x105AD, 0x10586, eos, | |
4082 0x105AE, 0x10587, eos, | |
4083 0x105AF, 0x10588, eos, | |
4084 0x105B0, 0x10589, eos, // 3832 | |
4085 0x105B1, 0x1058A, eos, | |
4086 0x105B3, 0x1058C, eos, | |
4087 0x105B4, 0x1058D, eos, // 3841 | |
4088 0x105B5, 0x1058E, eos, | |
4089 0x105B6, 0x1058F, eos, | |
4090 0x105B7, 0x10590, eos, // 3850 | |
4091 0x105B8, 0x10591, eos, | |
4092 0x105B9, 0x10592, eos, | |
4093 0x105BB, 0x10594, eos, | |
4094 0x105BC, 0x10595, eos, // 3862 | |
4095 0x10CC0, 0x10C80, eos, | |
4096 0x10CC1, 0x10C81, eos, | |
4097 0x10CC2, 0x10C82, eos, // 3871 | |
4098 0x10CC3, 0x10C83, eos, | |
4099 0x10CC4, 0x10C84, eos, | |
4100 0x10CC5, 0x10C85, eos, // 3880 | |
4101 0x10CC6, 0x10C86, eos, | |
4102 0x10CC7, 0x10C87, eos, | |
4103 0x10CC8, 0x10C88, eos, | |
4104 0x10CC9, 0x10C89, eos, // 3892 | |
4105 0x10CCA, 0x10C8A, eos, | |
4106 0x10CCB, 0x10C8B, eos, | |
4107 0x10CCC, 0x10C8C, eos, // 3901 | |
4108 0x10CCD, 0x10C8D, eos, | |
4109 0x10CCE, 0x10C8E, eos, | |
4110 0x10CCF, 0x10C8F, eos, // 3910 | |
4111 0x10CD0, 0x10C90, eos, | |
4112 0x10CD1, 0x10C91, eos, | |
4113 0x10CD2, 0x10C92, eos, | |
4114 0x10CD3, 0x10C93, eos, // 3922 | |
4115 0x10CD4, 0x10C94, eos, | |
4116 0x10CD5, 0x10C95, eos, | |
4117 0x10CD6, 0x10C96, eos, // 3931 | |
4118 0x10CD7, 0x10C97, eos, | |
4119 0x10CD8, 0x10C98, eos, | |
4120 0x10CD9, 0x10C99, eos, // 3940 | |
4121 0x10CDA, 0x10C9A, eos, | |
4122 0x10CDB, 0x10C9B, eos, | |
4123 0x10CDC, 0x10C9C, eos, | |
4124 0x10CDD, 0x10C9D, eos, // 3952 | |
4125 0x10CDE, 0x10C9E, eos, | |
4126 0x10CDF, 0x10C9F, eos, | |
4127 0x10CE0, 0x10CA0, eos, // 3961 | |
4128 0x10CE1, 0x10CA1, eos, | |
4129 0x10CE2, 0x10CA2, eos, | |
4130 0x10CE3, 0x10CA3, eos, // 3970 | |
4131 0x10CE4, 0x10CA4, eos, | |
4132 0x10CE5, 0x10CA5, eos, | |
4133 0x10CE6, 0x10CA6, eos, | |
4134 0x10CE7, 0x10CA7, eos, // 3982 | |
4135 0x10CE8, 0x10CA8, eos, | |
4136 0x10CE9, 0x10CA9, eos, | |
4137 0x10CEA, 0x10CAA, eos, // 3991 | |
4138 0x10CEB, 0x10CAB, eos, | |
4139 0x10CEC, 0x10CAC, eos, | |
4140 0x10CED, 0x10CAD, eos, // 4000 | |
4141 0x10CEE, 0x10CAE, eos, | |
4142 0x10CEF, 0x10CAF, eos, | |
4143 0x10CF0, 0x10CB0, eos, | |
4144 0x10CF1, 0x10CB1, eos, // 4012 | |
4145 0x10CF2, 0x10CB2, eos, | |
4146 0x118C0, 0x118A0, eos, | |
4147 0x118C1, 0x118A1, eos, // 4021 | |
4148 0x118C2, 0x118A2, eos, | |
4149 0x118C3, 0x118A3, eos, | |
4150 0x118C4, 0x118A4, eos, // 4030 | |
4151 0x118C5, 0x118A5, eos, | |
4152 0x118C6, 0x118A6, eos, | |
4153 0x118C7, 0x118A7, eos, | |
4154 0x118C8, 0x118A8, eos, // 4042 | |
4155 0x118C9, 0x118A9, eos, | |
4156 0x118CA, 0x118AA, eos, | |
4157 0x118CB, 0x118AB, eos, // 4051 | |
4158 0x118CC, 0x118AC, eos, | |
4159 0x118CD, 0x118AD, eos, | |
4160 0x118CE, 0x118AE, eos, // 4060 | |
4161 0x118CF, 0x118AF, eos, | |
4162 0x118D0, 0x118B0, eos, | |
4163 0x118D1, 0x118B1, eos, | |
4164 0x118D2, 0x118B2, eos, // 4072 | |
4165 0x118D3, 0x118B3, eos, | |
4166 0x118D4, 0x118B4, eos, | |
4167 0x118D5, 0x118B5, eos, // 4081 | |
4168 0x118D6, 0x118B6, eos, | |
4169 0x118D7, 0x118B7, eos, | |
4170 0x118D8, 0x118B8, eos, // 4090 | |
4171 0x118D9, 0x118B9, eos, | |
4172 0x118DA, 0x118BA, eos, | |
4173 0x118DB, 0x118BB, eos, | |
4174 0x118DC, 0x118BC, eos, // 4102 | |
4175 0x118DD, 0x118BD, eos, | |
4176 0x118DE, 0x118BE, eos, | |
4177 0x118DF, 0x118BF, eos, // 4111 | |
4178 0x16E60, 0x16E40, eos, | |
4179 0x16E61, 0x16E41, eos, | |
4180 0x16E62, 0x16E42, eos, // 4120 | |
4181 0x16E63, 0x16E43, eos, | |
4182 0x16E64, 0x16E44, eos, | |
4183 0x16E65, 0x16E45, eos, | |
4184 0x16E66, 0x16E46, eos, // 4132 | |
4185 0x16E67, 0x16E47, eos, | |
4186 0x16E68, 0x16E48, eos, | |
4187 0x16E69, 0x16E49, eos, // 4141 | |
4188 0x16E6A, 0x16E4A, eos, | |
4189 0x16E6B, 0x16E4B, eos, | |
4190 0x16E6C, 0x16E4C, eos, // 4150 | |
4191 0x16E6D, 0x16E4D, eos, | |
4192 0x16E6E, 0x16E4E, eos, | |
4193 0x16E6F, 0x16E4F, eos, | |
4194 0x16E70, 0x16E50, eos, // 4162 | |
4195 0x16E71, 0x16E51, eos, | |
4196 0x16E72, 0x16E52, eos, | |
4197 0x16E73, 0x16E53, eos, // 4171 | |
4198 0x16E74, 0x16E54, eos, | |
4199 0x16E75, 0x16E55, eos, | |
4200 0x16E76, 0x16E56, eos, // 4180 | |
4201 0x16E77, 0x16E57, eos, | |
4202 0x16E78, 0x16E58, eos, | |
4203 0x16E79, 0x16E59, eos, | |
4204 0x16E7A, 0x16E5A, eos, // 4192 | |
4205 0x16E7B, 0x16E5B, eos, | |
4206 0x16E7C, 0x16E5C, eos, | |
4207 0x16E7D, 0x16E5D, eos, // 4201 | |
4208 0x16E7E, 0x16E5E, eos, | |
4209 0x16E7F, 0x16E5F, eos, | |
4210 0x1E922, 0x1E900, eos, // 4210 | |
4211 0x1E923, 0x1E901, eos, | |
4212 0x1E924, 0x1E902, eos, | |
4213 0x1E925, 0x1E903, eos, | |
4214 0x1E926, 0x1E904, eos, // 4222 | |
4215 0x1E927, 0x1E905, eos, | |
4216 0x1E928, 0x1E906, eos, | |
4217 0x1E929, 0x1E907, eos, // 4231 | |
4218 0x1E92A, 0x1E908, eos, | |
4219 0x1E92B, 0x1E909, eos, | |
4220 0x1E92C, 0x1E90A, eos, // 4240 | |
4221 0x1E92D, 0x1E90B, eos, | |
4222 0x1E92E, 0x1E90C, eos, | |
4223 0x1E92F, 0x1E90D, eos, | |
4224 0x1E930, 0x1E90E, eos, // 4252 | |
4225 0x1E931, 0x1E90F, eos, | |
4226 0x1E932, 0x1E910, eos, | |
4227 0x1E933, 0x1E911, eos, // 4261 | |
4228 0x1E934, 0x1E912, eos, | |
4229 0x1E935, 0x1E913, eos, | |
4230 0x1E936, 0x1E914, eos, // 4270 | |
4231 0x1E937, 0x1E915, eos, | |
4232 0x1E938, 0x1E916, eos, | |
4233 0x1E939, 0x1E917, eos, | |
4234 0x1E93A, 0x1E918, eos, // 4282 | |
4235 0x1E93B, 0x1E919, eos, | |
4236 0x1E93C, 0x1E91A, eos, | |
4237 0x1E93D, 0x1E91B, eos, // 4291 | |
4238 0x1E93E, 0x1E91C, eos, | |
4239 0x1E93F, 0x1E91D, eos, | |
4240 0x1E940, 0x1E91E, eos, // 4300 | |
4241 0x1E941, 0x1E91F, eos, | |
4242 0x1E942, 0x1E920, eos, | |
4243 0x1E943, 0x1E921, eos // 4309 | |
4244 }; | |
4245 #define SRELL_UCFDATA_VERSION 201 | |
4246 // ... "srell_ucfdata2.h"] | |
4247 | |
4248 } // namespace ucf_constants | |
4249 | |
4250 namespace ucf_internal | |
4251 { | |
4252 | |
4253 typedef ucf_constants::unicode_casefolding<ui_l32, ui_l32> ucfdata; | |
4254 | |
4255 } // namespace ucf_internal | |
4256 #endif // !defined(SRELL_NO_UNICODE_ICASE) | |
4257 | |
4258 namespace ucf_constants | |
4259 { | |
4260 #if !defined(SRELL_NO_UNICODE_ICASE) | |
4261 static const ui_l32 rev_maxset = ucf_internal::ucfdata::rev_maxset; | |
4262 static const ui_l32 rev_maxcp = ucf_internal::ucfdata::rev_maxcodepoint; | |
4263 #else | |
4264 static const ui_l32 rev_maxset = 2; | |
4265 static const ui_l32 rev_maxcp = char_alnum::ch_z; | |
4266 #endif | |
4267 } // namespace ucf_constants | |
4268 | |
4269 class unicode_case_folding | |
4270 { | |
4271 public: | |
4272 | |
4273 static ui_l32 do_casefolding(const ui_l32 cp) | |
4274 { | |
4275 #if !defined(SRELL_NO_UNICODE_ICASE) | |
4276 if (cp <= ucf_internal::ucfdata::ucf_maxcodepoint) | |
4277 return cp + ucf_internal::ucfdata::ucf_deltatable[ucf_internal::ucfdata::ucf_segmenttable[cp >> 8] + (cp & 0xff)]; | |
4278 #else | |
4279 if (cp >= char_alnum::ch_A && cp <= char_alnum::ch_Z) // 'A' && 'Z' | |
4280 return static_cast<ui_l32>(cp - char_alnum::ch_A + char_alnum::ch_a); // - 'A' + 'a' | |
4281 #endif | |
4282 return cp; | |
4283 } | |
4284 | |
4285 static ui_l32 do_caseunfolding(ui_l32 out[ucf_constants::rev_maxset], const ui_l32 cp) | |
4286 { | |
4287 #if !defined(SRELL_NO_UNICODE_ICASE) | |
4288 ui_l32 count = 0u; | |
4289 | |
4290 if (cp <= ucf_internal::ucfdata::rev_maxcodepoint) | |
4291 { | |
4292 const ui_l32 offset_of_charset = ucf_internal::ucfdata::rev_indextable[ucf_internal::ucfdata::rev_segmenttable[cp >> 8] + (cp & 0xff)]; | |
4293 const ui_l32 *ptr = &ucf_internal::ucfdata::rev_charsettable[offset_of_charset]; | |
4294 | |
4295 for (; *ptr != cfcharset_eos_ && count < ucf_constants::rev_maxset; ++ptr, ++count) | |
4296 out[count] = *ptr; | |
4297 } | |
4298 if (count == 0u) | |
4299 out[count++] = cp; | |
4300 | |
4301 return count; | |
4302 #else | |
4303 const ui_l32 nocase = static_cast<ui_l32>(cp | masks::asc_icase); | |
4304 | |
4305 out[0] = cp; | |
4306 if (nocase >= char_alnum::ch_a && nocase <= char_alnum::ch_z) | |
4307 { | |
4308 out[1] = static_cast<ui_l32>(cp ^ masks::asc_icase); | |
4309 return 2u; | |
4310 } | |
4311 return 1u; | |
4312 #endif | |
4313 } | |
4314 | |
4315 static ui_l32 try_casefolding(const ui_l32 cp) | |
4316 { | |
4317 #if !defined(SRELL_NO_UNICODE_ICASE) | |
4318 if (cp <= ucf_internal::ucfdata::rev_maxcodepoint) | |
4319 { | |
4320 const ui_l32 offset_of_charset = ucf_internal::ucfdata::rev_indextable[ucf_internal::ucfdata::rev_segmenttable[cp >> 8] + (cp & 0xff)]; | |
4321 const ui_l32 uf0 = ucf_internal::ucfdata::rev_charsettable[offset_of_charset]; | |
4322 | |
4323 return uf0 != cfcharset_eos_ ? uf0 : constants::invalid_u32value; | |
4324 } | |
4325 #else | |
4326 const ui_l32 nocase = static_cast<ui_l32>(cp | masks::asc_icase); | |
4327 | |
4328 if (nocase >= char_alnum::ch_a && nocase <= char_alnum::ch_z) | |
4329 return nocase; | |
4330 #endif | |
4331 return constants::invalid_u32value; | |
4332 } | |
4333 | |
4334 unicode_case_folding &operator=(const unicode_case_folding &) | |
4335 { | |
4336 return *this; | |
4337 } | |
4338 | |
4339 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
4340 unicode_case_folding &operator=(unicode_case_folding &&) SRELL_NOEXCEPT | |
4341 { | |
4342 return *this; | |
4343 } | |
4344 #endif | |
4345 | |
4346 void swap(unicode_case_folding & /* right */) | |
4347 { | |
4348 } | |
4349 | |
4350 private: | |
4351 | |
4352 #if !defined(SRELL_NO_UNICODE_ICASE) | |
4353 static const ui_l32 cfcharset_eos_ = ucf_internal::ucfdata::eos; | |
4354 #endif | |
4355 | |
4356 public: // For debug. | |
4357 | |
4358 void print_tables() const; | |
4359 }; | |
4360 // unicode_case_folding | |
4361 | |
4362 } // namespace re_detail | |
4363 | |
4364 // ... "rei_ucf.hpp"] | |
4365 // ["rei_up.hpp" ... | |
4366 | |
4367 namespace re_detail | |
4368 { | |
4369 | |
4370 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
4371 | |
4372 namespace up_constants | |
4373 { | |
4374 | |
4375 // ["srell_updata3.h" ... | |
4376 // UnicodeData.txt | |
4377 // | |
4378 // PropList-15.1.0.txt | |
4379 // Date: 2023-08-01, 21:56:53 GMT | |
4380 // © 2023 Unicode®, Inc. | |
4381 // Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. | |
4382 // For terms of use, see https://www.unicode.org/terms_of_use.html | |
4383 // | |
4384 // DerivedCoreProperties-15.1.0.txt | |
4385 // Date: 2023-08-07, 15:21:24 GMT | |
4386 // © 2023 Unicode®, Inc. | |
4387 // Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. | |
4388 // For terms of use, see https://www.unicode.org/terms_of_use.html | |
4389 // | |
4390 // emoji-data.txt | |
4391 // Date: 2023-02-01, 02:22:54 GMT | |
4392 // © 2023 Unicode®, Inc. | |
4393 // Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. | |
4394 // For terms of use, see https://www.unicode.org/terms_of_use.html | |
4395 // | |
4396 // DerivedNormalizationProps-15.1.0.txt | |
4397 // Date: 2023-05-02, 13:20:58 GMT | |
4398 // © 2023 Unicode®, Inc. | |
4399 // Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. | |
4400 // For terms of use, see https://www.unicode.org/terms_of_use.html | |
4401 // | |
4402 // emoji-sequences.txt | |
4403 // Date: 2023-06-05, 21:39:54 GMT | |
4404 // © 2023 Unicode®, Inc. | |
4405 // Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. | |
4406 // For terms of use, see https://www.unicode.org/terms_of_use.html | |
4407 // | |
4408 // emoji-zwj-sequences.txt | |
4409 // Date: 2023-06-05, 20:04:50 GMT | |
4410 // © 2023 Unicode®, Inc. | |
4411 // Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. | |
4412 // For terms of use, see https://www.unicode.org/terms_of_use.html | |
4413 // | |
4414 // PropertyValueAliases-15.1.0.txt | |
4415 // Date: 2023-08-07, 15:21:34 GMT | |
4416 // © 2023 Unicode®, Inc. | |
4417 // Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. | |
4418 // For terms of use, see https://www.unicode.org/terms_of_use.html | |
4419 // | |
4420 // Scripts-15.1.0.txt | |
4421 // Date: 2023-07-28, 16:01:07 GMT | |
4422 // © 2023 Unicode®, Inc. | |
4423 // Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. | |
4424 // For terms of use, see https://www.unicode.org/terms_of_use.html | |
4425 // | |
4426 // ScriptExtensions-15.1.0.txt | |
4427 // Date: 2023-02-01, 23:02:24 GMT | |
4428 // © 2023 Unicode®, Inc. | |
4429 // Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. | |
4430 // For terms of use, see https://www.unicode.org/terms_of_use.html | |
4431 // | |
4432 | |
4433 enum upid_type | |
4434 { | |
4435 upid_unknown = 0, | |
4436 upid_invalid = 0, | |
4437 upid_error = 0, | |
4438 uptype_bp = 1, | |
4439 uptype_gc = 2, | |
4440 uptype_sc = 3, | |
4441 uptype_scx = 4, | |
4442 gc_Other = 5, | |
4443 gc_Control = 6, | |
4444 gc_Format = 7, | |
4445 gc_Unassigned = 8, | |
4446 gc_Private_Use = 9, | |
4447 gc_Surrogate = 10, | |
4448 gc_Letter = 11, | |
4449 gc_Cased_Letter = 12, | |
4450 gc_Lowercase_Letter = 13, | |
4451 gc_Titlecase_Letter = 14, | |
4452 gc_Uppercase_Letter = 15, | |
4453 gc_Modifier_Letter = 16, | |
4454 gc_Other_Letter = 17, | |
4455 gc_Mark = 18, | |
4456 gc_Spacing_Mark = 19, | |
4457 gc_Enclosing_Mark = 20, | |
4458 gc_Nonspacing_Mark = 21, | |
4459 gc_Number = 22, | |
4460 gc_Decimal_Number = 23, | |
4461 gc_Letter_Number = 24, | |
4462 gc_Other_Number = 25, | |
4463 gc_Punctuation = 26, | |
4464 gc_Connector_Punctuation = 27, | |
4465 gc_Dash_Punctuation = 28, | |
4466 gc_Close_Punctuation = 29, | |
4467 gc_Final_Punctuation = 30, | |
4468 gc_Initial_Punctuation = 31, | |
4469 gc_Other_Punctuation = 32, | |
4470 gc_Open_Punctuation = 33, | |
4471 gc_Symbol = 34, | |
4472 gc_Currency_Symbol = 35, | |
4473 gc_Modifier_Symbol = 36, | |
4474 gc_Math_Symbol = 37, | |
4475 gc_Other_Symbol = 38, | |
4476 gc_Separator = 39, | |
4477 gc_Line_Separator = 40, | |
4478 gc_Paragraph_Separator = 41, | |
4479 gc_Space_Separator = 42, | |
4480 bp_ASCII = 43, | |
4481 bp_ASCII_Hex_Digit = 44, | |
4482 bp_Alphabetic = 45, | |
4483 bp_Any = 46, | |
4484 bp_Assigned = 47, | |
4485 bp_Bidi_Control = 48, | |
4486 bp_Bidi_Mirrored = 49, | |
4487 bp_Case_Ignorable = 50, | |
4488 bp_Cased = 51, | |
4489 bp_Changes_When_Casefolded = 52, | |
4490 bp_Changes_When_Casemapped = 53, | |
4491 bp_Changes_When_Lowercased = 54, | |
4492 bp_Changes_When_NFKC_Casefolded = 55, | |
4493 bp_Changes_When_Titlecased = 56, | |
4494 bp_Changes_When_Uppercased = 57, | |
4495 bp_Dash = 58, | |
4496 bp_Default_Ignorable_Code_Point = 59, | |
4497 bp_Deprecated = 60, | |
4498 bp_Diacritic = 61, | |
4499 bp_Emoji = 62, | |
4500 bp_Emoji_Component = 63, | |
4501 bp_Emoji_Modifier = 64, | |
4502 bp_Emoji_Modifier_Base = 65, | |
4503 bp_Emoji_Presentation = 66, | |
4504 bp_Extended_Pictographic = 67, | |
4505 bp_Extender = 68, | |
4506 bp_Grapheme_Base = 69, | |
4507 bp_Grapheme_Extend = 70, | |
4508 bp_Hex_Digit = 71, | |
4509 bp_IDS_Binary_Operator = 72, | |
4510 bp_IDS_Trinary_Operator = 73, | |
4511 bp_ID_Continue = 74, | |
4512 bp_ID_Start = 75, | |
4513 bp_Ideographic = 76, | |
4514 bp_Join_Control = 77, | |
4515 bp_Logical_Order_Exception = 78, | |
4516 bp_Lowercase = 79, | |
4517 bp_Math = 80, | |
4518 bp_Noncharacter_Code_Point = 81, | |
4519 bp_Pattern_Syntax = 82, | |
4520 bp_Pattern_White_Space = 83, | |
4521 bp_Quotation_Mark = 84, | |
4522 bp_Radical = 85, | |
4523 bp_Regional_Indicator = 86, | |
4524 bp_Sentence_Terminal = 87, | |
4525 bp_Soft_Dotted = 88, | |
4526 bp_Terminal_Punctuation = 89, | |
4527 bp_Unified_Ideograph = 90, | |
4528 bp_Uppercase = 91, | |
4529 bp_Variation_Selector = 92, | |
4530 bp_White_Space = 93, | |
4531 bp_XID_Continue = 94, | |
4532 bp_XID_Start = 95, | |
4533 sc_Common = 96, | |
4534 sc_Latin = 97, | |
4535 sc_Greek = 98, | |
4536 sc_Cyrillic = 99, | |
4537 sc_Armenian = 100, | |
4538 sc_Hebrew = 101, | |
4539 sc_Arabic = 102, | |
4540 sc_Syriac = 103, | |
4541 sc_Thaana = 104, | |
4542 sc_Devanagari = 105, | |
4543 sc_Bengali = 106, | |
4544 sc_Gurmukhi = 107, | |
4545 sc_Gujarati = 108, | |
4546 sc_Oriya = 109, | |
4547 sc_Tamil = 110, | |
4548 sc_Telugu = 111, | |
4549 sc_Kannada = 112, | |
4550 sc_Malayalam = 113, | |
4551 sc_Sinhala = 114, | |
4552 sc_Thai = 115, | |
4553 sc_Lao = 116, | |
4554 sc_Tibetan = 117, | |
4555 sc_Myanmar = 118, | |
4556 sc_Georgian = 119, | |
4557 sc_Hangul = 120, | |
4558 sc_Ethiopic = 121, | |
4559 sc_Cherokee = 122, | |
4560 sc_Canadian_Aboriginal = 123, | |
4561 sc_Ogham = 124, | |
4562 sc_Runic = 125, | |
4563 sc_Khmer = 126, | |
4564 sc_Mongolian = 127, | |
4565 sc_Hiragana = 128, | |
4566 sc_Katakana = 129, | |
4567 sc_Bopomofo = 130, | |
4568 sc_Han = 131, | |
4569 sc_Yi = 132, | |
4570 sc_Old_Italic = 133, | |
4571 sc_Gothic = 134, | |
4572 sc_Deseret = 135, | |
4573 sc_Inherited = 136, | |
4574 sc_Tagalog = 137, | |
4575 sc_Hanunoo = 138, | |
4576 sc_Buhid = 139, | |
4577 sc_Tagbanwa = 140, | |
4578 sc_Limbu = 141, | |
4579 sc_Tai_Le = 142, | |
4580 sc_Linear_B = 143, | |
4581 sc_Ugaritic = 144, | |
4582 sc_Shavian = 145, | |
4583 sc_Osmanya = 146, | |
4584 sc_Cypriot = 147, | |
4585 sc_Braille = 148, | |
4586 sc_Buginese = 149, | |
4587 sc_Coptic = 150, | |
4588 sc_New_Tai_Lue = 151, | |
4589 sc_Glagolitic = 152, | |
4590 sc_Tifinagh = 153, | |
4591 sc_Syloti_Nagri = 154, | |
4592 sc_Old_Persian = 155, | |
4593 sc_Kharoshthi = 156, | |
4594 sc_Balinese = 157, | |
4595 sc_Cuneiform = 158, | |
4596 sc_Phoenician = 159, | |
4597 sc_Phags_Pa = 160, | |
4598 sc_Nko = 161, | |
4599 sc_Sundanese = 162, | |
4600 sc_Lepcha = 163, | |
4601 sc_Ol_Chiki = 164, | |
4602 sc_Vai = 165, | |
4603 sc_Saurashtra = 166, | |
4604 sc_Kayah_Li = 167, | |
4605 sc_Rejang = 168, | |
4606 sc_Lycian = 169, | |
4607 sc_Carian = 170, | |
4608 sc_Lydian = 171, | |
4609 sc_Cham = 172, | |
4610 sc_Tai_Tham = 173, | |
4611 sc_Tai_Viet = 174, | |
4612 sc_Avestan = 175, | |
4613 sc_Egyptian_Hieroglyphs = 176, | |
4614 sc_Samaritan = 177, | |
4615 sc_Lisu = 178, | |
4616 sc_Bamum = 179, | |
4617 sc_Javanese = 180, | |
4618 sc_Meetei_Mayek = 181, | |
4619 sc_Imperial_Aramaic = 182, | |
4620 sc_Old_South_Arabian = 183, | |
4621 sc_Inscriptional_Parthian = 184, | |
4622 sc_Inscriptional_Pahlavi = 185, | |
4623 sc_Old_Turkic = 186, | |
4624 sc_Kaithi = 187, | |
4625 sc_Batak = 188, | |
4626 sc_Brahmi = 189, | |
4627 sc_Mandaic = 190, | |
4628 sc_Chakma = 191, | |
4629 sc_Meroitic_Cursive = 192, | |
4630 sc_Meroitic_Hieroglyphs = 193, | |
4631 sc_Miao = 194, | |
4632 sc_Sharada = 195, | |
4633 sc_Sora_Sompeng = 196, | |
4634 sc_Takri = 197, | |
4635 sc_Caucasian_Albanian = 198, | |
4636 sc_Bassa_Vah = 199, | |
4637 sc_Duployan = 200, | |
4638 sc_Elbasan = 201, | |
4639 sc_Grantha = 202, | |
4640 sc_Pahawh_Hmong = 203, | |
4641 sc_Khojki = 204, | |
4642 sc_Linear_A = 205, | |
4643 sc_Mahajani = 206, | |
4644 sc_Manichaean = 207, | |
4645 sc_Mende_Kikakui = 208, | |
4646 sc_Modi = 209, | |
4647 sc_Mro = 210, | |
4648 sc_Old_North_Arabian = 211, | |
4649 sc_Nabataean = 212, | |
4650 sc_Palmyrene = 213, | |
4651 sc_Pau_Cin_Hau = 214, | |
4652 sc_Old_Permic = 215, | |
4653 sc_Psalter_Pahlavi = 216, | |
4654 sc_Siddham = 217, | |
4655 sc_Khudawadi = 218, | |
4656 sc_Tirhuta = 219, | |
4657 sc_Warang_Citi = 220, | |
4658 sc_Ahom = 221, | |
4659 sc_Anatolian_Hieroglyphs = 222, | |
4660 sc_Hatran = 223, | |
4661 sc_Multani = 224, | |
4662 sc_Old_Hungarian = 225, | |
4663 sc_SignWriting = 226, | |
4664 sc_Adlam = 227, | |
4665 sc_Bhaiksuki = 228, | |
4666 sc_Marchen = 229, | |
4667 sc_Newa = 230, | |
4668 sc_Osage = 231, | |
4669 sc_Tangut = 232, | |
4670 sc_Masaram_Gondi = 233, | |
4671 sc_Nushu = 234, | |
4672 sc_Soyombo = 235, | |
4673 sc_Zanabazar_Square = 236, | |
4674 sc_Dogra = 237, | |
4675 sc_Gunjala_Gondi = 238, | |
4676 sc_Makasar = 239, | |
4677 sc_Medefaidrin = 240, | |
4678 sc_Hanifi_Rohingya = 241, | |
4679 sc_Sogdian = 242, | |
4680 sc_Old_Sogdian = 243, | |
4681 sc_Elymaic = 244, | |
4682 sc_Nandinagari = 245, | |
4683 sc_Nyiakeng_Puachue_Hmong = 246, | |
4684 sc_Wancho = 247, | |
4685 sc_Chorasmian = 248, | |
4686 sc_Dives_Akuru = 249, | |
4687 sc_Khitan_Small_Script = 250, | |
4688 sc_Yezidi = 251, | |
4689 sc_Cypro_Minoan = 252, | |
4690 sc_Old_Uyghur = 253, | |
4691 sc_Tangsa = 254, | |
4692 sc_Toto = 255, | |
4693 sc_Vithkuqi = 256, | |
4694 sc_Kawi = 257, | |
4695 sc_Nag_Mundari = 258, | |
4696 sc_Unknown = 259, | |
4697 scx_Common = 260, | |
4698 scx_Latin = 261, | |
4699 scx_Greek = 262, | |
4700 scx_Cyrillic = 263, | |
4701 scx_Armenian = 100, // #264 | |
4702 scx_Hebrew = 101, // #265 | |
4703 scx_Arabic = 264, // #266 | |
4704 scx_Syriac = 265, // #267 | |
4705 scx_Thaana = 266, // #268 | |
4706 scx_Devanagari = 267, // #269 | |
4707 scx_Bengali = 268, // #270 | |
4708 scx_Gurmukhi = 269, // #271 | |
4709 scx_Gujarati = 270, // #272 | |
4710 scx_Oriya = 271, // #273 | |
4711 scx_Tamil = 272, // #274 | |
4712 scx_Telugu = 273, // #275 | |
4713 scx_Kannada = 274, // #276 | |
4714 scx_Malayalam = 275, // #277 | |
4715 scx_Sinhala = 276, // #278 | |
4716 scx_Thai = 115, // #279 | |
4717 scx_Lao = 116, // #280 | |
4718 scx_Tibetan = 117, // #281 | |
4719 scx_Myanmar = 277, // #282 | |
4720 scx_Georgian = 278, // #283 | |
4721 scx_Hangul = 279, // #284 | |
4722 scx_Ethiopic = 121, // #285 | |
4723 scx_Cherokee = 122, // #286 | |
4724 scx_Canadian_Aboriginal = 123, // #287 | |
4725 scx_Ogham = 124, // #288 | |
4726 scx_Runic = 125, // #289 | |
4727 scx_Khmer = 126, // #290 | |
4728 scx_Mongolian = 280, // #291 | |
4729 scx_Hiragana = 281, // #292 | |
4730 scx_Katakana = 282, // #293 | |
4731 scx_Bopomofo = 283, // #294 | |
4732 scx_Han = 284, // #295 | |
4733 scx_Yi = 285, // #296 | |
4734 scx_Old_Italic = 133, // #297 | |
4735 scx_Gothic = 134, // #298 | |
4736 scx_Deseret = 135, // #299 | |
4737 scx_Inherited = 286, // #300 | |
4738 scx_Tagalog = 287, // #301 | |
4739 scx_Hanunoo = 288, // #302 | |
4740 scx_Buhid = 289, // #303 | |
4741 scx_Tagbanwa = 290, // #304 | |
4742 scx_Limbu = 291, // #305 | |
4743 scx_Tai_Le = 292, // #306 | |
4744 scx_Linear_B = 293, // #307 | |
4745 scx_Ugaritic = 144, // #308 | |
4746 scx_Shavian = 145, // #309 | |
4747 scx_Osmanya = 146, // #310 | |
4748 scx_Cypriot = 294, // #311 | |
4749 scx_Braille = 148, // #312 | |
4750 scx_Buginese = 295, // #313 | |
4751 scx_Coptic = 296, // #314 | |
4752 scx_New_Tai_Lue = 151, // #315 | |
4753 scx_Glagolitic = 297, // #316 | |
4754 scx_Tifinagh = 153, // #317 | |
4755 scx_Syloti_Nagri = 298, // #318 | |
4756 scx_Old_Persian = 155, // #319 | |
4757 scx_Kharoshthi = 156, // #320 | |
4758 scx_Balinese = 157, // #321 | |
4759 scx_Cuneiform = 158, // #322 | |
4760 scx_Phoenician = 159, // #323 | |
4761 scx_Phags_Pa = 299, // #324 | |
4762 scx_Nko = 300, // #325 | |
4763 scx_Sundanese = 162, // #326 | |
4764 scx_Lepcha = 163, // #327 | |
4765 scx_Ol_Chiki = 164, // #328 | |
4766 scx_Vai = 165, // #329 | |
4767 scx_Saurashtra = 166, // #330 | |
4768 scx_Kayah_Li = 301, // #331 | |
4769 scx_Rejang = 168, // #332 | |
4770 scx_Lycian = 169, // #333 | |
4771 scx_Carian = 170, // #334 | |
4772 scx_Lydian = 171, // #335 | |
4773 scx_Cham = 172, // #336 | |
4774 scx_Tai_Tham = 173, // #337 | |
4775 scx_Tai_Viet = 174, // #338 | |
4776 scx_Avestan = 175, // #339 | |
4777 scx_Egyptian_Hieroglyphs = 176, // #340 | |
4778 scx_Samaritan = 177, // #341 | |
4779 scx_Lisu = 178, // #342 | |
4780 scx_Bamum = 179, // #343 | |
4781 scx_Javanese = 302, // #344 | |
4782 scx_Meetei_Mayek = 181, // #345 | |
4783 scx_Imperial_Aramaic = 182, // #346 | |
4784 scx_Old_South_Arabian = 183, // #347 | |
4785 scx_Inscriptional_Parthian = 184, // #348 | |
4786 scx_Inscriptional_Pahlavi = 185, // #349 | |
4787 scx_Old_Turkic = 186, // #350 | |
4788 scx_Kaithi = 303, // #351 | |
4789 scx_Batak = 188, // #352 | |
4790 scx_Brahmi = 189, // #353 | |
4791 scx_Mandaic = 304, // #354 | |
4792 scx_Chakma = 305, // #355 | |
4793 scx_Meroitic_Cursive = 192, // #356 | |
4794 scx_Meroitic_Hieroglyphs = 193, // #357 | |
4795 scx_Miao = 194, // #358 | |
4796 scx_Sharada = 306, // #359 | |
4797 scx_Sora_Sompeng = 196, // #360 | |
4798 scx_Takri = 307, // #361 | |
4799 scx_Caucasian_Albanian = 198, // #362 | |
4800 scx_Bassa_Vah = 199, // #363 | |
4801 scx_Duployan = 308, // #364 | |
4802 scx_Elbasan = 201, // #365 | |
4803 scx_Grantha = 309, // #366 | |
4804 scx_Pahawh_Hmong = 203, // #367 | |
4805 scx_Khojki = 310, // #368 | |
4806 scx_Linear_A = 311, // #369 | |
4807 scx_Mahajani = 312, // #370 | |
4808 scx_Manichaean = 313, // #371 | |
4809 scx_Mende_Kikakui = 208, // #372 | |
4810 scx_Modi = 314, // #373 | |
4811 scx_Mro = 210, // #374 | |
4812 scx_Old_North_Arabian = 211, // #375 | |
4813 scx_Nabataean = 212, // #376 | |
4814 scx_Palmyrene = 213, // #377 | |
4815 scx_Pau_Cin_Hau = 214, // #378 | |
4816 scx_Old_Permic = 315, // #379 | |
4817 scx_Psalter_Pahlavi = 316, // #380 | |
4818 scx_Siddham = 217, // #381 | |
4819 scx_Khudawadi = 317, // #382 | |
4820 scx_Tirhuta = 318, // #383 | |
4821 scx_Warang_Citi = 220, // #384 | |
4822 scx_Ahom = 221, // #385 | |
4823 scx_Anatolian_Hieroglyphs = 222, // #386 | |
4824 scx_Hatran = 223, // #387 | |
4825 scx_Multani = 319, // #388 | |
4826 scx_Old_Hungarian = 225, // #389 | |
4827 scx_SignWriting = 226, // #390 | |
4828 scx_Adlam = 320, // #391 | |
4829 scx_Bhaiksuki = 228, // #392 | |
4830 scx_Marchen = 229, // #393 | |
4831 scx_Newa = 230, // #394 | |
4832 scx_Osage = 231, // #395 | |
4833 scx_Tangut = 232, // #396 | |
4834 scx_Masaram_Gondi = 321, // #397 | |
4835 scx_Nushu = 234, // #398 | |
4836 scx_Soyombo = 235, // #399 | |
4837 scx_Zanabazar_Square = 236, // #400 | |
4838 scx_Dogra = 322, // #401 | |
4839 scx_Gunjala_Gondi = 323, // #402 | |
4840 scx_Makasar = 239, // #403 | |
4841 scx_Medefaidrin = 240, // #404 | |
4842 scx_Hanifi_Rohingya = 324, // #405 | |
4843 scx_Sogdian = 325, // #406 | |
4844 scx_Old_Sogdian = 243, // #407 | |
4845 scx_Elymaic = 244, // #408 | |
4846 scx_Nandinagari = 326, // #409 | |
4847 scx_Nyiakeng_Puachue_Hmong = 246, // #410 | |
4848 scx_Wancho = 247, // #411 | |
4849 scx_Chorasmian = 248, // #412 | |
4850 scx_Dives_Akuru = 249, // #413 | |
4851 scx_Khitan_Small_Script = 250, // #414 | |
4852 scx_Yezidi = 327, // #415 | |
4853 scx_Cypro_Minoan = 328, // #416 | |
4854 scx_Old_Uyghur = 329, // #417 | |
4855 scx_Tangsa = 254, // #418 | |
4856 scx_Toto = 255, // #419 | |
4857 scx_Vithkuqi = 256, // #420 | |
4858 scx_Kawi = 257, // #421 | |
4859 scx_Nag_Mundari = 258, // #422 | |
4860 scx_Unknown = 259, // #423 | |
4861 upid_max_property_number = 329, | |
4862 bp_RGI_Emoji = 330, // #424 | |
4863 bp_Basic_Emoji = 331, // #425 | |
4864 bp_Emoji_Keycap_Sequence = 332, // #426 | |
4865 bp_RGI_Emoji_Modifier_Sequence = 333, // #427 | |
4866 bp_RGI_Emoji_Flag_Sequence = 334, // #428 | |
4867 bp_RGI_Emoji_Tag_Sequence = 335, // #429 | |
4868 bp_RGI_Emoji_ZWJ_Sequence = 336, // #430 | |
4869 upid_max_pos_number = 336 | |
4870 }; | |
4871 | |
4872 template <typename T3, typename T4, typename T5> | |
4873 struct unicode_property_data | |
4874 { | |
4875 static const T3 propertynumbertable[]; | |
4876 static const T4 positiontable[]; | |
4877 static const T5 rangetable[]; | |
4878 }; | |
4879 | |
4880 template <typename T3, typename T4, typename T5> | |
4881 const T3 unicode_property_data<T3, T4, T5>::propertynumbertable[] = | |
4882 { | |
4883 { "", 6 }, | |
4884 { "\x47\x65\x6E\x65\x72\x61\x6C\x5F\x43\x61\x74\x65\x67\x6F\x72\x79", 2 }, | |
4885 { "\x53\x63\x72\x69\x70\x74", 3 }, | |
4886 { "\x53\x63\x72\x69\x70\x74\x5F\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73", 4 }, | |
4887 { "\x67\x63", 2 }, | |
4888 { "\x73\x63", 3 }, | |
4889 { "\x73\x63\x78", 4 }, | |
4890 // gc: 80 | |
4891 { "\x43", 5 }, | |
4892 { "\x43\x61\x73\x65\x64\x5F\x4C\x65\x74\x74\x65\x72", 12 }, | |
4893 { "\x43\x63", 6 }, | |
4894 { "\x43\x66", 7 }, | |
4895 { "\x43\x6C\x6F\x73\x65\x5F\x50\x75\x6E\x63\x74\x75\x61\x74\x69\x6F\x6E", 29 }, | |
4896 { "\x43\x6E", 8 }, | |
4897 { "\x43\x6F", 9 }, | |
4898 { "\x43\x6F\x6D\x62\x69\x6E\x69\x6E\x67\x5F\x4D\x61\x72\x6B", 18 }, | |
4899 { "\x43\x6F\x6E\x6E\x65\x63\x74\x6F\x72\x5F\x50\x75\x6E\x63\x74\x75\x61\x74\x69\x6F\x6E", 27 }, | |
4900 { "\x43\x6F\x6E\x74\x72\x6F\x6C", 6 }, | |
4901 { "\x43\x73", 10 }, | |
4902 { "\x43\x75\x72\x72\x65\x6E\x63\x79\x5F\x53\x79\x6D\x62\x6F\x6C", 35 }, | |
4903 { "\x44\x61\x73\x68\x5F\x50\x75\x6E\x63\x74\x75\x61\x74\x69\x6F\x6E", 28 }, | |
4904 { "\x44\x65\x63\x69\x6D\x61\x6C\x5F\x4E\x75\x6D\x62\x65\x72", 23 }, | |
4905 { "\x45\x6E\x63\x6C\x6F\x73\x69\x6E\x67\x5F\x4D\x61\x72\x6B", 20 }, | |
4906 { "\x46\x69\x6E\x61\x6C\x5F\x50\x75\x6E\x63\x74\x75\x61\x74\x69\x6F\x6E", 30 }, | |
4907 { "\x46\x6F\x72\x6D\x61\x74", 7 }, | |
4908 { "\x49\x6E\x69\x74\x69\x61\x6C\x5F\x50\x75\x6E\x63\x74\x75\x61\x74\x69\x6F\x6E", 31 }, | |
4909 { "\x4C", 11 }, | |
4910 { "\x4C\x43", 12 }, | |
4911 { "\x4C\x65\x74\x74\x65\x72", 11 }, | |
4912 { "\x4C\x65\x74\x74\x65\x72\x5F\x4E\x75\x6D\x62\x65\x72", 24 }, | |
4913 { "\x4C\x69\x6E\x65\x5F\x53\x65\x70\x61\x72\x61\x74\x6F\x72", 40 }, | |
4914 { "\x4C\x6C", 13 }, | |
4915 { "\x4C\x6D", 16 }, | |
4916 { "\x4C\x6F", 17 }, | |
4917 { "\x4C\x6F\x77\x65\x72\x63\x61\x73\x65\x5F\x4C\x65\x74\x74\x65\x72", 13 }, | |
4918 { "\x4C\x74", 14 }, | |
4919 { "\x4C\x75", 15 }, | |
4920 { "\x4D", 18 }, | |
4921 { "\x4D\x61\x72\x6B", 18 }, | |
4922 { "\x4D\x61\x74\x68\x5F\x53\x79\x6D\x62\x6F\x6C", 37 }, | |
4923 { "\x4D\x63", 19 }, | |
4924 { "\x4D\x65", 20 }, | |
4925 { "\x4D\x6E", 21 }, | |
4926 { "\x4D\x6F\x64\x69\x66\x69\x65\x72\x5F\x4C\x65\x74\x74\x65\x72", 16 }, | |
4927 { "\x4D\x6F\x64\x69\x66\x69\x65\x72\x5F\x53\x79\x6D\x62\x6F\x6C", 36 }, | |
4928 { "\x4E", 22 }, | |
4929 { "\x4E\x64", 23 }, | |
4930 { "\x4E\x6C", 24 }, | |
4931 { "\x4E\x6F", 25 }, | |
4932 { "\x4E\x6F\x6E\x73\x70\x61\x63\x69\x6E\x67\x5F\x4D\x61\x72\x6B", 21 }, | |
4933 { "\x4E\x75\x6D\x62\x65\x72", 22 }, | |
4934 { "\x4F\x70\x65\x6E\x5F\x50\x75\x6E\x63\x74\x75\x61\x74\x69\x6F\x6E", 33 }, | |
4935 { "\x4F\x74\x68\x65\x72", 5 }, | |
4936 { "\x4F\x74\x68\x65\x72\x5F\x4C\x65\x74\x74\x65\x72", 17 }, | |
4937 { "\x4F\x74\x68\x65\x72\x5F\x4E\x75\x6D\x62\x65\x72", 25 }, | |
4938 { "\x4F\x74\x68\x65\x72\x5F\x50\x75\x6E\x63\x74\x75\x61\x74\x69\x6F\x6E", 32 }, | |
4939 { "\x4F\x74\x68\x65\x72\x5F\x53\x79\x6D\x62\x6F\x6C", 38 }, | |
4940 { "\x50", 26 }, | |
4941 { "\x50\x61\x72\x61\x67\x72\x61\x70\x68\x5F\x53\x65\x70\x61\x72\x61\x74\x6F\x72", 41 }, | |
4942 { "\x50\x63", 27 }, | |
4943 { "\x50\x64", 28 }, | |
4944 { "\x50\x65", 29 }, | |
4945 { "\x50\x66", 30 }, | |
4946 { "\x50\x69", 31 }, | |
4947 { "\x50\x6F", 32 }, | |
4948 { "\x50\x72\x69\x76\x61\x74\x65\x5F\x55\x73\x65", 9 }, | |
4949 { "\x50\x73", 33 }, | |
4950 { "\x50\x75\x6E\x63\x74\x75\x61\x74\x69\x6F\x6E", 26 }, | |
4951 { "\x53", 34 }, | |
4952 { "\x53\x63", 35 }, | |
4953 { "\x53\x65\x70\x61\x72\x61\x74\x6F\x72", 39 }, | |
4954 { "\x53\x6B", 36 }, | |
4955 { "\x53\x6D", 37 }, | |
4956 { "\x53\x6F", 38 }, | |
4957 { "\x53\x70\x61\x63\x65\x5F\x53\x65\x70\x61\x72\x61\x74\x6F\x72", 42 }, | |
4958 { "\x53\x70\x61\x63\x69\x6E\x67\x5F\x4D\x61\x72\x6B", 19 }, | |
4959 { "\x53\x75\x72\x72\x6F\x67\x61\x74\x65", 10 }, | |
4960 { "\x53\x79\x6D\x62\x6F\x6C", 34 }, | |
4961 { "\x54\x69\x74\x6C\x65\x63\x61\x73\x65\x5F\x4C\x65\x74\x74\x65\x72", 14 }, | |
4962 { "\x55\x6E\x61\x73\x73\x69\x67\x6E\x65\x64", 8 }, | |
4963 { "\x55\x70\x70\x65\x72\x63\x61\x73\x65\x5F\x4C\x65\x74\x74\x65\x72", 15 }, | |
4964 { "\x5A", 39 }, | |
4965 { "\x5A\x6C", 40 }, | |
4966 { "\x5A\x70", 41 }, | |
4967 { "\x5A\x73", 42 }, | |
4968 { "\x63\x6E\x74\x72\x6C", 6 }, | |
4969 { "\x64\x69\x67\x69\x74", 23 }, | |
4970 { "\x70\x75\x6E\x63\x74", 26 }, | |
4971 // bp: 105 | |
4972 { "\x41\x48\x65\x78", 44 }, | |
4973 { "\x41\x53\x43\x49\x49", 43 }, | |
4974 { "\x41\x53\x43\x49\x49\x5F\x48\x65\x78\x5F\x44\x69\x67\x69\x74", 44 }, | |
4975 { "\x41\x6C\x70\x68\x61", 45 }, | |
4976 { "\x41\x6C\x70\x68\x61\x62\x65\x74\x69\x63", 45 }, | |
4977 { "\x41\x6E\x79", 46 }, | |
4978 { "\x41\x73\x73\x69\x67\x6E\x65\x64", 47 }, | |
4979 { "\x42\x61\x73\x69\x63\x5F\x45\x6D\x6F\x6A\x69", 331 }, | |
4980 { "\x42\x69\x64\x69\x5F\x43", 48 }, | |
4981 { "\x42\x69\x64\x69\x5F\x43\x6F\x6E\x74\x72\x6F\x6C", 48 }, | |
4982 { "\x42\x69\x64\x69\x5F\x4D", 49 }, | |
4983 { "\x42\x69\x64\x69\x5F\x4D\x69\x72\x72\x6F\x72\x65\x64", 49 }, | |
4984 { "\x43\x49", 50 }, | |
4985 { "\x43\x57\x43\x46", 52 }, | |
4986 { "\x43\x57\x43\x4D", 53 }, | |
4987 { "\x43\x57\x4B\x43\x46", 55 }, | |
4988 { "\x43\x57\x4C", 54 }, | |
4989 { "\x43\x57\x54", 56 }, | |
4990 { "\x43\x57\x55", 57 }, | |
4991 { "\x43\x61\x73\x65\x5F\x49\x67\x6E\x6F\x72\x61\x62\x6C\x65", 50 }, | |
4992 { "\x43\x61\x73\x65\x64", 51 }, | |
4993 { "\x43\x68\x61\x6E\x67\x65\x73\x5F\x57\x68\x65\x6E\x5F\x43\x61\x73\x65\x66\x6F\x6C\x64\x65\x64", 52 }, | |
4994 { "\x43\x68\x61\x6E\x67\x65\x73\x5F\x57\x68\x65\x6E\x5F\x43\x61\x73\x65\x6D\x61\x70\x70\x65\x64", 53 }, | |
4995 { "\x43\x68\x61\x6E\x67\x65\x73\x5F\x57\x68\x65\x6E\x5F\x4C\x6F\x77\x65\x72\x63\x61\x73\x65\x64", 54 }, | |
4996 { "\x43\x68\x61\x6E\x67\x65\x73\x5F\x57\x68\x65\x6E\x5F\x4E\x46\x4B\x43\x5F\x43\x61\x73\x65\x66\x6F\x6C\x64\x65\x64", 55 }, | |
4997 { "\x43\x68\x61\x6E\x67\x65\x73\x5F\x57\x68\x65\x6E\x5F\x54\x69\x74\x6C\x65\x63\x61\x73\x65\x64", 56 }, | |
4998 { "\x43\x68\x61\x6E\x67\x65\x73\x5F\x57\x68\x65\x6E\x5F\x55\x70\x70\x65\x72\x63\x61\x73\x65\x64", 57 }, | |
4999 { "\x44\x49", 59 }, | |
5000 { "\x44\x61\x73\x68", 58 }, | |
5001 { "\x44\x65\x66\x61\x75\x6C\x74\x5F\x49\x67\x6E\x6F\x72\x61\x62\x6C\x65\x5F\x43\x6F\x64\x65\x5F\x50\x6F\x69\x6E\x74", 59 }, | |
5002 { "\x44\x65\x70", 60 }, | |
5003 { "\x44\x65\x70\x72\x65\x63\x61\x74\x65\x64", 60 }, | |
5004 { "\x44\x69\x61", 61 }, | |
5005 { "\x44\x69\x61\x63\x72\x69\x74\x69\x63", 61 }, | |
5006 { "\x45\x42\x61\x73\x65", 65 }, | |
5007 { "\x45\x43\x6F\x6D\x70", 63 }, | |
5008 { "\x45\x4D\x6F\x64", 64 }, | |
5009 { "\x45\x50\x72\x65\x73", 66 }, | |
5010 { "\x45\x6D\x6F\x6A\x69", 62 }, | |
5011 { "\x45\x6D\x6F\x6A\x69\x5F\x43\x6F\x6D\x70\x6F\x6E\x65\x6E\x74", 63 }, | |
5012 { "\x45\x6D\x6F\x6A\x69\x5F\x4B\x65\x79\x63\x61\x70\x5F\x53\x65\x71\x75\x65\x6E\x63\x65", 332 }, | |
5013 { "\x45\x6D\x6F\x6A\x69\x5F\x4D\x6F\x64\x69\x66\x69\x65\x72", 64 }, | |
5014 { "\x45\x6D\x6F\x6A\x69\x5F\x4D\x6F\x64\x69\x66\x69\x65\x72\x5F\x42\x61\x73\x65", 65 }, | |
5015 { "\x45\x6D\x6F\x6A\x69\x5F\x50\x72\x65\x73\x65\x6E\x74\x61\x74\x69\x6F\x6E", 66 }, | |
5016 { "\x45\x78\x74", 68 }, | |
5017 { "\x45\x78\x74\x50\x69\x63\x74", 67 }, | |
5018 { "\x45\x78\x74\x65\x6E\x64\x65\x64\x5F\x50\x69\x63\x74\x6F\x67\x72\x61\x70\x68\x69\x63", 67 }, | |
5019 { "\x45\x78\x74\x65\x6E\x64\x65\x72", 68 }, | |
5020 { "\x47\x72\x5F\x42\x61\x73\x65", 69 }, | |
5021 { "\x47\x72\x5F\x45\x78\x74", 70 }, | |
5022 { "\x47\x72\x61\x70\x68\x65\x6D\x65\x5F\x42\x61\x73\x65", 69 }, | |
5023 { "\x47\x72\x61\x70\x68\x65\x6D\x65\x5F\x45\x78\x74\x65\x6E\x64", 70 }, | |
5024 { "\x48\x65\x78", 71 }, | |
5025 { "\x48\x65\x78\x5F\x44\x69\x67\x69\x74", 71 }, | |
5026 { "\x49\x44\x43", 74 }, | |
5027 { "\x49\x44\x53", 75 }, | |
5028 { "\x49\x44\x53\x42", 72 }, | |
5029 { "\x49\x44\x53\x54", 73 }, | |
5030 { "\x49\x44\x53\x5F\x42\x69\x6E\x61\x72\x79\x5F\x4F\x70\x65\x72\x61\x74\x6F\x72", 72 }, | |
5031 { "\x49\x44\x53\x5F\x54\x72\x69\x6E\x61\x72\x79\x5F\x4F\x70\x65\x72\x61\x74\x6F\x72", 73 }, | |
5032 { "\x49\x44\x5F\x43\x6F\x6E\x74\x69\x6E\x75\x65", 74 }, | |
5033 { "\x49\x44\x5F\x53\x74\x61\x72\x74", 75 }, | |
5034 { "\x49\x64\x65\x6F", 76 }, | |
5035 { "\x49\x64\x65\x6F\x67\x72\x61\x70\x68\x69\x63", 76 }, | |
5036 { "\x4A\x6F\x69\x6E\x5F\x43", 77 }, | |
5037 { "\x4A\x6F\x69\x6E\x5F\x43\x6F\x6E\x74\x72\x6F\x6C", 77 }, | |
5038 { "\x4C\x4F\x45", 78 }, | |
5039 { "\x4C\x6F\x67\x69\x63\x61\x6C\x5F\x4F\x72\x64\x65\x72\x5F\x45\x78\x63\x65\x70\x74\x69\x6F\x6E", 78 }, | |
5040 { "\x4C\x6F\x77\x65\x72", 79 }, | |
5041 { "\x4C\x6F\x77\x65\x72\x63\x61\x73\x65", 79 }, | |
5042 { "\x4D\x61\x74\x68", 80 }, | |
5043 { "\x4E\x43\x68\x61\x72", 81 }, | |
5044 { "\x4E\x6F\x6E\x63\x68\x61\x72\x61\x63\x74\x65\x72\x5F\x43\x6F\x64\x65\x5F\x50\x6F\x69\x6E\x74", 81 }, | |
5045 { "\x50\x61\x74\x5F\x53\x79\x6E", 82 }, | |
5046 { "\x50\x61\x74\x5F\x57\x53", 83 }, | |
5047 { "\x50\x61\x74\x74\x65\x72\x6E\x5F\x53\x79\x6E\x74\x61\x78", 82 }, | |
5048 { "\x50\x61\x74\x74\x65\x72\x6E\x5F\x57\x68\x69\x74\x65\x5F\x53\x70\x61\x63\x65", 83 }, | |
5049 { "\x51\x4D\x61\x72\x6B", 84 }, | |
5050 { "\x51\x75\x6F\x74\x61\x74\x69\x6F\x6E\x5F\x4D\x61\x72\x6B", 84 }, | |
5051 { "\x52\x47\x49\x5F\x45\x6D\x6F\x6A\x69", 330 }, | |
5052 { "\x52\x47\x49\x5F\x45\x6D\x6F\x6A\x69\x5F\x46\x6C\x61\x67\x5F\x53\x65\x71\x75\x65\x6E\x63\x65", 334 }, | |
5053 { "\x52\x47\x49\x5F\x45\x6D\x6F\x6A\x69\x5F\x4D\x6F\x64\x69\x66\x69\x65\x72\x5F\x53\x65\x71\x75\x65\x6E\x63\x65", 333 }, | |
5054 { "\x52\x47\x49\x5F\x45\x6D\x6F\x6A\x69\x5F\x54\x61\x67\x5F\x53\x65\x71\x75\x65\x6E\x63\x65", 335 }, | |
5055 { "\x52\x47\x49\x5F\x45\x6D\x6F\x6A\x69\x5F\x5A\x57\x4A\x5F\x53\x65\x71\x75\x65\x6E\x63\x65", 336 }, | |
5056 { "\x52\x49", 86 }, | |
5057 { "\x52\x61\x64\x69\x63\x61\x6C", 85 }, | |
5058 { "\x52\x65\x67\x69\x6F\x6E\x61\x6C\x5F\x49\x6E\x64\x69\x63\x61\x74\x6F\x72", 86 }, | |
5059 { "\x53\x44", 88 }, | |
5060 { "\x53\x54\x65\x72\x6D", 87 }, | |
5061 { "\x53\x65\x6E\x74\x65\x6E\x63\x65\x5F\x54\x65\x72\x6D\x69\x6E\x61\x6C", 87 }, | |
5062 { "\x53\x6F\x66\x74\x5F\x44\x6F\x74\x74\x65\x64", 88 }, | |
5063 { "\x54\x65\x72\x6D", 89 }, | |
5064 { "\x54\x65\x72\x6D\x69\x6E\x61\x6C\x5F\x50\x75\x6E\x63\x74\x75\x61\x74\x69\x6F\x6E", 89 }, | |
5065 { "\x55\x49\x64\x65\x6F", 90 }, | |
5066 { "\x55\x6E\x69\x66\x69\x65\x64\x5F\x49\x64\x65\x6F\x67\x72\x61\x70\x68", 90 }, | |
5067 { "\x55\x70\x70\x65\x72", 91 }, | |
5068 { "\x55\x70\x70\x65\x72\x63\x61\x73\x65", 91 }, | |
5069 { "\x56\x53", 92 }, | |
5070 { "\x56\x61\x72\x69\x61\x74\x69\x6F\x6E\x5F\x53\x65\x6C\x65\x63\x74\x6F\x72", 92 }, | |
5071 { "\x57\x68\x69\x74\x65\x5F\x53\x70\x61\x63\x65", 93 }, | |
5072 { "\x58\x49\x44\x43", 94 }, | |
5073 { "\x58\x49\x44\x53", 95 }, | |
5074 { "\x58\x49\x44\x5F\x43\x6F\x6E\x74\x69\x6E\x75\x65", 94 }, | |
5075 { "\x58\x49\x44\x5F\x53\x74\x61\x72\x74", 95 }, | |
5076 { "\x73\x70\x61\x63\x65", 93 }, | |
5077 // sc: 322 | |
5078 { "\x41\x64\x6C\x61\x6D", 227 }, | |
5079 { "\x41\x64\x6C\x6D", 227 }, | |
5080 { "\x41\x67\x68\x62", 198 }, | |
5081 { "\x41\x68\x6F\x6D", 221 }, | |
5082 { "\x41\x6E\x61\x74\x6F\x6C\x69\x61\x6E\x5F\x48\x69\x65\x72\x6F\x67\x6C\x79\x70\x68\x73", 222 }, | |
5083 { "\x41\x72\x61\x62", 102 }, | |
5084 { "\x41\x72\x61\x62\x69\x63", 102 }, | |
5085 { "\x41\x72\x6D\x65\x6E\x69\x61\x6E", 100 }, | |
5086 { "\x41\x72\x6D\x69", 182 }, | |
5087 { "\x41\x72\x6D\x6E", 100 }, | |
5088 { "\x41\x76\x65\x73\x74\x61\x6E", 175 }, | |
5089 { "\x41\x76\x73\x74", 175 }, | |
5090 { "\x42\x61\x6C\x69", 157 }, | |
5091 { "\x42\x61\x6C\x69\x6E\x65\x73\x65", 157 }, | |
5092 { "\x42\x61\x6D\x75", 179 }, | |
5093 { "\x42\x61\x6D\x75\x6D", 179 }, | |
5094 { "\x42\x61\x73\x73", 199 }, | |
5095 { "\x42\x61\x73\x73\x61\x5F\x56\x61\x68", 199 }, | |
5096 { "\x42\x61\x74\x61\x6B", 188 }, | |
5097 { "\x42\x61\x74\x6B", 188 }, | |
5098 { "\x42\x65\x6E\x67", 106 }, | |
5099 { "\x42\x65\x6E\x67\x61\x6C\x69", 106 }, | |
5100 { "\x42\x68\x61\x69\x6B\x73\x75\x6B\x69", 228 }, | |
5101 { "\x42\x68\x6B\x73", 228 }, | |
5102 { "\x42\x6F\x70\x6F", 130 }, | |
5103 { "\x42\x6F\x70\x6F\x6D\x6F\x66\x6F", 130 }, | |
5104 { "\x42\x72\x61\x68", 189 }, | |
5105 { "\x42\x72\x61\x68\x6D\x69", 189 }, | |
5106 { "\x42\x72\x61\x69", 148 }, | |
5107 { "\x42\x72\x61\x69\x6C\x6C\x65", 148 }, | |
5108 { "\x42\x75\x67\x69", 149 }, | |
5109 { "\x42\x75\x67\x69\x6E\x65\x73\x65", 149 }, | |
5110 { "\x42\x75\x68\x64", 139 }, | |
5111 { "\x42\x75\x68\x69\x64", 139 }, | |
5112 { "\x43\x61\x6B\x6D", 191 }, | |
5113 { "\x43\x61\x6E\x61\x64\x69\x61\x6E\x5F\x41\x62\x6F\x72\x69\x67\x69\x6E\x61\x6C", 123 }, | |
5114 { "\x43\x61\x6E\x73", 123 }, | |
5115 { "\x43\x61\x72\x69", 170 }, | |
5116 { "\x43\x61\x72\x69\x61\x6E", 170 }, | |
5117 { "\x43\x61\x75\x63\x61\x73\x69\x61\x6E\x5F\x41\x6C\x62\x61\x6E\x69\x61\x6E", 198 }, | |
5118 { "\x43\x68\x61\x6B\x6D\x61", 191 }, | |
5119 { "\x43\x68\x61\x6D", 172 }, | |
5120 { "\x43\x68\x65\x72", 122 }, | |
5121 { "\x43\x68\x65\x72\x6F\x6B\x65\x65", 122 }, | |
5122 { "\x43\x68\x6F\x72\x61\x73\x6D\x69\x61\x6E", 248 }, | |
5123 { "\x43\x68\x72\x73", 248 }, | |
5124 { "\x43\x6F\x6D\x6D\x6F\x6E", 96 }, | |
5125 { "\x43\x6F\x70\x74", 150 }, | |
5126 { "\x43\x6F\x70\x74\x69\x63", 150 }, | |
5127 { "\x43\x70\x6D\x6E", 252 }, | |
5128 { "\x43\x70\x72\x74", 147 }, | |
5129 { "\x43\x75\x6E\x65\x69\x66\x6F\x72\x6D", 158 }, | |
5130 { "\x43\x79\x70\x72\x69\x6F\x74", 147 }, | |
5131 { "\x43\x79\x70\x72\x6F\x5F\x4D\x69\x6E\x6F\x61\x6E", 252 }, | |
5132 { "\x43\x79\x72\x69\x6C\x6C\x69\x63", 99 }, | |
5133 { "\x43\x79\x72\x6C", 99 }, | |
5134 { "\x44\x65\x73\x65\x72\x65\x74", 135 }, | |
5135 { "\x44\x65\x76\x61", 105 }, | |
5136 { "\x44\x65\x76\x61\x6E\x61\x67\x61\x72\x69", 105 }, | |
5137 { "\x44\x69\x61\x6B", 249 }, | |
5138 { "\x44\x69\x76\x65\x73\x5F\x41\x6B\x75\x72\x75", 249 }, | |
5139 { "\x44\x6F\x67\x72", 237 }, | |
5140 { "\x44\x6F\x67\x72\x61", 237 }, | |
5141 { "\x44\x73\x72\x74", 135 }, | |
5142 { "\x44\x75\x70\x6C", 200 }, | |
5143 { "\x44\x75\x70\x6C\x6F\x79\x61\x6E", 200 }, | |
5144 { "\x45\x67\x79\x70", 176 }, | |
5145 { "\x45\x67\x79\x70\x74\x69\x61\x6E\x5F\x48\x69\x65\x72\x6F\x67\x6C\x79\x70\x68\x73", 176 }, | |
5146 { "\x45\x6C\x62\x61", 201 }, | |
5147 { "\x45\x6C\x62\x61\x73\x61\x6E", 201 }, | |
5148 { "\x45\x6C\x79\x6D", 244 }, | |
5149 { "\x45\x6C\x79\x6D\x61\x69\x63", 244 }, | |
5150 { "\x45\x74\x68\x69", 121 }, | |
5151 { "\x45\x74\x68\x69\x6F\x70\x69\x63", 121 }, | |
5152 { "\x47\x65\x6F\x72", 119 }, | |
5153 { "\x47\x65\x6F\x72\x67\x69\x61\x6E", 119 }, | |
5154 { "\x47\x6C\x61\x67", 152 }, | |
5155 { "\x47\x6C\x61\x67\x6F\x6C\x69\x74\x69\x63", 152 }, | |
5156 { "\x47\x6F\x6E\x67", 238 }, | |
5157 { "\x47\x6F\x6E\x6D", 233 }, | |
5158 { "\x47\x6F\x74\x68", 134 }, | |
5159 { "\x47\x6F\x74\x68\x69\x63", 134 }, | |
5160 { "\x47\x72\x61\x6E", 202 }, | |
5161 { "\x47\x72\x61\x6E\x74\x68\x61", 202 }, | |
5162 { "\x47\x72\x65\x65\x6B", 98 }, | |
5163 { "\x47\x72\x65\x6B", 98 }, | |
5164 { "\x47\x75\x6A\x61\x72\x61\x74\x69", 108 }, | |
5165 { "\x47\x75\x6A\x72", 108 }, | |
5166 { "\x47\x75\x6E\x6A\x61\x6C\x61\x5F\x47\x6F\x6E\x64\x69", 238 }, | |
5167 { "\x47\x75\x72\x6D\x75\x6B\x68\x69", 107 }, | |
5168 { "\x47\x75\x72\x75", 107 }, | |
5169 { "\x48\x61\x6E", 131 }, | |
5170 { "\x48\x61\x6E\x67", 120 }, | |
5171 { "\x48\x61\x6E\x67\x75\x6C", 120 }, | |
5172 { "\x48\x61\x6E\x69", 131 }, | |
5173 { "\x48\x61\x6E\x69\x66\x69\x5F\x52\x6F\x68\x69\x6E\x67\x79\x61", 241 }, | |
5174 { "\x48\x61\x6E\x6F", 138 }, | |
5175 { "\x48\x61\x6E\x75\x6E\x6F\x6F", 138 }, | |
5176 { "\x48\x61\x74\x72", 223 }, | |
5177 { "\x48\x61\x74\x72\x61\x6E", 223 }, | |
5178 { "\x48\x65\x62\x72", 101 }, | |
5179 { "\x48\x65\x62\x72\x65\x77", 101 }, | |
5180 { "\x48\x69\x72\x61", 128 }, | |
5181 { "\x48\x69\x72\x61\x67\x61\x6E\x61", 128 }, | |
5182 { "\x48\x6C\x75\x77", 222 }, | |
5183 { "\x48\x6D\x6E\x67", 203 }, | |
5184 { "\x48\x6D\x6E\x70", 246 }, | |
5185 { "\x48\x75\x6E\x67", 225 }, | |
5186 { "\x49\x6D\x70\x65\x72\x69\x61\x6C\x5F\x41\x72\x61\x6D\x61\x69\x63", 182 }, | |
5187 { "\x49\x6E\x68\x65\x72\x69\x74\x65\x64", 136 }, | |
5188 { "\x49\x6E\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x61\x6C\x5F\x50\x61\x68\x6C\x61\x76\x69", 185 }, | |
5189 { "\x49\x6E\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x61\x6C\x5F\x50\x61\x72\x74\x68\x69\x61\x6E", 184 }, | |
5190 { "\x49\x74\x61\x6C", 133 }, | |
5191 { "\x4A\x61\x76\x61", 180 }, | |
5192 { "\x4A\x61\x76\x61\x6E\x65\x73\x65", 180 }, | |
5193 { "\x4B\x61\x69\x74\x68\x69", 187 }, | |
5194 { "\x4B\x61\x6C\x69", 167 }, | |
5195 { "\x4B\x61\x6E\x61", 129 }, | |
5196 { "\x4B\x61\x6E\x6E\x61\x64\x61", 112 }, | |
5197 { "\x4B\x61\x74\x61\x6B\x61\x6E\x61", 129 }, | |
5198 { "\x4B\x61\x77\x69", 257 }, | |
5199 { "\x4B\x61\x79\x61\x68\x5F\x4C\x69", 167 }, | |
5200 { "\x4B\x68\x61\x72", 156 }, | |
5201 { "\x4B\x68\x61\x72\x6F\x73\x68\x74\x68\x69", 156 }, | |
5202 { "\x4B\x68\x69\x74\x61\x6E\x5F\x53\x6D\x61\x6C\x6C\x5F\x53\x63\x72\x69\x70\x74", 250 }, | |
5203 { "\x4B\x68\x6D\x65\x72", 126 }, | |
5204 { "\x4B\x68\x6D\x72", 126 }, | |
5205 { "\x4B\x68\x6F\x6A", 204 }, | |
5206 { "\x4B\x68\x6F\x6A\x6B\x69", 204 }, | |
5207 { "\x4B\x68\x75\x64\x61\x77\x61\x64\x69", 218 }, | |
5208 { "\x4B\x69\x74\x73", 250 }, | |
5209 { "\x4B\x6E\x64\x61", 112 }, | |
5210 { "\x4B\x74\x68\x69", 187 }, | |
5211 { "\x4C\x61\x6E\x61", 173 }, | |
5212 { "\x4C\x61\x6F", 116 }, | |
5213 { "\x4C\x61\x6F\x6F", 116 }, | |
5214 { "\x4C\x61\x74\x69\x6E", 97 }, | |
5215 { "\x4C\x61\x74\x6E", 97 }, | |
5216 { "\x4C\x65\x70\x63", 163 }, | |
5217 { "\x4C\x65\x70\x63\x68\x61", 163 }, | |
5218 { "\x4C\x69\x6D\x62", 141 }, | |
5219 { "\x4C\x69\x6D\x62\x75", 141 }, | |
5220 { "\x4C\x69\x6E\x61", 205 }, | |
5221 { "\x4C\x69\x6E\x62", 143 }, | |
5222 { "\x4C\x69\x6E\x65\x61\x72\x5F\x41", 205 }, | |
5223 { "\x4C\x69\x6E\x65\x61\x72\x5F\x42", 143 }, | |
5224 { "\x4C\x69\x73\x75", 178 }, | |
5225 { "\x4C\x79\x63\x69", 169 }, | |
5226 { "\x4C\x79\x63\x69\x61\x6E", 169 }, | |
5227 { "\x4C\x79\x64\x69", 171 }, | |
5228 { "\x4C\x79\x64\x69\x61\x6E", 171 }, | |
5229 { "\x4D\x61\x68\x61\x6A\x61\x6E\x69", 206 }, | |
5230 { "\x4D\x61\x68\x6A", 206 }, | |
5231 { "\x4D\x61\x6B\x61", 239 }, | |
5232 { "\x4D\x61\x6B\x61\x73\x61\x72", 239 }, | |
5233 { "\x4D\x61\x6C\x61\x79\x61\x6C\x61\x6D", 113 }, | |
5234 { "\x4D\x61\x6E\x64", 190 }, | |
5235 { "\x4D\x61\x6E\x64\x61\x69\x63", 190 }, | |
5236 { "\x4D\x61\x6E\x69", 207 }, | |
5237 { "\x4D\x61\x6E\x69\x63\x68\x61\x65\x61\x6E", 207 }, | |
5238 { "\x4D\x61\x72\x63", 229 }, | |
5239 { "\x4D\x61\x72\x63\x68\x65\x6E", 229 }, | |
5240 { "\x4D\x61\x73\x61\x72\x61\x6D\x5F\x47\x6F\x6E\x64\x69", 233 }, | |
5241 { "\x4D\x65\x64\x65\x66\x61\x69\x64\x72\x69\x6E", 240 }, | |
5242 { "\x4D\x65\x64\x66", 240 }, | |
5243 { "\x4D\x65\x65\x74\x65\x69\x5F\x4D\x61\x79\x65\x6B", 181 }, | |
5244 { "\x4D\x65\x6E\x64", 208 }, | |
5245 { "\x4D\x65\x6E\x64\x65\x5F\x4B\x69\x6B\x61\x6B\x75\x69", 208 }, | |
5246 { "\x4D\x65\x72\x63", 192 }, | |
5247 { "\x4D\x65\x72\x6F", 193 }, | |
5248 { "\x4D\x65\x72\x6F\x69\x74\x69\x63\x5F\x43\x75\x72\x73\x69\x76\x65", 192 }, | |
5249 { "\x4D\x65\x72\x6F\x69\x74\x69\x63\x5F\x48\x69\x65\x72\x6F\x67\x6C\x79\x70\x68\x73", 193 }, | |
5250 { "\x4D\x69\x61\x6F", 194 }, | |
5251 { "\x4D\x6C\x79\x6D", 113 }, | |
5252 { "\x4D\x6F\x64\x69", 209 }, | |
5253 { "\x4D\x6F\x6E\x67", 127 }, | |
5254 { "\x4D\x6F\x6E\x67\x6F\x6C\x69\x61\x6E", 127 }, | |
5255 { "\x4D\x72\x6F", 210 }, | |
5256 { "\x4D\x72\x6F\x6F", 210 }, | |
5257 { "\x4D\x74\x65\x69", 181 }, | |
5258 { "\x4D\x75\x6C\x74", 224 }, | |
5259 { "\x4D\x75\x6C\x74\x61\x6E\x69", 224 }, | |
5260 { "\x4D\x79\x61\x6E\x6D\x61\x72", 118 }, | |
5261 { "\x4D\x79\x6D\x72", 118 }, | |
5262 { "\x4E\x61\x62\x61\x74\x61\x65\x61\x6E", 212 }, | |
5263 { "\x4E\x61\x67\x5F\x4D\x75\x6E\x64\x61\x72\x69", 258 }, | |
5264 { "\x4E\x61\x67\x6D", 258 }, | |
5265 { "\x4E\x61\x6E\x64", 245 }, | |
5266 { "\x4E\x61\x6E\x64\x69\x6E\x61\x67\x61\x72\x69", 245 }, | |
5267 { "\x4E\x61\x72\x62", 211 }, | |
5268 { "\x4E\x62\x61\x74", 212 }, | |
5269 { "\x4E\x65\x77\x5F\x54\x61\x69\x5F\x4C\x75\x65", 151 }, | |
5270 { "\x4E\x65\x77\x61", 230 }, | |
5271 { "\x4E\x6B\x6F", 161 }, | |
5272 { "\x4E\x6B\x6F\x6F", 161 }, | |
5273 { "\x4E\x73\x68\x75", 234 }, | |
5274 { "\x4E\x75\x73\x68\x75", 234 }, | |
5275 { "\x4E\x79\x69\x61\x6B\x65\x6E\x67\x5F\x50\x75\x61\x63\x68\x75\x65\x5F\x48\x6D\x6F\x6E\x67", 246 }, | |
5276 { "\x4F\x67\x61\x6D", 124 }, | |
5277 { "\x4F\x67\x68\x61\x6D", 124 }, | |
5278 { "\x4F\x6C\x5F\x43\x68\x69\x6B\x69", 164 }, | |
5279 { "\x4F\x6C\x63\x6B", 164 }, | |
5280 { "\x4F\x6C\x64\x5F\x48\x75\x6E\x67\x61\x72\x69\x61\x6E", 225 }, | |
5281 { "\x4F\x6C\x64\x5F\x49\x74\x61\x6C\x69\x63", 133 }, | |
5282 { "\x4F\x6C\x64\x5F\x4E\x6F\x72\x74\x68\x5F\x41\x72\x61\x62\x69\x61\x6E", 211 }, | |
5283 { "\x4F\x6C\x64\x5F\x50\x65\x72\x6D\x69\x63", 215 }, | |
5284 { "\x4F\x6C\x64\x5F\x50\x65\x72\x73\x69\x61\x6E", 155 }, | |
5285 { "\x4F\x6C\x64\x5F\x53\x6F\x67\x64\x69\x61\x6E", 243 }, | |
5286 { "\x4F\x6C\x64\x5F\x53\x6F\x75\x74\x68\x5F\x41\x72\x61\x62\x69\x61\x6E", 183 }, | |
5287 { "\x4F\x6C\x64\x5F\x54\x75\x72\x6B\x69\x63", 186 }, | |
5288 { "\x4F\x6C\x64\x5F\x55\x79\x67\x68\x75\x72", 253 }, | |
5289 { "\x4F\x72\x69\x79\x61", 109 }, | |
5290 { "\x4F\x72\x6B\x68", 186 }, | |
5291 { "\x4F\x72\x79\x61", 109 }, | |
5292 { "\x4F\x73\x61\x67\x65", 231 }, | |
5293 { "\x4F\x73\x67\x65", 231 }, | |
5294 { "\x4F\x73\x6D\x61", 146 }, | |
5295 { "\x4F\x73\x6D\x61\x6E\x79\x61", 146 }, | |
5296 { "\x4F\x75\x67\x72", 253 }, | |
5297 { "\x50\x61\x68\x61\x77\x68\x5F\x48\x6D\x6F\x6E\x67", 203 }, | |
5298 { "\x50\x61\x6C\x6D", 213 }, | |
5299 { "\x50\x61\x6C\x6D\x79\x72\x65\x6E\x65", 213 }, | |
5300 { "\x50\x61\x75\x5F\x43\x69\x6E\x5F\x48\x61\x75", 214 }, | |
5301 { "\x50\x61\x75\x63", 214 }, | |
5302 { "\x50\x65\x72\x6D", 215 }, | |
5303 { "\x50\x68\x61\x67", 160 }, | |
5304 { "\x50\x68\x61\x67\x73\x5F\x50\x61", 160 }, | |
5305 { "\x50\x68\x6C\x69", 185 }, | |
5306 { "\x50\x68\x6C\x70", 216 }, | |
5307 { "\x50\x68\x6E\x78", 159 }, | |
5308 { "\x50\x68\x6F\x65\x6E\x69\x63\x69\x61\x6E", 159 }, | |
5309 { "\x50\x6C\x72\x64", 194 }, | |
5310 { "\x50\x72\x74\x69", 184 }, | |
5311 { "\x50\x73\x61\x6C\x74\x65\x72\x5F\x50\x61\x68\x6C\x61\x76\x69", 216 }, | |
5312 { "\x51\x61\x61\x63", 150 }, | |
5313 { "\x51\x61\x61\x69", 136 }, | |
5314 { "\x52\x65\x6A\x61\x6E\x67", 168 }, | |
5315 { "\x52\x6A\x6E\x67", 168 }, | |
5316 { "\x52\x6F\x68\x67", 241 }, | |
5317 { "\x52\x75\x6E\x69\x63", 125 }, | |
5318 { "\x52\x75\x6E\x72", 125 }, | |
5319 { "\x53\x61\x6D\x61\x72\x69\x74\x61\x6E", 177 }, | |
5320 { "\x53\x61\x6D\x72", 177 }, | |
5321 { "\x53\x61\x72\x62", 183 }, | |
5322 { "\x53\x61\x75\x72", 166 }, | |
5323 { "\x53\x61\x75\x72\x61\x73\x68\x74\x72\x61", 166 }, | |
5324 { "\x53\x67\x6E\x77", 226 }, | |
5325 { "\x53\x68\x61\x72\x61\x64\x61", 195 }, | |
5326 { "\x53\x68\x61\x76\x69\x61\x6E", 145 }, | |
5327 { "\x53\x68\x61\x77", 145 }, | |
5328 { "\x53\x68\x72\x64", 195 }, | |
5329 { "\x53\x69\x64\x64", 217 }, | |
5330 { "\x53\x69\x64\x64\x68\x61\x6D", 217 }, | |
5331 { "\x53\x69\x67\x6E\x57\x72\x69\x74\x69\x6E\x67", 226 }, | |
5332 { "\x53\x69\x6E\x64", 218 }, | |
5333 { "\x53\x69\x6E\x68", 114 }, | |
5334 { "\x53\x69\x6E\x68\x61\x6C\x61", 114 }, | |
5335 { "\x53\x6F\x67\x64", 242 }, | |
5336 { "\x53\x6F\x67\x64\x69\x61\x6E", 242 }, | |
5337 { "\x53\x6F\x67\x6F", 243 }, | |
5338 { "\x53\x6F\x72\x61", 196 }, | |
5339 { "\x53\x6F\x72\x61\x5F\x53\x6F\x6D\x70\x65\x6E\x67", 196 }, | |
5340 { "\x53\x6F\x79\x6F", 235 }, | |
5341 { "\x53\x6F\x79\x6F\x6D\x62\x6F", 235 }, | |
5342 { "\x53\x75\x6E\x64", 162 }, | |
5343 { "\x53\x75\x6E\x64\x61\x6E\x65\x73\x65", 162 }, | |
5344 { "\x53\x79\x6C\x6F", 154 }, | |
5345 { "\x53\x79\x6C\x6F\x74\x69\x5F\x4E\x61\x67\x72\x69", 154 }, | |
5346 { "\x53\x79\x72\x63", 103 }, | |
5347 { "\x53\x79\x72\x69\x61\x63", 103 }, | |
5348 { "\x54\x61\x67\x61\x6C\x6F\x67", 137 }, | |
5349 { "\x54\x61\x67\x62", 140 }, | |
5350 { "\x54\x61\x67\x62\x61\x6E\x77\x61", 140 }, | |
5351 { "\x54\x61\x69\x5F\x4C\x65", 142 }, | |
5352 { "\x54\x61\x69\x5F\x54\x68\x61\x6D", 173 }, | |
5353 { "\x54\x61\x69\x5F\x56\x69\x65\x74", 174 }, | |
5354 { "\x54\x61\x6B\x72", 197 }, | |
5355 { "\x54\x61\x6B\x72\x69", 197 }, | |
5356 { "\x54\x61\x6C\x65", 142 }, | |
5357 { "\x54\x61\x6C\x75", 151 }, | |
5358 { "\x54\x61\x6D\x69\x6C", 110 }, | |
5359 { "\x54\x61\x6D\x6C", 110 }, | |
5360 { "\x54\x61\x6E\x67", 232 }, | |
5361 { "\x54\x61\x6E\x67\x73\x61", 254 }, | |
5362 { "\x54\x61\x6E\x67\x75\x74", 232 }, | |
5363 { "\x54\x61\x76\x74", 174 }, | |
5364 { "\x54\x65\x6C\x75", 111 }, | |
5365 { "\x54\x65\x6C\x75\x67\x75", 111 }, | |
5366 { "\x54\x66\x6E\x67", 153 }, | |
5367 { "\x54\x67\x6C\x67", 137 }, | |
5368 { "\x54\x68\x61\x61", 104 }, | |
5369 { "\x54\x68\x61\x61\x6E\x61", 104 }, | |
5370 { "\x54\x68\x61\x69", 115 }, | |
5371 { "\x54\x69\x62\x65\x74\x61\x6E", 117 }, | |
5372 { "\x54\x69\x62\x74", 117 }, | |
5373 { "\x54\x69\x66\x69\x6E\x61\x67\x68", 153 }, | |
5374 { "\x54\x69\x72\x68", 219 }, | |
5375 { "\x54\x69\x72\x68\x75\x74\x61", 219 }, | |
5376 { "\x54\x6E\x73\x61", 254 }, | |
5377 { "\x54\x6F\x74\x6F", 255 }, | |
5378 { "\x55\x67\x61\x72", 144 }, | |
5379 { "\x55\x67\x61\x72\x69\x74\x69\x63", 144 }, | |
5380 { "\x55\x6E\x6B\x6E\x6F\x77\x6E", 259 }, | |
5381 { "\x56\x61\x69", 165 }, | |
5382 { "\x56\x61\x69\x69", 165 }, | |
5383 { "\x56\x69\x74\x68", 256 }, | |
5384 { "\x56\x69\x74\x68\x6B\x75\x71\x69", 256 }, | |
5385 { "\x57\x61\x6E\x63\x68\x6F", 247 }, | |
5386 { "\x57\x61\x72\x61", 220 }, | |
5387 { "\x57\x61\x72\x61\x6E\x67\x5F\x43\x69\x74\x69", 220 }, | |
5388 { "\x57\x63\x68\x6F", 247 }, | |
5389 { "\x58\x70\x65\x6F", 155 }, | |
5390 { "\x58\x73\x75\x78", 158 }, | |
5391 { "\x59\x65\x7A\x69", 251 }, | |
5392 { "\x59\x65\x7A\x69\x64\x69", 251 }, | |
5393 { "\x59\x69", 132 }, | |
5394 { "\x59\x69\x69\x69", 132 }, | |
5395 { "\x5A\x61\x6E\x61\x62\x61\x7A\x61\x72\x5F\x53\x71\x75\x61\x72\x65", 236 }, | |
5396 { "\x5A\x61\x6E\x62", 236 }, | |
5397 { "\x5A\x69\x6E\x68", 136 }, | |
5398 { "\x5A\x79\x79\x79", 96 }, | |
5399 { "\x5A\x7A\x7A\x7A", 259 }, | |
5400 // scx: 322 | |
5401 { "\x41\x64\x6C\x61\x6D", 320 }, | |
5402 { "\x41\x64\x6C\x6D", 320 }, | |
5403 { "\x41\x67\x68\x62", 198 }, | |
5404 { "\x41\x68\x6F\x6D", 221 }, | |
5405 { "\x41\x6E\x61\x74\x6F\x6C\x69\x61\x6E\x5F\x48\x69\x65\x72\x6F\x67\x6C\x79\x70\x68\x73", 222 }, | |
5406 { "\x41\x72\x61\x62", 264 }, | |
5407 { "\x41\x72\x61\x62\x69\x63", 264 }, | |
5408 { "\x41\x72\x6D\x65\x6E\x69\x61\x6E", 100 }, | |
5409 { "\x41\x72\x6D\x69", 182 }, | |
5410 { "\x41\x72\x6D\x6E", 100 }, | |
5411 { "\x41\x76\x65\x73\x74\x61\x6E", 175 }, | |
5412 { "\x41\x76\x73\x74", 175 }, | |
5413 { "\x42\x61\x6C\x69", 157 }, | |
5414 { "\x42\x61\x6C\x69\x6E\x65\x73\x65", 157 }, | |
5415 { "\x42\x61\x6D\x75", 179 }, | |
5416 { "\x42\x61\x6D\x75\x6D", 179 }, | |
5417 { "\x42\x61\x73\x73", 199 }, | |
5418 { "\x42\x61\x73\x73\x61\x5F\x56\x61\x68", 199 }, | |
5419 { "\x42\x61\x74\x61\x6B", 188 }, | |
5420 { "\x42\x61\x74\x6B", 188 }, | |
5421 { "\x42\x65\x6E\x67", 268 }, | |
5422 { "\x42\x65\x6E\x67\x61\x6C\x69", 268 }, | |
5423 { "\x42\x68\x61\x69\x6B\x73\x75\x6B\x69", 228 }, | |
5424 { "\x42\x68\x6B\x73", 228 }, | |
5425 { "\x42\x6F\x70\x6F", 283 }, | |
5426 { "\x42\x6F\x70\x6F\x6D\x6F\x66\x6F", 283 }, | |
5427 { "\x42\x72\x61\x68", 189 }, | |
5428 { "\x42\x72\x61\x68\x6D\x69", 189 }, | |
5429 { "\x42\x72\x61\x69", 148 }, | |
5430 { "\x42\x72\x61\x69\x6C\x6C\x65", 148 }, | |
5431 { "\x42\x75\x67\x69", 295 }, | |
5432 { "\x42\x75\x67\x69\x6E\x65\x73\x65", 295 }, | |
5433 { "\x42\x75\x68\x64", 289 }, | |
5434 { "\x42\x75\x68\x69\x64", 289 }, | |
5435 { "\x43\x61\x6B\x6D", 305 }, | |
5436 { "\x43\x61\x6E\x61\x64\x69\x61\x6E\x5F\x41\x62\x6F\x72\x69\x67\x69\x6E\x61\x6C", 123 }, | |
5437 { "\x43\x61\x6E\x73", 123 }, | |
5438 { "\x43\x61\x72\x69", 170 }, | |
5439 { "\x43\x61\x72\x69\x61\x6E", 170 }, | |
5440 { "\x43\x61\x75\x63\x61\x73\x69\x61\x6E\x5F\x41\x6C\x62\x61\x6E\x69\x61\x6E", 198 }, | |
5441 { "\x43\x68\x61\x6B\x6D\x61", 305 }, | |
5442 { "\x43\x68\x61\x6D", 172 }, | |
5443 { "\x43\x68\x65\x72", 122 }, | |
5444 { "\x43\x68\x65\x72\x6F\x6B\x65\x65", 122 }, | |
5445 { "\x43\x68\x6F\x72\x61\x73\x6D\x69\x61\x6E", 248 }, | |
5446 { "\x43\x68\x72\x73", 248 }, | |
5447 { "\x43\x6F\x6D\x6D\x6F\x6E", 260 }, | |
5448 { "\x43\x6F\x70\x74", 296 }, | |
5449 { "\x43\x6F\x70\x74\x69\x63", 296 }, | |
5450 { "\x43\x70\x6D\x6E", 328 }, | |
5451 { "\x43\x70\x72\x74", 294 }, | |
5452 { "\x43\x75\x6E\x65\x69\x66\x6F\x72\x6D", 158 }, | |
5453 { "\x43\x79\x70\x72\x69\x6F\x74", 294 }, | |
5454 { "\x43\x79\x70\x72\x6F\x5F\x4D\x69\x6E\x6F\x61\x6E", 328 }, | |
5455 { "\x43\x79\x72\x69\x6C\x6C\x69\x63", 263 }, | |
5456 { "\x43\x79\x72\x6C", 263 }, | |
5457 { "\x44\x65\x73\x65\x72\x65\x74", 135 }, | |
5458 { "\x44\x65\x76\x61", 267 }, | |
5459 { "\x44\x65\x76\x61\x6E\x61\x67\x61\x72\x69", 267 }, | |
5460 { "\x44\x69\x61\x6B", 249 }, | |
5461 { "\x44\x69\x76\x65\x73\x5F\x41\x6B\x75\x72\x75", 249 }, | |
5462 { "\x44\x6F\x67\x72", 322 }, | |
5463 { "\x44\x6F\x67\x72\x61", 322 }, | |
5464 { "\x44\x73\x72\x74", 135 }, | |
5465 { "\x44\x75\x70\x6C", 308 }, | |
5466 { "\x44\x75\x70\x6C\x6F\x79\x61\x6E", 308 }, | |
5467 { "\x45\x67\x79\x70", 176 }, | |
5468 { "\x45\x67\x79\x70\x74\x69\x61\x6E\x5F\x48\x69\x65\x72\x6F\x67\x6C\x79\x70\x68\x73", 176 }, | |
5469 { "\x45\x6C\x62\x61", 201 }, | |
5470 { "\x45\x6C\x62\x61\x73\x61\x6E", 201 }, | |
5471 { "\x45\x6C\x79\x6D", 244 }, | |
5472 { "\x45\x6C\x79\x6D\x61\x69\x63", 244 }, | |
5473 { "\x45\x74\x68\x69", 121 }, | |
5474 { "\x45\x74\x68\x69\x6F\x70\x69\x63", 121 }, | |
5475 { "\x47\x65\x6F\x72", 278 }, | |
5476 { "\x47\x65\x6F\x72\x67\x69\x61\x6E", 278 }, | |
5477 { "\x47\x6C\x61\x67", 297 }, | |
5478 { "\x47\x6C\x61\x67\x6F\x6C\x69\x74\x69\x63", 297 }, | |
5479 { "\x47\x6F\x6E\x67", 323 }, | |
5480 { "\x47\x6F\x6E\x6D", 321 }, | |
5481 { "\x47\x6F\x74\x68", 134 }, | |
5482 { "\x47\x6F\x74\x68\x69\x63", 134 }, | |
5483 { "\x47\x72\x61\x6E", 309 }, | |
5484 { "\x47\x72\x61\x6E\x74\x68\x61", 309 }, | |
5485 { "\x47\x72\x65\x65\x6B", 262 }, | |
5486 { "\x47\x72\x65\x6B", 262 }, | |
5487 { "\x47\x75\x6A\x61\x72\x61\x74\x69", 270 }, | |
5488 { "\x47\x75\x6A\x72", 270 }, | |
5489 { "\x47\x75\x6E\x6A\x61\x6C\x61\x5F\x47\x6F\x6E\x64\x69", 323 }, | |
5490 { "\x47\x75\x72\x6D\x75\x6B\x68\x69", 269 }, | |
5491 { "\x47\x75\x72\x75", 269 }, | |
5492 { "\x48\x61\x6E", 284 }, | |
5493 { "\x48\x61\x6E\x67", 279 }, | |
5494 { "\x48\x61\x6E\x67\x75\x6C", 279 }, | |
5495 { "\x48\x61\x6E\x69", 284 }, | |
5496 { "\x48\x61\x6E\x69\x66\x69\x5F\x52\x6F\x68\x69\x6E\x67\x79\x61", 324 }, | |
5497 { "\x48\x61\x6E\x6F", 288 }, | |
5498 { "\x48\x61\x6E\x75\x6E\x6F\x6F", 288 }, | |
5499 { "\x48\x61\x74\x72", 223 }, | |
5500 { "\x48\x61\x74\x72\x61\x6E", 223 }, | |
5501 { "\x48\x65\x62\x72", 101 }, | |
5502 { "\x48\x65\x62\x72\x65\x77", 101 }, | |
5503 { "\x48\x69\x72\x61", 281 }, | |
5504 { "\x48\x69\x72\x61\x67\x61\x6E\x61", 281 }, | |
5505 { "\x48\x6C\x75\x77", 222 }, | |
5506 { "\x48\x6D\x6E\x67", 203 }, | |
5507 { "\x48\x6D\x6E\x70", 246 }, | |
5508 { "\x48\x75\x6E\x67", 225 }, | |
5509 { "\x49\x6D\x70\x65\x72\x69\x61\x6C\x5F\x41\x72\x61\x6D\x61\x69\x63", 182 }, | |
5510 { "\x49\x6E\x68\x65\x72\x69\x74\x65\x64", 286 }, | |
5511 { "\x49\x6E\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x61\x6C\x5F\x50\x61\x68\x6C\x61\x76\x69", 185 }, | |
5512 { "\x49\x6E\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x61\x6C\x5F\x50\x61\x72\x74\x68\x69\x61\x6E", 184 }, | |
5513 { "\x49\x74\x61\x6C", 133 }, | |
5514 { "\x4A\x61\x76\x61", 302 }, | |
5515 { "\x4A\x61\x76\x61\x6E\x65\x73\x65", 302 }, | |
5516 { "\x4B\x61\x69\x74\x68\x69", 303 }, | |
5517 { "\x4B\x61\x6C\x69", 301 }, | |
5518 { "\x4B\x61\x6E\x61", 282 }, | |
5519 { "\x4B\x61\x6E\x6E\x61\x64\x61", 274 }, | |
5520 { "\x4B\x61\x74\x61\x6B\x61\x6E\x61", 282 }, | |
5521 { "\x4B\x61\x77\x69", 257 }, | |
5522 { "\x4B\x61\x79\x61\x68\x5F\x4C\x69", 301 }, | |
5523 { "\x4B\x68\x61\x72", 156 }, | |
5524 { "\x4B\x68\x61\x72\x6F\x73\x68\x74\x68\x69", 156 }, | |
5525 { "\x4B\x68\x69\x74\x61\x6E\x5F\x53\x6D\x61\x6C\x6C\x5F\x53\x63\x72\x69\x70\x74", 250 }, | |
5526 { "\x4B\x68\x6D\x65\x72", 126 }, | |
5527 { "\x4B\x68\x6D\x72", 126 }, | |
5528 { "\x4B\x68\x6F\x6A", 310 }, | |
5529 { "\x4B\x68\x6F\x6A\x6B\x69", 310 }, | |
5530 { "\x4B\x68\x75\x64\x61\x77\x61\x64\x69", 317 }, | |
5531 { "\x4B\x69\x74\x73", 250 }, | |
5532 { "\x4B\x6E\x64\x61", 274 }, | |
5533 { "\x4B\x74\x68\x69", 303 }, | |
5534 { "\x4C\x61\x6E\x61", 173 }, | |
5535 { "\x4C\x61\x6F", 116 }, | |
5536 { "\x4C\x61\x6F\x6F", 116 }, | |
5537 { "\x4C\x61\x74\x69\x6E", 261 }, | |
5538 { "\x4C\x61\x74\x6E", 261 }, | |
5539 { "\x4C\x65\x70\x63", 163 }, | |
5540 { "\x4C\x65\x70\x63\x68\x61", 163 }, | |
5541 { "\x4C\x69\x6D\x62", 291 }, | |
5542 { "\x4C\x69\x6D\x62\x75", 291 }, | |
5543 { "\x4C\x69\x6E\x61", 311 }, | |
5544 { "\x4C\x69\x6E\x62", 293 }, | |
5545 { "\x4C\x69\x6E\x65\x61\x72\x5F\x41", 311 }, | |
5546 { "\x4C\x69\x6E\x65\x61\x72\x5F\x42", 293 }, | |
5547 { "\x4C\x69\x73\x75", 178 }, | |
5548 { "\x4C\x79\x63\x69", 169 }, | |
5549 { "\x4C\x79\x63\x69\x61\x6E", 169 }, | |
5550 { "\x4C\x79\x64\x69", 171 }, | |
5551 { "\x4C\x79\x64\x69\x61\x6E", 171 }, | |
5552 { "\x4D\x61\x68\x61\x6A\x61\x6E\x69", 312 }, | |
5553 { "\x4D\x61\x68\x6A", 312 }, | |
5554 { "\x4D\x61\x6B\x61", 239 }, | |
5555 { "\x4D\x61\x6B\x61\x73\x61\x72", 239 }, | |
5556 { "\x4D\x61\x6C\x61\x79\x61\x6C\x61\x6D", 275 }, | |
5557 { "\x4D\x61\x6E\x64", 304 }, | |
5558 { "\x4D\x61\x6E\x64\x61\x69\x63", 304 }, | |
5559 { "\x4D\x61\x6E\x69", 313 }, | |
5560 { "\x4D\x61\x6E\x69\x63\x68\x61\x65\x61\x6E", 313 }, | |
5561 { "\x4D\x61\x72\x63", 229 }, | |
5562 { "\x4D\x61\x72\x63\x68\x65\x6E", 229 }, | |
5563 { "\x4D\x61\x73\x61\x72\x61\x6D\x5F\x47\x6F\x6E\x64\x69", 321 }, | |
5564 { "\x4D\x65\x64\x65\x66\x61\x69\x64\x72\x69\x6E", 240 }, | |
5565 { "\x4D\x65\x64\x66", 240 }, | |
5566 { "\x4D\x65\x65\x74\x65\x69\x5F\x4D\x61\x79\x65\x6B", 181 }, | |
5567 { "\x4D\x65\x6E\x64", 208 }, | |
5568 { "\x4D\x65\x6E\x64\x65\x5F\x4B\x69\x6B\x61\x6B\x75\x69", 208 }, | |
5569 { "\x4D\x65\x72\x63", 192 }, | |
5570 { "\x4D\x65\x72\x6F", 193 }, | |
5571 { "\x4D\x65\x72\x6F\x69\x74\x69\x63\x5F\x43\x75\x72\x73\x69\x76\x65", 192 }, | |
5572 { "\x4D\x65\x72\x6F\x69\x74\x69\x63\x5F\x48\x69\x65\x72\x6F\x67\x6C\x79\x70\x68\x73", 193 }, | |
5573 { "\x4D\x69\x61\x6F", 194 }, | |
5574 { "\x4D\x6C\x79\x6D", 275 }, | |
5575 { "\x4D\x6F\x64\x69", 314 }, | |
5576 { "\x4D\x6F\x6E\x67", 280 }, | |
5577 { "\x4D\x6F\x6E\x67\x6F\x6C\x69\x61\x6E", 280 }, | |
5578 { "\x4D\x72\x6F", 210 }, | |
5579 { "\x4D\x72\x6F\x6F", 210 }, | |
5580 { "\x4D\x74\x65\x69", 181 }, | |
5581 { "\x4D\x75\x6C\x74", 319 }, | |
5582 { "\x4D\x75\x6C\x74\x61\x6E\x69", 319 }, | |
5583 { "\x4D\x79\x61\x6E\x6D\x61\x72", 277 }, | |
5584 { "\x4D\x79\x6D\x72", 277 }, | |
5585 { "\x4E\x61\x62\x61\x74\x61\x65\x61\x6E", 212 }, | |
5586 { "\x4E\x61\x67\x5F\x4D\x75\x6E\x64\x61\x72\x69", 258 }, | |
5587 { "\x4E\x61\x67\x6D", 258 }, | |
5588 { "\x4E\x61\x6E\x64", 326 }, | |
5589 { "\x4E\x61\x6E\x64\x69\x6E\x61\x67\x61\x72\x69", 326 }, | |
5590 { "\x4E\x61\x72\x62", 211 }, | |
5591 { "\x4E\x62\x61\x74", 212 }, | |
5592 { "\x4E\x65\x77\x5F\x54\x61\x69\x5F\x4C\x75\x65", 151 }, | |
5593 { "\x4E\x65\x77\x61", 230 }, | |
5594 { "\x4E\x6B\x6F", 300 }, | |
5595 { "\x4E\x6B\x6F\x6F", 300 }, | |
5596 { "\x4E\x73\x68\x75", 234 }, | |
5597 { "\x4E\x75\x73\x68\x75", 234 }, | |
5598 { "\x4E\x79\x69\x61\x6B\x65\x6E\x67\x5F\x50\x75\x61\x63\x68\x75\x65\x5F\x48\x6D\x6F\x6E\x67", 246 }, | |
5599 { "\x4F\x67\x61\x6D", 124 }, | |
5600 { "\x4F\x67\x68\x61\x6D", 124 }, | |
5601 { "\x4F\x6C\x5F\x43\x68\x69\x6B\x69", 164 }, | |
5602 { "\x4F\x6C\x63\x6B", 164 }, | |
5603 { "\x4F\x6C\x64\x5F\x48\x75\x6E\x67\x61\x72\x69\x61\x6E", 225 }, | |
5604 { "\x4F\x6C\x64\x5F\x49\x74\x61\x6C\x69\x63", 133 }, | |
5605 { "\x4F\x6C\x64\x5F\x4E\x6F\x72\x74\x68\x5F\x41\x72\x61\x62\x69\x61\x6E", 211 }, | |
5606 { "\x4F\x6C\x64\x5F\x50\x65\x72\x6D\x69\x63", 315 }, | |
5607 { "\x4F\x6C\x64\x5F\x50\x65\x72\x73\x69\x61\x6E", 155 }, | |
5608 { "\x4F\x6C\x64\x5F\x53\x6F\x67\x64\x69\x61\x6E", 243 }, | |
5609 { "\x4F\x6C\x64\x5F\x53\x6F\x75\x74\x68\x5F\x41\x72\x61\x62\x69\x61\x6E", 183 }, | |
5610 { "\x4F\x6C\x64\x5F\x54\x75\x72\x6B\x69\x63", 186 }, | |
5611 { "\x4F\x6C\x64\x5F\x55\x79\x67\x68\x75\x72", 329 }, | |
5612 { "\x4F\x72\x69\x79\x61", 271 }, | |
5613 { "\x4F\x72\x6B\x68", 186 }, | |
5614 { "\x4F\x72\x79\x61", 271 }, | |
5615 { "\x4F\x73\x61\x67\x65", 231 }, | |
5616 { "\x4F\x73\x67\x65", 231 }, | |
5617 { "\x4F\x73\x6D\x61", 146 }, | |
5618 { "\x4F\x73\x6D\x61\x6E\x79\x61", 146 }, | |
5619 { "\x4F\x75\x67\x72", 329 }, | |
5620 { "\x50\x61\x68\x61\x77\x68\x5F\x48\x6D\x6F\x6E\x67", 203 }, | |
5621 { "\x50\x61\x6C\x6D", 213 }, | |
5622 { "\x50\x61\x6C\x6D\x79\x72\x65\x6E\x65", 213 }, | |
5623 { "\x50\x61\x75\x5F\x43\x69\x6E\x5F\x48\x61\x75", 214 }, | |
5624 { "\x50\x61\x75\x63", 214 }, | |
5625 { "\x50\x65\x72\x6D", 315 }, | |
5626 { "\x50\x68\x61\x67", 299 }, | |
5627 { "\x50\x68\x61\x67\x73\x5F\x50\x61", 299 }, | |
5628 { "\x50\x68\x6C\x69", 185 }, | |
5629 { "\x50\x68\x6C\x70", 316 }, | |
5630 { "\x50\x68\x6E\x78", 159 }, | |
5631 { "\x50\x68\x6F\x65\x6E\x69\x63\x69\x61\x6E", 159 }, | |
5632 { "\x50\x6C\x72\x64", 194 }, | |
5633 { "\x50\x72\x74\x69", 184 }, | |
5634 { "\x50\x73\x61\x6C\x74\x65\x72\x5F\x50\x61\x68\x6C\x61\x76\x69", 316 }, | |
5635 { "\x51\x61\x61\x63", 296 }, | |
5636 { "\x51\x61\x61\x69", 286 }, | |
5637 { "\x52\x65\x6A\x61\x6E\x67", 168 }, | |
5638 { "\x52\x6A\x6E\x67", 168 }, | |
5639 { "\x52\x6F\x68\x67", 324 }, | |
5640 { "\x52\x75\x6E\x69\x63", 125 }, | |
5641 { "\x52\x75\x6E\x72", 125 }, | |
5642 { "\x53\x61\x6D\x61\x72\x69\x74\x61\x6E", 177 }, | |
5643 { "\x53\x61\x6D\x72", 177 }, | |
5644 { "\x53\x61\x72\x62", 183 }, | |
5645 { "\x53\x61\x75\x72", 166 }, | |
5646 { "\x53\x61\x75\x72\x61\x73\x68\x74\x72\x61", 166 }, | |
5647 { "\x53\x67\x6E\x77", 226 }, | |
5648 { "\x53\x68\x61\x72\x61\x64\x61", 306 }, | |
5649 { "\x53\x68\x61\x76\x69\x61\x6E", 145 }, | |
5650 { "\x53\x68\x61\x77", 145 }, | |
5651 { "\x53\x68\x72\x64", 306 }, | |
5652 { "\x53\x69\x64\x64", 217 }, | |
5653 { "\x53\x69\x64\x64\x68\x61\x6D", 217 }, | |
5654 { "\x53\x69\x67\x6E\x57\x72\x69\x74\x69\x6E\x67", 226 }, | |
5655 { "\x53\x69\x6E\x64", 317 }, | |
5656 { "\x53\x69\x6E\x68", 276 }, | |
5657 { "\x53\x69\x6E\x68\x61\x6C\x61", 276 }, | |
5658 { "\x53\x6F\x67\x64", 325 }, | |
5659 { "\x53\x6F\x67\x64\x69\x61\x6E", 325 }, | |
5660 { "\x53\x6F\x67\x6F", 243 }, | |
5661 { "\x53\x6F\x72\x61", 196 }, | |
5662 { "\x53\x6F\x72\x61\x5F\x53\x6F\x6D\x70\x65\x6E\x67", 196 }, | |
5663 { "\x53\x6F\x79\x6F", 235 }, | |
5664 { "\x53\x6F\x79\x6F\x6D\x62\x6F", 235 }, | |
5665 { "\x53\x75\x6E\x64", 162 }, | |
5666 { "\x53\x75\x6E\x64\x61\x6E\x65\x73\x65", 162 }, | |
5667 { "\x53\x79\x6C\x6F", 298 }, | |
5668 { "\x53\x79\x6C\x6F\x74\x69\x5F\x4E\x61\x67\x72\x69", 298 }, | |
5669 { "\x53\x79\x72\x63", 265 }, | |
5670 { "\x53\x79\x72\x69\x61\x63", 265 }, | |
5671 { "\x54\x61\x67\x61\x6C\x6F\x67", 287 }, | |
5672 { "\x54\x61\x67\x62", 290 }, | |
5673 { "\x54\x61\x67\x62\x61\x6E\x77\x61", 290 }, | |
5674 { "\x54\x61\x69\x5F\x4C\x65", 292 }, | |
5675 { "\x54\x61\x69\x5F\x54\x68\x61\x6D", 173 }, | |
5676 { "\x54\x61\x69\x5F\x56\x69\x65\x74", 174 }, | |
5677 { "\x54\x61\x6B\x72", 307 }, | |
5678 { "\x54\x61\x6B\x72\x69", 307 }, | |
5679 { "\x54\x61\x6C\x65", 292 }, | |
5680 { "\x54\x61\x6C\x75", 151 }, | |
5681 { "\x54\x61\x6D\x69\x6C", 272 }, | |
5682 { "\x54\x61\x6D\x6C", 272 }, | |
5683 { "\x54\x61\x6E\x67", 232 }, | |
5684 { "\x54\x61\x6E\x67\x73\x61", 254 }, | |
5685 { "\x54\x61\x6E\x67\x75\x74", 232 }, | |
5686 { "\x54\x61\x76\x74", 174 }, | |
5687 { "\x54\x65\x6C\x75", 273 }, | |
5688 { "\x54\x65\x6C\x75\x67\x75", 273 }, | |
5689 { "\x54\x66\x6E\x67", 153 }, | |
5690 { "\x54\x67\x6C\x67", 287 }, | |
5691 { "\x54\x68\x61\x61", 266 }, | |
5692 { "\x54\x68\x61\x61\x6E\x61", 266 }, | |
5693 { "\x54\x68\x61\x69", 115 }, | |
5694 { "\x54\x69\x62\x65\x74\x61\x6E", 117 }, | |
5695 { "\x54\x69\x62\x74", 117 }, | |
5696 { "\x54\x69\x66\x69\x6E\x61\x67\x68", 153 }, | |
5697 { "\x54\x69\x72\x68", 318 }, | |
5698 { "\x54\x69\x72\x68\x75\x74\x61", 318 }, | |
5699 { "\x54\x6E\x73\x61", 254 }, | |
5700 { "\x54\x6F\x74\x6F", 255 }, | |
5701 { "\x55\x67\x61\x72", 144 }, | |
5702 { "\x55\x67\x61\x72\x69\x74\x69\x63", 144 }, | |
5703 { "\x55\x6E\x6B\x6E\x6F\x77\x6E", 259 }, | |
5704 { "\x56\x61\x69", 165 }, | |
5705 { "\x56\x61\x69\x69", 165 }, | |
5706 { "\x56\x69\x74\x68", 256 }, | |
5707 { "\x56\x69\x74\x68\x6B\x75\x71\x69", 256 }, | |
5708 { "\x57\x61\x6E\x63\x68\x6F", 247 }, | |
5709 { "\x57\x61\x72\x61", 220 }, | |
5710 { "\x57\x61\x72\x61\x6E\x67\x5F\x43\x69\x74\x69", 220 }, | |
5711 { "\x57\x63\x68\x6F", 247 }, | |
5712 { "\x58\x70\x65\x6F", 155 }, | |
5713 { "\x58\x73\x75\x78", 158 }, | |
5714 { "\x59\x65\x7A\x69", 327 }, | |
5715 { "\x59\x65\x7A\x69\x64\x69", 327 }, | |
5716 { "\x59\x69", 285 }, | |
5717 { "\x59\x69\x69\x69", 285 }, | |
5718 { "\x5A\x61\x6E\x61\x62\x61\x7A\x61\x72\x5F\x53\x71\x75\x61\x72\x65", 236 }, | |
5719 { "\x5A\x61\x6E\x62", 236 }, | |
5720 { "\x5A\x69\x6E\x68", 286 }, | |
5721 { "\x5A\x79\x79\x79", 260 }, | |
5722 { "\x5A\x7A\x7A\x7A", 259 } | |
5723 }; | |
5724 | |
5725 template <typename T3, typename T4, typename T5> | |
5726 const T4 unicode_property_data<T3, T4, T5>::positiontable[] = | |
5727 { | |
5728 { 0, 0 }, // #0 unknown | |
5729 { 86, 105 }, // #1 binary | |
5730 { 6, 80 }, // #2 General_Category:gc | |
5731 { 191, 322 }, // #3 Script:sc | |
5732 { 513, 322 }, // #4 Script_Extensions:scx | |
5733 { 0, 734 }, // #5 gc=Other:C | |
5734 { 0, 2 }, // #6 gc=Control:Cc:cntrl | |
5735 { 2, 21 }, // #7 gc=Format:Cf | |
5736 { 23, 707 }, // #8 gc=Unassigned:Cn | |
5737 { 730, 3 }, // #9 gc=Private_Use:Co | |
5738 { 733, 1 }, // #10 gc=Surrogate:Cs | |
5739 { 734, 1896 }, // #11 gc=Letter:L | |
5740 { 734, 1314 }, // #12 gc=Cased_Letter:LC | |
5741 { 734, 658 }, // #13 gc=Lowercase_Letter:Ll | |
5742 { 1392, 10 }, // #14 gc=Titlecase_Letter:Lt | |
5743 { 1402, 646 }, // #15 gc=Uppercase_Letter:Lu | |
5744 { 2048, 71 }, // #16 gc=Modifier_Letter:Lm | |
5745 { 2119, 511 }, // #17 gc=Other_Letter:Lo | |
5746 { 2630, 533 }, // #18 gc=Mark:M:Combining_Mark | |
5747 { 2630, 182 }, // #19 gc=Spacing_Mark:Mc | |
5748 { 2812, 5 }, // #20 gc=Enclosing_Mark:Me | |
5749 { 2817, 346 }, // #21 gc=Nonspacing_Mark:Mn | |
5750 { 3163, 148 }, // #22 gc=Number:N | |
5751 { 3163, 64 }, // #23 gc=Decimal_Number:Nd:digit | |
5752 { 3227, 12 }, // #24 gc=Letter_Number:Nl | |
5753 { 3239, 72 }, // #25 gc=Other_Number:No | |
5754 { 3311, 388 }, // #26 gc=Punctuation:P:punct | |
5755 { 3311, 6 }, // #27 gc=Connector_Punctuation:Pc | |
5756 { 3317, 19 }, // #28 gc=Dash_Punctuation:Pd | |
5757 { 3336, 76 }, // #29 gc=Close_Punctuation:Pe | |
5758 { 3412, 10 }, // #30 gc=Final_Punctuation:Pf | |
5759 { 3422, 11 }, // #31 gc=Initial_Punctuation:Pi | |
5760 { 3433, 187 }, // #32 gc=Other_Punctuation:Po | |
5761 { 3620, 79 }, // #33 gc=Open_Punctuation:Ps | |
5762 { 3699, 301 }, // #34 gc=Symbol:S | |
5763 { 3699, 21 }, // #35 gc=Currency_Symbol:Sc | |
5764 { 3720, 31 }, // #36 gc=Modifier_Symbol:Sk | |
5765 { 3751, 64 }, // #37 gc=Math_Symbol:Sm | |
5766 { 3815, 185 }, // #38 gc=Other_Symbol:So | |
5767 { 4000, 9 }, // #39 gc=Separator:Z | |
5768 { 4000, 1 }, // #40 gc=Line_Separator:Zl | |
5769 { 4001, 1 }, // #41 gc=Paragraph_Separator:Zp | |
5770 { 4002, 7 }, // #42 gc=Space_Separator:Zs | |
5771 { 4009, 1 }, // #43 bp=ASCII | |
5772 { 4010, 3 }, // #44 bp=ASCII_Hex_Digit:AHex | |
5773 { 4013, 733 }, // #45 bp=Alphabetic:Alpha | |
5774 { 4746, 1 }, // #46 bp=Any | |
5775 { 4747, 0 }, // #47 bp=Assigned | |
5776 { 4747, 4 }, // #48 bp=Bidi_Control:Bidi_C | |
5777 { 4751, 114 }, // #49 bp=Bidi_Mirrored:Bidi_M | |
5778 { 4865, 437 }, // #50 bp=Case_Ignorable:CI | |
5779 { 5302, 157 }, // #51 bp=Cased | |
5780 { 5459, 622 }, // #52 bp=Changes_When_Casefolded:CWCF | |
5781 { 6081, 131 }, // #53 bp=Changes_When_Casemapped:CWCM | |
5782 { 6212, 609 }, // #54 bp=Changes_When_Lowercased:CWL | |
5783 { 6821, 839 }, // #55 bp=Changes_When_NFKC_Casefolded:CWKCF | |
5784 { 7660, 626 }, // #56 bp=Changes_When_Titlecased:CWT | |
5785 { 8286, 627 }, // #57 bp=Changes_When_Uppercased:CWU | |
5786 { 8913, 23 }, // #58 bp=Dash | |
5787 { 8936, 17 }, // #59 bp=Default_Ignorable_Code_Point:DI | |
5788 { 8953, 8 }, // #60 bp=Deprecated:Dep | |
5789 { 8961, 195 }, // #61 bp=Diacritic:Dia | |
5790 { 9156, 151 }, // #62 bp=Emoji | |
5791 { 9307, 10 }, // #63 bp=Emoji_Component:EComp | |
5792 { 9317, 1 }, // #64 bp=Emoji_Modifier:EMod | |
5793 { 9318, 40 }, // #65 bp=Emoji_Modifier_Base:EBase | |
5794 { 9358, 81 }, // #66 bp=Emoji_Presentation:EPres | |
5795 { 9439, 78 }, // #67 bp=Extended_Pictographic:ExtPict | |
5796 { 9517, 33 }, // #68 bp=Extender:Ext | |
5797 { 9550, 875 }, // #69 bp=Grapheme_Base:Gr_Base | |
5798 { 10425, 363 }, // #70 bp=Grapheme_Extend:Gr_Ext | |
5799 { 10788, 6 }, // #71 bp=Hex_Digit:Hex | |
5800 { 10794, 3 }, // #72 bp=IDS_Binary_Operator:IDSB | |
5801 { 10797, 1 }, // #73 bp=IDS_Trinary_Operator:IDST | |
5802 { 10798, 769 }, // #74 bp=ID_Continue:IDC | |
5803 { 11567, 660 }, // #75 bp=ID_Start:IDS | |
5804 { 12227, 21 }, // #76 bp=Ideographic:Ideo | |
5805 { 12248, 1 }, // #77 bp=Join_Control:Join_C | |
5806 { 12249, 7 }, // #78 bp=Logical_Order_Exception:LOE | |
5807 { 12256, 671 }, // #79 bp=Lowercase:Lower | |
5808 { 12927, 138 }, // #80 bp=Math | |
5809 { 13065, 18 }, // #81 bp=Noncharacter_Code_Point:NChar | |
5810 { 13083, 28 }, // #82 bp=Pattern_Syntax:Pat_Syn | |
5811 { 13111, 5 }, // #83 bp=Pattern_White_Space:Pat_WS | |
5812 { 13116, 13 }, // #84 bp=Quotation_Mark:QMark | |
5813 { 13129, 3 }, // #85 bp=Radical | |
5814 { 13132, 1 }, // #86 bp=Regional_Indicator:RI | |
5815 { 13133, 81 }, // #87 bp=Sentence_Terminal:STerm | |
5816 { 13214, 34 }, // #88 bp=Soft_Dotted:SD | |
5817 { 13248, 108 }, // #89 bp=Terminal_Punctuation:Term | |
5818 { 13356, 17 }, // #90 bp=Unified_Ideograph:UIdeo | |
5819 { 13373, 651 }, // #91 bp=Uppercase:Upper | |
5820 { 14024, 4 }, // #92 bp=Variation_Selector:VS | |
5821 { 14028, 10 }, // #93 bp=White_Space:space | |
5822 { 14038, 776 }, // #94 bp=XID_Continue:XIDC | |
5823 { 14814, 667 }, // #95 bp=XID_Start:XIDS | |
5824 { 15481, 173 }, // #96 sc=Common:Zyyy | |
5825 { 15654, 39 }, // #97 sc=Latin:Latn | |
5826 { 15693, 36 }, // #98 sc=Greek:Grek | |
5827 { 15729, 10 }, // #99 sc=Cyrillic:Cyrl | |
5828 { 15739, 4 }, // #100 sc=Armenian:Armn scx=Armenian:Armn | |
5829 { 15743, 9 }, // #101 sc=Hebrew:Hebr scx=Hebrew:Hebr | |
5830 { 15752, 58 }, // #102 sc=Arabic:Arab | |
5831 { 15810, 4 }, // #103 sc=Syriac:Syrc | |
5832 { 15814, 1 }, // #104 sc=Thaana:Thaa | |
5833 { 15815, 5 }, // #105 sc=Devanagari:Deva | |
5834 { 15820, 14 }, // #106 sc=Bengali:Beng | |
5835 { 15834, 16 }, // #107 sc=Gurmukhi:Guru | |
5836 { 15850, 14 }, // #108 sc=Gujarati:Gujr | |
5837 { 15864, 14 }, // #109 sc=Oriya:Orya | |
5838 { 15878, 18 }, // #110 sc=Tamil:Taml | |
5839 { 15896, 13 }, // #111 sc=Telugu:Telu | |
5840 { 15909, 13 }, // #112 sc=Kannada:Knda | |
5841 { 15922, 7 }, // #113 sc=Malayalam:Mlym | |
5842 { 15929, 13 }, // #114 sc=Sinhala:Sinh | |
5843 { 15942, 2 }, // #115 sc=Thai scx=Thai | |
5844 { 15944, 11 }, // #116 sc=Lao:Laoo scx=Lao:Laoo | |
5845 { 15955, 7 }, // #117 sc=Tibetan:Tibt scx=Tibetan:Tibt | |
5846 { 15962, 3 }, // #118 sc=Myanmar:Mymr | |
5847 { 15965, 10 }, // #119 sc=Georgian:Geor | |
5848 { 15975, 14 }, // #120 sc=Hangul:Hang | |
5849 { 15989, 36 }, // #121 sc=Ethiopic:Ethi scx=Ethiopic:Ethi | |
5850 { 16025, 3 }, // #122 sc=Cherokee:Cher scx=Cherokee:Cher | |
5851 { 16028, 3 }, // #123 sc=Canadian_Aboriginal:Cans scx=Canadian_Aboriginal:Cans | |
5852 { 16031, 1 }, // #124 sc=Ogham:Ogam scx=Ogham:Ogam | |
5853 { 16032, 2 }, // #125 sc=Runic:Runr scx=Runic:Runr | |
5854 { 16034, 4 }, // #126 sc=Khmer:Khmr scx=Khmer:Khmr | |
5855 { 16038, 6 }, // #127 sc=Mongolian:Mong | |
5856 { 16044, 6 }, // #128 sc=Hiragana:Hira | |
5857 { 16050, 14 }, // #129 sc=Katakana:Kana | |
5858 { 16064, 3 }, // #130 sc=Bopomofo:Bopo | |
5859 { 16067, 22 }, // #131 sc=Han:Hani | |
5860 { 16089, 2 }, // #132 sc=Yi:Yiii | |
5861 { 16091, 2 }, // #133 sc=Old_Italic:Ital scx=Old_Italic:Ital | |
5862 { 16093, 1 }, // #134 sc=Gothic:Goth scx=Gothic:Goth | |
5863 { 16094, 1 }, // #135 sc=Deseret:Dsrt scx=Deseret:Dsrt | |
5864 { 16095, 29 }, // #136 sc=Inherited:Zinh:Qaai | |
5865 { 16124, 2 }, // #137 sc=Tagalog:Tglg | |
5866 { 16126, 1 }, // #138 sc=Hanunoo:Hano | |
5867 { 16127, 1 }, // #139 sc=Buhid:Buhd | |
5868 { 16128, 3 }, // #140 sc=Tagbanwa:Tagb | |
5869 { 16131, 5 }, // #141 sc=Limbu:Limb | |
5870 { 16136, 2 }, // #142 sc=Tai_Le:Tale | |
5871 { 16138, 7 }, // #143 sc=Linear_B:Linb | |
5872 { 16145, 2 }, // #144 sc=Ugaritic:Ugar scx=Ugaritic:Ugar | |
5873 { 16147, 1 }, // #145 sc=Shavian:Shaw scx=Shavian:Shaw | |
5874 { 16148, 2 }, // #146 sc=Osmanya:Osma scx=Osmanya:Osma | |
5875 { 16150, 6 }, // #147 sc=Cypriot:Cprt | |
5876 { 16156, 1 }, // #148 sc=Braille:Brai scx=Braille:Brai | |
5877 { 16157, 2 }, // #149 sc=Buginese:Bugi | |
5878 { 16159, 3 }, // #150 sc=Coptic:Copt:Qaac | |
5879 { 16162, 4 }, // #151 sc=New_Tai_Lue:Talu scx=New_Tai_Lue:Talu | |
5880 { 16166, 6 }, // #152 sc=Glagolitic:Glag | |
5881 { 16172, 3 }, // #153 sc=Tifinagh:Tfng scx=Tifinagh:Tfng | |
5882 { 16175, 1 }, // #154 sc=Syloti_Nagri:Sylo | |
5883 { 16176, 2 }, // #155 sc=Old_Persian:Xpeo scx=Old_Persian:Xpeo | |
5884 { 16178, 8 }, // #156 sc=Kharoshthi:Khar scx=Kharoshthi:Khar | |
5885 { 16186, 2 }, // #157 sc=Balinese:Bali scx=Balinese:Bali | |
5886 { 16188, 4 }, // #158 sc=Cuneiform:Xsux scx=Cuneiform:Xsux | |
5887 { 16192, 2 }, // #159 sc=Phoenician:Phnx scx=Phoenician:Phnx | |
5888 { 16194, 1 }, // #160 sc=Phags_Pa:Phag | |
5889 { 16195, 2 }, // #161 sc=Nko:Nkoo | |
5890 { 16197, 2 }, // #162 sc=Sundanese:Sund scx=Sundanese:Sund | |
5891 { 16199, 3 }, // #163 sc=Lepcha:Lepc scx=Lepcha:Lepc | |
5892 { 16202, 1 }, // #164 sc=Ol_Chiki:Olck scx=Ol_Chiki:Olck | |
5893 { 16203, 1 }, // #165 sc=Vai:Vaii scx=Vai:Vaii | |
5894 { 16204, 2 }, // #166 sc=Saurashtra:Saur scx=Saurashtra:Saur | |
5895 { 16206, 2 }, // #167 sc=Kayah_Li:Kali | |
5896 { 16208, 2 }, // #168 sc=Rejang:Rjng scx=Rejang:Rjng | |
5897 { 16210, 1 }, // #169 sc=Lycian:Lyci scx=Lycian:Lyci | |
5898 { 16211, 1 }, // #170 sc=Carian:Cari scx=Carian:Cari | |
5899 { 16212, 2 }, // #171 sc=Lydian:Lydi scx=Lydian:Lydi | |
5900 { 16214, 4 }, // #172 sc=Cham scx=Cham | |
5901 { 16218, 5 }, // #173 sc=Tai_Tham:Lana scx=Tai_Tham:Lana | |
5902 { 16223, 2 }, // #174 sc=Tai_Viet:Tavt scx=Tai_Viet:Tavt | |
5903 { 16225, 2 }, // #175 sc=Avestan:Avst scx=Avestan:Avst | |
5904 { 16227, 1 }, // #176 sc=Egyptian_Hieroglyphs:Egyp scx=Egyptian_Hieroglyphs:Egyp | |
5905 { 16228, 2 }, // #177 sc=Samaritan:Samr scx=Samaritan:Samr | |
5906 { 16230, 2 }, // #178 sc=Lisu scx=Lisu | |
5907 { 16232, 2 }, // #179 sc=Bamum:Bamu scx=Bamum:Bamu | |
5908 { 16234, 3 }, // #180 sc=Javanese:Java | |
5909 { 16237, 3 }, // #181 sc=Meetei_Mayek:Mtei scx=Meetei_Mayek:Mtei | |
5910 { 16240, 2 }, // #182 sc=Imperial_Aramaic:Armi scx=Imperial_Aramaic:Armi | |
5911 { 16242, 1 }, // #183 sc=Old_South_Arabian:Sarb scx=Old_South_Arabian:Sarb | |
5912 { 16243, 2 }, // #184 sc=Inscriptional_Parthian:Prti scx=Inscriptional_Parthian:Prti | |
5913 { 16245, 2 }, // #185 sc=Inscriptional_Pahlavi:Phli scx=Inscriptional_Pahlavi:Phli | |
5914 { 16247, 1 }, // #186 sc=Old_Turkic:Orkh scx=Old_Turkic:Orkh | |
5915 { 16248, 2 }, // #187 sc=Kaithi:Kthi | |
5916 { 16250, 2 }, // #188 sc=Batak:Batk scx=Batak:Batk | |
5917 { 16252, 3 }, // #189 sc=Brahmi:Brah scx=Brahmi:Brah | |
5918 { 16255, 2 }, // #190 sc=Mandaic:Mand | |
5919 { 16257, 2 }, // #191 sc=Chakma:Cakm | |
5920 { 16259, 3 }, // #192 sc=Meroitic_Cursive:Merc scx=Meroitic_Cursive:Merc | |
5921 { 16262, 1 }, // #193 sc=Meroitic_Hieroglyphs:Mero scx=Meroitic_Hieroglyphs:Mero | |
5922 { 16263, 3 }, // #194 sc=Miao:Plrd scx=Miao:Plrd | |
5923 { 16266, 1 }, // #195 sc=Sharada:Shrd | |
5924 { 16267, 2 }, // #196 sc=Sora_Sompeng:Sora scx=Sora_Sompeng:Sora | |
5925 { 16269, 2 }, // #197 sc=Takri:Takr | |
5926 { 16271, 2 }, // #198 sc=Caucasian_Albanian:Aghb scx=Caucasian_Albanian:Aghb | |
5927 { 16273, 2 }, // #199 sc=Bassa_Vah:Bass scx=Bassa_Vah:Bass | |
5928 { 16275, 5 }, // #200 sc=Duployan:Dupl | |
5929 { 16280, 1 }, // #201 sc=Elbasan:Elba scx=Elbasan:Elba | |
5930 { 16281, 15 }, // #202 sc=Grantha:Gran | |
5931 { 16296, 5 }, // #203 sc=Pahawh_Hmong:Hmng scx=Pahawh_Hmong:Hmng | |
5932 { 16301, 2 }, // #204 sc=Khojki:Khoj | |
5933 { 16303, 3 }, // #205 sc=Linear_A:Lina | |
5934 { 16306, 1 }, // #206 sc=Mahajani:Mahj | |
5935 { 16307, 2 }, // #207 sc=Manichaean:Mani | |
5936 { 16309, 2 }, // #208 sc=Mende_Kikakui:Mend scx=Mende_Kikakui:Mend | |
5937 { 16311, 2 }, // #209 sc=Modi | |
5938 { 16313, 3 }, // #210 sc=Mro:Mroo scx=Mro:Mroo | |
5939 { 16316, 1 }, // #211 sc=Old_North_Arabian:Narb scx=Old_North_Arabian:Narb | |
5940 { 16317, 2 }, // #212 sc=Nabataean:Nbat scx=Nabataean:Nbat | |
5941 { 16319, 1 }, // #213 sc=Palmyrene:Palm scx=Palmyrene:Palm | |
5942 { 16320, 1 }, // #214 sc=Pau_Cin_Hau:Pauc scx=Pau_Cin_Hau:Pauc | |
5943 { 16321, 1 }, // #215 sc=Old_Permic:Perm | |
5944 { 16322, 3 }, // #216 sc=Psalter_Pahlavi:Phlp | |
5945 { 16325, 2 }, // #217 sc=Siddham:Sidd scx=Siddham:Sidd | |
5946 { 16327, 2 }, // #218 sc=Khudawadi:Sind | |
5947 { 16329, 2 }, // #219 sc=Tirhuta:Tirh | |
5948 { 16331, 2 }, // #220 sc=Warang_Citi:Wara scx=Warang_Citi:Wara | |
5949 { 16333, 3 }, // #221 sc=Ahom scx=Ahom | |
5950 { 16336, 1 }, // #222 sc=Anatolian_Hieroglyphs:Hluw scx=Anatolian_Hieroglyphs:Hluw | |
5951 { 16337, 3 }, // #223 sc=Hatran:Hatr scx=Hatran:Hatr | |
5952 { 16340, 5 }, // #224 sc=Multani:Mult | |
5953 { 16345, 3 }, // #225 sc=Old_Hungarian:Hung scx=Old_Hungarian:Hung | |
5954 { 16348, 3 }, // #226 sc=SignWriting:Sgnw scx=SignWriting:Sgnw | |
5955 { 16351, 3 }, // #227 sc=Adlam:Adlm | |
5956 { 16354, 4 }, // #228 sc=Bhaiksuki:Bhks scx=Bhaiksuki:Bhks | |
5957 { 16358, 3 }, // #229 sc=Marchen:Marc scx=Marchen:Marc | |
5958 { 16361, 2 }, // #230 sc=Newa scx=Newa | |
5959 { 16363, 2 }, // #231 sc=Osage:Osge scx=Osage:Osge | |
5960 { 16365, 4 }, // #232 sc=Tangut:Tang scx=Tangut:Tang | |
5961 { 16369, 7 }, // #233 sc=Masaram_Gondi:Gonm | |
5962 { 16376, 2 }, // #234 sc=Nushu:Nshu scx=Nushu:Nshu | |
5963 { 16378, 1 }, // #235 sc=Soyombo:Soyo scx=Soyombo:Soyo | |
5964 { 16379, 1 }, // #236 sc=Zanabazar_Square:Zanb scx=Zanabazar_Square:Zanb | |
5965 { 16380, 1 }, // #237 sc=Dogra:Dogr | |
5966 { 16381, 6 }, // #238 sc=Gunjala_Gondi:Gong | |
5967 { 16387, 1 }, // #239 sc=Makasar:Maka scx=Makasar:Maka | |
5968 { 16388, 1 }, // #240 sc=Medefaidrin:Medf scx=Medefaidrin:Medf | |
5969 { 16389, 2 }, // #241 sc=Hanifi_Rohingya:Rohg | |
5970 { 16391, 1 }, // #242 sc=Sogdian:Sogd | |
5971 { 16392, 1 }, // #243 sc=Old_Sogdian:Sogo scx=Old_Sogdian:Sogo | |
5972 { 16393, 1 }, // #244 sc=Elymaic:Elym scx=Elymaic:Elym | |
5973 { 16394, 3 }, // #245 sc=Nandinagari:Nand | |
5974 { 16397, 4 }, // #246 sc=Nyiakeng_Puachue_Hmong:Hmnp scx=Nyiakeng_Puachue_Hmong:Hmnp | |
5975 { 16401, 2 }, // #247 sc=Wancho:Wcho scx=Wancho:Wcho | |
5976 { 16403, 1 }, // #248 sc=Chorasmian:Chrs scx=Chorasmian:Chrs | |
5977 { 16404, 8 }, // #249 sc=Dives_Akuru:Diak scx=Dives_Akuru:Diak | |
5978 { 16412, 2 }, // #250 sc=Khitan_Small_Script:Kits scx=Khitan_Small_Script:Kits | |
5979 { 16414, 3 }, // #251 sc=Yezidi:Yezi | |
5980 { 16417, 1 }, // #252 sc=Cypro_Minoan:Cpmn | |
5981 { 16418, 1 }, // #253 sc=Old_Uyghur:Ougr | |
5982 { 16419, 2 }, // #254 sc=Tangsa:Tnsa scx=Tangsa:Tnsa | |
5983 { 16421, 1 }, // #255 sc=Toto scx=Toto | |
5984 { 16422, 8 }, // #256 sc=Vithkuqi:Vith scx=Vithkuqi:Vith | |
5985 { 16430, 3 }, // #257 sc=Kawi scx=Kawi | |
5986 { 16433, 1 }, // #258 sc=Nag_Mundari:Nagm scx=Nag_Mundari:Nagm | |
5987 { 16434, 705 }, // #259 sc=Unknown:Zzzz scx=Unknown:Zzzz | |
5988 { 17139, 147 }, // #260 scx=Common:Zyyy | |
5989 { 17286, 47 }, // #261 scx=Latin:Latn | |
5990 { 17333, 38 }, // #262 scx=Greek:Grek | |
5991 { 17371, 11 }, // #263 scx=Cyrillic:Cyrl | |
5992 { 17382, 52 }, // #264 scx=Arabic:Arab | |
5993 { 17434, 12 }, // #265 scx=Syriac:Syrc | |
5994 { 17446, 7 }, // #266 scx=Thaana:Thaa | |
5995 { 17453, 8 }, // #267 scx=Devanagari:Deva | |
5996 { 17461, 26 }, // #268 scx=Bengali:Beng | |
5997 { 17487, 19 }, // #269 scx=Gurmukhi:Guru | |
5998 { 17506, 17 }, // #270 scx=Gujarati:Gujr | |
5999 { 17523, 18 }, // #271 scx=Oriya:Orya | |
6000 { 17541, 25 }, // #272 scx=Tamil:Taml | |
6001 { 17566, 17 }, // #273 scx=Telugu:Telu | |
6002 { 17583, 21 }, // #274 scx=Kannada:Knda | |
6003 { 17604, 12 }, // #275 scx=Malayalam:Mlym | |
6004 { 17616, 15 }, // #276 scx=Sinhala:Sinh | |
6005 { 17631, 4 }, // #277 scx=Myanmar:Mymr | |
6006 { 17635, 9 }, // #278 scx=Georgian:Geor | |
6007 { 17644, 21 }, // #279 scx=Hangul:Hang | |
6008 { 17665, 5 }, // #280 scx=Mongolian:Mong | |
6009 { 17670, 17 }, // #281 scx=Hiragana:Hira | |
6010 { 17687, 20 }, // #282 scx=Katakana:Kana | |
6011 { 17707, 12 }, // #283 scx=Bopomofo:Bopo | |
6012 { 17719, 39 }, // #284 scx=Han:Hani | |
6013 { 17758, 7 }, // #285 scx=Yi:Yiii | |
6014 { 17765, 20 }, // #286 scx=Inherited:Zinh:Qaai | |
6015 { 17785, 3 }, // #287 scx=Tagalog:Tglg | |
6016 { 17788, 1 }, // #288 scx=Hanunoo:Hano | |
6017 { 17789, 2 }, // #289 scx=Buhid:Buhd | |
6018 { 17791, 4 }, // #290 scx=Tagbanwa:Tagb | |
6019 { 17795, 6 }, // #291 scx=Limbu:Limb | |
6020 { 17801, 3 }, // #292 scx=Tai_Le:Tale | |
6021 { 17804, 10 }, // #293 scx=Linear_B:Linb | |
6022 { 17814, 9 }, // #294 scx=Cypriot:Cprt | |
6023 { 17823, 3 }, // #295 scx=Buginese:Bugi | |
6024 { 17826, 4 }, // #296 scx=Coptic:Copt:Qaac | |
6025 { 17830, 10 }, // #297 scx=Glagolitic:Glag | |
6026 { 17840, 3 }, // #298 scx=Syloti_Nagri:Sylo | |
6027 { 17843, 3 }, // #299 scx=Phags_Pa:Phag | |
6028 { 17846, 6 }, // #300 scx=Nko:Nkoo | |
6029 { 17852, 1 }, // #301 scx=Kayah_Li:Kali | |
6030 { 17853, 3 }, // #302 scx=Javanese:Java | |
6031 { 17856, 4 }, // #303 scx=Kaithi:Kthi | |
6032 { 17860, 3 }, // #304 scx=Mandaic:Mand | |
6033 { 17863, 4 }, // #305 scx=Chakma:Cakm | |
6034 { 17867, 8 }, // #306 scx=Sharada:Shrd | |
6035 { 17875, 4 }, // #307 scx=Takri:Takr | |
6036 { 17879, 5 }, // #308 scx=Duployan:Dupl | |
6037 { 17884, 25 }, // #309 scx=Grantha:Gran | |
6038 { 17909, 4 }, // #310 scx=Khojki:Khoj | |
6039 { 17913, 4 }, // #311 scx=Linear_A:Lina | |
6040 { 17917, 3 }, // #312 scx=Mahajani:Mahj | |
6041 { 17920, 3 }, // #313 scx=Manichaean:Mani | |
6042 { 17923, 3 }, // #314 scx=Modi | |
6043 { 17926, 2 }, // #315 scx=Old_Permic:Perm | |
6044 { 17928, 4 }, // #316 scx=Psalter_Pahlavi:Phlp | |
6045 { 17932, 4 }, // #317 scx=Khudawadi:Sind | |
6046 { 17936, 6 }, // #318 scx=Tirhuta:Tirh | |
6047 { 17942, 6 }, // #319 scx=Multani:Mult | |
6048 { 17948, 5 }, // #320 scx=Adlam:Adlm | |
6049 { 17953, 8 }, // #321 scx=Masaram_Gondi:Gonm | |
6050 { 17961, 3 }, // #322 scx=Dogra:Dogr | |
6051 { 17964, 7 }, // #323 scx=Gunjala_Gondi:Gong | |
6052 { 17971, 7 }, // #324 scx=Hanifi_Rohingya:Rohg | |
6053 { 17978, 2 }, // #325 scx=Sogdian:Sogd | |
6054 { 17980, 9 }, // #326 scx=Nandinagari:Nand | |
6055 { 17989, 7 }, // #327 scx=Yezidi:Yezi | |
6056 { 17996, 2 }, // #328 scx=Cypro_Minoan:Cpmn | |
6057 { 17998, 3 }, // #329 scx=Old_Uyghur:Ougr | |
6058 { 18001, 6766 }, // #330 bp=RGI_Emoji | |
6059 { 18001, 669 }, // #331 bp=Basic_Emoji | |
6060 { 18670, 24 }, // #332 bp=Emoji_Keycap_Sequence | |
6061 { 18694, 983 }, // #333 bp=RGI_Emoji_Modifier_Sequence | |
6062 { 19677, 387 }, // #334 bp=RGI_Emoji_Flag_Sequence | |
6063 { 20064, 12 }, // #335 bp=RGI_Emoji_Tag_Sequence | |
6064 { 20076, 4691 } // #336 bp=RGI_Emoji_ZWJ_Sequence | |
6065 }; | |
6066 | |
6067 template <typename T3, typename T4, typename T5> | |
6068 const T5 unicode_property_data<T3, T4, T5>::rangetable[] = | |
6069 { | |
6070 // #5 (0+734): gc=Other:C | |
6071 // Cc:2 + Cf:21 + Cn:707 + Co:3 + Cs:1 | |
6072 // #6 (0+2): gc=Control:Cc:cntrl | |
6073 0x0000, 0x001F, 0x007F, 0x009F, | |
6074 // #7 (2+21): gc=Format:Cf | |
6075 0x00AD, 0x00AD, 0x0600, 0x0605, 0x061C, 0x061C, 0x06DD, 0x06DD, | |
6076 0x070F, 0x070F, 0x0890, 0x0891, 0x08E2, 0x08E2, 0x180E, 0x180E, | |
6077 0x200B, 0x200F, 0x202A, 0x202E, 0x2060, 0x2064, 0x2066, 0x206F, | |
6078 0xFEFF, 0xFEFF, 0xFFF9, 0xFFFB, 0x110BD, 0x110BD, 0x110CD, 0x110CD, | |
6079 0x13430, 0x1343F, 0x1BCA0, 0x1BCA3, 0x1D173, 0x1D17A, 0xE0001, 0xE0001, | |
6080 0xE0020, 0xE007F, | |
6081 // #8 (23+707): gc=Unassigned:Cn | |
6082 0x0378, 0x0379, 0x0380, 0x0383, 0x038B, 0x038B, 0x038D, 0x038D, | |
6083 0x03A2, 0x03A2, 0x0530, 0x0530, 0x0557, 0x0558, 0x058B, 0x058C, | |
6084 0x0590, 0x0590, 0x05C8, 0x05CF, 0x05EB, 0x05EE, 0x05F5, 0x05FF, | |
6085 0x070E, 0x070E, 0x074B, 0x074C, 0x07B2, 0x07BF, 0x07FB, 0x07FC, | |
6086 0x082E, 0x082F, 0x083F, 0x083F, 0x085C, 0x085D, 0x085F, 0x085F, | |
6087 0x086B, 0x086F, 0x088F, 0x088F, 0x0892, 0x0897, 0x0984, 0x0984, | |
6088 0x098D, 0x098E, 0x0991, 0x0992, 0x09A9, 0x09A9, 0x09B1, 0x09B1, | |
6089 0x09B3, 0x09B5, 0x09BA, 0x09BB, 0x09C5, 0x09C6, 0x09C9, 0x09CA, | |
6090 0x09CF, 0x09D6, 0x09D8, 0x09DB, 0x09DE, 0x09DE, 0x09E4, 0x09E5, | |
6091 0x09FF, 0x0A00, 0x0A04, 0x0A04, 0x0A0B, 0x0A0E, 0x0A11, 0x0A12, | |
6092 0x0A29, 0x0A29, 0x0A31, 0x0A31, 0x0A34, 0x0A34, 0x0A37, 0x0A37, | |
6093 0x0A3A, 0x0A3B, 0x0A3D, 0x0A3D, 0x0A43, 0x0A46, 0x0A49, 0x0A4A, | |
6094 0x0A4E, 0x0A50, 0x0A52, 0x0A58, 0x0A5D, 0x0A5D, 0x0A5F, 0x0A65, | |
6095 0x0A77, 0x0A80, 0x0A84, 0x0A84, 0x0A8E, 0x0A8E, 0x0A92, 0x0A92, | |
6096 0x0AA9, 0x0AA9, 0x0AB1, 0x0AB1, 0x0AB4, 0x0AB4, 0x0ABA, 0x0ABB, | |
6097 0x0AC6, 0x0AC6, 0x0ACA, 0x0ACA, 0x0ACE, 0x0ACF, 0x0AD1, 0x0ADF, | |
6098 0x0AE4, 0x0AE5, 0x0AF2, 0x0AF8, 0x0B00, 0x0B00, 0x0B04, 0x0B04, | |
6099 0x0B0D, 0x0B0E, 0x0B11, 0x0B12, 0x0B29, 0x0B29, 0x0B31, 0x0B31, | |
6100 0x0B34, 0x0B34, 0x0B3A, 0x0B3B, 0x0B45, 0x0B46, 0x0B49, 0x0B4A, | |
6101 0x0B4E, 0x0B54, 0x0B58, 0x0B5B, 0x0B5E, 0x0B5E, 0x0B64, 0x0B65, | |
6102 0x0B78, 0x0B81, 0x0B84, 0x0B84, 0x0B8B, 0x0B8D, 0x0B91, 0x0B91, | |
6103 0x0B96, 0x0B98, 0x0B9B, 0x0B9B, 0x0B9D, 0x0B9D, 0x0BA0, 0x0BA2, | |
6104 0x0BA5, 0x0BA7, 0x0BAB, 0x0BAD, 0x0BBA, 0x0BBD, 0x0BC3, 0x0BC5, | |
6105 0x0BC9, 0x0BC9, 0x0BCE, 0x0BCF, 0x0BD1, 0x0BD6, 0x0BD8, 0x0BE5, | |
6106 0x0BFB, 0x0BFF, 0x0C0D, 0x0C0D, 0x0C11, 0x0C11, 0x0C29, 0x0C29, | |
6107 0x0C3A, 0x0C3B, 0x0C45, 0x0C45, 0x0C49, 0x0C49, 0x0C4E, 0x0C54, | |
6108 0x0C57, 0x0C57, 0x0C5B, 0x0C5C, 0x0C5E, 0x0C5F, 0x0C64, 0x0C65, | |
6109 0x0C70, 0x0C76, 0x0C8D, 0x0C8D, 0x0C91, 0x0C91, 0x0CA9, 0x0CA9, | |
6110 0x0CB4, 0x0CB4, 0x0CBA, 0x0CBB, 0x0CC5, 0x0CC5, 0x0CC9, 0x0CC9, | |
6111 0x0CCE, 0x0CD4, 0x0CD7, 0x0CDC, 0x0CDF, 0x0CDF, 0x0CE4, 0x0CE5, | |
6112 0x0CF0, 0x0CF0, 0x0CF4, 0x0CFF, 0x0D0D, 0x0D0D, 0x0D11, 0x0D11, | |
6113 0x0D45, 0x0D45, 0x0D49, 0x0D49, 0x0D50, 0x0D53, 0x0D64, 0x0D65, | |
6114 0x0D80, 0x0D80, 0x0D84, 0x0D84, 0x0D97, 0x0D99, 0x0DB2, 0x0DB2, | |
6115 0x0DBC, 0x0DBC, 0x0DBE, 0x0DBF, 0x0DC7, 0x0DC9, 0x0DCB, 0x0DCE, | |
6116 0x0DD5, 0x0DD5, 0x0DD7, 0x0DD7, 0x0DE0, 0x0DE5, 0x0DF0, 0x0DF1, | |
6117 0x0DF5, 0x0E00, 0x0E3B, 0x0E3E, 0x0E5C, 0x0E80, 0x0E83, 0x0E83, | |
6118 0x0E85, 0x0E85, 0x0E8B, 0x0E8B, 0x0EA4, 0x0EA4, 0x0EA6, 0x0EA6, | |
6119 0x0EBE, 0x0EBF, 0x0EC5, 0x0EC5, 0x0EC7, 0x0EC7, 0x0ECF, 0x0ECF, | |
6120 0x0EDA, 0x0EDB, 0x0EE0, 0x0EFF, 0x0F48, 0x0F48, 0x0F6D, 0x0F70, | |
6121 0x0F98, 0x0F98, 0x0FBD, 0x0FBD, 0x0FCD, 0x0FCD, 0x0FDB, 0x0FFF, | |
6122 0x10C6, 0x10C6, 0x10C8, 0x10CC, 0x10CE, 0x10CF, 0x1249, 0x1249, | |
6123 0x124E, 0x124F, 0x1257, 0x1257, 0x1259, 0x1259, 0x125E, 0x125F, | |
6124 0x1289, 0x1289, 0x128E, 0x128F, 0x12B1, 0x12B1, 0x12B6, 0x12B7, | |
6125 0x12BF, 0x12BF, 0x12C1, 0x12C1, 0x12C6, 0x12C7, 0x12D7, 0x12D7, | |
6126 0x1311, 0x1311, 0x1316, 0x1317, 0x135B, 0x135C, 0x137D, 0x137F, | |
6127 0x139A, 0x139F, 0x13F6, 0x13F7, 0x13FE, 0x13FF, 0x169D, 0x169F, | |
6128 0x16F9, 0x16FF, 0x1716, 0x171E, 0x1737, 0x173F, 0x1754, 0x175F, | |
6129 0x176D, 0x176D, 0x1771, 0x1771, 0x1774, 0x177F, 0x17DE, 0x17DF, | |
6130 0x17EA, 0x17EF, 0x17FA, 0x17FF, 0x181A, 0x181F, 0x1879, 0x187F, | |
6131 0x18AB, 0x18AF, 0x18F6, 0x18FF, 0x191F, 0x191F, 0x192C, 0x192F, | |
6132 0x193C, 0x193F, 0x1941, 0x1943, 0x196E, 0x196F, 0x1975, 0x197F, | |
6133 0x19AC, 0x19AF, 0x19CA, 0x19CF, 0x19DB, 0x19DD, 0x1A1C, 0x1A1D, | |
6134 0x1A5F, 0x1A5F, 0x1A7D, 0x1A7E, 0x1A8A, 0x1A8F, 0x1A9A, 0x1A9F, | |
6135 0x1AAE, 0x1AAF, 0x1ACF, 0x1AFF, 0x1B4D, 0x1B4F, 0x1B7F, 0x1B7F, | |
6136 0x1BF4, 0x1BFB, 0x1C38, 0x1C3A, 0x1C4A, 0x1C4C, 0x1C89, 0x1C8F, | |
6137 0x1CBB, 0x1CBC, 0x1CC8, 0x1CCF, 0x1CFB, 0x1CFF, 0x1F16, 0x1F17, | |
6138 0x1F1E, 0x1F1F, 0x1F46, 0x1F47, 0x1F4E, 0x1F4F, 0x1F58, 0x1F58, | |
6139 0x1F5A, 0x1F5A, 0x1F5C, 0x1F5C, 0x1F5E, 0x1F5E, 0x1F7E, 0x1F7F, | |
6140 0x1FB5, 0x1FB5, 0x1FC5, 0x1FC5, 0x1FD4, 0x1FD5, 0x1FDC, 0x1FDC, | |
6141 0x1FF0, 0x1FF1, 0x1FF5, 0x1FF5, 0x1FFF, 0x1FFF, 0x2065, 0x2065, | |
6142 0x2072, 0x2073, 0x208F, 0x208F, 0x209D, 0x209F, 0x20C1, 0x20CF, | |
6143 0x20F1, 0x20FF, 0x218C, 0x218F, 0x2427, 0x243F, 0x244B, 0x245F, | |
6144 0x2B74, 0x2B75, 0x2B96, 0x2B96, 0x2CF4, 0x2CF8, 0x2D26, 0x2D26, | |
6145 0x2D28, 0x2D2C, 0x2D2E, 0x2D2F, 0x2D68, 0x2D6E, 0x2D71, 0x2D7E, | |
6146 0x2D97, 0x2D9F, 0x2DA7, 0x2DA7, 0x2DAF, 0x2DAF, 0x2DB7, 0x2DB7, | |
6147 0x2DBF, 0x2DBF, 0x2DC7, 0x2DC7, 0x2DCF, 0x2DCF, 0x2DD7, 0x2DD7, | |
6148 0x2DDF, 0x2DDF, 0x2E5E, 0x2E7F, 0x2E9A, 0x2E9A, 0x2EF4, 0x2EFF, | |
6149 0x2FD6, 0x2FEF, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, | |
6150 0x3130, 0x3130, 0x318F, 0x318F, 0x31E4, 0x31EE, 0x321F, 0x321F, | |
6151 0xA48D, 0xA48F, 0xA4C7, 0xA4CF, 0xA62C, 0xA63F, 0xA6F8, 0xA6FF, | |
6152 0xA7CB, 0xA7CF, 0xA7D2, 0xA7D2, 0xA7D4, 0xA7D4, 0xA7DA, 0xA7F1, | |
6153 0xA82D, 0xA82F, 0xA83A, 0xA83F, 0xA878, 0xA87F, 0xA8C6, 0xA8CD, | |
6154 0xA8DA, 0xA8DF, 0xA954, 0xA95E, 0xA97D, 0xA97F, 0xA9CE, 0xA9CE, | |
6155 0xA9DA, 0xA9DD, 0xA9FF, 0xA9FF, 0xAA37, 0xAA3F, 0xAA4E, 0xAA4F, | |
6156 0xAA5A, 0xAA5B, 0xAAC3, 0xAADA, 0xAAF7, 0xAB00, 0xAB07, 0xAB08, | |
6157 0xAB0F, 0xAB10, 0xAB17, 0xAB1F, 0xAB27, 0xAB27, 0xAB2F, 0xAB2F, | |
6158 0xAB6C, 0xAB6F, 0xABEE, 0xABEF, 0xABFA, 0xABFF, 0xD7A4, 0xD7AF, | |
6159 0xD7C7, 0xD7CA, 0xD7FC, 0xD7FF, 0xFA6E, 0xFA6F, 0xFADA, 0xFAFF, | |
6160 0xFB07, 0xFB12, 0xFB18, 0xFB1C, 0xFB37, 0xFB37, 0xFB3D, 0xFB3D, | |
6161 0xFB3F, 0xFB3F, 0xFB42, 0xFB42, 0xFB45, 0xFB45, 0xFBC3, 0xFBD2, | |
6162 0xFD90, 0xFD91, 0xFDC8, 0xFDCE, 0xFDD0, 0xFDEF, 0xFE1A, 0xFE1F, | |
6163 0xFE53, 0xFE53, 0xFE67, 0xFE67, 0xFE6C, 0xFE6F, 0xFE75, 0xFE75, | |
6164 0xFEFD, 0xFEFE, 0xFF00, 0xFF00, 0xFFBF, 0xFFC1, 0xFFC8, 0xFFC9, | |
6165 0xFFD0, 0xFFD1, 0xFFD8, 0xFFD9, 0xFFDD, 0xFFDF, 0xFFE7, 0xFFE7, | |
6166 0xFFEF, 0xFFF8, 0xFFFE, 0xFFFF, 0x1000C, 0x1000C, 0x10027, 0x10027, | |
6167 0x1003B, 0x1003B, 0x1003E, 0x1003E, 0x1004E, 0x1004F, 0x1005E, 0x1007F, | |
6168 0x100FB, 0x100FF, 0x10103, 0x10106, 0x10134, 0x10136, 0x1018F, 0x1018F, | |
6169 0x1019D, 0x1019F, 0x101A1, 0x101CF, 0x101FE, 0x1027F, 0x1029D, 0x1029F, | |
6170 0x102D1, 0x102DF, 0x102FC, 0x102FF, 0x10324, 0x1032C, 0x1034B, 0x1034F, | |
6171 0x1037B, 0x1037F, 0x1039E, 0x1039E, 0x103C4, 0x103C7, 0x103D6, 0x103FF, | |
6172 0x1049E, 0x1049F, 0x104AA, 0x104AF, 0x104D4, 0x104D7, 0x104FC, 0x104FF, | |
6173 0x10528, 0x1052F, 0x10564, 0x1056E, 0x1057B, 0x1057B, 0x1058B, 0x1058B, | |
6174 0x10593, 0x10593, 0x10596, 0x10596, 0x105A2, 0x105A2, 0x105B2, 0x105B2, | |
6175 0x105BA, 0x105BA, 0x105BD, 0x105FF, 0x10737, 0x1073F, 0x10756, 0x1075F, | |
6176 0x10768, 0x1077F, 0x10786, 0x10786, 0x107B1, 0x107B1, 0x107BB, 0x107FF, | |
6177 0x10806, 0x10807, 0x10809, 0x10809, 0x10836, 0x10836, 0x10839, 0x1083B, | |
6178 0x1083D, 0x1083E, 0x10856, 0x10856, 0x1089F, 0x108A6, 0x108B0, 0x108DF, | |
6179 0x108F3, 0x108F3, 0x108F6, 0x108FA, 0x1091C, 0x1091E, 0x1093A, 0x1093E, | |
6180 0x10940, 0x1097F, 0x109B8, 0x109BB, 0x109D0, 0x109D1, 0x10A04, 0x10A04, | |
6181 0x10A07, 0x10A0B, 0x10A14, 0x10A14, 0x10A18, 0x10A18, 0x10A36, 0x10A37, | |
6182 0x10A3B, 0x10A3E, 0x10A49, 0x10A4F, 0x10A59, 0x10A5F, 0x10AA0, 0x10ABF, | |
6183 0x10AE7, 0x10AEA, 0x10AF7, 0x10AFF, 0x10B36, 0x10B38, 0x10B56, 0x10B57, | |
6184 0x10B73, 0x10B77, 0x10B92, 0x10B98, 0x10B9D, 0x10BA8, 0x10BB0, 0x10BFF, | |
6185 0x10C49, 0x10C7F, 0x10CB3, 0x10CBF, 0x10CF3, 0x10CF9, 0x10D28, 0x10D2F, | |
6186 0x10D3A, 0x10E5F, 0x10E7F, 0x10E7F, 0x10EAA, 0x10EAA, 0x10EAE, 0x10EAF, | |
6187 0x10EB2, 0x10EFC, 0x10F28, 0x10F2F, 0x10F5A, 0x10F6F, 0x10F8A, 0x10FAF, | |
6188 0x10FCC, 0x10FDF, 0x10FF7, 0x10FFF, 0x1104E, 0x11051, 0x11076, 0x1107E, | |
6189 0x110C3, 0x110CC, 0x110CE, 0x110CF, 0x110E9, 0x110EF, 0x110FA, 0x110FF, | |
6190 0x11135, 0x11135, 0x11148, 0x1114F, 0x11177, 0x1117F, 0x111E0, 0x111E0, | |
6191 0x111F5, 0x111FF, 0x11212, 0x11212, 0x11242, 0x1127F, 0x11287, 0x11287, | |
6192 0x11289, 0x11289, 0x1128E, 0x1128E, 0x1129E, 0x1129E, 0x112AA, 0x112AF, | |
6193 0x112EB, 0x112EF, 0x112FA, 0x112FF, 0x11304, 0x11304, 0x1130D, 0x1130E, | |
6194 0x11311, 0x11312, 0x11329, 0x11329, 0x11331, 0x11331, 0x11334, 0x11334, | |
6195 0x1133A, 0x1133A, 0x11345, 0x11346, 0x11349, 0x1134A, 0x1134E, 0x1134F, | |
6196 0x11351, 0x11356, 0x11358, 0x1135C, 0x11364, 0x11365, 0x1136D, 0x1136F, | |
6197 0x11375, 0x113FF, 0x1145C, 0x1145C, 0x11462, 0x1147F, 0x114C8, 0x114CF, | |
6198 0x114DA, 0x1157F, 0x115B6, 0x115B7, 0x115DE, 0x115FF, 0x11645, 0x1164F, | |
6199 0x1165A, 0x1165F, 0x1166D, 0x1167F, 0x116BA, 0x116BF, 0x116CA, 0x116FF, | |
6200 0x1171B, 0x1171C, 0x1172C, 0x1172F, 0x11747, 0x117FF, 0x1183C, 0x1189F, | |
6201 0x118F3, 0x118FE, 0x11907, 0x11908, 0x1190A, 0x1190B, 0x11914, 0x11914, | |
6202 0x11917, 0x11917, 0x11936, 0x11936, 0x11939, 0x1193A, 0x11947, 0x1194F, | |
6203 0x1195A, 0x1199F, 0x119A8, 0x119A9, 0x119D8, 0x119D9, 0x119E5, 0x119FF, | |
6204 0x11A48, 0x11A4F, 0x11AA3, 0x11AAF, 0x11AF9, 0x11AFF, 0x11B0A, 0x11BFF, | |
6205 0x11C09, 0x11C09, 0x11C37, 0x11C37, 0x11C46, 0x11C4F, 0x11C6D, 0x11C6F, | |
6206 0x11C90, 0x11C91, 0x11CA8, 0x11CA8, 0x11CB7, 0x11CFF, 0x11D07, 0x11D07, | |
6207 0x11D0A, 0x11D0A, 0x11D37, 0x11D39, 0x11D3B, 0x11D3B, 0x11D3E, 0x11D3E, | |
6208 0x11D48, 0x11D4F, 0x11D5A, 0x11D5F, 0x11D66, 0x11D66, 0x11D69, 0x11D69, | |
6209 0x11D8F, 0x11D8F, 0x11D92, 0x11D92, 0x11D99, 0x11D9F, 0x11DAA, 0x11EDF, | |
6210 0x11EF9, 0x11EFF, 0x11F11, 0x11F11, 0x11F3B, 0x11F3D, 0x11F5A, 0x11FAF, | |
6211 0x11FB1, 0x11FBF, 0x11FF2, 0x11FFE, 0x1239A, 0x123FF, 0x1246F, 0x1246F, | |
6212 0x12475, 0x1247F, 0x12544, 0x12F8F, 0x12FF3, 0x12FFF, 0x13456, 0x143FF, | |
6213 0x14647, 0x167FF, 0x16A39, 0x16A3F, 0x16A5F, 0x16A5F, 0x16A6A, 0x16A6D, | |
6214 0x16ABF, 0x16ABF, 0x16ACA, 0x16ACF, 0x16AEE, 0x16AEF, 0x16AF6, 0x16AFF, | |
6215 0x16B46, 0x16B4F, 0x16B5A, 0x16B5A, 0x16B62, 0x16B62, 0x16B78, 0x16B7C, | |
6216 0x16B90, 0x16E3F, 0x16E9B, 0x16EFF, 0x16F4B, 0x16F4E, 0x16F88, 0x16F8E, | |
6217 0x16FA0, 0x16FDF, 0x16FE5, 0x16FEF, 0x16FF2, 0x16FFF, 0x187F8, 0x187FF, | |
6218 0x18CD6, 0x18CFF, 0x18D09, 0x1AFEF, 0x1AFF4, 0x1AFF4, 0x1AFFC, 0x1AFFC, | |
6219 0x1AFFF, 0x1AFFF, 0x1B123, 0x1B131, 0x1B133, 0x1B14F, 0x1B153, 0x1B154, | |
6220 0x1B156, 0x1B163, 0x1B168, 0x1B16F, 0x1B2FC, 0x1BBFF, 0x1BC6B, 0x1BC6F, | |
6221 0x1BC7D, 0x1BC7F, 0x1BC89, 0x1BC8F, 0x1BC9A, 0x1BC9B, 0x1BCA4, 0x1CEFF, | |
6222 0x1CF2E, 0x1CF2F, 0x1CF47, 0x1CF4F, 0x1CFC4, 0x1CFFF, 0x1D0F6, 0x1D0FF, | |
6223 0x1D127, 0x1D128, 0x1D1EB, 0x1D1FF, 0x1D246, 0x1D2BF, 0x1D2D4, 0x1D2DF, | |
6224 0x1D2F4, 0x1D2FF, 0x1D357, 0x1D35F, 0x1D379, 0x1D3FF, 0x1D455, 0x1D455, | |
6225 0x1D49D, 0x1D49D, 0x1D4A0, 0x1D4A1, 0x1D4A3, 0x1D4A4, 0x1D4A7, 0x1D4A8, | |
6226 0x1D4AD, 0x1D4AD, 0x1D4BA, 0x1D4BA, 0x1D4BC, 0x1D4BC, 0x1D4C4, 0x1D4C4, | |
6227 0x1D506, 0x1D506, 0x1D50B, 0x1D50C, 0x1D515, 0x1D515, 0x1D51D, 0x1D51D, | |
6228 0x1D53A, 0x1D53A, 0x1D53F, 0x1D53F, 0x1D545, 0x1D545, 0x1D547, 0x1D549, | |
6229 0x1D551, 0x1D551, 0x1D6A6, 0x1D6A7, 0x1D7CC, 0x1D7CD, 0x1DA8C, 0x1DA9A, | |
6230 0x1DAA0, 0x1DAA0, 0x1DAB0, 0x1DEFF, 0x1DF1F, 0x1DF24, 0x1DF2B, 0x1DFFF, | |
6231 0x1E007, 0x1E007, 0x1E019, 0x1E01A, 0x1E022, 0x1E022, 0x1E025, 0x1E025, | |
6232 0x1E02B, 0x1E02F, 0x1E06E, 0x1E08E, 0x1E090, 0x1E0FF, 0x1E12D, 0x1E12F, | |
6233 0x1E13E, 0x1E13F, 0x1E14A, 0x1E14D, 0x1E150, 0x1E28F, 0x1E2AF, 0x1E2BF, | |
6234 0x1E2FA, 0x1E2FE, 0x1E300, 0x1E4CF, 0x1E4FA, 0x1E7DF, 0x1E7E7, 0x1E7E7, | |
6235 0x1E7EC, 0x1E7EC, 0x1E7EF, 0x1E7EF, 0x1E7FF, 0x1E7FF, 0x1E8C5, 0x1E8C6, | |
6236 0x1E8D7, 0x1E8FF, 0x1E94C, 0x1E94F, 0x1E95A, 0x1E95D, 0x1E960, 0x1EC70, | |
6237 0x1ECB5, 0x1ED00, 0x1ED3E, 0x1EDFF, 0x1EE04, 0x1EE04, 0x1EE20, 0x1EE20, | |
6238 0x1EE23, 0x1EE23, 0x1EE25, 0x1EE26, 0x1EE28, 0x1EE28, 0x1EE33, 0x1EE33, | |
6239 0x1EE38, 0x1EE38, 0x1EE3A, 0x1EE3A, 0x1EE3C, 0x1EE41, 0x1EE43, 0x1EE46, | |
6240 0x1EE48, 0x1EE48, 0x1EE4A, 0x1EE4A, 0x1EE4C, 0x1EE4C, 0x1EE50, 0x1EE50, | |
6241 0x1EE53, 0x1EE53, 0x1EE55, 0x1EE56, 0x1EE58, 0x1EE58, 0x1EE5A, 0x1EE5A, | |
6242 0x1EE5C, 0x1EE5C, 0x1EE5E, 0x1EE5E, 0x1EE60, 0x1EE60, 0x1EE63, 0x1EE63, | |
6243 0x1EE65, 0x1EE66, 0x1EE6B, 0x1EE6B, 0x1EE73, 0x1EE73, 0x1EE78, 0x1EE78, | |
6244 0x1EE7D, 0x1EE7D, 0x1EE7F, 0x1EE7F, 0x1EE8A, 0x1EE8A, 0x1EE9C, 0x1EEA0, | |
6245 0x1EEA4, 0x1EEA4, 0x1EEAA, 0x1EEAA, 0x1EEBC, 0x1EEEF, 0x1EEF2, 0x1EFFF, | |
6246 0x1F02C, 0x1F02F, 0x1F094, 0x1F09F, 0x1F0AF, 0x1F0B0, 0x1F0C0, 0x1F0C0, | |
6247 0x1F0D0, 0x1F0D0, 0x1F0F6, 0x1F0FF, 0x1F1AE, 0x1F1E5, 0x1F203, 0x1F20F, | |
6248 0x1F23C, 0x1F23F, 0x1F249, 0x1F24F, 0x1F252, 0x1F25F, 0x1F266, 0x1F2FF, | |
6249 0x1F6D8, 0x1F6DB, 0x1F6ED, 0x1F6EF, 0x1F6FD, 0x1F6FF, 0x1F777, 0x1F77A, | |
6250 0x1F7DA, 0x1F7DF, 0x1F7EC, 0x1F7EF, 0x1F7F1, 0x1F7FF, 0x1F80C, 0x1F80F, | |
6251 0x1F848, 0x1F84F, 0x1F85A, 0x1F85F, 0x1F888, 0x1F88F, 0x1F8AE, 0x1F8AF, | |
6252 0x1F8B2, 0x1F8FF, 0x1FA54, 0x1FA5F, 0x1FA6E, 0x1FA6F, 0x1FA7D, 0x1FA7F, | |
6253 0x1FA89, 0x1FA8F, 0x1FABE, 0x1FABE, 0x1FAC6, 0x1FACD, 0x1FADC, 0x1FADF, | |
6254 0x1FAE9, 0x1FAEF, 0x1FAF9, 0x1FAFF, 0x1FB93, 0x1FB93, 0x1FBCB, 0x1FBEF, | |
6255 0x1FBFA, 0x1FFFF, 0x2A6E0, 0x2A6FF, 0x2B73A, 0x2B73F, 0x2B81E, 0x2B81F, | |
6256 0x2CEA2, 0x2CEAF, 0x2EBE1, 0x2EBEF, 0x2EE5E, 0x2F7FF, 0x2FA1E, 0x2FFFF, | |
6257 0x3134B, 0x3134F, 0x323B0, 0xE0000, 0xE0002, 0xE001F, 0xE0080, 0xE00FF, | |
6258 0xE01F0, 0xEFFFF, 0xFFFFE, 0xFFFFF, 0x10FFFE, 0x10FFFF, | |
6259 // #9 (730+3): gc=Private_Use:Co | |
6260 0xE000, 0xF8FF, 0xF0000, 0xFFFFD, 0x100000, 0x10FFFD, | |
6261 // #10 (733+1): gc=Surrogate:Cs | |
6262 0xD800, 0xDFFF, | |
6263 // #11 (734+1896): gc=Letter:L | |
6264 // Ll:658 + Lt:10 + Lu:646 + Lm:71 + Lo:511 | |
6265 // #12 (734+1314): gc=Cased_Letter:LC | |
6266 // Ll:658 + Lt:10 + Lu:646 | |
6267 // #13 (734+658): gc=Lowercase_Letter:Ll | |
6268 0x0061, 0x007A, 0x00B5, 0x00B5, 0x00DF, 0x00F6, 0x00F8, 0x00FF, | |
6269 0x0101, 0x0101, 0x0103, 0x0103, 0x0105, 0x0105, 0x0107, 0x0107, | |
6270 0x0109, 0x0109, 0x010B, 0x010B, 0x010D, 0x010D, 0x010F, 0x010F, | |
6271 0x0111, 0x0111, 0x0113, 0x0113, 0x0115, 0x0115, 0x0117, 0x0117, | |
6272 0x0119, 0x0119, 0x011B, 0x011B, 0x011D, 0x011D, 0x011F, 0x011F, | |
6273 0x0121, 0x0121, 0x0123, 0x0123, 0x0125, 0x0125, 0x0127, 0x0127, | |
6274 0x0129, 0x0129, 0x012B, 0x012B, 0x012D, 0x012D, 0x012F, 0x012F, | |
6275 0x0131, 0x0131, 0x0133, 0x0133, 0x0135, 0x0135, 0x0137, 0x0138, | |
6276 0x013A, 0x013A, 0x013C, 0x013C, 0x013E, 0x013E, 0x0140, 0x0140, | |
6277 0x0142, 0x0142, 0x0144, 0x0144, 0x0146, 0x0146, 0x0148, 0x0149, | |
6278 0x014B, 0x014B, 0x014D, 0x014D, 0x014F, 0x014F, 0x0151, 0x0151, | |
6279 0x0153, 0x0153, 0x0155, 0x0155, 0x0157, 0x0157, 0x0159, 0x0159, | |
6280 0x015B, 0x015B, 0x015D, 0x015D, 0x015F, 0x015F, 0x0161, 0x0161, | |
6281 0x0163, 0x0163, 0x0165, 0x0165, 0x0167, 0x0167, 0x0169, 0x0169, | |
6282 0x016B, 0x016B, 0x016D, 0x016D, 0x016F, 0x016F, 0x0171, 0x0171, | |
6283 0x0173, 0x0173, 0x0175, 0x0175, 0x0177, 0x0177, 0x017A, 0x017A, | |
6284 0x017C, 0x017C, 0x017E, 0x0180, 0x0183, 0x0183, 0x0185, 0x0185, | |
6285 0x0188, 0x0188, 0x018C, 0x018D, 0x0192, 0x0192, 0x0195, 0x0195, | |
6286 0x0199, 0x019B, 0x019E, 0x019E, 0x01A1, 0x01A1, 0x01A3, 0x01A3, | |
6287 0x01A5, 0x01A5, 0x01A8, 0x01A8, 0x01AA, 0x01AB, 0x01AD, 0x01AD, | |
6288 0x01B0, 0x01B0, 0x01B4, 0x01B4, 0x01B6, 0x01B6, 0x01B9, 0x01BA, | |
6289 0x01BD, 0x01BF, 0x01C6, 0x01C6, 0x01C9, 0x01C9, 0x01CC, 0x01CC, | |
6290 0x01CE, 0x01CE, 0x01D0, 0x01D0, 0x01D2, 0x01D2, 0x01D4, 0x01D4, | |
6291 0x01D6, 0x01D6, 0x01D8, 0x01D8, 0x01DA, 0x01DA, 0x01DC, 0x01DD, | |
6292 0x01DF, 0x01DF, 0x01E1, 0x01E1, 0x01E3, 0x01E3, 0x01E5, 0x01E5, | |
6293 0x01E7, 0x01E7, 0x01E9, 0x01E9, 0x01EB, 0x01EB, 0x01ED, 0x01ED, | |
6294 0x01EF, 0x01F0, 0x01F3, 0x01F3, 0x01F5, 0x01F5, 0x01F9, 0x01F9, | |
6295 0x01FB, 0x01FB, 0x01FD, 0x01FD, 0x01FF, 0x01FF, 0x0201, 0x0201, | |
6296 0x0203, 0x0203, 0x0205, 0x0205, 0x0207, 0x0207, 0x0209, 0x0209, | |
6297 0x020B, 0x020B, 0x020D, 0x020D, 0x020F, 0x020F, 0x0211, 0x0211, | |
6298 0x0213, 0x0213, 0x0215, 0x0215, 0x0217, 0x0217, 0x0219, 0x0219, | |
6299 0x021B, 0x021B, 0x021D, 0x021D, 0x021F, 0x021F, 0x0221, 0x0221, | |
6300 0x0223, 0x0223, 0x0225, 0x0225, 0x0227, 0x0227, 0x0229, 0x0229, | |
6301 0x022B, 0x022B, 0x022D, 0x022D, 0x022F, 0x022F, 0x0231, 0x0231, | |
6302 0x0233, 0x0239, 0x023C, 0x023C, 0x023F, 0x0240, 0x0242, 0x0242, | |
6303 0x0247, 0x0247, 0x0249, 0x0249, 0x024B, 0x024B, 0x024D, 0x024D, | |
6304 0x024F, 0x0293, 0x0295, 0x02AF, 0x0371, 0x0371, 0x0373, 0x0373, | |
6305 0x0377, 0x0377, 0x037B, 0x037D, 0x0390, 0x0390, 0x03AC, 0x03CE, | |
6306 0x03D0, 0x03D1, 0x03D5, 0x03D7, 0x03D9, 0x03D9, 0x03DB, 0x03DB, | |
6307 0x03DD, 0x03DD, 0x03DF, 0x03DF, 0x03E1, 0x03E1, 0x03E3, 0x03E3, | |
6308 0x03E5, 0x03E5, 0x03E7, 0x03E7, 0x03E9, 0x03E9, 0x03EB, 0x03EB, | |
6309 0x03ED, 0x03ED, 0x03EF, 0x03F3, 0x03F5, 0x03F5, 0x03F8, 0x03F8, | |
6310 0x03FB, 0x03FC, 0x0430, 0x045F, 0x0461, 0x0461, 0x0463, 0x0463, | |
6311 0x0465, 0x0465, 0x0467, 0x0467, 0x0469, 0x0469, 0x046B, 0x046B, | |
6312 0x046D, 0x046D, 0x046F, 0x046F, 0x0471, 0x0471, 0x0473, 0x0473, | |
6313 0x0475, 0x0475, 0x0477, 0x0477, 0x0479, 0x0479, 0x047B, 0x047B, | |
6314 0x047D, 0x047D, 0x047F, 0x047F, 0x0481, 0x0481, 0x048B, 0x048B, | |
6315 0x048D, 0x048D, 0x048F, 0x048F, 0x0491, 0x0491, 0x0493, 0x0493, | |
6316 0x0495, 0x0495, 0x0497, 0x0497, 0x0499, 0x0499, 0x049B, 0x049B, | |
6317 0x049D, 0x049D, 0x049F, 0x049F, 0x04A1, 0x04A1, 0x04A3, 0x04A3, | |
6318 0x04A5, 0x04A5, 0x04A7, 0x04A7, 0x04A9, 0x04A9, 0x04AB, 0x04AB, | |
6319 0x04AD, 0x04AD, 0x04AF, 0x04AF, 0x04B1, 0x04B1, 0x04B3, 0x04B3, | |
6320 0x04B5, 0x04B5, 0x04B7, 0x04B7, 0x04B9, 0x04B9, 0x04BB, 0x04BB, | |
6321 0x04BD, 0x04BD, 0x04BF, 0x04BF, 0x04C2, 0x04C2, 0x04C4, 0x04C4, | |
6322 0x04C6, 0x04C6, 0x04C8, 0x04C8, 0x04CA, 0x04CA, 0x04CC, 0x04CC, | |
6323 0x04CE, 0x04CF, 0x04D1, 0x04D1, 0x04D3, 0x04D3, 0x04D5, 0x04D5, | |
6324 0x04D7, 0x04D7, 0x04D9, 0x04D9, 0x04DB, 0x04DB, 0x04DD, 0x04DD, | |
6325 0x04DF, 0x04DF, 0x04E1, 0x04E1, 0x04E3, 0x04E3, 0x04E5, 0x04E5, | |
6326 0x04E7, 0x04E7, 0x04E9, 0x04E9, 0x04EB, 0x04EB, 0x04ED, 0x04ED, | |
6327 0x04EF, 0x04EF, 0x04F1, 0x04F1, 0x04F3, 0x04F3, 0x04F5, 0x04F5, | |
6328 0x04F7, 0x04F7, 0x04F9, 0x04F9, 0x04FB, 0x04FB, 0x04FD, 0x04FD, | |
6329 0x04FF, 0x04FF, 0x0501, 0x0501, 0x0503, 0x0503, 0x0505, 0x0505, | |
6330 0x0507, 0x0507, 0x0509, 0x0509, 0x050B, 0x050B, 0x050D, 0x050D, | |
6331 0x050F, 0x050F, 0x0511, 0x0511, 0x0513, 0x0513, 0x0515, 0x0515, | |
6332 0x0517, 0x0517, 0x0519, 0x0519, 0x051B, 0x051B, 0x051D, 0x051D, | |
6333 0x051F, 0x051F, 0x0521, 0x0521, 0x0523, 0x0523, 0x0525, 0x0525, | |
6334 0x0527, 0x0527, 0x0529, 0x0529, 0x052B, 0x052B, 0x052D, 0x052D, | |
6335 0x052F, 0x052F, 0x0560, 0x0588, 0x10D0, 0x10FA, 0x10FD, 0x10FF, | |
6336 0x13F8, 0x13FD, 0x1C80, 0x1C88, 0x1D00, 0x1D2B, 0x1D6B, 0x1D77, | |
6337 0x1D79, 0x1D9A, 0x1E01, 0x1E01, 0x1E03, 0x1E03, 0x1E05, 0x1E05, | |
6338 0x1E07, 0x1E07, 0x1E09, 0x1E09, 0x1E0B, 0x1E0B, 0x1E0D, 0x1E0D, | |
6339 0x1E0F, 0x1E0F, 0x1E11, 0x1E11, 0x1E13, 0x1E13, 0x1E15, 0x1E15, | |
6340 0x1E17, 0x1E17, 0x1E19, 0x1E19, 0x1E1B, 0x1E1B, 0x1E1D, 0x1E1D, | |
6341 0x1E1F, 0x1E1F, 0x1E21, 0x1E21, 0x1E23, 0x1E23, 0x1E25, 0x1E25, | |
6342 0x1E27, 0x1E27, 0x1E29, 0x1E29, 0x1E2B, 0x1E2B, 0x1E2D, 0x1E2D, | |
6343 0x1E2F, 0x1E2F, 0x1E31, 0x1E31, 0x1E33, 0x1E33, 0x1E35, 0x1E35, | |
6344 0x1E37, 0x1E37, 0x1E39, 0x1E39, 0x1E3B, 0x1E3B, 0x1E3D, 0x1E3D, | |
6345 0x1E3F, 0x1E3F, 0x1E41, 0x1E41, 0x1E43, 0x1E43, 0x1E45, 0x1E45, | |
6346 0x1E47, 0x1E47, 0x1E49, 0x1E49, 0x1E4B, 0x1E4B, 0x1E4D, 0x1E4D, | |
6347 0x1E4F, 0x1E4F, 0x1E51, 0x1E51, 0x1E53, 0x1E53, 0x1E55, 0x1E55, | |
6348 0x1E57, 0x1E57, 0x1E59, 0x1E59, 0x1E5B, 0x1E5B, 0x1E5D, 0x1E5D, | |
6349 0x1E5F, 0x1E5F, 0x1E61, 0x1E61, 0x1E63, 0x1E63, 0x1E65, 0x1E65, | |
6350 0x1E67, 0x1E67, 0x1E69, 0x1E69, 0x1E6B, 0x1E6B, 0x1E6D, 0x1E6D, | |
6351 0x1E6F, 0x1E6F, 0x1E71, 0x1E71, 0x1E73, 0x1E73, 0x1E75, 0x1E75, | |
6352 0x1E77, 0x1E77, 0x1E79, 0x1E79, 0x1E7B, 0x1E7B, 0x1E7D, 0x1E7D, | |
6353 0x1E7F, 0x1E7F, 0x1E81, 0x1E81, 0x1E83, 0x1E83, 0x1E85, 0x1E85, | |
6354 0x1E87, 0x1E87, 0x1E89, 0x1E89, 0x1E8B, 0x1E8B, 0x1E8D, 0x1E8D, | |
6355 0x1E8F, 0x1E8F, 0x1E91, 0x1E91, 0x1E93, 0x1E93, 0x1E95, 0x1E9D, | |
6356 0x1E9F, 0x1E9F, 0x1EA1, 0x1EA1, 0x1EA3, 0x1EA3, 0x1EA5, 0x1EA5, | |
6357 0x1EA7, 0x1EA7, 0x1EA9, 0x1EA9, 0x1EAB, 0x1EAB, 0x1EAD, 0x1EAD, | |
6358 0x1EAF, 0x1EAF, 0x1EB1, 0x1EB1, 0x1EB3, 0x1EB3, 0x1EB5, 0x1EB5, | |
6359 0x1EB7, 0x1EB7, 0x1EB9, 0x1EB9, 0x1EBB, 0x1EBB, 0x1EBD, 0x1EBD, | |
6360 0x1EBF, 0x1EBF, 0x1EC1, 0x1EC1, 0x1EC3, 0x1EC3, 0x1EC5, 0x1EC5, | |
6361 0x1EC7, 0x1EC7, 0x1EC9, 0x1EC9, 0x1ECB, 0x1ECB, 0x1ECD, 0x1ECD, | |
6362 0x1ECF, 0x1ECF, 0x1ED1, 0x1ED1, 0x1ED3, 0x1ED3, 0x1ED5, 0x1ED5, | |
6363 0x1ED7, 0x1ED7, 0x1ED9, 0x1ED9, 0x1EDB, 0x1EDB, 0x1EDD, 0x1EDD, | |
6364 0x1EDF, 0x1EDF, 0x1EE1, 0x1EE1, 0x1EE3, 0x1EE3, 0x1EE5, 0x1EE5, | |
6365 0x1EE7, 0x1EE7, 0x1EE9, 0x1EE9, 0x1EEB, 0x1EEB, 0x1EED, 0x1EED, | |
6366 0x1EEF, 0x1EEF, 0x1EF1, 0x1EF1, 0x1EF3, 0x1EF3, 0x1EF5, 0x1EF5, | |
6367 0x1EF7, 0x1EF7, 0x1EF9, 0x1EF9, 0x1EFB, 0x1EFB, 0x1EFD, 0x1EFD, | |
6368 0x1EFF, 0x1F07, 0x1F10, 0x1F15, 0x1F20, 0x1F27, 0x1F30, 0x1F37, | |
6369 0x1F40, 0x1F45, 0x1F50, 0x1F57, 0x1F60, 0x1F67, 0x1F70, 0x1F7D, | |
6370 0x1F80, 0x1F87, 0x1F90, 0x1F97, 0x1FA0, 0x1FA7, 0x1FB0, 0x1FB4, | |
6371 0x1FB6, 0x1FB7, 0x1FBE, 0x1FBE, 0x1FC2, 0x1FC4, 0x1FC6, 0x1FC7, | |
6372 0x1FD0, 0x1FD3, 0x1FD6, 0x1FD7, 0x1FE0, 0x1FE7, 0x1FF2, 0x1FF4, | |
6373 0x1FF6, 0x1FF7, 0x210A, 0x210A, 0x210E, 0x210F, 0x2113, 0x2113, | |
6374 0x212F, 0x212F, 0x2134, 0x2134, 0x2139, 0x2139, 0x213C, 0x213D, | |
6375 0x2146, 0x2149, 0x214E, 0x214E, 0x2184, 0x2184, 0x2C30, 0x2C5F, | |
6376 0x2C61, 0x2C61, 0x2C65, 0x2C66, 0x2C68, 0x2C68, 0x2C6A, 0x2C6A, | |
6377 0x2C6C, 0x2C6C, 0x2C71, 0x2C71, 0x2C73, 0x2C74, 0x2C76, 0x2C7B, | |
6378 0x2C81, 0x2C81, 0x2C83, 0x2C83, 0x2C85, 0x2C85, 0x2C87, 0x2C87, | |
6379 0x2C89, 0x2C89, 0x2C8B, 0x2C8B, 0x2C8D, 0x2C8D, 0x2C8F, 0x2C8F, | |
6380 0x2C91, 0x2C91, 0x2C93, 0x2C93, 0x2C95, 0x2C95, 0x2C97, 0x2C97, | |
6381 0x2C99, 0x2C99, 0x2C9B, 0x2C9B, 0x2C9D, 0x2C9D, 0x2C9F, 0x2C9F, | |
6382 0x2CA1, 0x2CA1, 0x2CA3, 0x2CA3, 0x2CA5, 0x2CA5, 0x2CA7, 0x2CA7, | |
6383 0x2CA9, 0x2CA9, 0x2CAB, 0x2CAB, 0x2CAD, 0x2CAD, 0x2CAF, 0x2CAF, | |
6384 0x2CB1, 0x2CB1, 0x2CB3, 0x2CB3, 0x2CB5, 0x2CB5, 0x2CB7, 0x2CB7, | |
6385 0x2CB9, 0x2CB9, 0x2CBB, 0x2CBB, 0x2CBD, 0x2CBD, 0x2CBF, 0x2CBF, | |
6386 0x2CC1, 0x2CC1, 0x2CC3, 0x2CC3, 0x2CC5, 0x2CC5, 0x2CC7, 0x2CC7, | |
6387 0x2CC9, 0x2CC9, 0x2CCB, 0x2CCB, 0x2CCD, 0x2CCD, 0x2CCF, 0x2CCF, | |
6388 0x2CD1, 0x2CD1, 0x2CD3, 0x2CD3, 0x2CD5, 0x2CD5, 0x2CD7, 0x2CD7, | |
6389 0x2CD9, 0x2CD9, 0x2CDB, 0x2CDB, 0x2CDD, 0x2CDD, 0x2CDF, 0x2CDF, | |
6390 0x2CE1, 0x2CE1, 0x2CE3, 0x2CE4, 0x2CEC, 0x2CEC, 0x2CEE, 0x2CEE, | |
6391 0x2CF3, 0x2CF3, 0x2D00, 0x2D25, 0x2D27, 0x2D27, 0x2D2D, 0x2D2D, | |
6392 0xA641, 0xA641, 0xA643, 0xA643, 0xA645, 0xA645, 0xA647, 0xA647, | |
6393 0xA649, 0xA649, 0xA64B, 0xA64B, 0xA64D, 0xA64D, 0xA64F, 0xA64F, | |
6394 0xA651, 0xA651, 0xA653, 0xA653, 0xA655, 0xA655, 0xA657, 0xA657, | |
6395 0xA659, 0xA659, 0xA65B, 0xA65B, 0xA65D, 0xA65D, 0xA65F, 0xA65F, | |
6396 0xA661, 0xA661, 0xA663, 0xA663, 0xA665, 0xA665, 0xA667, 0xA667, | |
6397 0xA669, 0xA669, 0xA66B, 0xA66B, 0xA66D, 0xA66D, 0xA681, 0xA681, | |
6398 0xA683, 0xA683, 0xA685, 0xA685, 0xA687, 0xA687, 0xA689, 0xA689, | |
6399 0xA68B, 0xA68B, 0xA68D, 0xA68D, 0xA68F, 0xA68F, 0xA691, 0xA691, | |
6400 0xA693, 0xA693, 0xA695, 0xA695, 0xA697, 0xA697, 0xA699, 0xA699, | |
6401 0xA69B, 0xA69B, 0xA723, 0xA723, 0xA725, 0xA725, 0xA727, 0xA727, | |
6402 0xA729, 0xA729, 0xA72B, 0xA72B, 0xA72D, 0xA72D, 0xA72F, 0xA731, | |
6403 0xA733, 0xA733, 0xA735, 0xA735, 0xA737, 0xA737, 0xA739, 0xA739, | |
6404 0xA73B, 0xA73B, 0xA73D, 0xA73D, 0xA73F, 0xA73F, 0xA741, 0xA741, | |
6405 0xA743, 0xA743, 0xA745, 0xA745, 0xA747, 0xA747, 0xA749, 0xA749, | |
6406 0xA74B, 0xA74B, 0xA74D, 0xA74D, 0xA74F, 0xA74F, 0xA751, 0xA751, | |
6407 0xA753, 0xA753, 0xA755, 0xA755, 0xA757, 0xA757, 0xA759, 0xA759, | |
6408 0xA75B, 0xA75B, 0xA75D, 0xA75D, 0xA75F, 0xA75F, 0xA761, 0xA761, | |
6409 0xA763, 0xA763, 0xA765, 0xA765, 0xA767, 0xA767, 0xA769, 0xA769, | |
6410 0xA76B, 0xA76B, 0xA76D, 0xA76D, 0xA76F, 0xA76F, 0xA771, 0xA778, | |
6411 0xA77A, 0xA77A, 0xA77C, 0xA77C, 0xA77F, 0xA77F, 0xA781, 0xA781, | |
6412 0xA783, 0xA783, 0xA785, 0xA785, 0xA787, 0xA787, 0xA78C, 0xA78C, | |
6413 0xA78E, 0xA78E, 0xA791, 0xA791, 0xA793, 0xA795, 0xA797, 0xA797, | |
6414 0xA799, 0xA799, 0xA79B, 0xA79B, 0xA79D, 0xA79D, 0xA79F, 0xA79F, | |
6415 0xA7A1, 0xA7A1, 0xA7A3, 0xA7A3, 0xA7A5, 0xA7A5, 0xA7A7, 0xA7A7, | |
6416 0xA7A9, 0xA7A9, 0xA7AF, 0xA7AF, 0xA7B5, 0xA7B5, 0xA7B7, 0xA7B7, | |
6417 0xA7B9, 0xA7B9, 0xA7BB, 0xA7BB, 0xA7BD, 0xA7BD, 0xA7BF, 0xA7BF, | |
6418 0xA7C1, 0xA7C1, 0xA7C3, 0xA7C3, 0xA7C8, 0xA7C8, 0xA7CA, 0xA7CA, | |
6419 0xA7D1, 0xA7D1, 0xA7D3, 0xA7D3, 0xA7D5, 0xA7D5, 0xA7D7, 0xA7D7, | |
6420 0xA7D9, 0xA7D9, 0xA7F6, 0xA7F6, 0xA7FA, 0xA7FA, 0xAB30, 0xAB5A, | |
6421 0xAB60, 0xAB68, 0xAB70, 0xABBF, 0xFB00, 0xFB06, 0xFB13, 0xFB17, | |
6422 0xFF41, 0xFF5A, 0x10428, 0x1044F, 0x104D8, 0x104FB, 0x10597, 0x105A1, | |
6423 0x105A3, 0x105B1, 0x105B3, 0x105B9, 0x105BB, 0x105BC, 0x10CC0, 0x10CF2, | |
6424 0x118C0, 0x118DF, 0x16E60, 0x16E7F, 0x1D41A, 0x1D433, 0x1D44E, 0x1D454, | |
6425 0x1D456, 0x1D467, 0x1D482, 0x1D49B, 0x1D4B6, 0x1D4B9, 0x1D4BB, 0x1D4BB, | |
6426 0x1D4BD, 0x1D4C3, 0x1D4C5, 0x1D4CF, 0x1D4EA, 0x1D503, 0x1D51E, 0x1D537, | |
6427 0x1D552, 0x1D56B, 0x1D586, 0x1D59F, 0x1D5BA, 0x1D5D3, 0x1D5EE, 0x1D607, | |
6428 0x1D622, 0x1D63B, 0x1D656, 0x1D66F, 0x1D68A, 0x1D6A5, 0x1D6C2, 0x1D6DA, | |
6429 0x1D6DC, 0x1D6E1, 0x1D6FC, 0x1D714, 0x1D716, 0x1D71B, 0x1D736, 0x1D74E, | |
6430 0x1D750, 0x1D755, 0x1D770, 0x1D788, 0x1D78A, 0x1D78F, 0x1D7AA, 0x1D7C2, | |
6431 0x1D7C4, 0x1D7C9, 0x1D7CB, 0x1D7CB, 0x1DF00, 0x1DF09, 0x1DF0B, 0x1DF1E, | |
6432 0x1DF25, 0x1DF2A, 0x1E922, 0x1E943, | |
6433 // #14 (1392+10): gc=Titlecase_Letter:Lt | |
6434 0x01C5, 0x01C5, 0x01C8, 0x01C8, 0x01CB, 0x01CB, 0x01F2, 0x01F2, | |
6435 0x1F88, 0x1F8F, 0x1F98, 0x1F9F, 0x1FA8, 0x1FAF, 0x1FBC, 0x1FBC, | |
6436 0x1FCC, 0x1FCC, 0x1FFC, 0x1FFC, | |
6437 // #15 (1402+646): gc=Uppercase_Letter:Lu | |
6438 0x0041, 0x005A, 0x00C0, 0x00D6, 0x00D8, 0x00DE, 0x0100, 0x0100, | |
6439 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106, 0x0108, 0x0108, | |
6440 0x010A, 0x010A, 0x010C, 0x010C, 0x010E, 0x010E, 0x0110, 0x0110, | |
6441 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116, 0x0118, 0x0118, | |
6442 0x011A, 0x011A, 0x011C, 0x011C, 0x011E, 0x011E, 0x0120, 0x0120, | |
6443 0x0122, 0x0122, 0x0124, 0x0124, 0x0126, 0x0126, 0x0128, 0x0128, | |
6444 0x012A, 0x012A, 0x012C, 0x012C, 0x012E, 0x012E, 0x0130, 0x0130, | |
6445 0x0132, 0x0132, 0x0134, 0x0134, 0x0136, 0x0136, 0x0139, 0x0139, | |
6446 0x013B, 0x013B, 0x013D, 0x013D, 0x013F, 0x013F, 0x0141, 0x0141, | |
6447 0x0143, 0x0143, 0x0145, 0x0145, 0x0147, 0x0147, 0x014A, 0x014A, | |
6448 0x014C, 0x014C, 0x014E, 0x014E, 0x0150, 0x0150, 0x0152, 0x0152, | |
6449 0x0154, 0x0154, 0x0156, 0x0156, 0x0158, 0x0158, 0x015A, 0x015A, | |
6450 0x015C, 0x015C, 0x015E, 0x015E, 0x0160, 0x0160, 0x0162, 0x0162, | |
6451 0x0164, 0x0164, 0x0166, 0x0166, 0x0168, 0x0168, 0x016A, 0x016A, | |
6452 0x016C, 0x016C, 0x016E, 0x016E, 0x0170, 0x0170, 0x0172, 0x0172, | |
6453 0x0174, 0x0174, 0x0176, 0x0176, 0x0178, 0x0179, 0x017B, 0x017B, | |
6454 0x017D, 0x017D, 0x0181, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187, | |
6455 0x0189, 0x018B, 0x018E, 0x0191, 0x0193, 0x0194, 0x0196, 0x0198, | |
6456 0x019C, 0x019D, 0x019F, 0x01A0, 0x01A2, 0x01A2, 0x01A4, 0x01A4, | |
6457 0x01A6, 0x01A7, 0x01A9, 0x01A9, 0x01AC, 0x01AC, 0x01AE, 0x01AF, | |
6458 0x01B1, 0x01B3, 0x01B5, 0x01B5, 0x01B7, 0x01B8, 0x01BC, 0x01BC, | |
6459 0x01C4, 0x01C4, 0x01C7, 0x01C7, 0x01CA, 0x01CA, 0x01CD, 0x01CD, | |
6460 0x01CF, 0x01CF, 0x01D1, 0x01D1, 0x01D3, 0x01D3, 0x01D5, 0x01D5, | |
6461 0x01D7, 0x01D7, 0x01D9, 0x01D9, 0x01DB, 0x01DB, 0x01DE, 0x01DE, | |
6462 0x01E0, 0x01E0, 0x01E2, 0x01E2, 0x01E4, 0x01E4, 0x01E6, 0x01E6, | |
6463 0x01E8, 0x01E8, 0x01EA, 0x01EA, 0x01EC, 0x01EC, 0x01EE, 0x01EE, | |
6464 0x01F1, 0x01F1, 0x01F4, 0x01F4, 0x01F6, 0x01F8, 0x01FA, 0x01FA, | |
6465 0x01FC, 0x01FC, 0x01FE, 0x01FE, 0x0200, 0x0200, 0x0202, 0x0202, | |
6466 0x0204, 0x0204, 0x0206, 0x0206, 0x0208, 0x0208, 0x020A, 0x020A, | |
6467 0x020C, 0x020C, 0x020E, 0x020E, 0x0210, 0x0210, 0x0212, 0x0212, | |
6468 0x0214, 0x0214, 0x0216, 0x0216, 0x0218, 0x0218, 0x021A, 0x021A, | |
6469 0x021C, 0x021C, 0x021E, 0x021E, 0x0220, 0x0220, 0x0222, 0x0222, | |
6470 0x0224, 0x0224, 0x0226, 0x0226, 0x0228, 0x0228, 0x022A, 0x022A, | |
6471 0x022C, 0x022C, 0x022E, 0x022E, 0x0230, 0x0230, 0x0232, 0x0232, | |
6472 0x023A, 0x023B, 0x023D, 0x023E, 0x0241, 0x0241, 0x0243, 0x0246, | |
6473 0x0248, 0x0248, 0x024A, 0x024A, 0x024C, 0x024C, 0x024E, 0x024E, | |
6474 0x0370, 0x0370, 0x0372, 0x0372, 0x0376, 0x0376, 0x037F, 0x037F, | |
6475 0x0386, 0x0386, 0x0388, 0x038A, 0x038C, 0x038C, 0x038E, 0x038F, | |
6476 0x0391, 0x03A1, 0x03A3, 0x03AB, 0x03CF, 0x03CF, 0x03D2, 0x03D4, | |
6477 0x03D8, 0x03D8, 0x03DA, 0x03DA, 0x03DC, 0x03DC, 0x03DE, 0x03DE, | |
6478 0x03E0, 0x03E0, 0x03E2, 0x03E2, 0x03E4, 0x03E4, 0x03E6, 0x03E6, | |
6479 0x03E8, 0x03E8, 0x03EA, 0x03EA, 0x03EC, 0x03EC, 0x03EE, 0x03EE, | |
6480 0x03F4, 0x03F4, 0x03F7, 0x03F7, 0x03F9, 0x03FA, 0x03FD, 0x042F, | |
6481 0x0460, 0x0460, 0x0462, 0x0462, 0x0464, 0x0464, 0x0466, 0x0466, | |
6482 0x0468, 0x0468, 0x046A, 0x046A, 0x046C, 0x046C, 0x046E, 0x046E, | |
6483 0x0470, 0x0470, 0x0472, 0x0472, 0x0474, 0x0474, 0x0476, 0x0476, | |
6484 0x0478, 0x0478, 0x047A, 0x047A, 0x047C, 0x047C, 0x047E, 0x047E, | |
6485 0x0480, 0x0480, 0x048A, 0x048A, 0x048C, 0x048C, 0x048E, 0x048E, | |
6486 0x0490, 0x0490, 0x0492, 0x0492, 0x0494, 0x0494, 0x0496, 0x0496, | |
6487 0x0498, 0x0498, 0x049A, 0x049A, 0x049C, 0x049C, 0x049E, 0x049E, | |
6488 0x04A0, 0x04A0, 0x04A2, 0x04A2, 0x04A4, 0x04A4, 0x04A6, 0x04A6, | |
6489 0x04A8, 0x04A8, 0x04AA, 0x04AA, 0x04AC, 0x04AC, 0x04AE, 0x04AE, | |
6490 0x04B0, 0x04B0, 0x04B2, 0x04B2, 0x04B4, 0x04B4, 0x04B6, 0x04B6, | |
6491 0x04B8, 0x04B8, 0x04BA, 0x04BA, 0x04BC, 0x04BC, 0x04BE, 0x04BE, | |
6492 0x04C0, 0x04C1, 0x04C3, 0x04C3, 0x04C5, 0x04C5, 0x04C7, 0x04C7, | |
6493 0x04C9, 0x04C9, 0x04CB, 0x04CB, 0x04CD, 0x04CD, 0x04D0, 0x04D0, | |
6494 0x04D2, 0x04D2, 0x04D4, 0x04D4, 0x04D6, 0x04D6, 0x04D8, 0x04D8, | |
6495 0x04DA, 0x04DA, 0x04DC, 0x04DC, 0x04DE, 0x04DE, 0x04E0, 0x04E0, | |
6496 0x04E2, 0x04E2, 0x04E4, 0x04E4, 0x04E6, 0x04E6, 0x04E8, 0x04E8, | |
6497 0x04EA, 0x04EA, 0x04EC, 0x04EC, 0x04EE, 0x04EE, 0x04F0, 0x04F0, | |
6498 0x04F2, 0x04F2, 0x04F4, 0x04F4, 0x04F6, 0x04F6, 0x04F8, 0x04F8, | |
6499 0x04FA, 0x04FA, 0x04FC, 0x04FC, 0x04FE, 0x04FE, 0x0500, 0x0500, | |
6500 0x0502, 0x0502, 0x0504, 0x0504, 0x0506, 0x0506, 0x0508, 0x0508, | |
6501 0x050A, 0x050A, 0x050C, 0x050C, 0x050E, 0x050E, 0x0510, 0x0510, | |
6502 0x0512, 0x0512, 0x0514, 0x0514, 0x0516, 0x0516, 0x0518, 0x0518, | |
6503 0x051A, 0x051A, 0x051C, 0x051C, 0x051E, 0x051E, 0x0520, 0x0520, | |
6504 0x0522, 0x0522, 0x0524, 0x0524, 0x0526, 0x0526, 0x0528, 0x0528, | |
6505 0x052A, 0x052A, 0x052C, 0x052C, 0x052E, 0x052E, 0x0531, 0x0556, | |
6506 0x10A0, 0x10C5, 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x13A0, 0x13F5, | |
6507 0x1C90, 0x1CBA, 0x1CBD, 0x1CBF, 0x1E00, 0x1E00, 0x1E02, 0x1E02, | |
6508 0x1E04, 0x1E04, 0x1E06, 0x1E06, 0x1E08, 0x1E08, 0x1E0A, 0x1E0A, | |
6509 0x1E0C, 0x1E0C, 0x1E0E, 0x1E0E, 0x1E10, 0x1E10, 0x1E12, 0x1E12, | |
6510 0x1E14, 0x1E14, 0x1E16, 0x1E16, 0x1E18, 0x1E18, 0x1E1A, 0x1E1A, | |
6511 0x1E1C, 0x1E1C, 0x1E1E, 0x1E1E, 0x1E20, 0x1E20, 0x1E22, 0x1E22, | |
6512 0x1E24, 0x1E24, 0x1E26, 0x1E26, 0x1E28, 0x1E28, 0x1E2A, 0x1E2A, | |
6513 0x1E2C, 0x1E2C, 0x1E2E, 0x1E2E, 0x1E30, 0x1E30, 0x1E32, 0x1E32, | |
6514 0x1E34, 0x1E34, 0x1E36, 0x1E36, 0x1E38, 0x1E38, 0x1E3A, 0x1E3A, | |
6515 0x1E3C, 0x1E3C, 0x1E3E, 0x1E3E, 0x1E40, 0x1E40, 0x1E42, 0x1E42, | |
6516 0x1E44, 0x1E44, 0x1E46, 0x1E46, 0x1E48, 0x1E48, 0x1E4A, 0x1E4A, | |
6517 0x1E4C, 0x1E4C, 0x1E4E, 0x1E4E, 0x1E50, 0x1E50, 0x1E52, 0x1E52, | |
6518 0x1E54, 0x1E54, 0x1E56, 0x1E56, 0x1E58, 0x1E58, 0x1E5A, 0x1E5A, | |
6519 0x1E5C, 0x1E5C, 0x1E5E, 0x1E5E, 0x1E60, 0x1E60, 0x1E62, 0x1E62, | |
6520 0x1E64, 0x1E64, 0x1E66, 0x1E66, 0x1E68, 0x1E68, 0x1E6A, 0x1E6A, | |
6521 0x1E6C, 0x1E6C, 0x1E6E, 0x1E6E, 0x1E70, 0x1E70, 0x1E72, 0x1E72, | |
6522 0x1E74, 0x1E74, 0x1E76, 0x1E76, 0x1E78, 0x1E78, 0x1E7A, 0x1E7A, | |
6523 0x1E7C, 0x1E7C, 0x1E7E, 0x1E7E, 0x1E80, 0x1E80, 0x1E82, 0x1E82, | |
6524 0x1E84, 0x1E84, 0x1E86, 0x1E86, 0x1E88, 0x1E88, 0x1E8A, 0x1E8A, | |
6525 0x1E8C, 0x1E8C, 0x1E8E, 0x1E8E, 0x1E90, 0x1E90, 0x1E92, 0x1E92, | |
6526 0x1E94, 0x1E94, 0x1E9E, 0x1E9E, 0x1EA0, 0x1EA0, 0x1EA2, 0x1EA2, | |
6527 0x1EA4, 0x1EA4, 0x1EA6, 0x1EA6, 0x1EA8, 0x1EA8, 0x1EAA, 0x1EAA, | |
6528 0x1EAC, 0x1EAC, 0x1EAE, 0x1EAE, 0x1EB0, 0x1EB0, 0x1EB2, 0x1EB2, | |
6529 0x1EB4, 0x1EB4, 0x1EB6, 0x1EB6, 0x1EB8, 0x1EB8, 0x1EBA, 0x1EBA, | |
6530 0x1EBC, 0x1EBC, 0x1EBE, 0x1EBE, 0x1EC0, 0x1EC0, 0x1EC2, 0x1EC2, | |
6531 0x1EC4, 0x1EC4, 0x1EC6, 0x1EC6, 0x1EC8, 0x1EC8, 0x1ECA, 0x1ECA, | |
6532 0x1ECC, 0x1ECC, 0x1ECE, 0x1ECE, 0x1ED0, 0x1ED0, 0x1ED2, 0x1ED2, | |
6533 0x1ED4, 0x1ED4, 0x1ED6, 0x1ED6, 0x1ED8, 0x1ED8, 0x1EDA, 0x1EDA, | |
6534 0x1EDC, 0x1EDC, 0x1EDE, 0x1EDE, 0x1EE0, 0x1EE0, 0x1EE2, 0x1EE2, | |
6535 0x1EE4, 0x1EE4, 0x1EE6, 0x1EE6, 0x1EE8, 0x1EE8, 0x1EEA, 0x1EEA, | |
6536 0x1EEC, 0x1EEC, 0x1EEE, 0x1EEE, 0x1EF0, 0x1EF0, 0x1EF2, 0x1EF2, | |
6537 0x1EF4, 0x1EF4, 0x1EF6, 0x1EF6, 0x1EF8, 0x1EF8, 0x1EFA, 0x1EFA, | |
6538 0x1EFC, 0x1EFC, 0x1EFE, 0x1EFE, 0x1F08, 0x1F0F, 0x1F18, 0x1F1D, | |
6539 0x1F28, 0x1F2F, 0x1F38, 0x1F3F, 0x1F48, 0x1F4D, 0x1F59, 0x1F59, | |
6540 0x1F5B, 0x1F5B, 0x1F5D, 0x1F5D, 0x1F5F, 0x1F5F, 0x1F68, 0x1F6F, | |
6541 0x1FB8, 0x1FBB, 0x1FC8, 0x1FCB, 0x1FD8, 0x1FDB, 0x1FE8, 0x1FEC, | |
6542 0x1FF8, 0x1FFB, 0x2102, 0x2102, 0x2107, 0x2107, 0x210B, 0x210D, | |
6543 0x2110, 0x2112, 0x2115, 0x2115, 0x2119, 0x211D, 0x2124, 0x2124, | |
6544 0x2126, 0x2126, 0x2128, 0x2128, 0x212A, 0x212D, 0x2130, 0x2133, | |
6545 0x213E, 0x213F, 0x2145, 0x2145, 0x2183, 0x2183, 0x2C00, 0x2C2F, | |
6546 0x2C60, 0x2C60, 0x2C62, 0x2C64, 0x2C67, 0x2C67, 0x2C69, 0x2C69, | |
6547 0x2C6B, 0x2C6B, 0x2C6D, 0x2C70, 0x2C72, 0x2C72, 0x2C75, 0x2C75, | |
6548 0x2C7E, 0x2C80, 0x2C82, 0x2C82, 0x2C84, 0x2C84, 0x2C86, 0x2C86, | |
6549 0x2C88, 0x2C88, 0x2C8A, 0x2C8A, 0x2C8C, 0x2C8C, 0x2C8E, 0x2C8E, | |
6550 0x2C90, 0x2C90, 0x2C92, 0x2C92, 0x2C94, 0x2C94, 0x2C96, 0x2C96, | |
6551 0x2C98, 0x2C98, 0x2C9A, 0x2C9A, 0x2C9C, 0x2C9C, 0x2C9E, 0x2C9E, | |
6552 0x2CA0, 0x2CA0, 0x2CA2, 0x2CA2, 0x2CA4, 0x2CA4, 0x2CA6, 0x2CA6, | |
6553 0x2CA8, 0x2CA8, 0x2CAA, 0x2CAA, 0x2CAC, 0x2CAC, 0x2CAE, 0x2CAE, | |
6554 0x2CB0, 0x2CB0, 0x2CB2, 0x2CB2, 0x2CB4, 0x2CB4, 0x2CB6, 0x2CB6, | |
6555 0x2CB8, 0x2CB8, 0x2CBA, 0x2CBA, 0x2CBC, 0x2CBC, 0x2CBE, 0x2CBE, | |
6556 0x2CC0, 0x2CC0, 0x2CC2, 0x2CC2, 0x2CC4, 0x2CC4, 0x2CC6, 0x2CC6, | |
6557 0x2CC8, 0x2CC8, 0x2CCA, 0x2CCA, 0x2CCC, 0x2CCC, 0x2CCE, 0x2CCE, | |
6558 0x2CD0, 0x2CD0, 0x2CD2, 0x2CD2, 0x2CD4, 0x2CD4, 0x2CD6, 0x2CD6, | |
6559 0x2CD8, 0x2CD8, 0x2CDA, 0x2CDA, 0x2CDC, 0x2CDC, 0x2CDE, 0x2CDE, | |
6560 0x2CE0, 0x2CE0, 0x2CE2, 0x2CE2, 0x2CEB, 0x2CEB, 0x2CED, 0x2CED, | |
6561 0x2CF2, 0x2CF2, 0xA640, 0xA640, 0xA642, 0xA642, 0xA644, 0xA644, | |
6562 0xA646, 0xA646, 0xA648, 0xA648, 0xA64A, 0xA64A, 0xA64C, 0xA64C, | |
6563 0xA64E, 0xA64E, 0xA650, 0xA650, 0xA652, 0xA652, 0xA654, 0xA654, | |
6564 0xA656, 0xA656, 0xA658, 0xA658, 0xA65A, 0xA65A, 0xA65C, 0xA65C, | |
6565 0xA65E, 0xA65E, 0xA660, 0xA660, 0xA662, 0xA662, 0xA664, 0xA664, | |
6566 0xA666, 0xA666, 0xA668, 0xA668, 0xA66A, 0xA66A, 0xA66C, 0xA66C, | |
6567 0xA680, 0xA680, 0xA682, 0xA682, 0xA684, 0xA684, 0xA686, 0xA686, | |
6568 0xA688, 0xA688, 0xA68A, 0xA68A, 0xA68C, 0xA68C, 0xA68E, 0xA68E, | |
6569 0xA690, 0xA690, 0xA692, 0xA692, 0xA694, 0xA694, 0xA696, 0xA696, | |
6570 0xA698, 0xA698, 0xA69A, 0xA69A, 0xA722, 0xA722, 0xA724, 0xA724, | |
6571 0xA726, 0xA726, 0xA728, 0xA728, 0xA72A, 0xA72A, 0xA72C, 0xA72C, | |
6572 0xA72E, 0xA72E, 0xA732, 0xA732, 0xA734, 0xA734, 0xA736, 0xA736, | |
6573 0xA738, 0xA738, 0xA73A, 0xA73A, 0xA73C, 0xA73C, 0xA73E, 0xA73E, | |
6574 0xA740, 0xA740, 0xA742, 0xA742, 0xA744, 0xA744, 0xA746, 0xA746, | |
6575 0xA748, 0xA748, 0xA74A, 0xA74A, 0xA74C, 0xA74C, 0xA74E, 0xA74E, | |
6576 0xA750, 0xA750, 0xA752, 0xA752, 0xA754, 0xA754, 0xA756, 0xA756, | |
6577 0xA758, 0xA758, 0xA75A, 0xA75A, 0xA75C, 0xA75C, 0xA75E, 0xA75E, | |
6578 0xA760, 0xA760, 0xA762, 0xA762, 0xA764, 0xA764, 0xA766, 0xA766, | |
6579 0xA768, 0xA768, 0xA76A, 0xA76A, 0xA76C, 0xA76C, 0xA76E, 0xA76E, | |
6580 0xA779, 0xA779, 0xA77B, 0xA77B, 0xA77D, 0xA77E, 0xA780, 0xA780, | |
6581 0xA782, 0xA782, 0xA784, 0xA784, 0xA786, 0xA786, 0xA78B, 0xA78B, | |
6582 0xA78D, 0xA78D, 0xA790, 0xA790, 0xA792, 0xA792, 0xA796, 0xA796, | |
6583 0xA798, 0xA798, 0xA79A, 0xA79A, 0xA79C, 0xA79C, 0xA79E, 0xA79E, | |
6584 0xA7A0, 0xA7A0, 0xA7A2, 0xA7A2, 0xA7A4, 0xA7A4, 0xA7A6, 0xA7A6, | |
6585 0xA7A8, 0xA7A8, 0xA7AA, 0xA7AE, 0xA7B0, 0xA7B4, 0xA7B6, 0xA7B6, | |
6586 0xA7B8, 0xA7B8, 0xA7BA, 0xA7BA, 0xA7BC, 0xA7BC, 0xA7BE, 0xA7BE, | |
6587 0xA7C0, 0xA7C0, 0xA7C2, 0xA7C2, 0xA7C4, 0xA7C7, 0xA7C9, 0xA7C9, | |
6588 0xA7D0, 0xA7D0, 0xA7D6, 0xA7D6, 0xA7D8, 0xA7D8, 0xA7F5, 0xA7F5, | |
6589 0xFF21, 0xFF3A, 0x10400, 0x10427, 0x104B0, 0x104D3, 0x10570, 0x1057A, | |
6590 0x1057C, 0x1058A, 0x1058C, 0x10592, 0x10594, 0x10595, 0x10C80, 0x10CB2, | |
6591 0x118A0, 0x118BF, 0x16E40, 0x16E5F, 0x1D400, 0x1D419, 0x1D434, 0x1D44D, | |
6592 0x1D468, 0x1D481, 0x1D49C, 0x1D49C, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A2, | |
6593 0x1D4A5, 0x1D4A6, 0x1D4A9, 0x1D4AC, 0x1D4AE, 0x1D4B5, 0x1D4D0, 0x1D4E9, | |
6594 0x1D504, 0x1D505, 0x1D507, 0x1D50A, 0x1D50D, 0x1D514, 0x1D516, 0x1D51C, | |
6595 0x1D538, 0x1D539, 0x1D53B, 0x1D53E, 0x1D540, 0x1D544, 0x1D546, 0x1D546, | |
6596 0x1D54A, 0x1D550, 0x1D56C, 0x1D585, 0x1D5A0, 0x1D5B9, 0x1D5D4, 0x1D5ED, | |
6597 0x1D608, 0x1D621, 0x1D63C, 0x1D655, 0x1D670, 0x1D689, 0x1D6A8, 0x1D6C0, | |
6598 0x1D6E2, 0x1D6FA, 0x1D71C, 0x1D734, 0x1D756, 0x1D76E, 0x1D790, 0x1D7A8, | |
6599 0x1D7CA, 0x1D7CA, 0x1E900, 0x1E921, | |
6600 // #16 (2048+71): gc=Modifier_Letter:Lm | |
6601 0x02B0, 0x02C1, 0x02C6, 0x02D1, 0x02E0, 0x02E4, 0x02EC, 0x02EC, | |
6602 0x02EE, 0x02EE, 0x0374, 0x0374, 0x037A, 0x037A, 0x0559, 0x0559, | |
6603 0x0640, 0x0640, 0x06E5, 0x06E6, 0x07F4, 0x07F5, 0x07FA, 0x07FA, | |
6604 0x081A, 0x081A, 0x0824, 0x0824, 0x0828, 0x0828, 0x08C9, 0x08C9, | |
6605 0x0971, 0x0971, 0x0E46, 0x0E46, 0x0EC6, 0x0EC6, 0x10FC, 0x10FC, | |
6606 0x17D7, 0x17D7, 0x1843, 0x1843, 0x1AA7, 0x1AA7, 0x1C78, 0x1C7D, | |
6607 0x1D2C, 0x1D6A, 0x1D78, 0x1D78, 0x1D9B, 0x1DBF, 0x2071, 0x2071, | |
6608 0x207F, 0x207F, 0x2090, 0x209C, 0x2C7C, 0x2C7D, 0x2D6F, 0x2D6F, | |
6609 0x2E2F, 0x2E2F, 0x3005, 0x3005, 0x3031, 0x3035, 0x303B, 0x303B, | |
6610 0x309D, 0x309E, 0x30FC, 0x30FE, 0xA015, 0xA015, 0xA4F8, 0xA4FD, | |
6611 0xA60C, 0xA60C, 0xA67F, 0xA67F, 0xA69C, 0xA69D, 0xA717, 0xA71F, | |
6612 0xA770, 0xA770, 0xA788, 0xA788, 0xA7F2, 0xA7F4, 0xA7F8, 0xA7F9, | |
6613 0xA9CF, 0xA9CF, 0xA9E6, 0xA9E6, 0xAA70, 0xAA70, 0xAADD, 0xAADD, | |
6614 0xAAF3, 0xAAF4, 0xAB5C, 0xAB5F, 0xAB69, 0xAB69, 0xFF70, 0xFF70, | |
6615 0xFF9E, 0xFF9F, 0x10780, 0x10785, 0x10787, 0x107B0, 0x107B2, 0x107BA, | |
6616 0x16B40, 0x16B43, 0x16F93, 0x16F9F, 0x16FE0, 0x16FE1, 0x16FE3, 0x16FE3, | |
6617 0x1AFF0, 0x1AFF3, 0x1AFF5, 0x1AFFB, 0x1AFFD, 0x1AFFE, 0x1E030, 0x1E06D, | |
6618 0x1E137, 0x1E13D, 0x1E4EB, 0x1E4EB, 0x1E94B, 0x1E94B, | |
6619 // #17 (2119+511): gc=Other_Letter:Lo | |
6620 0x00AA, 0x00AA, 0x00BA, 0x00BA, 0x01BB, 0x01BB, 0x01C0, 0x01C3, | |
6621 0x0294, 0x0294, 0x05D0, 0x05EA, 0x05EF, 0x05F2, 0x0620, 0x063F, | |
6622 0x0641, 0x064A, 0x066E, 0x066F, 0x0671, 0x06D3, 0x06D5, 0x06D5, | |
6623 0x06EE, 0x06EF, 0x06FA, 0x06FC, 0x06FF, 0x06FF, 0x0710, 0x0710, | |
6624 0x0712, 0x072F, 0x074D, 0x07A5, 0x07B1, 0x07B1, 0x07CA, 0x07EA, | |
6625 0x0800, 0x0815, 0x0840, 0x0858, 0x0860, 0x086A, 0x0870, 0x0887, | |
6626 0x0889, 0x088E, 0x08A0, 0x08C8, 0x0904, 0x0939, 0x093D, 0x093D, | |
6627 0x0950, 0x0950, 0x0958, 0x0961, 0x0972, 0x0980, 0x0985, 0x098C, | |
6628 0x098F, 0x0990, 0x0993, 0x09A8, 0x09AA, 0x09B0, 0x09B2, 0x09B2, | |
6629 0x09B6, 0x09B9, 0x09BD, 0x09BD, 0x09CE, 0x09CE, 0x09DC, 0x09DD, | |
6630 0x09DF, 0x09E1, 0x09F0, 0x09F1, 0x09FC, 0x09FC, 0x0A05, 0x0A0A, | |
6631 0x0A0F, 0x0A10, 0x0A13, 0x0A28, 0x0A2A, 0x0A30, 0x0A32, 0x0A33, | |
6632 0x0A35, 0x0A36, 0x0A38, 0x0A39, 0x0A59, 0x0A5C, 0x0A5E, 0x0A5E, | |
6633 0x0A72, 0x0A74, 0x0A85, 0x0A8D, 0x0A8F, 0x0A91, 0x0A93, 0x0AA8, | |
6634 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3, 0x0AB5, 0x0AB9, 0x0ABD, 0x0ABD, | |
6635 0x0AD0, 0x0AD0, 0x0AE0, 0x0AE1, 0x0AF9, 0x0AF9, 0x0B05, 0x0B0C, | |
6636 0x0B0F, 0x0B10, 0x0B13, 0x0B28, 0x0B2A, 0x0B30, 0x0B32, 0x0B33, | |
6637 0x0B35, 0x0B39, 0x0B3D, 0x0B3D, 0x0B5C, 0x0B5D, 0x0B5F, 0x0B61, | |
6638 0x0B71, 0x0B71, 0x0B83, 0x0B83, 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, | |
6639 0x0B92, 0x0B95, 0x0B99, 0x0B9A, 0x0B9C, 0x0B9C, 0x0B9E, 0x0B9F, | |
6640 0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA, 0x0BAE, 0x0BB9, 0x0BD0, 0x0BD0, | |
6641 0x0C05, 0x0C0C, 0x0C0E, 0x0C10, 0x0C12, 0x0C28, 0x0C2A, 0x0C39, | |
6642 0x0C3D, 0x0C3D, 0x0C58, 0x0C5A, 0x0C5D, 0x0C5D, 0x0C60, 0x0C61, | |
6643 0x0C80, 0x0C80, 0x0C85, 0x0C8C, 0x0C8E, 0x0C90, 0x0C92, 0x0CA8, | |
6644 0x0CAA, 0x0CB3, 0x0CB5, 0x0CB9, 0x0CBD, 0x0CBD, 0x0CDD, 0x0CDE, | |
6645 0x0CE0, 0x0CE1, 0x0CF1, 0x0CF2, 0x0D04, 0x0D0C, 0x0D0E, 0x0D10, | |
6646 0x0D12, 0x0D3A, 0x0D3D, 0x0D3D, 0x0D4E, 0x0D4E, 0x0D54, 0x0D56, | |
6647 0x0D5F, 0x0D61, 0x0D7A, 0x0D7F, 0x0D85, 0x0D96, 0x0D9A, 0x0DB1, | |
6648 0x0DB3, 0x0DBB, 0x0DBD, 0x0DBD, 0x0DC0, 0x0DC6, 0x0E01, 0x0E30, | |
6649 0x0E32, 0x0E33, 0x0E40, 0x0E45, 0x0E81, 0x0E82, 0x0E84, 0x0E84, | |
6650 0x0E86, 0x0E8A, 0x0E8C, 0x0EA3, 0x0EA5, 0x0EA5, 0x0EA7, 0x0EB0, | |
6651 0x0EB2, 0x0EB3, 0x0EBD, 0x0EBD, 0x0EC0, 0x0EC4, 0x0EDC, 0x0EDF, | |
6652 0x0F00, 0x0F00, 0x0F40, 0x0F47, 0x0F49, 0x0F6C, 0x0F88, 0x0F8C, | |
6653 0x1000, 0x102A, 0x103F, 0x103F, 0x1050, 0x1055, 0x105A, 0x105D, | |
6654 0x1061, 0x1061, 0x1065, 0x1066, 0x106E, 0x1070, 0x1075, 0x1081, | |
6655 0x108E, 0x108E, 0x1100, 0x1248, 0x124A, 0x124D, 0x1250, 0x1256, | |
6656 0x1258, 0x1258, 0x125A, 0x125D, 0x1260, 0x1288, 0x128A, 0x128D, | |
6657 0x1290, 0x12B0, 0x12B2, 0x12B5, 0x12B8, 0x12BE, 0x12C0, 0x12C0, | |
6658 0x12C2, 0x12C5, 0x12C8, 0x12D6, 0x12D8, 0x1310, 0x1312, 0x1315, | |
6659 0x1318, 0x135A, 0x1380, 0x138F, 0x1401, 0x166C, 0x166F, 0x167F, | |
6660 0x1681, 0x169A, 0x16A0, 0x16EA, 0x16F1, 0x16F8, 0x1700, 0x1711, | |
6661 0x171F, 0x1731, 0x1740, 0x1751, 0x1760, 0x176C, 0x176E, 0x1770, | |
6662 0x1780, 0x17B3, 0x17DC, 0x17DC, 0x1820, 0x1842, 0x1844, 0x1878, | |
6663 0x1880, 0x1884, 0x1887, 0x18A8, 0x18AA, 0x18AA, 0x18B0, 0x18F5, | |
6664 0x1900, 0x191E, 0x1950, 0x196D, 0x1970, 0x1974, 0x1980, 0x19AB, | |
6665 0x19B0, 0x19C9, 0x1A00, 0x1A16, 0x1A20, 0x1A54, 0x1B05, 0x1B33, | |
6666 0x1B45, 0x1B4C, 0x1B83, 0x1BA0, 0x1BAE, 0x1BAF, 0x1BBA, 0x1BE5, | |
6667 0x1C00, 0x1C23, 0x1C4D, 0x1C4F, 0x1C5A, 0x1C77, 0x1CE9, 0x1CEC, | |
6668 0x1CEE, 0x1CF3, 0x1CF5, 0x1CF6, 0x1CFA, 0x1CFA, 0x2135, 0x2138, | |
6669 0x2D30, 0x2D67, 0x2D80, 0x2D96, 0x2DA0, 0x2DA6, 0x2DA8, 0x2DAE, | |
6670 0x2DB0, 0x2DB6, 0x2DB8, 0x2DBE, 0x2DC0, 0x2DC6, 0x2DC8, 0x2DCE, | |
6671 0x2DD0, 0x2DD6, 0x2DD8, 0x2DDE, 0x3006, 0x3006, 0x303C, 0x303C, | |
6672 0x3041, 0x3096, 0x309F, 0x309F, 0x30A1, 0x30FA, 0x30FF, 0x30FF, | |
6673 0x3105, 0x312F, 0x3131, 0x318E, 0x31A0, 0x31BF, 0x31F0, 0x31FF, | |
6674 0x3400, 0x4DBF, 0x4E00, 0xA014, 0xA016, 0xA48C, 0xA4D0, 0xA4F7, | |
6675 0xA500, 0xA60B, 0xA610, 0xA61F, 0xA62A, 0xA62B, 0xA66E, 0xA66E, | |
6676 0xA6A0, 0xA6E5, 0xA78F, 0xA78F, 0xA7F7, 0xA7F7, 0xA7FB, 0xA801, | |
6677 0xA803, 0xA805, 0xA807, 0xA80A, 0xA80C, 0xA822, 0xA840, 0xA873, | |
6678 0xA882, 0xA8B3, 0xA8F2, 0xA8F7, 0xA8FB, 0xA8FB, 0xA8FD, 0xA8FE, | |
6679 0xA90A, 0xA925, 0xA930, 0xA946, 0xA960, 0xA97C, 0xA984, 0xA9B2, | |
6680 0xA9E0, 0xA9E4, 0xA9E7, 0xA9EF, 0xA9FA, 0xA9FE, 0xAA00, 0xAA28, | |
6681 0xAA40, 0xAA42, 0xAA44, 0xAA4B, 0xAA60, 0xAA6F, 0xAA71, 0xAA76, | |
6682 0xAA7A, 0xAA7A, 0xAA7E, 0xAAAF, 0xAAB1, 0xAAB1, 0xAAB5, 0xAAB6, | |
6683 0xAAB9, 0xAABD, 0xAAC0, 0xAAC0, 0xAAC2, 0xAAC2, 0xAADB, 0xAADC, | |
6684 0xAAE0, 0xAAEA, 0xAAF2, 0xAAF2, 0xAB01, 0xAB06, 0xAB09, 0xAB0E, | |
6685 0xAB11, 0xAB16, 0xAB20, 0xAB26, 0xAB28, 0xAB2E, 0xABC0, 0xABE2, | |
6686 0xAC00, 0xD7A3, 0xD7B0, 0xD7C6, 0xD7CB, 0xD7FB, 0xF900, 0xFA6D, | |
6687 0xFA70, 0xFAD9, 0xFB1D, 0xFB1D, 0xFB1F, 0xFB28, 0xFB2A, 0xFB36, | |
6688 0xFB38, 0xFB3C, 0xFB3E, 0xFB3E, 0xFB40, 0xFB41, 0xFB43, 0xFB44, | |
6689 0xFB46, 0xFBB1, 0xFBD3, 0xFD3D, 0xFD50, 0xFD8F, 0xFD92, 0xFDC7, | |
6690 0xFDF0, 0xFDFB, 0xFE70, 0xFE74, 0xFE76, 0xFEFC, 0xFF66, 0xFF6F, | |
6691 0xFF71, 0xFF9D, 0xFFA0, 0xFFBE, 0xFFC2, 0xFFC7, 0xFFCA, 0xFFCF, | |
6692 0xFFD2, 0xFFD7, 0xFFDA, 0xFFDC, 0x10000, 0x1000B, 0x1000D, 0x10026, | |
6693 0x10028, 0x1003A, 0x1003C, 0x1003D, 0x1003F, 0x1004D, 0x10050, 0x1005D, | |
6694 0x10080, 0x100FA, 0x10280, 0x1029C, 0x102A0, 0x102D0, 0x10300, 0x1031F, | |
6695 0x1032D, 0x10340, 0x10342, 0x10349, 0x10350, 0x10375, 0x10380, 0x1039D, | |
6696 0x103A0, 0x103C3, 0x103C8, 0x103CF, 0x10450, 0x1049D, 0x10500, 0x10527, | |
6697 0x10530, 0x10563, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, | |
6698 0x10800, 0x10805, 0x10808, 0x10808, 0x1080A, 0x10835, 0x10837, 0x10838, | |
6699 0x1083C, 0x1083C, 0x1083F, 0x10855, 0x10860, 0x10876, 0x10880, 0x1089E, | |
6700 0x108E0, 0x108F2, 0x108F4, 0x108F5, 0x10900, 0x10915, 0x10920, 0x10939, | |
6701 0x10980, 0x109B7, 0x109BE, 0x109BF, 0x10A00, 0x10A00, 0x10A10, 0x10A13, | |
6702 0x10A15, 0x10A17, 0x10A19, 0x10A35, 0x10A60, 0x10A7C, 0x10A80, 0x10A9C, | |
6703 0x10AC0, 0x10AC7, 0x10AC9, 0x10AE4, 0x10B00, 0x10B35, 0x10B40, 0x10B55, | |
6704 0x10B60, 0x10B72, 0x10B80, 0x10B91, 0x10C00, 0x10C48, 0x10D00, 0x10D23, | |
6705 0x10E80, 0x10EA9, 0x10EB0, 0x10EB1, 0x10F00, 0x10F1C, 0x10F27, 0x10F27, | |
6706 0x10F30, 0x10F45, 0x10F70, 0x10F81, 0x10FB0, 0x10FC4, 0x10FE0, 0x10FF6, | |
6707 0x11003, 0x11037, 0x11071, 0x11072, 0x11075, 0x11075, 0x11083, 0x110AF, | |
6708 0x110D0, 0x110E8, 0x11103, 0x11126, 0x11144, 0x11144, 0x11147, 0x11147, | |
6709 0x11150, 0x11172, 0x11176, 0x11176, 0x11183, 0x111B2, 0x111C1, 0x111C4, | |
6710 0x111DA, 0x111DA, 0x111DC, 0x111DC, 0x11200, 0x11211, 0x11213, 0x1122B, | |
6711 0x1123F, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128A, 0x1128D, | |
6712 0x1128F, 0x1129D, 0x1129F, 0x112A8, 0x112B0, 0x112DE, 0x11305, 0x1130C, | |
6713 0x1130F, 0x11310, 0x11313, 0x11328, 0x1132A, 0x11330, 0x11332, 0x11333, | |
6714 0x11335, 0x11339, 0x1133D, 0x1133D, 0x11350, 0x11350, 0x1135D, 0x11361, | |
6715 0x11400, 0x11434, 0x11447, 0x1144A, 0x1145F, 0x11461, 0x11480, 0x114AF, | |
6716 0x114C4, 0x114C5, 0x114C7, 0x114C7, 0x11580, 0x115AE, 0x115D8, 0x115DB, | |
6717 0x11600, 0x1162F, 0x11644, 0x11644, 0x11680, 0x116AA, 0x116B8, 0x116B8, | |
6718 0x11700, 0x1171A, 0x11740, 0x11746, 0x11800, 0x1182B, 0x118FF, 0x11906, | |
6719 0x11909, 0x11909, 0x1190C, 0x11913, 0x11915, 0x11916, 0x11918, 0x1192F, | |
6720 0x1193F, 0x1193F, 0x11941, 0x11941, 0x119A0, 0x119A7, 0x119AA, 0x119D0, | |
6721 0x119E1, 0x119E1, 0x119E3, 0x119E3, 0x11A00, 0x11A00, 0x11A0B, 0x11A32, | |
6722 0x11A3A, 0x11A3A, 0x11A50, 0x11A50, 0x11A5C, 0x11A89, 0x11A9D, 0x11A9D, | |
6723 0x11AB0, 0x11AF8, 0x11C00, 0x11C08, 0x11C0A, 0x11C2E, 0x11C40, 0x11C40, | |
6724 0x11C72, 0x11C8F, 0x11D00, 0x11D06, 0x11D08, 0x11D09, 0x11D0B, 0x11D30, | |
6725 0x11D46, 0x11D46, 0x11D60, 0x11D65, 0x11D67, 0x11D68, 0x11D6A, 0x11D89, | |
6726 0x11D98, 0x11D98, 0x11EE0, 0x11EF2, 0x11F02, 0x11F02, 0x11F04, 0x11F10, | |
6727 0x11F12, 0x11F33, 0x11FB0, 0x11FB0, 0x12000, 0x12399, 0x12480, 0x12543, | |
6728 0x12F90, 0x12FF0, 0x13000, 0x1342F, 0x13441, 0x13446, 0x14400, 0x14646, | |
6729 0x16800, 0x16A38, 0x16A40, 0x16A5E, 0x16A70, 0x16ABE, 0x16AD0, 0x16AED, | |
6730 0x16B00, 0x16B2F, 0x16B63, 0x16B77, 0x16B7D, 0x16B8F, 0x16F00, 0x16F4A, | |
6731 0x16F50, 0x16F50, 0x17000, 0x187F7, 0x18800, 0x18CD5, 0x18D00, 0x18D08, | |
6732 0x1B000, 0x1B122, 0x1B132, 0x1B132, 0x1B150, 0x1B152, 0x1B155, 0x1B155, | |
6733 0x1B164, 0x1B167, 0x1B170, 0x1B2FB, 0x1BC00, 0x1BC6A, 0x1BC70, 0x1BC7C, | |
6734 0x1BC80, 0x1BC88, 0x1BC90, 0x1BC99, 0x1DF0A, 0x1DF0A, 0x1E100, 0x1E12C, | |
6735 0x1E14E, 0x1E14E, 0x1E290, 0x1E2AD, 0x1E2C0, 0x1E2EB, 0x1E4D0, 0x1E4EA, | |
6736 0x1E7E0, 0x1E7E6, 0x1E7E8, 0x1E7EB, 0x1E7ED, 0x1E7EE, 0x1E7F0, 0x1E7FE, | |
6737 0x1E800, 0x1E8C4, 0x1EE00, 0x1EE03, 0x1EE05, 0x1EE1F, 0x1EE21, 0x1EE22, | |
6738 0x1EE24, 0x1EE24, 0x1EE27, 0x1EE27, 0x1EE29, 0x1EE32, 0x1EE34, 0x1EE37, | |
6739 0x1EE39, 0x1EE39, 0x1EE3B, 0x1EE3B, 0x1EE42, 0x1EE42, 0x1EE47, 0x1EE47, | |
6740 0x1EE49, 0x1EE49, 0x1EE4B, 0x1EE4B, 0x1EE4D, 0x1EE4F, 0x1EE51, 0x1EE52, | |
6741 0x1EE54, 0x1EE54, 0x1EE57, 0x1EE57, 0x1EE59, 0x1EE59, 0x1EE5B, 0x1EE5B, | |
6742 0x1EE5D, 0x1EE5D, 0x1EE5F, 0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE64, | |
6743 0x1EE67, 0x1EE6A, 0x1EE6C, 0x1EE72, 0x1EE74, 0x1EE77, 0x1EE79, 0x1EE7C, | |
6744 0x1EE7E, 0x1EE7E, 0x1EE80, 0x1EE89, 0x1EE8B, 0x1EE9B, 0x1EEA1, 0x1EEA3, | |
6745 0x1EEA5, 0x1EEA9, 0x1EEAB, 0x1EEBB, 0x20000, 0x2A6DF, 0x2A700, 0x2B739, | |
6746 0x2B740, 0x2B81D, 0x2B820, 0x2CEA1, 0x2CEB0, 0x2EBE0, 0x2EBF0, 0x2EE5D, | |
6747 0x2F800, 0x2FA1D, 0x30000, 0x3134A, 0x31350, 0x323AF, | |
6748 // #18 (2630+533): gc=Mark:M:Combining_Mark | |
6749 // Mc:182 + Me:5 + Mn:346 | |
6750 // #19 (2630+182): gc=Spacing_Mark:Mc | |
6751 0x0903, 0x0903, 0x093B, 0x093B, 0x093E, 0x0940, 0x0949, 0x094C, | |
6752 0x094E, 0x094F, 0x0982, 0x0983, 0x09BE, 0x09C0, 0x09C7, 0x09C8, | |
6753 0x09CB, 0x09CC, 0x09D7, 0x09D7, 0x0A03, 0x0A03, 0x0A3E, 0x0A40, | |
6754 0x0A83, 0x0A83, 0x0ABE, 0x0AC0, 0x0AC9, 0x0AC9, 0x0ACB, 0x0ACC, | |
6755 0x0B02, 0x0B03, 0x0B3E, 0x0B3E, 0x0B40, 0x0B40, 0x0B47, 0x0B48, | |
6756 0x0B4B, 0x0B4C, 0x0B57, 0x0B57, 0x0BBE, 0x0BBF, 0x0BC1, 0x0BC2, | |
6757 0x0BC6, 0x0BC8, 0x0BCA, 0x0BCC, 0x0BD7, 0x0BD7, 0x0C01, 0x0C03, | |
6758 0x0C41, 0x0C44, 0x0C82, 0x0C83, 0x0CBE, 0x0CBE, 0x0CC0, 0x0CC4, | |
6759 0x0CC7, 0x0CC8, 0x0CCA, 0x0CCB, 0x0CD5, 0x0CD6, 0x0CF3, 0x0CF3, | |
6760 0x0D02, 0x0D03, 0x0D3E, 0x0D40, 0x0D46, 0x0D48, 0x0D4A, 0x0D4C, | |
6761 0x0D57, 0x0D57, 0x0D82, 0x0D83, 0x0DCF, 0x0DD1, 0x0DD8, 0x0DDF, | |
6762 0x0DF2, 0x0DF3, 0x0F3E, 0x0F3F, 0x0F7F, 0x0F7F, 0x102B, 0x102C, | |
6763 0x1031, 0x1031, 0x1038, 0x1038, 0x103B, 0x103C, 0x1056, 0x1057, | |
6764 0x1062, 0x1064, 0x1067, 0x106D, 0x1083, 0x1084, 0x1087, 0x108C, | |
6765 0x108F, 0x108F, 0x109A, 0x109C, 0x1715, 0x1715, 0x1734, 0x1734, | |
6766 0x17B6, 0x17B6, 0x17BE, 0x17C5, 0x17C7, 0x17C8, 0x1923, 0x1926, | |
6767 0x1929, 0x192B, 0x1930, 0x1931, 0x1933, 0x1938, 0x1A19, 0x1A1A, | |
6768 0x1A55, 0x1A55, 0x1A57, 0x1A57, 0x1A61, 0x1A61, 0x1A63, 0x1A64, | |
6769 0x1A6D, 0x1A72, 0x1B04, 0x1B04, 0x1B35, 0x1B35, 0x1B3B, 0x1B3B, | |
6770 0x1B3D, 0x1B41, 0x1B43, 0x1B44, 0x1B82, 0x1B82, 0x1BA1, 0x1BA1, | |
6771 0x1BA6, 0x1BA7, 0x1BAA, 0x1BAA, 0x1BE7, 0x1BE7, 0x1BEA, 0x1BEC, | |
6772 0x1BEE, 0x1BEE, 0x1BF2, 0x1BF3, 0x1C24, 0x1C2B, 0x1C34, 0x1C35, | |
6773 0x1CE1, 0x1CE1, 0x1CF7, 0x1CF7, 0x302E, 0x302F, 0xA823, 0xA824, | |
6774 0xA827, 0xA827, 0xA880, 0xA881, 0xA8B4, 0xA8C3, 0xA952, 0xA953, | |
6775 0xA983, 0xA983, 0xA9B4, 0xA9B5, 0xA9BA, 0xA9BB, 0xA9BE, 0xA9C0, | |
6776 0xAA2F, 0xAA30, 0xAA33, 0xAA34, 0xAA4D, 0xAA4D, 0xAA7B, 0xAA7B, | |
6777 0xAA7D, 0xAA7D, 0xAAEB, 0xAAEB, 0xAAEE, 0xAAEF, 0xAAF5, 0xAAF5, | |
6778 0xABE3, 0xABE4, 0xABE6, 0xABE7, 0xABE9, 0xABEA, 0xABEC, 0xABEC, | |
6779 0x11000, 0x11000, 0x11002, 0x11002, 0x11082, 0x11082, 0x110B0, 0x110B2, | |
6780 0x110B7, 0x110B8, 0x1112C, 0x1112C, 0x11145, 0x11146, 0x11182, 0x11182, | |
6781 0x111B3, 0x111B5, 0x111BF, 0x111C0, 0x111CE, 0x111CE, 0x1122C, 0x1122E, | |
6782 0x11232, 0x11233, 0x11235, 0x11235, 0x112E0, 0x112E2, 0x11302, 0x11303, | |
6783 0x1133E, 0x1133F, 0x11341, 0x11344, 0x11347, 0x11348, 0x1134B, 0x1134D, | |
6784 0x11357, 0x11357, 0x11362, 0x11363, 0x11435, 0x11437, 0x11440, 0x11441, | |
6785 0x11445, 0x11445, 0x114B0, 0x114B2, 0x114B9, 0x114B9, 0x114BB, 0x114BE, | |
6786 0x114C1, 0x114C1, 0x115AF, 0x115B1, 0x115B8, 0x115BB, 0x115BE, 0x115BE, | |
6787 0x11630, 0x11632, 0x1163B, 0x1163C, 0x1163E, 0x1163E, 0x116AC, 0x116AC, | |
6788 0x116AE, 0x116AF, 0x116B6, 0x116B6, 0x11720, 0x11721, 0x11726, 0x11726, | |
6789 0x1182C, 0x1182E, 0x11838, 0x11838, 0x11930, 0x11935, 0x11937, 0x11938, | |
6790 0x1193D, 0x1193D, 0x11940, 0x11940, 0x11942, 0x11942, 0x119D1, 0x119D3, | |
6791 0x119DC, 0x119DF, 0x119E4, 0x119E4, 0x11A39, 0x11A39, 0x11A57, 0x11A58, | |
6792 0x11A97, 0x11A97, 0x11C2F, 0x11C2F, 0x11C3E, 0x11C3E, 0x11CA9, 0x11CA9, | |
6793 0x11CB1, 0x11CB1, 0x11CB4, 0x11CB4, 0x11D8A, 0x11D8E, 0x11D93, 0x11D94, | |
6794 0x11D96, 0x11D96, 0x11EF5, 0x11EF6, 0x11F03, 0x11F03, 0x11F34, 0x11F35, | |
6795 0x11F3E, 0x11F3F, 0x11F41, 0x11F41, 0x16F51, 0x16F87, 0x16FF0, 0x16FF1, | |
6796 0x1D165, 0x1D166, 0x1D16D, 0x1D172, | |
6797 // #20 (2812+5): gc=Enclosing_Mark:Me | |
6798 0x0488, 0x0489, 0x1ABE, 0x1ABE, 0x20DD, 0x20E0, 0x20E2, 0x20E4, | |
6799 0xA670, 0xA672, | |
6800 // #21 (2817+346): gc=Nonspacing_Mark:Mn | |
6801 0x0300, 0x036F, 0x0483, 0x0487, 0x0591, 0x05BD, 0x05BF, 0x05BF, | |
6802 0x05C1, 0x05C2, 0x05C4, 0x05C5, 0x05C7, 0x05C7, 0x0610, 0x061A, | |
6803 0x064B, 0x065F, 0x0670, 0x0670, 0x06D6, 0x06DC, 0x06DF, 0x06E4, | |
6804 0x06E7, 0x06E8, 0x06EA, 0x06ED, 0x0711, 0x0711, 0x0730, 0x074A, | |
6805 0x07A6, 0x07B0, 0x07EB, 0x07F3, 0x07FD, 0x07FD, 0x0816, 0x0819, | |
6806 0x081B, 0x0823, 0x0825, 0x0827, 0x0829, 0x082D, 0x0859, 0x085B, | |
6807 0x0898, 0x089F, 0x08CA, 0x08E1, 0x08E3, 0x0902, 0x093A, 0x093A, | |
6808 0x093C, 0x093C, 0x0941, 0x0948, 0x094D, 0x094D, 0x0951, 0x0957, | |
6809 0x0962, 0x0963, 0x0981, 0x0981, 0x09BC, 0x09BC, 0x09C1, 0x09C4, | |
6810 0x09CD, 0x09CD, 0x09E2, 0x09E3, 0x09FE, 0x09FE, 0x0A01, 0x0A02, | |
6811 0x0A3C, 0x0A3C, 0x0A41, 0x0A42, 0x0A47, 0x0A48, 0x0A4B, 0x0A4D, | |
6812 0x0A51, 0x0A51, 0x0A70, 0x0A71, 0x0A75, 0x0A75, 0x0A81, 0x0A82, | |
6813 0x0ABC, 0x0ABC, 0x0AC1, 0x0AC5, 0x0AC7, 0x0AC8, 0x0ACD, 0x0ACD, | |
6814 0x0AE2, 0x0AE3, 0x0AFA, 0x0AFF, 0x0B01, 0x0B01, 0x0B3C, 0x0B3C, | |
6815 0x0B3F, 0x0B3F, 0x0B41, 0x0B44, 0x0B4D, 0x0B4D, 0x0B55, 0x0B56, | |
6816 0x0B62, 0x0B63, 0x0B82, 0x0B82, 0x0BC0, 0x0BC0, 0x0BCD, 0x0BCD, | |
6817 0x0C00, 0x0C00, 0x0C04, 0x0C04, 0x0C3C, 0x0C3C, 0x0C3E, 0x0C40, | |
6818 0x0C46, 0x0C48, 0x0C4A, 0x0C4D, 0x0C55, 0x0C56, 0x0C62, 0x0C63, | |
6819 0x0C81, 0x0C81, 0x0CBC, 0x0CBC, 0x0CBF, 0x0CBF, 0x0CC6, 0x0CC6, | |
6820 0x0CCC, 0x0CCD, 0x0CE2, 0x0CE3, 0x0D00, 0x0D01, 0x0D3B, 0x0D3C, | |
6821 0x0D41, 0x0D44, 0x0D4D, 0x0D4D, 0x0D62, 0x0D63, 0x0D81, 0x0D81, | |
6822 0x0DCA, 0x0DCA, 0x0DD2, 0x0DD4, 0x0DD6, 0x0DD6, 0x0E31, 0x0E31, | |
6823 0x0E34, 0x0E3A, 0x0E47, 0x0E4E, 0x0EB1, 0x0EB1, 0x0EB4, 0x0EBC, | |
6824 0x0EC8, 0x0ECE, 0x0F18, 0x0F19, 0x0F35, 0x0F35, 0x0F37, 0x0F37, | |
6825 0x0F39, 0x0F39, 0x0F71, 0x0F7E, 0x0F80, 0x0F84, 0x0F86, 0x0F87, | |
6826 0x0F8D, 0x0F97, 0x0F99, 0x0FBC, 0x0FC6, 0x0FC6, 0x102D, 0x1030, | |
6827 0x1032, 0x1037, 0x1039, 0x103A, 0x103D, 0x103E, 0x1058, 0x1059, | |
6828 0x105E, 0x1060, 0x1071, 0x1074, 0x1082, 0x1082, 0x1085, 0x1086, | |
6829 0x108D, 0x108D, 0x109D, 0x109D, 0x135D, 0x135F, 0x1712, 0x1714, | |
6830 0x1732, 0x1733, 0x1752, 0x1753, 0x1772, 0x1773, 0x17B4, 0x17B5, | |
6831 0x17B7, 0x17BD, 0x17C6, 0x17C6, 0x17C9, 0x17D3, 0x17DD, 0x17DD, | |
6832 0x180B, 0x180D, 0x180F, 0x180F, 0x1885, 0x1886, 0x18A9, 0x18A9, | |
6833 0x1920, 0x1922, 0x1927, 0x1928, 0x1932, 0x1932, 0x1939, 0x193B, | |
6834 0x1A17, 0x1A18, 0x1A1B, 0x1A1B, 0x1A56, 0x1A56, 0x1A58, 0x1A5E, | |
6835 0x1A60, 0x1A60, 0x1A62, 0x1A62, 0x1A65, 0x1A6C, 0x1A73, 0x1A7C, | |
6836 0x1A7F, 0x1A7F, 0x1AB0, 0x1ABD, 0x1ABF, 0x1ACE, 0x1B00, 0x1B03, | |
6837 0x1B34, 0x1B34, 0x1B36, 0x1B3A, 0x1B3C, 0x1B3C, 0x1B42, 0x1B42, | |
6838 0x1B6B, 0x1B73, 0x1B80, 0x1B81, 0x1BA2, 0x1BA5, 0x1BA8, 0x1BA9, | |
6839 0x1BAB, 0x1BAD, 0x1BE6, 0x1BE6, 0x1BE8, 0x1BE9, 0x1BED, 0x1BED, | |
6840 0x1BEF, 0x1BF1, 0x1C2C, 0x1C33, 0x1C36, 0x1C37, 0x1CD0, 0x1CD2, | |
6841 0x1CD4, 0x1CE0, 0x1CE2, 0x1CE8, 0x1CED, 0x1CED, 0x1CF4, 0x1CF4, | |
6842 0x1CF8, 0x1CF9, 0x1DC0, 0x1DFF, 0x20D0, 0x20DC, 0x20E1, 0x20E1, | |
6843 0x20E5, 0x20F0, 0x2CEF, 0x2CF1, 0x2D7F, 0x2D7F, 0x2DE0, 0x2DFF, | |
6844 0x302A, 0x302D, 0x3099, 0x309A, 0xA66F, 0xA66F, 0xA674, 0xA67D, | |
6845 0xA69E, 0xA69F, 0xA6F0, 0xA6F1, 0xA802, 0xA802, 0xA806, 0xA806, | |
6846 0xA80B, 0xA80B, 0xA825, 0xA826, 0xA82C, 0xA82C, 0xA8C4, 0xA8C5, | |
6847 0xA8E0, 0xA8F1, 0xA8FF, 0xA8FF, 0xA926, 0xA92D, 0xA947, 0xA951, | |
6848 0xA980, 0xA982, 0xA9B3, 0xA9B3, 0xA9B6, 0xA9B9, 0xA9BC, 0xA9BD, | |
6849 0xA9E5, 0xA9E5, 0xAA29, 0xAA2E, 0xAA31, 0xAA32, 0xAA35, 0xAA36, | |
6850 0xAA43, 0xAA43, 0xAA4C, 0xAA4C, 0xAA7C, 0xAA7C, 0xAAB0, 0xAAB0, | |
6851 0xAAB2, 0xAAB4, 0xAAB7, 0xAAB8, 0xAABE, 0xAABF, 0xAAC1, 0xAAC1, | |
6852 0xAAEC, 0xAAED, 0xAAF6, 0xAAF6, 0xABE5, 0xABE5, 0xABE8, 0xABE8, | |
6853 0xABED, 0xABED, 0xFB1E, 0xFB1E, 0xFE00, 0xFE0F, 0xFE20, 0xFE2F, | |
6854 0x101FD, 0x101FD, 0x102E0, 0x102E0, 0x10376, 0x1037A, 0x10A01, 0x10A03, | |
6855 0x10A05, 0x10A06, 0x10A0C, 0x10A0F, 0x10A38, 0x10A3A, 0x10A3F, 0x10A3F, | |
6856 0x10AE5, 0x10AE6, 0x10D24, 0x10D27, 0x10EAB, 0x10EAC, 0x10EFD, 0x10EFF, | |
6857 0x10F46, 0x10F50, 0x10F82, 0x10F85, 0x11001, 0x11001, 0x11038, 0x11046, | |
6858 0x11070, 0x11070, 0x11073, 0x11074, 0x1107F, 0x11081, 0x110B3, 0x110B6, | |
6859 0x110B9, 0x110BA, 0x110C2, 0x110C2, 0x11100, 0x11102, 0x11127, 0x1112B, | |
6860 0x1112D, 0x11134, 0x11173, 0x11173, 0x11180, 0x11181, 0x111B6, 0x111BE, | |
6861 0x111C9, 0x111CC, 0x111CF, 0x111CF, 0x1122F, 0x11231, 0x11234, 0x11234, | |
6862 0x11236, 0x11237, 0x1123E, 0x1123E, 0x11241, 0x11241, 0x112DF, 0x112DF, | |
6863 0x112E3, 0x112EA, 0x11300, 0x11301, 0x1133B, 0x1133C, 0x11340, 0x11340, | |
6864 0x11366, 0x1136C, 0x11370, 0x11374, 0x11438, 0x1143F, 0x11442, 0x11444, | |
6865 0x11446, 0x11446, 0x1145E, 0x1145E, 0x114B3, 0x114B8, 0x114BA, 0x114BA, | |
6866 0x114BF, 0x114C0, 0x114C2, 0x114C3, 0x115B2, 0x115B5, 0x115BC, 0x115BD, | |
6867 0x115BF, 0x115C0, 0x115DC, 0x115DD, 0x11633, 0x1163A, 0x1163D, 0x1163D, | |
6868 0x1163F, 0x11640, 0x116AB, 0x116AB, 0x116AD, 0x116AD, 0x116B0, 0x116B5, | |
6869 0x116B7, 0x116B7, 0x1171D, 0x1171F, 0x11722, 0x11725, 0x11727, 0x1172B, | |
6870 0x1182F, 0x11837, 0x11839, 0x1183A, 0x1193B, 0x1193C, 0x1193E, 0x1193E, | |
6871 0x11943, 0x11943, 0x119D4, 0x119D7, 0x119DA, 0x119DB, 0x119E0, 0x119E0, | |
6872 0x11A01, 0x11A0A, 0x11A33, 0x11A38, 0x11A3B, 0x11A3E, 0x11A47, 0x11A47, | |
6873 0x11A51, 0x11A56, 0x11A59, 0x11A5B, 0x11A8A, 0x11A96, 0x11A98, 0x11A99, | |
6874 0x11C30, 0x11C36, 0x11C38, 0x11C3D, 0x11C3F, 0x11C3F, 0x11C92, 0x11CA7, | |
6875 0x11CAA, 0x11CB0, 0x11CB2, 0x11CB3, 0x11CB5, 0x11CB6, 0x11D31, 0x11D36, | |
6876 0x11D3A, 0x11D3A, 0x11D3C, 0x11D3D, 0x11D3F, 0x11D45, 0x11D47, 0x11D47, | |
6877 0x11D90, 0x11D91, 0x11D95, 0x11D95, 0x11D97, 0x11D97, 0x11EF3, 0x11EF4, | |
6878 0x11F00, 0x11F01, 0x11F36, 0x11F3A, 0x11F40, 0x11F40, 0x11F42, 0x11F42, | |
6879 0x13440, 0x13440, 0x13447, 0x13455, 0x16AF0, 0x16AF4, 0x16B30, 0x16B36, | |
6880 0x16F4F, 0x16F4F, 0x16F8F, 0x16F92, 0x16FE4, 0x16FE4, 0x1BC9D, 0x1BC9E, | |
6881 0x1CF00, 0x1CF2D, 0x1CF30, 0x1CF46, 0x1D167, 0x1D169, 0x1D17B, 0x1D182, | |
6882 0x1D185, 0x1D18B, 0x1D1AA, 0x1D1AD, 0x1D242, 0x1D244, 0x1DA00, 0x1DA36, | |
6883 0x1DA3B, 0x1DA6C, 0x1DA75, 0x1DA75, 0x1DA84, 0x1DA84, 0x1DA9B, 0x1DA9F, | |
6884 0x1DAA1, 0x1DAAF, 0x1E000, 0x1E006, 0x1E008, 0x1E018, 0x1E01B, 0x1E021, | |
6885 0x1E023, 0x1E024, 0x1E026, 0x1E02A, 0x1E08F, 0x1E08F, 0x1E130, 0x1E136, | |
6886 0x1E2AE, 0x1E2AE, 0x1E2EC, 0x1E2EF, 0x1E4EC, 0x1E4EF, 0x1E8D0, 0x1E8D6, | |
6887 0x1E944, 0x1E94A, 0xE0100, 0xE01EF, | |
6888 // #22 (3163+148): gc=Number:N | |
6889 // Nd:64 + Nl:12 + No:72 | |
6890 // #23 (3163+64): gc=Decimal_Number:Nd:digit | |
6891 0x0030, 0x0039, 0x0660, 0x0669, 0x06F0, 0x06F9, 0x07C0, 0x07C9, | |
6892 0x0966, 0x096F, 0x09E6, 0x09EF, 0x0A66, 0x0A6F, 0x0AE6, 0x0AEF, | |
6893 0x0B66, 0x0B6F, 0x0BE6, 0x0BEF, 0x0C66, 0x0C6F, 0x0CE6, 0x0CEF, | |
6894 0x0D66, 0x0D6F, 0x0DE6, 0x0DEF, 0x0E50, 0x0E59, 0x0ED0, 0x0ED9, | |
6895 0x0F20, 0x0F29, 0x1040, 0x1049, 0x1090, 0x1099, 0x17E0, 0x17E9, | |
6896 0x1810, 0x1819, 0x1946, 0x194F, 0x19D0, 0x19D9, 0x1A80, 0x1A89, | |
6897 0x1A90, 0x1A99, 0x1B50, 0x1B59, 0x1BB0, 0x1BB9, 0x1C40, 0x1C49, | |
6898 0x1C50, 0x1C59, 0xA620, 0xA629, 0xA8D0, 0xA8D9, 0xA900, 0xA909, | |
6899 0xA9D0, 0xA9D9, 0xA9F0, 0xA9F9, 0xAA50, 0xAA59, 0xABF0, 0xABF9, | |
6900 0xFF10, 0xFF19, 0x104A0, 0x104A9, 0x10D30, 0x10D39, 0x11066, 0x1106F, | |
6901 0x110F0, 0x110F9, 0x11136, 0x1113F, 0x111D0, 0x111D9, 0x112F0, 0x112F9, | |
6902 0x11450, 0x11459, 0x114D0, 0x114D9, 0x11650, 0x11659, 0x116C0, 0x116C9, | |
6903 0x11730, 0x11739, 0x118E0, 0x118E9, 0x11950, 0x11959, 0x11C50, 0x11C59, | |
6904 0x11D50, 0x11D59, 0x11DA0, 0x11DA9, 0x11F50, 0x11F59, 0x16A60, 0x16A69, | |
6905 0x16AC0, 0x16AC9, 0x16B50, 0x16B59, 0x1D7CE, 0x1D7FF, 0x1E140, 0x1E149, | |
6906 0x1E2F0, 0x1E2F9, 0x1E4F0, 0x1E4F9, 0x1E950, 0x1E959, 0x1FBF0, 0x1FBF9, | |
6907 // #24 (3227+12): gc=Letter_Number:Nl | |
6908 0x16EE, 0x16F0, 0x2160, 0x2182, 0x2185, 0x2188, 0x3007, 0x3007, | |
6909 0x3021, 0x3029, 0x3038, 0x303A, 0xA6E6, 0xA6EF, 0x10140, 0x10174, | |
6910 0x10341, 0x10341, 0x1034A, 0x1034A, 0x103D1, 0x103D5, 0x12400, 0x1246E, | |
6911 // #25 (3239+72): gc=Other_Number:No | |
6912 0x00B2, 0x00B3, 0x00B9, 0x00B9, 0x00BC, 0x00BE, 0x09F4, 0x09F9, | |
6913 0x0B72, 0x0B77, 0x0BF0, 0x0BF2, 0x0C78, 0x0C7E, 0x0D58, 0x0D5E, | |
6914 0x0D70, 0x0D78, 0x0F2A, 0x0F33, 0x1369, 0x137C, 0x17F0, 0x17F9, | |
6915 0x19DA, 0x19DA, 0x2070, 0x2070, 0x2074, 0x2079, 0x2080, 0x2089, | |
6916 0x2150, 0x215F, 0x2189, 0x2189, 0x2460, 0x249B, 0x24EA, 0x24FF, | |
6917 0x2776, 0x2793, 0x2CFD, 0x2CFD, 0x3192, 0x3195, 0x3220, 0x3229, | |
6918 0x3248, 0x324F, 0x3251, 0x325F, 0x3280, 0x3289, 0x32B1, 0x32BF, | |
6919 0xA830, 0xA835, 0x10107, 0x10133, 0x10175, 0x10178, 0x1018A, 0x1018B, | |
6920 0x102E1, 0x102FB, 0x10320, 0x10323, 0x10858, 0x1085F, 0x10879, 0x1087F, | |
6921 0x108A7, 0x108AF, 0x108FB, 0x108FF, 0x10916, 0x1091B, 0x109BC, 0x109BD, | |
6922 0x109C0, 0x109CF, 0x109D2, 0x109FF, 0x10A40, 0x10A48, 0x10A7D, 0x10A7E, | |
6923 0x10A9D, 0x10A9F, 0x10AEB, 0x10AEF, 0x10B58, 0x10B5F, 0x10B78, 0x10B7F, | |
6924 0x10BA9, 0x10BAF, 0x10CFA, 0x10CFF, 0x10E60, 0x10E7E, 0x10F1D, 0x10F26, | |
6925 0x10F51, 0x10F54, 0x10FC5, 0x10FCB, 0x11052, 0x11065, 0x111E1, 0x111F4, | |
6926 0x1173A, 0x1173B, 0x118EA, 0x118F2, 0x11C5A, 0x11C6C, 0x11FC0, 0x11FD4, | |
6927 0x16B5B, 0x16B61, 0x16E80, 0x16E96, 0x1D2C0, 0x1D2D3, 0x1D2E0, 0x1D2F3, | |
6928 0x1D360, 0x1D378, 0x1E8C7, 0x1E8CF, 0x1EC71, 0x1ECAB, 0x1ECAD, 0x1ECAF, | |
6929 0x1ECB1, 0x1ECB4, 0x1ED01, 0x1ED2D, 0x1ED2F, 0x1ED3D, 0x1F100, 0x1F10C, | |
6930 // #26 (3311+388): gc=Punctuation:P:punct | |
6931 // Pc:6 + Pd:19 + Pe:76 + Pf:10 + Pi:11 + Po:187 + Ps:79 | |
6932 // #27 (3311+6): gc=Connector_Punctuation:Pc | |
6933 0x005F, 0x005F, 0x203F, 0x2040, 0x2054, 0x2054, 0xFE33, 0xFE34, | |
6934 0xFE4D, 0xFE4F, 0xFF3F, 0xFF3F, | |
6935 // #28 (3317+19): gc=Dash_Punctuation:Pd | |
6936 0x002D, 0x002D, 0x058A, 0x058A, 0x05BE, 0x05BE, 0x1400, 0x1400, | |
6937 0x1806, 0x1806, 0x2010, 0x2015, 0x2E17, 0x2E17, 0x2E1A, 0x2E1A, | |
6938 0x2E3A, 0x2E3B, 0x2E40, 0x2E40, 0x2E5D, 0x2E5D, 0x301C, 0x301C, | |
6939 0x3030, 0x3030, 0x30A0, 0x30A0, 0xFE31, 0xFE32, 0xFE58, 0xFE58, | |
6940 0xFE63, 0xFE63, 0xFF0D, 0xFF0D, 0x10EAD, 0x10EAD, | |
6941 // #29 (3336+76): gc=Close_Punctuation:Pe | |
6942 0x0029, 0x0029, 0x005D, 0x005D, 0x007D, 0x007D, 0x0F3B, 0x0F3B, | |
6943 0x0F3D, 0x0F3D, 0x169C, 0x169C, 0x2046, 0x2046, 0x207E, 0x207E, | |
6944 0x208E, 0x208E, 0x2309, 0x2309, 0x230B, 0x230B, 0x232A, 0x232A, | |
6945 0x2769, 0x2769, 0x276B, 0x276B, 0x276D, 0x276D, 0x276F, 0x276F, | |
6946 0x2771, 0x2771, 0x2773, 0x2773, 0x2775, 0x2775, 0x27C6, 0x27C6, | |
6947 0x27E7, 0x27E7, 0x27E9, 0x27E9, 0x27EB, 0x27EB, 0x27ED, 0x27ED, | |
6948 0x27EF, 0x27EF, 0x2984, 0x2984, 0x2986, 0x2986, 0x2988, 0x2988, | |
6949 0x298A, 0x298A, 0x298C, 0x298C, 0x298E, 0x298E, 0x2990, 0x2990, | |
6950 0x2992, 0x2992, 0x2994, 0x2994, 0x2996, 0x2996, 0x2998, 0x2998, | |
6951 0x29D9, 0x29D9, 0x29DB, 0x29DB, 0x29FD, 0x29FD, 0x2E23, 0x2E23, | |
6952 0x2E25, 0x2E25, 0x2E27, 0x2E27, 0x2E29, 0x2E29, 0x2E56, 0x2E56, | |
6953 0x2E58, 0x2E58, 0x2E5A, 0x2E5A, 0x2E5C, 0x2E5C, 0x3009, 0x3009, | |
6954 0x300B, 0x300B, 0x300D, 0x300D, 0x300F, 0x300F, 0x3011, 0x3011, | |
6955 0x3015, 0x3015, 0x3017, 0x3017, 0x3019, 0x3019, 0x301B, 0x301B, | |
6956 0x301E, 0x301F, 0xFD3E, 0xFD3E, 0xFE18, 0xFE18, 0xFE36, 0xFE36, | |
6957 0xFE38, 0xFE38, 0xFE3A, 0xFE3A, 0xFE3C, 0xFE3C, 0xFE3E, 0xFE3E, | |
6958 0xFE40, 0xFE40, 0xFE42, 0xFE42, 0xFE44, 0xFE44, 0xFE48, 0xFE48, | |
6959 0xFE5A, 0xFE5A, 0xFE5C, 0xFE5C, 0xFE5E, 0xFE5E, 0xFF09, 0xFF09, | |
6960 0xFF3D, 0xFF3D, 0xFF5D, 0xFF5D, 0xFF60, 0xFF60, 0xFF63, 0xFF63, | |
6961 // #30 (3412+10): gc=Final_Punctuation:Pf | |
6962 0x00BB, 0x00BB, 0x2019, 0x2019, 0x201D, 0x201D, 0x203A, 0x203A, | |
6963 0x2E03, 0x2E03, 0x2E05, 0x2E05, 0x2E0A, 0x2E0A, 0x2E0D, 0x2E0D, | |
6964 0x2E1D, 0x2E1D, 0x2E21, 0x2E21, | |
6965 // #31 (3422+11): gc=Initial_Punctuation:Pi | |
6966 0x00AB, 0x00AB, 0x2018, 0x2018, 0x201B, 0x201C, 0x201F, 0x201F, | |
6967 0x2039, 0x2039, 0x2E02, 0x2E02, 0x2E04, 0x2E04, 0x2E09, 0x2E09, | |
6968 0x2E0C, 0x2E0C, 0x2E1C, 0x2E1C, 0x2E20, 0x2E20, | |
6969 // #32 (3433+187): gc=Other_Punctuation:Po | |
6970 0x0021, 0x0023, 0x0025, 0x0027, 0x002A, 0x002A, 0x002C, 0x002C, | |
6971 0x002E, 0x002F, 0x003A, 0x003B, 0x003F, 0x0040, 0x005C, 0x005C, | |
6972 0x00A1, 0x00A1, 0x00A7, 0x00A7, 0x00B6, 0x00B7, 0x00BF, 0x00BF, | |
6973 0x037E, 0x037E, 0x0387, 0x0387, 0x055A, 0x055F, 0x0589, 0x0589, | |
6974 0x05C0, 0x05C0, 0x05C3, 0x05C3, 0x05C6, 0x05C6, 0x05F3, 0x05F4, | |
6975 0x0609, 0x060A, 0x060C, 0x060D, 0x061B, 0x061B, 0x061D, 0x061F, | |
6976 0x066A, 0x066D, 0x06D4, 0x06D4, 0x0700, 0x070D, 0x07F7, 0x07F9, | |
6977 0x0830, 0x083E, 0x085E, 0x085E, 0x0964, 0x0965, 0x0970, 0x0970, | |
6978 0x09FD, 0x09FD, 0x0A76, 0x0A76, 0x0AF0, 0x0AF0, 0x0C77, 0x0C77, | |
6979 0x0C84, 0x0C84, 0x0DF4, 0x0DF4, 0x0E4F, 0x0E4F, 0x0E5A, 0x0E5B, | |
6980 0x0F04, 0x0F12, 0x0F14, 0x0F14, 0x0F85, 0x0F85, 0x0FD0, 0x0FD4, | |
6981 0x0FD9, 0x0FDA, 0x104A, 0x104F, 0x10FB, 0x10FB, 0x1360, 0x1368, | |
6982 0x166E, 0x166E, 0x16EB, 0x16ED, 0x1735, 0x1736, 0x17D4, 0x17D6, | |
6983 0x17D8, 0x17DA, 0x1800, 0x1805, 0x1807, 0x180A, 0x1944, 0x1945, | |
6984 0x1A1E, 0x1A1F, 0x1AA0, 0x1AA6, 0x1AA8, 0x1AAD, 0x1B5A, 0x1B60, | |
6985 0x1B7D, 0x1B7E, 0x1BFC, 0x1BFF, 0x1C3B, 0x1C3F, 0x1C7E, 0x1C7F, | |
6986 0x1CC0, 0x1CC7, 0x1CD3, 0x1CD3, 0x2016, 0x2017, 0x2020, 0x2027, | |
6987 0x2030, 0x2038, 0x203B, 0x203E, 0x2041, 0x2043, 0x2047, 0x2051, | |
6988 0x2053, 0x2053, 0x2055, 0x205E, 0x2CF9, 0x2CFC, 0x2CFE, 0x2CFF, | |
6989 0x2D70, 0x2D70, 0x2E00, 0x2E01, 0x2E06, 0x2E08, 0x2E0B, 0x2E0B, | |
6990 0x2E0E, 0x2E16, 0x2E18, 0x2E19, 0x2E1B, 0x2E1B, 0x2E1E, 0x2E1F, | |
6991 0x2E2A, 0x2E2E, 0x2E30, 0x2E39, 0x2E3C, 0x2E3F, 0x2E41, 0x2E41, | |
6992 0x2E43, 0x2E4F, 0x2E52, 0x2E54, 0x3001, 0x3003, 0x303D, 0x303D, | |
6993 0x30FB, 0x30FB, 0xA4FE, 0xA4FF, 0xA60D, 0xA60F, 0xA673, 0xA673, | |
6994 0xA67E, 0xA67E, 0xA6F2, 0xA6F7, 0xA874, 0xA877, 0xA8CE, 0xA8CF, | |
6995 0xA8F8, 0xA8FA, 0xA8FC, 0xA8FC, 0xA92E, 0xA92F, 0xA95F, 0xA95F, | |
6996 0xA9C1, 0xA9CD, 0xA9DE, 0xA9DF, 0xAA5C, 0xAA5F, 0xAADE, 0xAADF, | |
6997 0xAAF0, 0xAAF1, 0xABEB, 0xABEB, 0xFE10, 0xFE16, 0xFE19, 0xFE19, | |
6998 0xFE30, 0xFE30, 0xFE45, 0xFE46, 0xFE49, 0xFE4C, 0xFE50, 0xFE52, | |
6999 0xFE54, 0xFE57, 0xFE5F, 0xFE61, 0xFE68, 0xFE68, 0xFE6A, 0xFE6B, | |
7000 0xFF01, 0xFF03, 0xFF05, 0xFF07, 0xFF0A, 0xFF0A, 0xFF0C, 0xFF0C, | |
7001 0xFF0E, 0xFF0F, 0xFF1A, 0xFF1B, 0xFF1F, 0xFF20, 0xFF3C, 0xFF3C, | |
7002 0xFF61, 0xFF61, 0xFF64, 0xFF65, 0x10100, 0x10102, 0x1039F, 0x1039F, | |
7003 0x103D0, 0x103D0, 0x1056F, 0x1056F, 0x10857, 0x10857, 0x1091F, 0x1091F, | |
7004 0x1093F, 0x1093F, 0x10A50, 0x10A58, 0x10A7F, 0x10A7F, 0x10AF0, 0x10AF6, | |
7005 0x10B39, 0x10B3F, 0x10B99, 0x10B9C, 0x10F55, 0x10F59, 0x10F86, 0x10F89, | |
7006 0x11047, 0x1104D, 0x110BB, 0x110BC, 0x110BE, 0x110C1, 0x11140, 0x11143, | |
7007 0x11174, 0x11175, 0x111C5, 0x111C8, 0x111CD, 0x111CD, 0x111DB, 0x111DB, | |
7008 0x111DD, 0x111DF, 0x11238, 0x1123D, 0x112A9, 0x112A9, 0x1144B, 0x1144F, | |
7009 0x1145A, 0x1145B, 0x1145D, 0x1145D, 0x114C6, 0x114C6, 0x115C1, 0x115D7, | |
7010 0x11641, 0x11643, 0x11660, 0x1166C, 0x116B9, 0x116B9, 0x1173C, 0x1173E, | |
7011 0x1183B, 0x1183B, 0x11944, 0x11946, 0x119E2, 0x119E2, 0x11A3F, 0x11A46, | |
7012 0x11A9A, 0x11A9C, 0x11A9E, 0x11AA2, 0x11B00, 0x11B09, 0x11C41, 0x11C45, | |
7013 0x11C70, 0x11C71, 0x11EF7, 0x11EF8, 0x11F43, 0x11F4F, 0x11FFF, 0x11FFF, | |
7014 0x12470, 0x12474, 0x12FF1, 0x12FF2, 0x16A6E, 0x16A6F, 0x16AF5, 0x16AF5, | |
7015 0x16B37, 0x16B3B, 0x16B44, 0x16B44, 0x16E97, 0x16E9A, 0x16FE2, 0x16FE2, | |
7016 0x1BC9F, 0x1BC9F, 0x1DA87, 0x1DA8B, 0x1E95E, 0x1E95F, | |
7017 // #33 (3620+79): gc=Open_Punctuation:Ps | |
7018 0x0028, 0x0028, 0x005B, 0x005B, 0x007B, 0x007B, 0x0F3A, 0x0F3A, | |
7019 0x0F3C, 0x0F3C, 0x169B, 0x169B, 0x201A, 0x201A, 0x201E, 0x201E, | |
7020 0x2045, 0x2045, 0x207D, 0x207D, 0x208D, 0x208D, 0x2308, 0x2308, | |
7021 0x230A, 0x230A, 0x2329, 0x2329, 0x2768, 0x2768, 0x276A, 0x276A, | |
7022 0x276C, 0x276C, 0x276E, 0x276E, 0x2770, 0x2770, 0x2772, 0x2772, | |
7023 0x2774, 0x2774, 0x27C5, 0x27C5, 0x27E6, 0x27E6, 0x27E8, 0x27E8, | |
7024 0x27EA, 0x27EA, 0x27EC, 0x27EC, 0x27EE, 0x27EE, 0x2983, 0x2983, | |
7025 0x2985, 0x2985, 0x2987, 0x2987, 0x2989, 0x2989, 0x298B, 0x298B, | |
7026 0x298D, 0x298D, 0x298F, 0x298F, 0x2991, 0x2991, 0x2993, 0x2993, | |
7027 0x2995, 0x2995, 0x2997, 0x2997, 0x29D8, 0x29D8, 0x29DA, 0x29DA, | |
7028 0x29FC, 0x29FC, 0x2E22, 0x2E22, 0x2E24, 0x2E24, 0x2E26, 0x2E26, | |
7029 0x2E28, 0x2E28, 0x2E42, 0x2E42, 0x2E55, 0x2E55, 0x2E57, 0x2E57, | |
7030 0x2E59, 0x2E59, 0x2E5B, 0x2E5B, 0x3008, 0x3008, 0x300A, 0x300A, | |
7031 0x300C, 0x300C, 0x300E, 0x300E, 0x3010, 0x3010, 0x3014, 0x3014, | |
7032 0x3016, 0x3016, 0x3018, 0x3018, 0x301A, 0x301A, 0x301D, 0x301D, | |
7033 0xFD3F, 0xFD3F, 0xFE17, 0xFE17, 0xFE35, 0xFE35, 0xFE37, 0xFE37, | |
7034 0xFE39, 0xFE39, 0xFE3B, 0xFE3B, 0xFE3D, 0xFE3D, 0xFE3F, 0xFE3F, | |
7035 0xFE41, 0xFE41, 0xFE43, 0xFE43, 0xFE47, 0xFE47, 0xFE59, 0xFE59, | |
7036 0xFE5B, 0xFE5B, 0xFE5D, 0xFE5D, 0xFF08, 0xFF08, 0xFF3B, 0xFF3B, | |
7037 0xFF5B, 0xFF5B, 0xFF5F, 0xFF5F, 0xFF62, 0xFF62, | |
7038 // #34 (3699+301): gc=Symbol:S | |
7039 // Sc:21 + Sk:31 + Sm:64 + So:185 | |
7040 // #35 (3699+21): gc=Currency_Symbol:Sc | |
7041 0x0024, 0x0024, 0x00A2, 0x00A5, 0x058F, 0x058F, 0x060B, 0x060B, | |
7042 0x07FE, 0x07FF, 0x09F2, 0x09F3, 0x09FB, 0x09FB, 0x0AF1, 0x0AF1, | |
7043 0x0BF9, 0x0BF9, 0x0E3F, 0x0E3F, 0x17DB, 0x17DB, 0x20A0, 0x20C0, | |
7044 0xA838, 0xA838, 0xFDFC, 0xFDFC, 0xFE69, 0xFE69, 0xFF04, 0xFF04, | |
7045 0xFFE0, 0xFFE1, 0xFFE5, 0xFFE6, 0x11FDD, 0x11FE0, 0x1E2FF, 0x1E2FF, | |
7046 0x1ECB0, 0x1ECB0, | |
7047 // #36 (3720+31): gc=Modifier_Symbol:Sk | |
7048 0x005E, 0x005E, 0x0060, 0x0060, 0x00A8, 0x00A8, 0x00AF, 0x00AF, | |
7049 0x00B4, 0x00B4, 0x00B8, 0x00B8, 0x02C2, 0x02C5, 0x02D2, 0x02DF, | |
7050 0x02E5, 0x02EB, 0x02ED, 0x02ED, 0x02EF, 0x02FF, 0x0375, 0x0375, | |
7051 0x0384, 0x0385, 0x0888, 0x0888, 0x1FBD, 0x1FBD, 0x1FBF, 0x1FC1, | |
7052 0x1FCD, 0x1FCF, 0x1FDD, 0x1FDF, 0x1FED, 0x1FEF, 0x1FFD, 0x1FFE, | |
7053 0x309B, 0x309C, 0xA700, 0xA716, 0xA720, 0xA721, 0xA789, 0xA78A, | |
7054 0xAB5B, 0xAB5B, 0xAB6A, 0xAB6B, 0xFBB2, 0xFBC2, 0xFF3E, 0xFF3E, | |
7055 0xFF40, 0xFF40, 0xFFE3, 0xFFE3, 0x1F3FB, 0x1F3FF, | |
7056 // #37 (3751+64): gc=Math_Symbol:Sm | |
7057 0x002B, 0x002B, 0x003C, 0x003E, 0x007C, 0x007C, 0x007E, 0x007E, | |
7058 0x00AC, 0x00AC, 0x00B1, 0x00B1, 0x00D7, 0x00D7, 0x00F7, 0x00F7, | |
7059 0x03F6, 0x03F6, 0x0606, 0x0608, 0x2044, 0x2044, 0x2052, 0x2052, | |
7060 0x207A, 0x207C, 0x208A, 0x208C, 0x2118, 0x2118, 0x2140, 0x2144, | |
7061 0x214B, 0x214B, 0x2190, 0x2194, 0x219A, 0x219B, 0x21A0, 0x21A0, | |
7062 0x21A3, 0x21A3, 0x21A6, 0x21A6, 0x21AE, 0x21AE, 0x21CE, 0x21CF, | |
7063 0x21D2, 0x21D2, 0x21D4, 0x21D4, 0x21F4, 0x22FF, 0x2320, 0x2321, | |
7064 0x237C, 0x237C, 0x239B, 0x23B3, 0x23DC, 0x23E1, 0x25B7, 0x25B7, | |
7065 0x25C1, 0x25C1, 0x25F8, 0x25FF, 0x266F, 0x266F, 0x27C0, 0x27C4, | |
7066 0x27C7, 0x27E5, 0x27F0, 0x27FF, 0x2900, 0x2982, 0x2999, 0x29D7, | |
7067 0x29DC, 0x29FB, 0x29FE, 0x2AFF, 0x2B30, 0x2B44, 0x2B47, 0x2B4C, | |
7068 0xFB29, 0xFB29, 0xFE62, 0xFE62, 0xFE64, 0xFE66, 0xFF0B, 0xFF0B, | |
7069 0xFF1C, 0xFF1E, 0xFF5C, 0xFF5C, 0xFF5E, 0xFF5E, 0xFFE2, 0xFFE2, | |
7070 0xFFE9, 0xFFEC, 0x1D6C1, 0x1D6C1, 0x1D6DB, 0x1D6DB, 0x1D6FB, 0x1D6FB, | |
7071 0x1D715, 0x1D715, 0x1D735, 0x1D735, 0x1D74F, 0x1D74F, 0x1D76F, 0x1D76F, | |
7072 0x1D789, 0x1D789, 0x1D7A9, 0x1D7A9, 0x1D7C3, 0x1D7C3, 0x1EEF0, 0x1EEF1, | |
7073 // #38 (3815+185): gc=Other_Symbol:So | |
7074 0x00A6, 0x00A6, 0x00A9, 0x00A9, 0x00AE, 0x00AE, 0x00B0, 0x00B0, | |
7075 0x0482, 0x0482, 0x058D, 0x058E, 0x060E, 0x060F, 0x06DE, 0x06DE, | |
7076 0x06E9, 0x06E9, 0x06FD, 0x06FE, 0x07F6, 0x07F6, 0x09FA, 0x09FA, | |
7077 0x0B70, 0x0B70, 0x0BF3, 0x0BF8, 0x0BFA, 0x0BFA, 0x0C7F, 0x0C7F, | |
7078 0x0D4F, 0x0D4F, 0x0D79, 0x0D79, 0x0F01, 0x0F03, 0x0F13, 0x0F13, | |
7079 0x0F15, 0x0F17, 0x0F1A, 0x0F1F, 0x0F34, 0x0F34, 0x0F36, 0x0F36, | |
7080 0x0F38, 0x0F38, 0x0FBE, 0x0FC5, 0x0FC7, 0x0FCC, 0x0FCE, 0x0FCF, | |
7081 0x0FD5, 0x0FD8, 0x109E, 0x109F, 0x1390, 0x1399, 0x166D, 0x166D, | |
7082 0x1940, 0x1940, 0x19DE, 0x19FF, 0x1B61, 0x1B6A, 0x1B74, 0x1B7C, | |
7083 0x2100, 0x2101, 0x2103, 0x2106, 0x2108, 0x2109, 0x2114, 0x2114, | |
7084 0x2116, 0x2117, 0x211E, 0x2123, 0x2125, 0x2125, 0x2127, 0x2127, | |
7085 0x2129, 0x2129, 0x212E, 0x212E, 0x213A, 0x213B, 0x214A, 0x214A, | |
7086 0x214C, 0x214D, 0x214F, 0x214F, 0x218A, 0x218B, 0x2195, 0x2199, | |
7087 0x219C, 0x219F, 0x21A1, 0x21A2, 0x21A4, 0x21A5, 0x21A7, 0x21AD, | |
7088 0x21AF, 0x21CD, 0x21D0, 0x21D1, 0x21D3, 0x21D3, 0x21D5, 0x21F3, | |
7089 0x2300, 0x2307, 0x230C, 0x231F, 0x2322, 0x2328, 0x232B, 0x237B, | |
7090 0x237D, 0x239A, 0x23B4, 0x23DB, 0x23E2, 0x2426, 0x2440, 0x244A, | |
7091 0x249C, 0x24E9, 0x2500, 0x25B6, 0x25B8, 0x25C0, 0x25C2, 0x25F7, | |
7092 0x2600, 0x266E, 0x2670, 0x2767, 0x2794, 0x27BF, 0x2800, 0x28FF, | |
7093 0x2B00, 0x2B2F, 0x2B45, 0x2B46, 0x2B4D, 0x2B73, 0x2B76, 0x2B95, | |
7094 0x2B97, 0x2BFF, 0x2CE5, 0x2CEA, 0x2E50, 0x2E51, 0x2E80, 0x2E99, | |
7095 0x2E9B, 0x2EF3, 0x2F00, 0x2FD5, 0x2FF0, 0x2FFF, 0x3004, 0x3004, | |
7096 0x3012, 0x3013, 0x3020, 0x3020, 0x3036, 0x3037, 0x303E, 0x303F, | |
7097 0x3190, 0x3191, 0x3196, 0x319F, 0x31C0, 0x31E3, 0x31EF, 0x31EF, | |
7098 0x3200, 0x321E, 0x322A, 0x3247, 0x3250, 0x3250, 0x3260, 0x327F, | |
7099 0x328A, 0x32B0, 0x32C0, 0x33FF, 0x4DC0, 0x4DFF, 0xA490, 0xA4C6, | |
7100 0xA828, 0xA82B, 0xA836, 0xA837, 0xA839, 0xA839, 0xAA77, 0xAA79, | |
7101 0xFD40, 0xFD4F, 0xFDCF, 0xFDCF, 0xFDFD, 0xFDFF, 0xFFE4, 0xFFE4, | |
7102 0xFFE8, 0xFFE8, 0xFFED, 0xFFEE, 0xFFFC, 0xFFFD, 0x10137, 0x1013F, | |
7103 0x10179, 0x10189, 0x1018C, 0x1018E, 0x10190, 0x1019C, 0x101A0, 0x101A0, | |
7104 0x101D0, 0x101FC, 0x10877, 0x10878, 0x10AC8, 0x10AC8, 0x1173F, 0x1173F, | |
7105 0x11FD5, 0x11FDC, 0x11FE1, 0x11FF1, 0x16B3C, 0x16B3F, 0x16B45, 0x16B45, | |
7106 0x1BC9C, 0x1BC9C, 0x1CF50, 0x1CFC3, 0x1D000, 0x1D0F5, 0x1D100, 0x1D126, | |
7107 0x1D129, 0x1D164, 0x1D16A, 0x1D16C, 0x1D183, 0x1D184, 0x1D18C, 0x1D1A9, | |
7108 0x1D1AE, 0x1D1EA, 0x1D200, 0x1D241, 0x1D245, 0x1D245, 0x1D300, 0x1D356, | |
7109 0x1D800, 0x1D9FF, 0x1DA37, 0x1DA3A, 0x1DA6D, 0x1DA74, 0x1DA76, 0x1DA83, | |
7110 0x1DA85, 0x1DA86, 0x1E14F, 0x1E14F, 0x1ECAC, 0x1ECAC, 0x1ED2E, 0x1ED2E, | |
7111 0x1F000, 0x1F02B, 0x1F030, 0x1F093, 0x1F0A0, 0x1F0AE, 0x1F0B1, 0x1F0BF, | |
7112 0x1F0C1, 0x1F0CF, 0x1F0D1, 0x1F0F5, 0x1F10D, 0x1F1AD, 0x1F1E6, 0x1F202, | |
7113 0x1F210, 0x1F23B, 0x1F240, 0x1F248, 0x1F250, 0x1F251, 0x1F260, 0x1F265, | |
7114 0x1F300, 0x1F3FA, 0x1F400, 0x1F6D7, 0x1F6DC, 0x1F6EC, 0x1F6F0, 0x1F6FC, | |
7115 0x1F700, 0x1F776, 0x1F77B, 0x1F7D9, 0x1F7E0, 0x1F7EB, 0x1F7F0, 0x1F7F0, | |
7116 0x1F800, 0x1F80B, 0x1F810, 0x1F847, 0x1F850, 0x1F859, 0x1F860, 0x1F887, | |
7117 0x1F890, 0x1F8AD, 0x1F8B0, 0x1F8B1, 0x1F900, 0x1FA53, 0x1FA60, 0x1FA6D, | |
7118 0x1FA70, 0x1FA7C, 0x1FA80, 0x1FA88, 0x1FA90, 0x1FABD, 0x1FABF, 0x1FAC5, | |
7119 0x1FACE, 0x1FADB, 0x1FAE0, 0x1FAE8, 0x1FAF0, 0x1FAF8, 0x1FB00, 0x1FB92, | |
7120 0x1FB94, 0x1FBCA, | |
7121 // #39 (4000+9): gc=Separator:Z | |
7122 // Zl:1 + Zp:1 + Zs:7 | |
7123 // #40 (4000+1): gc=Line_Separator:Zl | |
7124 0x2028, 0x2028, | |
7125 // #41 (4001+1): gc=Paragraph_Separator:Zp | |
7126 0x2029, 0x2029, | |
7127 // #42 (4002+7): gc=Space_Separator:Zs | |
7128 0x0020, 0x0020, 0x00A0, 0x00A0, 0x1680, 0x1680, 0x2000, 0x200A, | |
7129 0x202F, 0x202F, 0x205F, 0x205F, 0x3000, 0x3000, | |
7130 // #43 (4009+1): bp=ASCII | |
7131 0x0000, 0x007F, | |
7132 // #44 (4010+3): bp=ASCII_Hex_Digit:AHex | |
7133 0x0030, 0x0039, 0x0041, 0x0046, 0x0061, 0x0066, | |
7134 // #45 (4013+733): bp=Alphabetic:Alpha | |
7135 0x0041, 0x005A, 0x0061, 0x007A, 0x00AA, 0x00AA, 0x00B5, 0x00B5, | |
7136 0x00BA, 0x00BA, 0x00C0, 0x00D6, 0x00D8, 0x00F6, 0x00F8, 0x02C1, | |
7137 0x02C6, 0x02D1, 0x02E0, 0x02E4, 0x02EC, 0x02EC, 0x02EE, 0x02EE, | |
7138 0x0345, 0x0345, 0x0370, 0x0374, 0x0376, 0x0377, 0x037A, 0x037D, | |
7139 0x037F, 0x037F, 0x0386, 0x0386, 0x0388, 0x038A, 0x038C, 0x038C, | |
7140 0x038E, 0x03A1, 0x03A3, 0x03F5, 0x03F7, 0x0481, 0x048A, 0x052F, | |
7141 0x0531, 0x0556, 0x0559, 0x0559, 0x0560, 0x0588, 0x05B0, 0x05BD, | |
7142 0x05BF, 0x05BF, 0x05C1, 0x05C2, 0x05C4, 0x05C5, 0x05C7, 0x05C7, | |
7143 0x05D0, 0x05EA, 0x05EF, 0x05F2, 0x0610, 0x061A, 0x0620, 0x0657, | |
7144 0x0659, 0x065F, 0x066E, 0x06D3, 0x06D5, 0x06DC, 0x06E1, 0x06E8, | |
7145 0x06ED, 0x06EF, 0x06FA, 0x06FC, 0x06FF, 0x06FF, 0x0710, 0x073F, | |
7146 0x074D, 0x07B1, 0x07CA, 0x07EA, 0x07F4, 0x07F5, 0x07FA, 0x07FA, | |
7147 0x0800, 0x0817, 0x081A, 0x082C, 0x0840, 0x0858, 0x0860, 0x086A, | |
7148 0x0870, 0x0887, 0x0889, 0x088E, 0x08A0, 0x08C9, 0x08D4, 0x08DF, | |
7149 0x08E3, 0x08E9, 0x08F0, 0x093B, 0x093D, 0x094C, 0x094E, 0x0950, | |
7150 0x0955, 0x0963, 0x0971, 0x0983, 0x0985, 0x098C, 0x098F, 0x0990, | |
7151 0x0993, 0x09A8, 0x09AA, 0x09B0, 0x09B2, 0x09B2, 0x09B6, 0x09B9, | |
7152 0x09BD, 0x09C4, 0x09C7, 0x09C8, 0x09CB, 0x09CC, 0x09CE, 0x09CE, | |
7153 0x09D7, 0x09D7, 0x09DC, 0x09DD, 0x09DF, 0x09E3, 0x09F0, 0x09F1, | |
7154 0x09FC, 0x09FC, 0x0A01, 0x0A03, 0x0A05, 0x0A0A, 0x0A0F, 0x0A10, | |
7155 0x0A13, 0x0A28, 0x0A2A, 0x0A30, 0x0A32, 0x0A33, 0x0A35, 0x0A36, | |
7156 0x0A38, 0x0A39, 0x0A3E, 0x0A42, 0x0A47, 0x0A48, 0x0A4B, 0x0A4C, | |
7157 0x0A51, 0x0A51, 0x0A59, 0x0A5C, 0x0A5E, 0x0A5E, 0x0A70, 0x0A75, | |
7158 0x0A81, 0x0A83, 0x0A85, 0x0A8D, 0x0A8F, 0x0A91, 0x0A93, 0x0AA8, | |
7159 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3, 0x0AB5, 0x0AB9, 0x0ABD, 0x0AC5, | |
7160 0x0AC7, 0x0AC9, 0x0ACB, 0x0ACC, 0x0AD0, 0x0AD0, 0x0AE0, 0x0AE3, | |
7161 0x0AF9, 0x0AFC, 0x0B01, 0x0B03, 0x0B05, 0x0B0C, 0x0B0F, 0x0B10, | |
7162 0x0B13, 0x0B28, 0x0B2A, 0x0B30, 0x0B32, 0x0B33, 0x0B35, 0x0B39, | |
7163 0x0B3D, 0x0B44, 0x0B47, 0x0B48, 0x0B4B, 0x0B4C, 0x0B56, 0x0B57, | |
7164 0x0B5C, 0x0B5D, 0x0B5F, 0x0B63, 0x0B71, 0x0B71, 0x0B82, 0x0B83, | |
7165 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, 0x0B92, 0x0B95, 0x0B99, 0x0B9A, | |
7166 0x0B9C, 0x0B9C, 0x0B9E, 0x0B9F, 0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA, | |
7167 0x0BAE, 0x0BB9, 0x0BBE, 0x0BC2, 0x0BC6, 0x0BC8, 0x0BCA, 0x0BCC, | |
7168 0x0BD0, 0x0BD0, 0x0BD7, 0x0BD7, 0x0C00, 0x0C0C, 0x0C0E, 0x0C10, | |
7169 0x0C12, 0x0C28, 0x0C2A, 0x0C39, 0x0C3D, 0x0C44, 0x0C46, 0x0C48, | |
7170 0x0C4A, 0x0C4C, 0x0C55, 0x0C56, 0x0C58, 0x0C5A, 0x0C5D, 0x0C5D, | |
7171 0x0C60, 0x0C63, 0x0C80, 0x0C83, 0x0C85, 0x0C8C, 0x0C8E, 0x0C90, | |
7172 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3, 0x0CB5, 0x0CB9, 0x0CBD, 0x0CC4, | |
7173 0x0CC6, 0x0CC8, 0x0CCA, 0x0CCC, 0x0CD5, 0x0CD6, 0x0CDD, 0x0CDE, | |
7174 0x0CE0, 0x0CE3, 0x0CF1, 0x0CF3, 0x0D00, 0x0D0C, 0x0D0E, 0x0D10, | |
7175 0x0D12, 0x0D3A, 0x0D3D, 0x0D44, 0x0D46, 0x0D48, 0x0D4A, 0x0D4C, | |
7176 0x0D4E, 0x0D4E, 0x0D54, 0x0D57, 0x0D5F, 0x0D63, 0x0D7A, 0x0D7F, | |
7177 0x0D81, 0x0D83, 0x0D85, 0x0D96, 0x0D9A, 0x0DB1, 0x0DB3, 0x0DBB, | |
7178 0x0DBD, 0x0DBD, 0x0DC0, 0x0DC6, 0x0DCF, 0x0DD4, 0x0DD6, 0x0DD6, | |
7179 0x0DD8, 0x0DDF, 0x0DF2, 0x0DF3, 0x0E01, 0x0E3A, 0x0E40, 0x0E46, | |
7180 0x0E4D, 0x0E4D, 0x0E81, 0x0E82, 0x0E84, 0x0E84, 0x0E86, 0x0E8A, | |
7181 0x0E8C, 0x0EA3, 0x0EA5, 0x0EA5, 0x0EA7, 0x0EB9, 0x0EBB, 0x0EBD, | |
7182 0x0EC0, 0x0EC4, 0x0EC6, 0x0EC6, 0x0ECD, 0x0ECD, 0x0EDC, 0x0EDF, | |
7183 0x0F00, 0x0F00, 0x0F40, 0x0F47, 0x0F49, 0x0F6C, 0x0F71, 0x0F83, | |
7184 0x0F88, 0x0F97, 0x0F99, 0x0FBC, 0x1000, 0x1036, 0x1038, 0x1038, | |
7185 0x103B, 0x103F, 0x1050, 0x108F, 0x109A, 0x109D, 0x10A0, 0x10C5, | |
7186 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x10D0, 0x10FA, 0x10FC, 0x1248, | |
7187 0x124A, 0x124D, 0x1250, 0x1256, 0x1258, 0x1258, 0x125A, 0x125D, | |
7188 0x1260, 0x1288, 0x128A, 0x128D, 0x1290, 0x12B0, 0x12B2, 0x12B5, | |
7189 0x12B8, 0x12BE, 0x12C0, 0x12C0, 0x12C2, 0x12C5, 0x12C8, 0x12D6, | |
7190 0x12D8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135A, 0x1380, 0x138F, | |
7191 0x13A0, 0x13F5, 0x13F8, 0x13FD, 0x1401, 0x166C, 0x166F, 0x167F, | |
7192 0x1681, 0x169A, 0x16A0, 0x16EA, 0x16EE, 0x16F8, 0x1700, 0x1713, | |
7193 0x171F, 0x1733, 0x1740, 0x1753, 0x1760, 0x176C, 0x176E, 0x1770, | |
7194 0x1772, 0x1773, 0x1780, 0x17B3, 0x17B6, 0x17C8, 0x17D7, 0x17D7, | |
7195 0x17DC, 0x17DC, 0x1820, 0x1878, 0x1880, 0x18AA, 0x18B0, 0x18F5, | |
7196 0x1900, 0x191E, 0x1920, 0x192B, 0x1930, 0x1938, 0x1950, 0x196D, | |
7197 0x1970, 0x1974, 0x1980, 0x19AB, 0x19B0, 0x19C9, 0x1A00, 0x1A1B, | |
7198 0x1A20, 0x1A5E, 0x1A61, 0x1A74, 0x1AA7, 0x1AA7, 0x1ABF, 0x1AC0, | |
7199 0x1ACC, 0x1ACE, 0x1B00, 0x1B33, 0x1B35, 0x1B43, 0x1B45, 0x1B4C, | |
7200 0x1B80, 0x1BA9, 0x1BAC, 0x1BAF, 0x1BBA, 0x1BE5, 0x1BE7, 0x1BF1, | |
7201 0x1C00, 0x1C36, 0x1C4D, 0x1C4F, 0x1C5A, 0x1C7D, 0x1C80, 0x1C88, | |
7202 0x1C90, 0x1CBA, 0x1CBD, 0x1CBF, 0x1CE9, 0x1CEC, 0x1CEE, 0x1CF3, | |
7203 0x1CF5, 0x1CF6, 0x1CFA, 0x1CFA, 0x1D00, 0x1DBF, 0x1DE7, 0x1DF4, | |
7204 0x1E00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, 0x1F48, 0x1F4D, | |
7205 0x1F50, 0x1F57, 0x1F59, 0x1F59, 0x1F5B, 0x1F5B, 0x1F5D, 0x1F5D, | |
7206 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FBC, 0x1FBE, 0x1FBE, | |
7207 0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, 0x1FD0, 0x1FD3, 0x1FD6, 0x1FDB, | |
7208 0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFC, 0x2071, 0x2071, | |
7209 0x207F, 0x207F, 0x2090, 0x209C, 0x2102, 0x2102, 0x2107, 0x2107, | |
7210 0x210A, 0x2113, 0x2115, 0x2115, 0x2119, 0x211D, 0x2124, 0x2124, | |
7211 0x2126, 0x2126, 0x2128, 0x2128, 0x212A, 0x212D, 0x212F, 0x2139, | |
7212 0x213C, 0x213F, 0x2145, 0x2149, 0x214E, 0x214E, 0x2160, 0x2188, | |
7213 0x24B6, 0x24E9, 0x2C00, 0x2CE4, 0x2CEB, 0x2CEE, 0x2CF2, 0x2CF3, | |
7214 0x2D00, 0x2D25, 0x2D27, 0x2D27, 0x2D2D, 0x2D2D, 0x2D30, 0x2D67, | |
7215 0x2D6F, 0x2D6F, 0x2D80, 0x2D96, 0x2DA0, 0x2DA6, 0x2DA8, 0x2DAE, | |
7216 0x2DB0, 0x2DB6, 0x2DB8, 0x2DBE, 0x2DC0, 0x2DC6, 0x2DC8, 0x2DCE, | |
7217 0x2DD0, 0x2DD6, 0x2DD8, 0x2DDE, 0x2DE0, 0x2DFF, 0x2E2F, 0x2E2F, | |
7218 0x3005, 0x3007, 0x3021, 0x3029, 0x3031, 0x3035, 0x3038, 0x303C, | |
7219 0x3041, 0x3096, 0x309D, 0x309F, 0x30A1, 0x30FA, 0x30FC, 0x30FF, | |
7220 0x3105, 0x312F, 0x3131, 0x318E, 0x31A0, 0x31BF, 0x31F0, 0x31FF, | |
7221 0x3400, 0x4DBF, 0x4E00, 0xA48C, 0xA4D0, 0xA4FD, 0xA500, 0xA60C, | |
7222 0xA610, 0xA61F, 0xA62A, 0xA62B, 0xA640, 0xA66E, 0xA674, 0xA67B, | |
7223 0xA67F, 0xA6EF, 0xA717, 0xA71F, 0xA722, 0xA788, 0xA78B, 0xA7CA, | |
7224 0xA7D0, 0xA7D1, 0xA7D3, 0xA7D3, 0xA7D5, 0xA7D9, 0xA7F2, 0xA805, | |
7225 0xA807, 0xA827, 0xA840, 0xA873, 0xA880, 0xA8C3, 0xA8C5, 0xA8C5, | |
7226 0xA8F2, 0xA8F7, 0xA8FB, 0xA8FB, 0xA8FD, 0xA8FF, 0xA90A, 0xA92A, | |
7227 0xA930, 0xA952, 0xA960, 0xA97C, 0xA980, 0xA9B2, 0xA9B4, 0xA9BF, | |
7228 0xA9CF, 0xA9CF, 0xA9E0, 0xA9EF, 0xA9FA, 0xA9FE, 0xAA00, 0xAA36, | |
7229 0xAA40, 0xAA4D, 0xAA60, 0xAA76, 0xAA7A, 0xAABE, 0xAAC0, 0xAAC0, | |
7230 0xAAC2, 0xAAC2, 0xAADB, 0xAADD, 0xAAE0, 0xAAEF, 0xAAF2, 0xAAF5, | |
7231 0xAB01, 0xAB06, 0xAB09, 0xAB0E, 0xAB11, 0xAB16, 0xAB20, 0xAB26, | |
7232 0xAB28, 0xAB2E, 0xAB30, 0xAB5A, 0xAB5C, 0xAB69, 0xAB70, 0xABEA, | |
7233 0xAC00, 0xD7A3, 0xD7B0, 0xD7C6, 0xD7CB, 0xD7FB, 0xF900, 0xFA6D, | |
7234 0xFA70, 0xFAD9, 0xFB00, 0xFB06, 0xFB13, 0xFB17, 0xFB1D, 0xFB28, | |
7235 0xFB2A, 0xFB36, 0xFB38, 0xFB3C, 0xFB3E, 0xFB3E, 0xFB40, 0xFB41, | |
7236 0xFB43, 0xFB44, 0xFB46, 0xFBB1, 0xFBD3, 0xFD3D, 0xFD50, 0xFD8F, | |
7237 0xFD92, 0xFDC7, 0xFDF0, 0xFDFB, 0xFE70, 0xFE74, 0xFE76, 0xFEFC, | |
7238 0xFF21, 0xFF3A, 0xFF41, 0xFF5A, 0xFF66, 0xFFBE, 0xFFC2, 0xFFC7, | |
7239 0xFFCA, 0xFFCF, 0xFFD2, 0xFFD7, 0xFFDA, 0xFFDC, 0x10000, 0x1000B, | |
7240 0x1000D, 0x10026, 0x10028, 0x1003A, 0x1003C, 0x1003D, 0x1003F, 0x1004D, | |
7241 0x10050, 0x1005D, 0x10080, 0x100FA, 0x10140, 0x10174, 0x10280, 0x1029C, | |
7242 0x102A0, 0x102D0, 0x10300, 0x1031F, 0x1032D, 0x1034A, 0x10350, 0x1037A, | |
7243 0x10380, 0x1039D, 0x103A0, 0x103C3, 0x103C8, 0x103CF, 0x103D1, 0x103D5, | |
7244 0x10400, 0x1049D, 0x104B0, 0x104D3, 0x104D8, 0x104FB, 0x10500, 0x10527, | |
7245 0x10530, 0x10563, 0x10570, 0x1057A, 0x1057C, 0x1058A, 0x1058C, 0x10592, | |
7246 0x10594, 0x10595, 0x10597, 0x105A1, 0x105A3, 0x105B1, 0x105B3, 0x105B9, | |
7247 0x105BB, 0x105BC, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, | |
7248 0x10780, 0x10785, 0x10787, 0x107B0, 0x107B2, 0x107BA, 0x10800, 0x10805, | |
7249 0x10808, 0x10808, 0x1080A, 0x10835, 0x10837, 0x10838, 0x1083C, 0x1083C, | |
7250 0x1083F, 0x10855, 0x10860, 0x10876, 0x10880, 0x1089E, 0x108E0, 0x108F2, | |
7251 0x108F4, 0x108F5, 0x10900, 0x10915, 0x10920, 0x10939, 0x10980, 0x109B7, | |
7252 0x109BE, 0x109BF, 0x10A00, 0x10A03, 0x10A05, 0x10A06, 0x10A0C, 0x10A13, | |
7253 0x10A15, 0x10A17, 0x10A19, 0x10A35, 0x10A60, 0x10A7C, 0x10A80, 0x10A9C, | |
7254 0x10AC0, 0x10AC7, 0x10AC9, 0x10AE4, 0x10B00, 0x10B35, 0x10B40, 0x10B55, | |
7255 0x10B60, 0x10B72, 0x10B80, 0x10B91, 0x10C00, 0x10C48, 0x10C80, 0x10CB2, | |
7256 0x10CC0, 0x10CF2, 0x10D00, 0x10D27, 0x10E80, 0x10EA9, 0x10EAB, 0x10EAC, | |
7257 0x10EB0, 0x10EB1, 0x10F00, 0x10F1C, 0x10F27, 0x10F27, 0x10F30, 0x10F45, | |
7258 0x10F70, 0x10F81, 0x10FB0, 0x10FC4, 0x10FE0, 0x10FF6, 0x11000, 0x11045, | |
7259 0x11071, 0x11075, 0x11080, 0x110B8, 0x110C2, 0x110C2, 0x110D0, 0x110E8, | |
7260 0x11100, 0x11132, 0x11144, 0x11147, 0x11150, 0x11172, 0x11176, 0x11176, | |
7261 0x11180, 0x111BF, 0x111C1, 0x111C4, 0x111CE, 0x111CF, 0x111DA, 0x111DA, | |
7262 0x111DC, 0x111DC, 0x11200, 0x11211, 0x11213, 0x11234, 0x11237, 0x11237, | |
7263 0x1123E, 0x11241, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128A, 0x1128D, | |
7264 0x1128F, 0x1129D, 0x1129F, 0x112A8, 0x112B0, 0x112E8, 0x11300, 0x11303, | |
7265 0x11305, 0x1130C, 0x1130F, 0x11310, 0x11313, 0x11328, 0x1132A, 0x11330, | |
7266 0x11332, 0x11333, 0x11335, 0x11339, 0x1133D, 0x11344, 0x11347, 0x11348, | |
7267 0x1134B, 0x1134C, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135D, 0x11363, | |
7268 0x11400, 0x11441, 0x11443, 0x11445, 0x11447, 0x1144A, 0x1145F, 0x11461, | |
7269 0x11480, 0x114C1, 0x114C4, 0x114C5, 0x114C7, 0x114C7, 0x11580, 0x115B5, | |
7270 0x115B8, 0x115BE, 0x115D8, 0x115DD, 0x11600, 0x1163E, 0x11640, 0x11640, | |
7271 0x11644, 0x11644, 0x11680, 0x116B5, 0x116B8, 0x116B8, 0x11700, 0x1171A, | |
7272 0x1171D, 0x1172A, 0x11740, 0x11746, 0x11800, 0x11838, 0x118A0, 0x118DF, | |
7273 0x118FF, 0x11906, 0x11909, 0x11909, 0x1190C, 0x11913, 0x11915, 0x11916, | |
7274 0x11918, 0x11935, 0x11937, 0x11938, 0x1193B, 0x1193C, 0x1193F, 0x11942, | |
7275 0x119A0, 0x119A7, 0x119AA, 0x119D7, 0x119DA, 0x119DF, 0x119E1, 0x119E1, | |
7276 0x119E3, 0x119E4, 0x11A00, 0x11A32, 0x11A35, 0x11A3E, 0x11A50, 0x11A97, | |
7277 0x11A9D, 0x11A9D, 0x11AB0, 0x11AF8, 0x11C00, 0x11C08, 0x11C0A, 0x11C36, | |
7278 0x11C38, 0x11C3E, 0x11C40, 0x11C40, 0x11C72, 0x11C8F, 0x11C92, 0x11CA7, | |
7279 0x11CA9, 0x11CB6, 0x11D00, 0x11D06, 0x11D08, 0x11D09, 0x11D0B, 0x11D36, | |
7280 0x11D3A, 0x11D3A, 0x11D3C, 0x11D3D, 0x11D3F, 0x11D41, 0x11D43, 0x11D43, | |
7281 0x11D46, 0x11D47, 0x11D60, 0x11D65, 0x11D67, 0x11D68, 0x11D6A, 0x11D8E, | |
7282 0x11D90, 0x11D91, 0x11D93, 0x11D96, 0x11D98, 0x11D98, 0x11EE0, 0x11EF6, | |
7283 0x11F00, 0x11F10, 0x11F12, 0x11F3A, 0x11F3E, 0x11F40, 0x11FB0, 0x11FB0, | |
7284 0x12000, 0x12399, 0x12400, 0x1246E, 0x12480, 0x12543, 0x12F90, 0x12FF0, | |
7285 0x13000, 0x1342F, 0x13441, 0x13446, 0x14400, 0x14646, 0x16800, 0x16A38, | |
7286 0x16A40, 0x16A5E, 0x16A70, 0x16ABE, 0x16AD0, 0x16AED, 0x16B00, 0x16B2F, | |
7287 0x16B40, 0x16B43, 0x16B63, 0x16B77, 0x16B7D, 0x16B8F, 0x16E40, 0x16E7F, | |
7288 0x16F00, 0x16F4A, 0x16F4F, 0x16F87, 0x16F8F, 0x16F9F, 0x16FE0, 0x16FE1, | |
7289 0x16FE3, 0x16FE3, 0x16FF0, 0x16FF1, 0x17000, 0x187F7, 0x18800, 0x18CD5, | |
7290 0x18D00, 0x18D08, 0x1AFF0, 0x1AFF3, 0x1AFF5, 0x1AFFB, 0x1AFFD, 0x1AFFE, | |
7291 0x1B000, 0x1B122, 0x1B132, 0x1B132, 0x1B150, 0x1B152, 0x1B155, 0x1B155, | |
7292 0x1B164, 0x1B167, 0x1B170, 0x1B2FB, 0x1BC00, 0x1BC6A, 0x1BC70, 0x1BC7C, | |
7293 0x1BC80, 0x1BC88, 0x1BC90, 0x1BC99, 0x1BC9E, 0x1BC9E, 0x1D400, 0x1D454, | |
7294 0x1D456, 0x1D49C, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A2, 0x1D4A5, 0x1D4A6, | |
7295 0x1D4A9, 0x1D4AC, 0x1D4AE, 0x1D4B9, 0x1D4BB, 0x1D4BB, 0x1D4BD, 0x1D4C3, | |
7296 0x1D4C5, 0x1D505, 0x1D507, 0x1D50A, 0x1D50D, 0x1D514, 0x1D516, 0x1D51C, | |
7297 0x1D51E, 0x1D539, 0x1D53B, 0x1D53E, 0x1D540, 0x1D544, 0x1D546, 0x1D546, | |
7298 0x1D54A, 0x1D550, 0x1D552, 0x1D6A5, 0x1D6A8, 0x1D6C0, 0x1D6C2, 0x1D6DA, | |
7299 0x1D6DC, 0x1D6FA, 0x1D6FC, 0x1D714, 0x1D716, 0x1D734, 0x1D736, 0x1D74E, | |
7300 0x1D750, 0x1D76E, 0x1D770, 0x1D788, 0x1D78A, 0x1D7A8, 0x1D7AA, 0x1D7C2, | |
7301 0x1D7C4, 0x1D7CB, 0x1DF00, 0x1DF1E, 0x1DF25, 0x1DF2A, 0x1E000, 0x1E006, | |
7302 0x1E008, 0x1E018, 0x1E01B, 0x1E021, 0x1E023, 0x1E024, 0x1E026, 0x1E02A, | |
7303 0x1E030, 0x1E06D, 0x1E08F, 0x1E08F, 0x1E100, 0x1E12C, 0x1E137, 0x1E13D, | |
7304 0x1E14E, 0x1E14E, 0x1E290, 0x1E2AD, 0x1E2C0, 0x1E2EB, 0x1E4D0, 0x1E4EB, | |
7305 0x1E7E0, 0x1E7E6, 0x1E7E8, 0x1E7EB, 0x1E7ED, 0x1E7EE, 0x1E7F0, 0x1E7FE, | |
7306 0x1E800, 0x1E8C4, 0x1E900, 0x1E943, 0x1E947, 0x1E947, 0x1E94B, 0x1E94B, | |
7307 0x1EE00, 0x1EE03, 0x1EE05, 0x1EE1F, 0x1EE21, 0x1EE22, 0x1EE24, 0x1EE24, | |
7308 0x1EE27, 0x1EE27, 0x1EE29, 0x1EE32, 0x1EE34, 0x1EE37, 0x1EE39, 0x1EE39, | |
7309 0x1EE3B, 0x1EE3B, 0x1EE42, 0x1EE42, 0x1EE47, 0x1EE47, 0x1EE49, 0x1EE49, | |
7310 0x1EE4B, 0x1EE4B, 0x1EE4D, 0x1EE4F, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE54, | |
7311 0x1EE57, 0x1EE57, 0x1EE59, 0x1EE59, 0x1EE5B, 0x1EE5B, 0x1EE5D, 0x1EE5D, | |
7312 0x1EE5F, 0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE64, 0x1EE67, 0x1EE6A, | |
7313 0x1EE6C, 0x1EE72, 0x1EE74, 0x1EE77, 0x1EE79, 0x1EE7C, 0x1EE7E, 0x1EE7E, | |
7314 0x1EE80, 0x1EE89, 0x1EE8B, 0x1EE9B, 0x1EEA1, 0x1EEA3, 0x1EEA5, 0x1EEA9, | |
7315 0x1EEAB, 0x1EEBB, 0x1F130, 0x1F149, 0x1F150, 0x1F169, 0x1F170, 0x1F189, | |
7316 0x20000, 0x2A6DF, 0x2A700, 0x2B739, 0x2B740, 0x2B81D, 0x2B820, 0x2CEA1, | |
7317 0x2CEB0, 0x2EBE0, 0x2EBF0, 0x2EE5D, 0x2F800, 0x2FA1D, 0x30000, 0x3134A, | |
7318 0x31350, 0x323AF, | |
7319 // #46 (4746+1): bp=Any | |
7320 0x0000, 0x10FFFF, | |
7321 // #47 (4747+0): bp=Assigned | |
7322 | |
7323 // #48 (4747+4): bp=Bidi_Control:Bidi_C | |
7324 0x061C, 0x061C, 0x200E, 0x200F, 0x202A, 0x202E, 0x2066, 0x2069, | |
7325 // #49 (4751+114): bp=Bidi_Mirrored:Bidi_M | |
7326 0x0028, 0x0029, 0x003C, 0x003C, 0x003E, 0x003E, 0x005B, 0x005B, | |
7327 0x005D, 0x005D, 0x007B, 0x007B, 0x007D, 0x007D, 0x00AB, 0x00AB, | |
7328 0x00BB, 0x00BB, 0x0F3A, 0x0F3D, 0x169B, 0x169C, 0x2039, 0x203A, | |
7329 0x2045, 0x2046, 0x207D, 0x207E, 0x208D, 0x208E, 0x2140, 0x2140, | |
7330 0x2201, 0x2204, 0x2208, 0x220D, 0x2211, 0x2211, 0x2215, 0x2216, | |
7331 0x221A, 0x221D, 0x221F, 0x2222, 0x2224, 0x2224, 0x2226, 0x2226, | |
7332 0x222B, 0x2233, 0x2239, 0x2239, 0x223B, 0x224C, 0x2252, 0x2255, | |
7333 0x225F, 0x2260, 0x2262, 0x2262, 0x2264, 0x226B, 0x226E, 0x228C, | |
7334 0x228F, 0x2292, 0x2298, 0x2298, 0x22A2, 0x22A3, 0x22A6, 0x22B8, | |
7335 0x22BE, 0x22BF, 0x22C9, 0x22CD, 0x22D0, 0x22D1, 0x22D6, 0x22ED, | |
7336 0x22F0, 0x22FF, 0x2308, 0x230B, 0x2320, 0x2321, 0x2329, 0x232A, | |
7337 0x2768, 0x2775, 0x27C0, 0x27C0, 0x27C3, 0x27C6, 0x27C8, 0x27C9, | |
7338 0x27CB, 0x27CD, 0x27D3, 0x27D6, 0x27DC, 0x27DE, 0x27E2, 0x27EF, | |
7339 0x2983, 0x2998, 0x299B, 0x29A0, 0x29A2, 0x29AF, 0x29B8, 0x29B8, | |
7340 0x29C0, 0x29C5, 0x29C9, 0x29C9, 0x29CE, 0x29D2, 0x29D4, 0x29D5, | |
7341 0x29D8, 0x29DC, 0x29E1, 0x29E1, 0x29E3, 0x29E5, 0x29E8, 0x29E9, | |
7342 0x29F4, 0x29F9, 0x29FC, 0x29FD, 0x2A0A, 0x2A1C, 0x2A1E, 0x2A21, | |
7343 0x2A24, 0x2A24, 0x2A26, 0x2A26, 0x2A29, 0x2A29, 0x2A2B, 0x2A2E, | |
7344 0x2A34, 0x2A35, 0x2A3C, 0x2A3E, 0x2A57, 0x2A58, 0x2A64, 0x2A65, | |
7345 0x2A6A, 0x2A6D, 0x2A6F, 0x2A70, 0x2A73, 0x2A74, 0x2A79, 0x2AA3, | |
7346 0x2AA6, 0x2AAD, 0x2AAF, 0x2AD6, 0x2ADC, 0x2ADC, 0x2ADE, 0x2ADE, | |
7347 0x2AE2, 0x2AE6, 0x2AEC, 0x2AEE, 0x2AF3, 0x2AF3, 0x2AF7, 0x2AFB, | |
7348 0x2AFD, 0x2AFD, 0x2BFE, 0x2BFE, 0x2E02, 0x2E05, 0x2E09, 0x2E0A, | |
7349 0x2E0C, 0x2E0D, 0x2E1C, 0x2E1D, 0x2E20, 0x2E29, 0x2E55, 0x2E5C, | |
7350 0x3008, 0x3011, 0x3014, 0x301B, 0xFE59, 0xFE5E, 0xFE64, 0xFE65, | |
7351 0xFF08, 0xFF09, 0xFF1C, 0xFF1C, 0xFF1E, 0xFF1E, 0xFF3B, 0xFF3B, | |
7352 0xFF3D, 0xFF3D, 0xFF5B, 0xFF5B, 0xFF5D, 0xFF5D, 0xFF5F, 0xFF60, | |
7353 0xFF62, 0xFF63, 0x1D6DB, 0x1D6DB, 0x1D715, 0x1D715, 0x1D74F, 0x1D74F, | |
7354 0x1D789, 0x1D789, 0x1D7C3, 0x1D7C3, | |
7355 // #50 (4865+437): bp=Case_Ignorable:CI | |
7356 0x0027, 0x0027, 0x002E, 0x002E, 0x003A, 0x003A, 0x005E, 0x005E, | |
7357 0x0060, 0x0060, 0x00A8, 0x00A8, 0x00AD, 0x00AD, 0x00AF, 0x00AF, | |
7358 0x00B4, 0x00B4, 0x00B7, 0x00B8, 0x02B0, 0x036F, 0x0374, 0x0375, | |
7359 0x037A, 0x037A, 0x0384, 0x0385, 0x0387, 0x0387, 0x0483, 0x0489, | |
7360 0x0559, 0x0559, 0x055F, 0x055F, 0x0591, 0x05BD, 0x05BF, 0x05BF, | |
7361 0x05C1, 0x05C2, 0x05C4, 0x05C5, 0x05C7, 0x05C7, 0x05F4, 0x05F4, | |
7362 0x0600, 0x0605, 0x0610, 0x061A, 0x061C, 0x061C, 0x0640, 0x0640, | |
7363 0x064B, 0x065F, 0x0670, 0x0670, 0x06D6, 0x06DD, 0x06DF, 0x06E8, | |
7364 0x06EA, 0x06ED, 0x070F, 0x070F, 0x0711, 0x0711, 0x0730, 0x074A, | |
7365 0x07A6, 0x07B0, 0x07EB, 0x07F5, 0x07FA, 0x07FA, 0x07FD, 0x07FD, | |
7366 0x0816, 0x082D, 0x0859, 0x085B, 0x0888, 0x0888, 0x0890, 0x0891, | |
7367 0x0898, 0x089F, 0x08C9, 0x0902, 0x093A, 0x093A, 0x093C, 0x093C, | |
7368 0x0941, 0x0948, 0x094D, 0x094D, 0x0951, 0x0957, 0x0962, 0x0963, | |
7369 0x0971, 0x0971, 0x0981, 0x0981, 0x09BC, 0x09BC, 0x09C1, 0x09C4, | |
7370 0x09CD, 0x09CD, 0x09E2, 0x09E3, 0x09FE, 0x09FE, 0x0A01, 0x0A02, | |
7371 0x0A3C, 0x0A3C, 0x0A41, 0x0A42, 0x0A47, 0x0A48, 0x0A4B, 0x0A4D, | |
7372 0x0A51, 0x0A51, 0x0A70, 0x0A71, 0x0A75, 0x0A75, 0x0A81, 0x0A82, | |
7373 0x0ABC, 0x0ABC, 0x0AC1, 0x0AC5, 0x0AC7, 0x0AC8, 0x0ACD, 0x0ACD, | |
7374 0x0AE2, 0x0AE3, 0x0AFA, 0x0AFF, 0x0B01, 0x0B01, 0x0B3C, 0x0B3C, | |
7375 0x0B3F, 0x0B3F, 0x0B41, 0x0B44, 0x0B4D, 0x0B4D, 0x0B55, 0x0B56, | |
7376 0x0B62, 0x0B63, 0x0B82, 0x0B82, 0x0BC0, 0x0BC0, 0x0BCD, 0x0BCD, | |
7377 0x0C00, 0x0C00, 0x0C04, 0x0C04, 0x0C3C, 0x0C3C, 0x0C3E, 0x0C40, | |
7378 0x0C46, 0x0C48, 0x0C4A, 0x0C4D, 0x0C55, 0x0C56, 0x0C62, 0x0C63, | |
7379 0x0C81, 0x0C81, 0x0CBC, 0x0CBC, 0x0CBF, 0x0CBF, 0x0CC6, 0x0CC6, | |
7380 0x0CCC, 0x0CCD, 0x0CE2, 0x0CE3, 0x0D00, 0x0D01, 0x0D3B, 0x0D3C, | |
7381 0x0D41, 0x0D44, 0x0D4D, 0x0D4D, 0x0D62, 0x0D63, 0x0D81, 0x0D81, | |
7382 0x0DCA, 0x0DCA, 0x0DD2, 0x0DD4, 0x0DD6, 0x0DD6, 0x0E31, 0x0E31, | |
7383 0x0E34, 0x0E3A, 0x0E46, 0x0E4E, 0x0EB1, 0x0EB1, 0x0EB4, 0x0EBC, | |
7384 0x0EC6, 0x0EC6, 0x0EC8, 0x0ECE, 0x0F18, 0x0F19, 0x0F35, 0x0F35, | |
7385 0x0F37, 0x0F37, 0x0F39, 0x0F39, 0x0F71, 0x0F7E, 0x0F80, 0x0F84, | |
7386 0x0F86, 0x0F87, 0x0F8D, 0x0F97, 0x0F99, 0x0FBC, 0x0FC6, 0x0FC6, | |
7387 0x102D, 0x1030, 0x1032, 0x1037, 0x1039, 0x103A, 0x103D, 0x103E, | |
7388 0x1058, 0x1059, 0x105E, 0x1060, 0x1071, 0x1074, 0x1082, 0x1082, | |
7389 0x1085, 0x1086, 0x108D, 0x108D, 0x109D, 0x109D, 0x10FC, 0x10FC, | |
7390 0x135D, 0x135F, 0x1712, 0x1714, 0x1732, 0x1733, 0x1752, 0x1753, | |
7391 0x1772, 0x1773, 0x17B4, 0x17B5, 0x17B7, 0x17BD, 0x17C6, 0x17C6, | |
7392 0x17C9, 0x17D3, 0x17D7, 0x17D7, 0x17DD, 0x17DD, 0x180B, 0x180F, | |
7393 0x1843, 0x1843, 0x1885, 0x1886, 0x18A9, 0x18A9, 0x1920, 0x1922, | |
7394 0x1927, 0x1928, 0x1932, 0x1932, 0x1939, 0x193B, 0x1A17, 0x1A18, | |
7395 0x1A1B, 0x1A1B, 0x1A56, 0x1A56, 0x1A58, 0x1A5E, 0x1A60, 0x1A60, | |
7396 0x1A62, 0x1A62, 0x1A65, 0x1A6C, 0x1A73, 0x1A7C, 0x1A7F, 0x1A7F, | |
7397 0x1AA7, 0x1AA7, 0x1AB0, 0x1ACE, 0x1B00, 0x1B03, 0x1B34, 0x1B34, | |
7398 0x1B36, 0x1B3A, 0x1B3C, 0x1B3C, 0x1B42, 0x1B42, 0x1B6B, 0x1B73, | |
7399 0x1B80, 0x1B81, 0x1BA2, 0x1BA5, 0x1BA8, 0x1BA9, 0x1BAB, 0x1BAD, | |
7400 0x1BE6, 0x1BE6, 0x1BE8, 0x1BE9, 0x1BED, 0x1BED, 0x1BEF, 0x1BF1, | |
7401 0x1C2C, 0x1C33, 0x1C36, 0x1C37, 0x1C78, 0x1C7D, 0x1CD0, 0x1CD2, | |
7402 0x1CD4, 0x1CE0, 0x1CE2, 0x1CE8, 0x1CED, 0x1CED, 0x1CF4, 0x1CF4, | |
7403 0x1CF8, 0x1CF9, 0x1D2C, 0x1D6A, 0x1D78, 0x1D78, 0x1D9B, 0x1DFF, | |
7404 0x1FBD, 0x1FBD, 0x1FBF, 0x1FC1, 0x1FCD, 0x1FCF, 0x1FDD, 0x1FDF, | |
7405 0x1FED, 0x1FEF, 0x1FFD, 0x1FFE, 0x200B, 0x200F, 0x2018, 0x2019, | |
7406 0x2024, 0x2024, 0x2027, 0x2027, 0x202A, 0x202E, 0x2060, 0x2064, | |
7407 0x2066, 0x206F, 0x2071, 0x2071, 0x207F, 0x207F, 0x2090, 0x209C, | |
7408 0x20D0, 0x20F0, 0x2C7C, 0x2C7D, 0x2CEF, 0x2CF1, 0x2D6F, 0x2D6F, | |
7409 0x2D7F, 0x2D7F, 0x2DE0, 0x2DFF, 0x2E2F, 0x2E2F, 0x3005, 0x3005, | |
7410 0x302A, 0x302D, 0x3031, 0x3035, 0x303B, 0x303B, 0x3099, 0x309E, | |
7411 0x30FC, 0x30FE, 0xA015, 0xA015, 0xA4F8, 0xA4FD, 0xA60C, 0xA60C, | |
7412 0xA66F, 0xA672, 0xA674, 0xA67D, 0xA67F, 0xA67F, 0xA69C, 0xA69F, | |
7413 0xA6F0, 0xA6F1, 0xA700, 0xA721, 0xA770, 0xA770, 0xA788, 0xA78A, | |
7414 0xA7F2, 0xA7F4, 0xA7F8, 0xA7F9, 0xA802, 0xA802, 0xA806, 0xA806, | |
7415 0xA80B, 0xA80B, 0xA825, 0xA826, 0xA82C, 0xA82C, 0xA8C4, 0xA8C5, | |
7416 0xA8E0, 0xA8F1, 0xA8FF, 0xA8FF, 0xA926, 0xA92D, 0xA947, 0xA951, | |
7417 0xA980, 0xA982, 0xA9B3, 0xA9B3, 0xA9B6, 0xA9B9, 0xA9BC, 0xA9BD, | |
7418 0xA9CF, 0xA9CF, 0xA9E5, 0xA9E6, 0xAA29, 0xAA2E, 0xAA31, 0xAA32, | |
7419 0xAA35, 0xAA36, 0xAA43, 0xAA43, 0xAA4C, 0xAA4C, 0xAA70, 0xAA70, | |
7420 0xAA7C, 0xAA7C, 0xAAB0, 0xAAB0, 0xAAB2, 0xAAB4, 0xAAB7, 0xAAB8, | |
7421 0xAABE, 0xAABF, 0xAAC1, 0xAAC1, 0xAADD, 0xAADD, 0xAAEC, 0xAAED, | |
7422 0xAAF3, 0xAAF4, 0xAAF6, 0xAAF6, 0xAB5B, 0xAB5F, 0xAB69, 0xAB6B, | |
7423 0xABE5, 0xABE5, 0xABE8, 0xABE8, 0xABED, 0xABED, 0xFB1E, 0xFB1E, | |
7424 0xFBB2, 0xFBC2, 0xFE00, 0xFE0F, 0xFE13, 0xFE13, 0xFE20, 0xFE2F, | |
7425 0xFE52, 0xFE52, 0xFE55, 0xFE55, 0xFEFF, 0xFEFF, 0xFF07, 0xFF07, | |
7426 0xFF0E, 0xFF0E, 0xFF1A, 0xFF1A, 0xFF3E, 0xFF3E, 0xFF40, 0xFF40, | |
7427 0xFF70, 0xFF70, 0xFF9E, 0xFF9F, 0xFFE3, 0xFFE3, 0xFFF9, 0xFFFB, | |
7428 0x101FD, 0x101FD, 0x102E0, 0x102E0, 0x10376, 0x1037A, 0x10780, 0x10785, | |
7429 0x10787, 0x107B0, 0x107B2, 0x107BA, 0x10A01, 0x10A03, 0x10A05, 0x10A06, | |
7430 0x10A0C, 0x10A0F, 0x10A38, 0x10A3A, 0x10A3F, 0x10A3F, 0x10AE5, 0x10AE6, | |
7431 0x10D24, 0x10D27, 0x10EAB, 0x10EAC, 0x10EFD, 0x10EFF, 0x10F46, 0x10F50, | |
7432 0x10F82, 0x10F85, 0x11001, 0x11001, 0x11038, 0x11046, 0x11070, 0x11070, | |
7433 0x11073, 0x11074, 0x1107F, 0x11081, 0x110B3, 0x110B6, 0x110B9, 0x110BA, | |
7434 0x110BD, 0x110BD, 0x110C2, 0x110C2, 0x110CD, 0x110CD, 0x11100, 0x11102, | |
7435 0x11127, 0x1112B, 0x1112D, 0x11134, 0x11173, 0x11173, 0x11180, 0x11181, | |
7436 0x111B6, 0x111BE, 0x111C9, 0x111CC, 0x111CF, 0x111CF, 0x1122F, 0x11231, | |
7437 0x11234, 0x11234, 0x11236, 0x11237, 0x1123E, 0x1123E, 0x11241, 0x11241, | |
7438 0x112DF, 0x112DF, 0x112E3, 0x112EA, 0x11300, 0x11301, 0x1133B, 0x1133C, | |
7439 0x11340, 0x11340, 0x11366, 0x1136C, 0x11370, 0x11374, 0x11438, 0x1143F, | |
7440 0x11442, 0x11444, 0x11446, 0x11446, 0x1145E, 0x1145E, 0x114B3, 0x114B8, | |
7441 0x114BA, 0x114BA, 0x114BF, 0x114C0, 0x114C2, 0x114C3, 0x115B2, 0x115B5, | |
7442 0x115BC, 0x115BD, 0x115BF, 0x115C0, 0x115DC, 0x115DD, 0x11633, 0x1163A, | |
7443 0x1163D, 0x1163D, 0x1163F, 0x11640, 0x116AB, 0x116AB, 0x116AD, 0x116AD, | |
7444 0x116B0, 0x116B5, 0x116B7, 0x116B7, 0x1171D, 0x1171F, 0x11722, 0x11725, | |
7445 0x11727, 0x1172B, 0x1182F, 0x11837, 0x11839, 0x1183A, 0x1193B, 0x1193C, | |
7446 0x1193E, 0x1193E, 0x11943, 0x11943, 0x119D4, 0x119D7, 0x119DA, 0x119DB, | |
7447 0x119E0, 0x119E0, 0x11A01, 0x11A0A, 0x11A33, 0x11A38, 0x11A3B, 0x11A3E, | |
7448 0x11A47, 0x11A47, 0x11A51, 0x11A56, 0x11A59, 0x11A5B, 0x11A8A, 0x11A96, | |
7449 0x11A98, 0x11A99, 0x11C30, 0x11C36, 0x11C38, 0x11C3D, 0x11C3F, 0x11C3F, | |
7450 0x11C92, 0x11CA7, 0x11CAA, 0x11CB0, 0x11CB2, 0x11CB3, 0x11CB5, 0x11CB6, | |
7451 0x11D31, 0x11D36, 0x11D3A, 0x11D3A, 0x11D3C, 0x11D3D, 0x11D3F, 0x11D45, | |
7452 0x11D47, 0x11D47, 0x11D90, 0x11D91, 0x11D95, 0x11D95, 0x11D97, 0x11D97, | |
7453 0x11EF3, 0x11EF4, 0x11F00, 0x11F01, 0x11F36, 0x11F3A, 0x11F40, 0x11F40, | |
7454 0x11F42, 0x11F42, 0x13430, 0x13440, 0x13447, 0x13455, 0x16AF0, 0x16AF4, | |
7455 0x16B30, 0x16B36, 0x16B40, 0x16B43, 0x16F4F, 0x16F4F, 0x16F8F, 0x16F9F, | |
7456 0x16FE0, 0x16FE1, 0x16FE3, 0x16FE4, 0x1AFF0, 0x1AFF3, 0x1AFF5, 0x1AFFB, | |
7457 0x1AFFD, 0x1AFFE, 0x1BC9D, 0x1BC9E, 0x1BCA0, 0x1BCA3, 0x1CF00, 0x1CF2D, | |
7458 0x1CF30, 0x1CF46, 0x1D167, 0x1D169, 0x1D173, 0x1D182, 0x1D185, 0x1D18B, | |
7459 0x1D1AA, 0x1D1AD, 0x1D242, 0x1D244, 0x1DA00, 0x1DA36, 0x1DA3B, 0x1DA6C, | |
7460 0x1DA75, 0x1DA75, 0x1DA84, 0x1DA84, 0x1DA9B, 0x1DA9F, 0x1DAA1, 0x1DAAF, | |
7461 0x1E000, 0x1E006, 0x1E008, 0x1E018, 0x1E01B, 0x1E021, 0x1E023, 0x1E024, | |
7462 0x1E026, 0x1E02A, 0x1E030, 0x1E06D, 0x1E08F, 0x1E08F, 0x1E130, 0x1E13D, | |
7463 0x1E2AE, 0x1E2AE, 0x1E2EC, 0x1E2EF, 0x1E4EB, 0x1E4EF, 0x1E8D0, 0x1E8D6, | |
7464 0x1E944, 0x1E94B, 0x1F3FB, 0x1F3FF, 0xE0001, 0xE0001, 0xE0020, 0xE007F, | |
7465 0xE0100, 0xE01EF, | |
7466 // #51 (5302+157): bp=Cased | |
7467 0x0041, 0x005A, 0x0061, 0x007A, 0x00AA, 0x00AA, 0x00B5, 0x00B5, | |
7468 0x00BA, 0x00BA, 0x00C0, 0x00D6, 0x00D8, 0x00F6, 0x00F8, 0x01BA, | |
7469 0x01BC, 0x01BF, 0x01C4, 0x0293, 0x0295, 0x02B8, 0x02C0, 0x02C1, | |
7470 0x02E0, 0x02E4, 0x0345, 0x0345, 0x0370, 0x0373, 0x0376, 0x0377, | |
7471 0x037A, 0x037D, 0x037F, 0x037F, 0x0386, 0x0386, 0x0388, 0x038A, | |
7472 0x038C, 0x038C, 0x038E, 0x03A1, 0x03A3, 0x03F5, 0x03F7, 0x0481, | |
7473 0x048A, 0x052F, 0x0531, 0x0556, 0x0560, 0x0588, 0x10A0, 0x10C5, | |
7474 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x10D0, 0x10FA, 0x10FC, 0x10FF, | |
7475 0x13A0, 0x13F5, 0x13F8, 0x13FD, 0x1C80, 0x1C88, 0x1C90, 0x1CBA, | |
7476 0x1CBD, 0x1CBF, 0x1D00, 0x1DBF, 0x1E00, 0x1F15, 0x1F18, 0x1F1D, | |
7477 0x1F20, 0x1F45, 0x1F48, 0x1F4D, 0x1F50, 0x1F57, 0x1F59, 0x1F59, | |
7478 0x1F5B, 0x1F5B, 0x1F5D, 0x1F5D, 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, | |
7479 0x1FB6, 0x1FBC, 0x1FBE, 0x1FBE, 0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, | |
7480 0x1FD0, 0x1FD3, 0x1FD6, 0x1FDB, 0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, | |
7481 0x1FF6, 0x1FFC, 0x2071, 0x2071, 0x207F, 0x207F, 0x2090, 0x209C, | |
7482 0x2102, 0x2102, 0x2107, 0x2107, 0x210A, 0x2113, 0x2115, 0x2115, | |
7483 0x2119, 0x211D, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, | |
7484 0x212A, 0x212D, 0x212F, 0x2134, 0x2139, 0x2139, 0x213C, 0x213F, | |
7485 0x2145, 0x2149, 0x214E, 0x214E, 0x2160, 0x217F, 0x2183, 0x2184, | |
7486 0x24B6, 0x24E9, 0x2C00, 0x2CE4, 0x2CEB, 0x2CEE, 0x2CF2, 0x2CF3, | |
7487 0x2D00, 0x2D25, 0x2D27, 0x2D27, 0x2D2D, 0x2D2D, 0xA640, 0xA66D, | |
7488 0xA680, 0xA69D, 0xA722, 0xA787, 0xA78B, 0xA78E, 0xA790, 0xA7CA, | |
7489 0xA7D0, 0xA7D1, 0xA7D3, 0xA7D3, 0xA7D5, 0xA7D9, 0xA7F2, 0xA7F6, | |
7490 0xA7F8, 0xA7FA, 0xAB30, 0xAB5A, 0xAB5C, 0xAB69, 0xAB70, 0xABBF, | |
7491 0xFB00, 0xFB06, 0xFB13, 0xFB17, 0xFF21, 0xFF3A, 0xFF41, 0xFF5A, | |
7492 0x10400, 0x1044F, 0x104B0, 0x104D3, 0x104D8, 0x104FB, 0x10570, 0x1057A, | |
7493 0x1057C, 0x1058A, 0x1058C, 0x10592, 0x10594, 0x10595, 0x10597, 0x105A1, | |
7494 0x105A3, 0x105B1, 0x105B3, 0x105B9, 0x105BB, 0x105BC, 0x10780, 0x10780, | |
7495 0x10783, 0x10785, 0x10787, 0x107B0, 0x107B2, 0x107BA, 0x10C80, 0x10CB2, | |
7496 0x10CC0, 0x10CF2, 0x118A0, 0x118DF, 0x16E40, 0x16E7F, 0x1D400, 0x1D454, | |
7497 0x1D456, 0x1D49C, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A2, 0x1D4A5, 0x1D4A6, | |
7498 0x1D4A9, 0x1D4AC, 0x1D4AE, 0x1D4B9, 0x1D4BB, 0x1D4BB, 0x1D4BD, 0x1D4C3, | |
7499 0x1D4C5, 0x1D505, 0x1D507, 0x1D50A, 0x1D50D, 0x1D514, 0x1D516, 0x1D51C, | |
7500 0x1D51E, 0x1D539, 0x1D53B, 0x1D53E, 0x1D540, 0x1D544, 0x1D546, 0x1D546, | |
7501 0x1D54A, 0x1D550, 0x1D552, 0x1D6A5, 0x1D6A8, 0x1D6C0, 0x1D6C2, 0x1D6DA, | |
7502 0x1D6DC, 0x1D6FA, 0x1D6FC, 0x1D714, 0x1D716, 0x1D734, 0x1D736, 0x1D74E, | |
7503 0x1D750, 0x1D76E, 0x1D770, 0x1D788, 0x1D78A, 0x1D7A8, 0x1D7AA, 0x1D7C2, | |
7504 0x1D7C4, 0x1D7CB, 0x1DF00, 0x1DF09, 0x1DF0B, 0x1DF1E, 0x1DF25, 0x1DF2A, | |
7505 0x1E030, 0x1E06D, 0x1E900, 0x1E943, 0x1F130, 0x1F149, 0x1F150, 0x1F169, | |
7506 0x1F170, 0x1F189, | |
7507 // #52 (5459+622): bp=Changes_When_Casefolded:CWCF | |
7508 0x0041, 0x005A, 0x00B5, 0x00B5, 0x00C0, 0x00D6, 0x00D8, 0x00DF, | |
7509 0x0100, 0x0100, 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106, | |
7510 0x0108, 0x0108, 0x010A, 0x010A, 0x010C, 0x010C, 0x010E, 0x010E, | |
7511 0x0110, 0x0110, 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116, | |
7512 0x0118, 0x0118, 0x011A, 0x011A, 0x011C, 0x011C, 0x011E, 0x011E, | |
7513 0x0120, 0x0120, 0x0122, 0x0122, 0x0124, 0x0124, 0x0126, 0x0126, | |
7514 0x0128, 0x0128, 0x012A, 0x012A, 0x012C, 0x012C, 0x012E, 0x012E, | |
7515 0x0130, 0x0130, 0x0132, 0x0132, 0x0134, 0x0134, 0x0136, 0x0136, | |
7516 0x0139, 0x0139, 0x013B, 0x013B, 0x013D, 0x013D, 0x013F, 0x013F, | |
7517 0x0141, 0x0141, 0x0143, 0x0143, 0x0145, 0x0145, 0x0147, 0x0147, | |
7518 0x0149, 0x014A, 0x014C, 0x014C, 0x014E, 0x014E, 0x0150, 0x0150, | |
7519 0x0152, 0x0152, 0x0154, 0x0154, 0x0156, 0x0156, 0x0158, 0x0158, | |
7520 0x015A, 0x015A, 0x015C, 0x015C, 0x015E, 0x015E, 0x0160, 0x0160, | |
7521 0x0162, 0x0162, 0x0164, 0x0164, 0x0166, 0x0166, 0x0168, 0x0168, | |
7522 0x016A, 0x016A, 0x016C, 0x016C, 0x016E, 0x016E, 0x0170, 0x0170, | |
7523 0x0172, 0x0172, 0x0174, 0x0174, 0x0176, 0x0176, 0x0178, 0x0179, | |
7524 0x017B, 0x017B, 0x017D, 0x017D, 0x017F, 0x017F, 0x0181, 0x0182, | |
7525 0x0184, 0x0184, 0x0186, 0x0187, 0x0189, 0x018B, 0x018E, 0x0191, | |
7526 0x0193, 0x0194, 0x0196, 0x0198, 0x019C, 0x019D, 0x019F, 0x01A0, | |
7527 0x01A2, 0x01A2, 0x01A4, 0x01A4, 0x01A6, 0x01A7, 0x01A9, 0x01A9, | |
7528 0x01AC, 0x01AC, 0x01AE, 0x01AF, 0x01B1, 0x01B3, 0x01B5, 0x01B5, | |
7529 0x01B7, 0x01B8, 0x01BC, 0x01BC, 0x01C4, 0x01C5, 0x01C7, 0x01C8, | |
7530 0x01CA, 0x01CB, 0x01CD, 0x01CD, 0x01CF, 0x01CF, 0x01D1, 0x01D1, | |
7531 0x01D3, 0x01D3, 0x01D5, 0x01D5, 0x01D7, 0x01D7, 0x01D9, 0x01D9, | |
7532 0x01DB, 0x01DB, 0x01DE, 0x01DE, 0x01E0, 0x01E0, 0x01E2, 0x01E2, | |
7533 0x01E4, 0x01E4, 0x01E6, 0x01E6, 0x01E8, 0x01E8, 0x01EA, 0x01EA, | |
7534 0x01EC, 0x01EC, 0x01EE, 0x01EE, 0x01F1, 0x01F2, 0x01F4, 0x01F4, | |
7535 0x01F6, 0x01F8, 0x01FA, 0x01FA, 0x01FC, 0x01FC, 0x01FE, 0x01FE, | |
7536 0x0200, 0x0200, 0x0202, 0x0202, 0x0204, 0x0204, 0x0206, 0x0206, | |
7537 0x0208, 0x0208, 0x020A, 0x020A, 0x020C, 0x020C, 0x020E, 0x020E, | |
7538 0x0210, 0x0210, 0x0212, 0x0212, 0x0214, 0x0214, 0x0216, 0x0216, | |
7539 0x0218, 0x0218, 0x021A, 0x021A, 0x021C, 0x021C, 0x021E, 0x021E, | |
7540 0x0220, 0x0220, 0x0222, 0x0222, 0x0224, 0x0224, 0x0226, 0x0226, | |
7541 0x0228, 0x0228, 0x022A, 0x022A, 0x022C, 0x022C, 0x022E, 0x022E, | |
7542 0x0230, 0x0230, 0x0232, 0x0232, 0x023A, 0x023B, 0x023D, 0x023E, | |
7543 0x0241, 0x0241, 0x0243, 0x0246, 0x0248, 0x0248, 0x024A, 0x024A, | |
7544 0x024C, 0x024C, 0x024E, 0x024E, 0x0345, 0x0345, 0x0370, 0x0370, | |
7545 0x0372, 0x0372, 0x0376, 0x0376, 0x037F, 0x037F, 0x0386, 0x0386, | |
7546 0x0388, 0x038A, 0x038C, 0x038C, 0x038E, 0x038F, 0x0391, 0x03A1, | |
7547 0x03A3, 0x03AB, 0x03C2, 0x03C2, 0x03CF, 0x03D1, 0x03D5, 0x03D6, | |
7548 0x03D8, 0x03D8, 0x03DA, 0x03DA, 0x03DC, 0x03DC, 0x03DE, 0x03DE, | |
7549 0x03E0, 0x03E0, 0x03E2, 0x03E2, 0x03E4, 0x03E4, 0x03E6, 0x03E6, | |
7550 0x03E8, 0x03E8, 0x03EA, 0x03EA, 0x03EC, 0x03EC, 0x03EE, 0x03EE, | |
7551 0x03F0, 0x03F1, 0x03F4, 0x03F5, 0x03F7, 0x03F7, 0x03F9, 0x03FA, | |
7552 0x03FD, 0x042F, 0x0460, 0x0460, 0x0462, 0x0462, 0x0464, 0x0464, | |
7553 0x0466, 0x0466, 0x0468, 0x0468, 0x046A, 0x046A, 0x046C, 0x046C, | |
7554 0x046E, 0x046E, 0x0470, 0x0470, 0x0472, 0x0472, 0x0474, 0x0474, | |
7555 0x0476, 0x0476, 0x0478, 0x0478, 0x047A, 0x047A, 0x047C, 0x047C, | |
7556 0x047E, 0x047E, 0x0480, 0x0480, 0x048A, 0x048A, 0x048C, 0x048C, | |
7557 0x048E, 0x048E, 0x0490, 0x0490, 0x0492, 0x0492, 0x0494, 0x0494, | |
7558 0x0496, 0x0496, 0x0498, 0x0498, 0x049A, 0x049A, 0x049C, 0x049C, | |
7559 0x049E, 0x049E, 0x04A0, 0x04A0, 0x04A2, 0x04A2, 0x04A4, 0x04A4, | |
7560 0x04A6, 0x04A6, 0x04A8, 0x04A8, 0x04AA, 0x04AA, 0x04AC, 0x04AC, | |
7561 0x04AE, 0x04AE, 0x04B0, 0x04B0, 0x04B2, 0x04B2, 0x04B4, 0x04B4, | |
7562 0x04B6, 0x04B6, 0x04B8, 0x04B8, 0x04BA, 0x04BA, 0x04BC, 0x04BC, | |
7563 0x04BE, 0x04BE, 0x04C0, 0x04C1, 0x04C3, 0x04C3, 0x04C5, 0x04C5, | |
7564 0x04C7, 0x04C7, 0x04C9, 0x04C9, 0x04CB, 0x04CB, 0x04CD, 0x04CD, | |
7565 0x04D0, 0x04D0, 0x04D2, 0x04D2, 0x04D4, 0x04D4, 0x04D6, 0x04D6, | |
7566 0x04D8, 0x04D8, 0x04DA, 0x04DA, 0x04DC, 0x04DC, 0x04DE, 0x04DE, | |
7567 0x04E0, 0x04E0, 0x04E2, 0x04E2, 0x04E4, 0x04E4, 0x04E6, 0x04E6, | |
7568 0x04E8, 0x04E8, 0x04EA, 0x04EA, 0x04EC, 0x04EC, 0x04EE, 0x04EE, | |
7569 0x04F0, 0x04F0, 0x04F2, 0x04F2, 0x04F4, 0x04F4, 0x04F6, 0x04F6, | |
7570 0x04F8, 0x04F8, 0x04FA, 0x04FA, 0x04FC, 0x04FC, 0x04FE, 0x04FE, | |
7571 0x0500, 0x0500, 0x0502, 0x0502, 0x0504, 0x0504, 0x0506, 0x0506, | |
7572 0x0508, 0x0508, 0x050A, 0x050A, 0x050C, 0x050C, 0x050E, 0x050E, | |
7573 0x0510, 0x0510, 0x0512, 0x0512, 0x0514, 0x0514, 0x0516, 0x0516, | |
7574 0x0518, 0x0518, 0x051A, 0x051A, 0x051C, 0x051C, 0x051E, 0x051E, | |
7575 0x0520, 0x0520, 0x0522, 0x0522, 0x0524, 0x0524, 0x0526, 0x0526, | |
7576 0x0528, 0x0528, 0x052A, 0x052A, 0x052C, 0x052C, 0x052E, 0x052E, | |
7577 0x0531, 0x0556, 0x0587, 0x0587, 0x10A0, 0x10C5, 0x10C7, 0x10C7, | |
7578 0x10CD, 0x10CD, 0x13F8, 0x13FD, 0x1C80, 0x1C88, 0x1C90, 0x1CBA, | |
7579 0x1CBD, 0x1CBF, 0x1E00, 0x1E00, 0x1E02, 0x1E02, 0x1E04, 0x1E04, | |
7580 0x1E06, 0x1E06, 0x1E08, 0x1E08, 0x1E0A, 0x1E0A, 0x1E0C, 0x1E0C, | |
7581 0x1E0E, 0x1E0E, 0x1E10, 0x1E10, 0x1E12, 0x1E12, 0x1E14, 0x1E14, | |
7582 0x1E16, 0x1E16, 0x1E18, 0x1E18, 0x1E1A, 0x1E1A, 0x1E1C, 0x1E1C, | |
7583 0x1E1E, 0x1E1E, 0x1E20, 0x1E20, 0x1E22, 0x1E22, 0x1E24, 0x1E24, | |
7584 0x1E26, 0x1E26, 0x1E28, 0x1E28, 0x1E2A, 0x1E2A, 0x1E2C, 0x1E2C, | |
7585 0x1E2E, 0x1E2E, 0x1E30, 0x1E30, 0x1E32, 0x1E32, 0x1E34, 0x1E34, | |
7586 0x1E36, 0x1E36, 0x1E38, 0x1E38, 0x1E3A, 0x1E3A, 0x1E3C, 0x1E3C, | |
7587 0x1E3E, 0x1E3E, 0x1E40, 0x1E40, 0x1E42, 0x1E42, 0x1E44, 0x1E44, | |
7588 0x1E46, 0x1E46, 0x1E48, 0x1E48, 0x1E4A, 0x1E4A, 0x1E4C, 0x1E4C, | |
7589 0x1E4E, 0x1E4E, 0x1E50, 0x1E50, 0x1E52, 0x1E52, 0x1E54, 0x1E54, | |
7590 0x1E56, 0x1E56, 0x1E58, 0x1E58, 0x1E5A, 0x1E5A, 0x1E5C, 0x1E5C, | |
7591 0x1E5E, 0x1E5E, 0x1E60, 0x1E60, 0x1E62, 0x1E62, 0x1E64, 0x1E64, | |
7592 0x1E66, 0x1E66, 0x1E68, 0x1E68, 0x1E6A, 0x1E6A, 0x1E6C, 0x1E6C, | |
7593 0x1E6E, 0x1E6E, 0x1E70, 0x1E70, 0x1E72, 0x1E72, 0x1E74, 0x1E74, | |
7594 0x1E76, 0x1E76, 0x1E78, 0x1E78, 0x1E7A, 0x1E7A, 0x1E7C, 0x1E7C, | |
7595 0x1E7E, 0x1E7E, 0x1E80, 0x1E80, 0x1E82, 0x1E82, 0x1E84, 0x1E84, | |
7596 0x1E86, 0x1E86, 0x1E88, 0x1E88, 0x1E8A, 0x1E8A, 0x1E8C, 0x1E8C, | |
7597 0x1E8E, 0x1E8E, 0x1E90, 0x1E90, 0x1E92, 0x1E92, 0x1E94, 0x1E94, | |
7598 0x1E9A, 0x1E9B, 0x1E9E, 0x1E9E, 0x1EA0, 0x1EA0, 0x1EA2, 0x1EA2, | |
7599 0x1EA4, 0x1EA4, 0x1EA6, 0x1EA6, 0x1EA8, 0x1EA8, 0x1EAA, 0x1EAA, | |
7600 0x1EAC, 0x1EAC, 0x1EAE, 0x1EAE, 0x1EB0, 0x1EB0, 0x1EB2, 0x1EB2, | |
7601 0x1EB4, 0x1EB4, 0x1EB6, 0x1EB6, 0x1EB8, 0x1EB8, 0x1EBA, 0x1EBA, | |
7602 0x1EBC, 0x1EBC, 0x1EBE, 0x1EBE, 0x1EC0, 0x1EC0, 0x1EC2, 0x1EC2, | |
7603 0x1EC4, 0x1EC4, 0x1EC6, 0x1EC6, 0x1EC8, 0x1EC8, 0x1ECA, 0x1ECA, | |
7604 0x1ECC, 0x1ECC, 0x1ECE, 0x1ECE, 0x1ED0, 0x1ED0, 0x1ED2, 0x1ED2, | |
7605 0x1ED4, 0x1ED4, 0x1ED6, 0x1ED6, 0x1ED8, 0x1ED8, 0x1EDA, 0x1EDA, | |
7606 0x1EDC, 0x1EDC, 0x1EDE, 0x1EDE, 0x1EE0, 0x1EE0, 0x1EE2, 0x1EE2, | |
7607 0x1EE4, 0x1EE4, 0x1EE6, 0x1EE6, 0x1EE8, 0x1EE8, 0x1EEA, 0x1EEA, | |
7608 0x1EEC, 0x1EEC, 0x1EEE, 0x1EEE, 0x1EF0, 0x1EF0, 0x1EF2, 0x1EF2, | |
7609 0x1EF4, 0x1EF4, 0x1EF6, 0x1EF6, 0x1EF8, 0x1EF8, 0x1EFA, 0x1EFA, | |
7610 0x1EFC, 0x1EFC, 0x1EFE, 0x1EFE, 0x1F08, 0x1F0F, 0x1F18, 0x1F1D, | |
7611 0x1F28, 0x1F2F, 0x1F38, 0x1F3F, 0x1F48, 0x1F4D, 0x1F59, 0x1F59, | |
7612 0x1F5B, 0x1F5B, 0x1F5D, 0x1F5D, 0x1F5F, 0x1F5F, 0x1F68, 0x1F6F, | |
7613 0x1F80, 0x1FAF, 0x1FB2, 0x1FB4, 0x1FB7, 0x1FBC, 0x1FC2, 0x1FC4, | |
7614 0x1FC7, 0x1FCC, 0x1FD8, 0x1FDB, 0x1FE8, 0x1FEC, 0x1FF2, 0x1FF4, | |
7615 0x1FF7, 0x1FFC, 0x2126, 0x2126, 0x212A, 0x212B, 0x2132, 0x2132, | |
7616 0x2160, 0x216F, 0x2183, 0x2183, 0x24B6, 0x24CF, 0x2C00, 0x2C2F, | |
7617 0x2C60, 0x2C60, 0x2C62, 0x2C64, 0x2C67, 0x2C67, 0x2C69, 0x2C69, | |
7618 0x2C6B, 0x2C6B, 0x2C6D, 0x2C70, 0x2C72, 0x2C72, 0x2C75, 0x2C75, | |
7619 0x2C7E, 0x2C80, 0x2C82, 0x2C82, 0x2C84, 0x2C84, 0x2C86, 0x2C86, | |
7620 0x2C88, 0x2C88, 0x2C8A, 0x2C8A, 0x2C8C, 0x2C8C, 0x2C8E, 0x2C8E, | |
7621 0x2C90, 0x2C90, 0x2C92, 0x2C92, 0x2C94, 0x2C94, 0x2C96, 0x2C96, | |
7622 0x2C98, 0x2C98, 0x2C9A, 0x2C9A, 0x2C9C, 0x2C9C, 0x2C9E, 0x2C9E, | |
7623 0x2CA0, 0x2CA0, 0x2CA2, 0x2CA2, 0x2CA4, 0x2CA4, 0x2CA6, 0x2CA6, | |
7624 0x2CA8, 0x2CA8, 0x2CAA, 0x2CAA, 0x2CAC, 0x2CAC, 0x2CAE, 0x2CAE, | |
7625 0x2CB0, 0x2CB0, 0x2CB2, 0x2CB2, 0x2CB4, 0x2CB4, 0x2CB6, 0x2CB6, | |
7626 0x2CB8, 0x2CB8, 0x2CBA, 0x2CBA, 0x2CBC, 0x2CBC, 0x2CBE, 0x2CBE, | |
7627 0x2CC0, 0x2CC0, 0x2CC2, 0x2CC2, 0x2CC4, 0x2CC4, 0x2CC6, 0x2CC6, | |
7628 0x2CC8, 0x2CC8, 0x2CCA, 0x2CCA, 0x2CCC, 0x2CCC, 0x2CCE, 0x2CCE, | |
7629 0x2CD0, 0x2CD0, 0x2CD2, 0x2CD2, 0x2CD4, 0x2CD4, 0x2CD6, 0x2CD6, | |
7630 0x2CD8, 0x2CD8, 0x2CDA, 0x2CDA, 0x2CDC, 0x2CDC, 0x2CDE, 0x2CDE, | |
7631 0x2CE0, 0x2CE0, 0x2CE2, 0x2CE2, 0x2CEB, 0x2CEB, 0x2CED, 0x2CED, | |
7632 0x2CF2, 0x2CF2, 0xA640, 0xA640, 0xA642, 0xA642, 0xA644, 0xA644, | |
7633 0xA646, 0xA646, 0xA648, 0xA648, 0xA64A, 0xA64A, 0xA64C, 0xA64C, | |
7634 0xA64E, 0xA64E, 0xA650, 0xA650, 0xA652, 0xA652, 0xA654, 0xA654, | |
7635 0xA656, 0xA656, 0xA658, 0xA658, 0xA65A, 0xA65A, 0xA65C, 0xA65C, | |
7636 0xA65E, 0xA65E, 0xA660, 0xA660, 0xA662, 0xA662, 0xA664, 0xA664, | |
7637 0xA666, 0xA666, 0xA668, 0xA668, 0xA66A, 0xA66A, 0xA66C, 0xA66C, | |
7638 0xA680, 0xA680, 0xA682, 0xA682, 0xA684, 0xA684, 0xA686, 0xA686, | |
7639 0xA688, 0xA688, 0xA68A, 0xA68A, 0xA68C, 0xA68C, 0xA68E, 0xA68E, | |
7640 0xA690, 0xA690, 0xA692, 0xA692, 0xA694, 0xA694, 0xA696, 0xA696, | |
7641 0xA698, 0xA698, 0xA69A, 0xA69A, 0xA722, 0xA722, 0xA724, 0xA724, | |
7642 0xA726, 0xA726, 0xA728, 0xA728, 0xA72A, 0xA72A, 0xA72C, 0xA72C, | |
7643 0xA72E, 0xA72E, 0xA732, 0xA732, 0xA734, 0xA734, 0xA736, 0xA736, | |
7644 0xA738, 0xA738, 0xA73A, 0xA73A, 0xA73C, 0xA73C, 0xA73E, 0xA73E, | |
7645 0xA740, 0xA740, 0xA742, 0xA742, 0xA744, 0xA744, 0xA746, 0xA746, | |
7646 0xA748, 0xA748, 0xA74A, 0xA74A, 0xA74C, 0xA74C, 0xA74E, 0xA74E, | |
7647 0xA750, 0xA750, 0xA752, 0xA752, 0xA754, 0xA754, 0xA756, 0xA756, | |
7648 0xA758, 0xA758, 0xA75A, 0xA75A, 0xA75C, 0xA75C, 0xA75E, 0xA75E, | |
7649 0xA760, 0xA760, 0xA762, 0xA762, 0xA764, 0xA764, 0xA766, 0xA766, | |
7650 0xA768, 0xA768, 0xA76A, 0xA76A, 0xA76C, 0xA76C, 0xA76E, 0xA76E, | |
7651 0xA779, 0xA779, 0xA77B, 0xA77B, 0xA77D, 0xA77E, 0xA780, 0xA780, | |
7652 0xA782, 0xA782, 0xA784, 0xA784, 0xA786, 0xA786, 0xA78B, 0xA78B, | |
7653 0xA78D, 0xA78D, 0xA790, 0xA790, 0xA792, 0xA792, 0xA796, 0xA796, | |
7654 0xA798, 0xA798, 0xA79A, 0xA79A, 0xA79C, 0xA79C, 0xA79E, 0xA79E, | |
7655 0xA7A0, 0xA7A0, 0xA7A2, 0xA7A2, 0xA7A4, 0xA7A4, 0xA7A6, 0xA7A6, | |
7656 0xA7A8, 0xA7A8, 0xA7AA, 0xA7AE, 0xA7B0, 0xA7B4, 0xA7B6, 0xA7B6, | |
7657 0xA7B8, 0xA7B8, 0xA7BA, 0xA7BA, 0xA7BC, 0xA7BC, 0xA7BE, 0xA7BE, | |
7658 0xA7C0, 0xA7C0, 0xA7C2, 0xA7C2, 0xA7C4, 0xA7C7, 0xA7C9, 0xA7C9, | |
7659 0xA7D0, 0xA7D0, 0xA7D6, 0xA7D6, 0xA7D8, 0xA7D8, 0xA7F5, 0xA7F5, | |
7660 0xAB70, 0xABBF, 0xFB00, 0xFB06, 0xFB13, 0xFB17, 0xFF21, 0xFF3A, | |
7661 0x10400, 0x10427, 0x104B0, 0x104D3, 0x10570, 0x1057A, 0x1057C, 0x1058A, | |
7662 0x1058C, 0x10592, 0x10594, 0x10595, 0x10C80, 0x10CB2, 0x118A0, 0x118BF, | |
7663 0x16E40, 0x16E5F, 0x1E900, 0x1E921, | |
7664 // #53 (6081+131): bp=Changes_When_Casemapped:CWCM | |
7665 0x0041, 0x005A, 0x0061, 0x007A, 0x00B5, 0x00B5, 0x00C0, 0x00D6, | |
7666 0x00D8, 0x00F6, 0x00F8, 0x0137, 0x0139, 0x018C, 0x018E, 0x019A, | |
7667 0x019C, 0x01A9, 0x01AC, 0x01B9, 0x01BC, 0x01BD, 0x01BF, 0x01BF, | |
7668 0x01C4, 0x0220, 0x0222, 0x0233, 0x023A, 0x0254, 0x0256, 0x0257, | |
7669 0x0259, 0x0259, 0x025B, 0x025C, 0x0260, 0x0261, 0x0263, 0x0263, | |
7670 0x0265, 0x0266, 0x0268, 0x026C, 0x026F, 0x026F, 0x0271, 0x0272, | |
7671 0x0275, 0x0275, 0x027D, 0x027D, 0x0280, 0x0280, 0x0282, 0x0283, | |
7672 0x0287, 0x028C, 0x0292, 0x0292, 0x029D, 0x029E, 0x0345, 0x0345, | |
7673 0x0370, 0x0373, 0x0376, 0x0377, 0x037B, 0x037D, 0x037F, 0x037F, | |
7674 0x0386, 0x0386, 0x0388, 0x038A, 0x038C, 0x038C, 0x038E, 0x03A1, | |
7675 0x03A3, 0x03D1, 0x03D5, 0x03F5, 0x03F7, 0x03FB, 0x03FD, 0x0481, | |
7676 0x048A, 0x052F, 0x0531, 0x0556, 0x0561, 0x0587, 0x10A0, 0x10C5, | |
7677 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x10D0, 0x10FA, 0x10FD, 0x10FF, | |
7678 0x13A0, 0x13F5, 0x13F8, 0x13FD, 0x1C80, 0x1C88, 0x1C90, 0x1CBA, | |
7679 0x1CBD, 0x1CBF, 0x1D79, 0x1D79, 0x1D7D, 0x1D7D, 0x1D8E, 0x1D8E, | |
7680 0x1E00, 0x1E9B, 0x1E9E, 0x1E9E, 0x1EA0, 0x1F15, 0x1F18, 0x1F1D, | |
7681 0x1F20, 0x1F45, 0x1F48, 0x1F4D, 0x1F50, 0x1F57, 0x1F59, 0x1F59, | |
7682 0x1F5B, 0x1F5B, 0x1F5D, 0x1F5D, 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, | |
7683 0x1FB6, 0x1FBC, 0x1FBE, 0x1FBE, 0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, | |
7684 0x1FD0, 0x1FD3, 0x1FD6, 0x1FDB, 0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, | |
7685 0x1FF6, 0x1FFC, 0x2126, 0x2126, 0x212A, 0x212B, 0x2132, 0x2132, | |
7686 0x214E, 0x214E, 0x2160, 0x217F, 0x2183, 0x2184, 0x24B6, 0x24E9, | |
7687 0x2C00, 0x2C70, 0x2C72, 0x2C73, 0x2C75, 0x2C76, 0x2C7E, 0x2CE3, | |
7688 0x2CEB, 0x2CEE, 0x2CF2, 0x2CF3, 0x2D00, 0x2D25, 0x2D27, 0x2D27, | |
7689 0x2D2D, 0x2D2D, 0xA640, 0xA66D, 0xA680, 0xA69B, 0xA722, 0xA72F, | |
7690 0xA732, 0xA76F, 0xA779, 0xA787, 0xA78B, 0xA78D, 0xA790, 0xA794, | |
7691 0xA796, 0xA7AE, 0xA7B0, 0xA7CA, 0xA7D0, 0xA7D1, 0xA7D6, 0xA7D9, | |
7692 0xA7F5, 0xA7F6, 0xAB53, 0xAB53, 0xAB70, 0xABBF, 0xFB00, 0xFB06, | |
7693 0xFB13, 0xFB17, 0xFF21, 0xFF3A, 0xFF41, 0xFF5A, 0x10400, 0x1044F, | |
7694 0x104B0, 0x104D3, 0x104D8, 0x104FB, 0x10570, 0x1057A, 0x1057C, 0x1058A, | |
7695 0x1058C, 0x10592, 0x10594, 0x10595, 0x10597, 0x105A1, 0x105A3, 0x105B1, | |
7696 0x105B3, 0x105B9, 0x105BB, 0x105BC, 0x10C80, 0x10CB2, 0x10CC0, 0x10CF2, | |
7697 0x118A0, 0x118DF, 0x16E40, 0x16E7F, 0x1E900, 0x1E943, | |
7698 // #54 (6212+609): bp=Changes_When_Lowercased:CWL | |
7699 0x0041, 0x005A, 0x00C0, 0x00D6, 0x00D8, 0x00DE, 0x0100, 0x0100, | |
7700 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106, 0x0108, 0x0108, | |
7701 0x010A, 0x010A, 0x010C, 0x010C, 0x010E, 0x010E, 0x0110, 0x0110, | |
7702 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116, 0x0118, 0x0118, | |
7703 0x011A, 0x011A, 0x011C, 0x011C, 0x011E, 0x011E, 0x0120, 0x0120, | |
7704 0x0122, 0x0122, 0x0124, 0x0124, 0x0126, 0x0126, 0x0128, 0x0128, | |
7705 0x012A, 0x012A, 0x012C, 0x012C, 0x012E, 0x012E, 0x0130, 0x0130, | |
7706 0x0132, 0x0132, 0x0134, 0x0134, 0x0136, 0x0136, 0x0139, 0x0139, | |
7707 0x013B, 0x013B, 0x013D, 0x013D, 0x013F, 0x013F, 0x0141, 0x0141, | |
7708 0x0143, 0x0143, 0x0145, 0x0145, 0x0147, 0x0147, 0x014A, 0x014A, | |
7709 0x014C, 0x014C, 0x014E, 0x014E, 0x0150, 0x0150, 0x0152, 0x0152, | |
7710 0x0154, 0x0154, 0x0156, 0x0156, 0x0158, 0x0158, 0x015A, 0x015A, | |
7711 0x015C, 0x015C, 0x015E, 0x015E, 0x0160, 0x0160, 0x0162, 0x0162, | |
7712 0x0164, 0x0164, 0x0166, 0x0166, 0x0168, 0x0168, 0x016A, 0x016A, | |
7713 0x016C, 0x016C, 0x016E, 0x016E, 0x0170, 0x0170, 0x0172, 0x0172, | |
7714 0x0174, 0x0174, 0x0176, 0x0176, 0x0178, 0x0179, 0x017B, 0x017B, | |
7715 0x017D, 0x017D, 0x0181, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187, | |
7716 0x0189, 0x018B, 0x018E, 0x0191, 0x0193, 0x0194, 0x0196, 0x0198, | |
7717 0x019C, 0x019D, 0x019F, 0x01A0, 0x01A2, 0x01A2, 0x01A4, 0x01A4, | |
7718 0x01A6, 0x01A7, 0x01A9, 0x01A9, 0x01AC, 0x01AC, 0x01AE, 0x01AF, | |
7719 0x01B1, 0x01B3, 0x01B5, 0x01B5, 0x01B7, 0x01B8, 0x01BC, 0x01BC, | |
7720 0x01C4, 0x01C5, 0x01C7, 0x01C8, 0x01CA, 0x01CB, 0x01CD, 0x01CD, | |
7721 0x01CF, 0x01CF, 0x01D1, 0x01D1, 0x01D3, 0x01D3, 0x01D5, 0x01D5, | |
7722 0x01D7, 0x01D7, 0x01D9, 0x01D9, 0x01DB, 0x01DB, 0x01DE, 0x01DE, | |
7723 0x01E0, 0x01E0, 0x01E2, 0x01E2, 0x01E4, 0x01E4, 0x01E6, 0x01E6, | |
7724 0x01E8, 0x01E8, 0x01EA, 0x01EA, 0x01EC, 0x01EC, 0x01EE, 0x01EE, | |
7725 0x01F1, 0x01F2, 0x01F4, 0x01F4, 0x01F6, 0x01F8, 0x01FA, 0x01FA, | |
7726 0x01FC, 0x01FC, 0x01FE, 0x01FE, 0x0200, 0x0200, 0x0202, 0x0202, | |
7727 0x0204, 0x0204, 0x0206, 0x0206, 0x0208, 0x0208, 0x020A, 0x020A, | |
7728 0x020C, 0x020C, 0x020E, 0x020E, 0x0210, 0x0210, 0x0212, 0x0212, | |
7729 0x0214, 0x0214, 0x0216, 0x0216, 0x0218, 0x0218, 0x021A, 0x021A, | |
7730 0x021C, 0x021C, 0x021E, 0x021E, 0x0220, 0x0220, 0x0222, 0x0222, | |
7731 0x0224, 0x0224, 0x0226, 0x0226, 0x0228, 0x0228, 0x022A, 0x022A, | |
7732 0x022C, 0x022C, 0x022E, 0x022E, 0x0230, 0x0230, 0x0232, 0x0232, | |
7733 0x023A, 0x023B, 0x023D, 0x023E, 0x0241, 0x0241, 0x0243, 0x0246, | |
7734 0x0248, 0x0248, 0x024A, 0x024A, 0x024C, 0x024C, 0x024E, 0x024E, | |
7735 0x0370, 0x0370, 0x0372, 0x0372, 0x0376, 0x0376, 0x037F, 0x037F, | |
7736 0x0386, 0x0386, 0x0388, 0x038A, 0x038C, 0x038C, 0x038E, 0x038F, | |
7737 0x0391, 0x03A1, 0x03A3, 0x03AB, 0x03CF, 0x03CF, 0x03D8, 0x03D8, | |
7738 0x03DA, 0x03DA, 0x03DC, 0x03DC, 0x03DE, 0x03DE, 0x03E0, 0x03E0, | |
7739 0x03E2, 0x03E2, 0x03E4, 0x03E4, 0x03E6, 0x03E6, 0x03E8, 0x03E8, | |
7740 0x03EA, 0x03EA, 0x03EC, 0x03EC, 0x03EE, 0x03EE, 0x03F4, 0x03F4, | |
7741 0x03F7, 0x03F7, 0x03F9, 0x03FA, 0x03FD, 0x042F, 0x0460, 0x0460, | |
7742 0x0462, 0x0462, 0x0464, 0x0464, 0x0466, 0x0466, 0x0468, 0x0468, | |
7743 0x046A, 0x046A, 0x046C, 0x046C, 0x046E, 0x046E, 0x0470, 0x0470, | |
7744 0x0472, 0x0472, 0x0474, 0x0474, 0x0476, 0x0476, 0x0478, 0x0478, | |
7745 0x047A, 0x047A, 0x047C, 0x047C, 0x047E, 0x047E, 0x0480, 0x0480, | |
7746 0x048A, 0x048A, 0x048C, 0x048C, 0x048E, 0x048E, 0x0490, 0x0490, | |
7747 0x0492, 0x0492, 0x0494, 0x0494, 0x0496, 0x0496, 0x0498, 0x0498, | |
7748 0x049A, 0x049A, 0x049C, 0x049C, 0x049E, 0x049E, 0x04A0, 0x04A0, | |
7749 0x04A2, 0x04A2, 0x04A4, 0x04A4, 0x04A6, 0x04A6, 0x04A8, 0x04A8, | |
7750 0x04AA, 0x04AA, 0x04AC, 0x04AC, 0x04AE, 0x04AE, 0x04B0, 0x04B0, | |
7751 0x04B2, 0x04B2, 0x04B4, 0x04B4, 0x04B6, 0x04B6, 0x04B8, 0x04B8, | |
7752 0x04BA, 0x04BA, 0x04BC, 0x04BC, 0x04BE, 0x04BE, 0x04C0, 0x04C1, | |
7753 0x04C3, 0x04C3, 0x04C5, 0x04C5, 0x04C7, 0x04C7, 0x04C9, 0x04C9, | |
7754 0x04CB, 0x04CB, 0x04CD, 0x04CD, 0x04D0, 0x04D0, 0x04D2, 0x04D2, | |
7755 0x04D4, 0x04D4, 0x04D6, 0x04D6, 0x04D8, 0x04D8, 0x04DA, 0x04DA, | |
7756 0x04DC, 0x04DC, 0x04DE, 0x04DE, 0x04E0, 0x04E0, 0x04E2, 0x04E2, | |
7757 0x04E4, 0x04E4, 0x04E6, 0x04E6, 0x04E8, 0x04E8, 0x04EA, 0x04EA, | |
7758 0x04EC, 0x04EC, 0x04EE, 0x04EE, 0x04F0, 0x04F0, 0x04F2, 0x04F2, | |
7759 0x04F4, 0x04F4, 0x04F6, 0x04F6, 0x04F8, 0x04F8, 0x04FA, 0x04FA, | |
7760 0x04FC, 0x04FC, 0x04FE, 0x04FE, 0x0500, 0x0500, 0x0502, 0x0502, | |
7761 0x0504, 0x0504, 0x0506, 0x0506, 0x0508, 0x0508, 0x050A, 0x050A, | |
7762 0x050C, 0x050C, 0x050E, 0x050E, 0x0510, 0x0510, 0x0512, 0x0512, | |
7763 0x0514, 0x0514, 0x0516, 0x0516, 0x0518, 0x0518, 0x051A, 0x051A, | |
7764 0x051C, 0x051C, 0x051E, 0x051E, 0x0520, 0x0520, 0x0522, 0x0522, | |
7765 0x0524, 0x0524, 0x0526, 0x0526, 0x0528, 0x0528, 0x052A, 0x052A, | |
7766 0x052C, 0x052C, 0x052E, 0x052E, 0x0531, 0x0556, 0x10A0, 0x10C5, | |
7767 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x13A0, 0x13F5, 0x1C90, 0x1CBA, | |
7768 0x1CBD, 0x1CBF, 0x1E00, 0x1E00, 0x1E02, 0x1E02, 0x1E04, 0x1E04, | |
7769 0x1E06, 0x1E06, 0x1E08, 0x1E08, 0x1E0A, 0x1E0A, 0x1E0C, 0x1E0C, | |
7770 0x1E0E, 0x1E0E, 0x1E10, 0x1E10, 0x1E12, 0x1E12, 0x1E14, 0x1E14, | |
7771 0x1E16, 0x1E16, 0x1E18, 0x1E18, 0x1E1A, 0x1E1A, 0x1E1C, 0x1E1C, | |
7772 0x1E1E, 0x1E1E, 0x1E20, 0x1E20, 0x1E22, 0x1E22, 0x1E24, 0x1E24, | |
7773 0x1E26, 0x1E26, 0x1E28, 0x1E28, 0x1E2A, 0x1E2A, 0x1E2C, 0x1E2C, | |
7774 0x1E2E, 0x1E2E, 0x1E30, 0x1E30, 0x1E32, 0x1E32, 0x1E34, 0x1E34, | |
7775 0x1E36, 0x1E36, 0x1E38, 0x1E38, 0x1E3A, 0x1E3A, 0x1E3C, 0x1E3C, | |
7776 0x1E3E, 0x1E3E, 0x1E40, 0x1E40, 0x1E42, 0x1E42, 0x1E44, 0x1E44, | |
7777 0x1E46, 0x1E46, 0x1E48, 0x1E48, 0x1E4A, 0x1E4A, 0x1E4C, 0x1E4C, | |
7778 0x1E4E, 0x1E4E, 0x1E50, 0x1E50, 0x1E52, 0x1E52, 0x1E54, 0x1E54, | |
7779 0x1E56, 0x1E56, 0x1E58, 0x1E58, 0x1E5A, 0x1E5A, 0x1E5C, 0x1E5C, | |
7780 0x1E5E, 0x1E5E, 0x1E60, 0x1E60, 0x1E62, 0x1E62, 0x1E64, 0x1E64, | |
7781 0x1E66, 0x1E66, 0x1E68, 0x1E68, 0x1E6A, 0x1E6A, 0x1E6C, 0x1E6C, | |
7782 0x1E6E, 0x1E6E, 0x1E70, 0x1E70, 0x1E72, 0x1E72, 0x1E74, 0x1E74, | |
7783 0x1E76, 0x1E76, 0x1E78, 0x1E78, 0x1E7A, 0x1E7A, 0x1E7C, 0x1E7C, | |
7784 0x1E7E, 0x1E7E, 0x1E80, 0x1E80, 0x1E82, 0x1E82, 0x1E84, 0x1E84, | |
7785 0x1E86, 0x1E86, 0x1E88, 0x1E88, 0x1E8A, 0x1E8A, 0x1E8C, 0x1E8C, | |
7786 0x1E8E, 0x1E8E, 0x1E90, 0x1E90, 0x1E92, 0x1E92, 0x1E94, 0x1E94, | |
7787 0x1E9E, 0x1E9E, 0x1EA0, 0x1EA0, 0x1EA2, 0x1EA2, 0x1EA4, 0x1EA4, | |
7788 0x1EA6, 0x1EA6, 0x1EA8, 0x1EA8, 0x1EAA, 0x1EAA, 0x1EAC, 0x1EAC, | |
7789 0x1EAE, 0x1EAE, 0x1EB0, 0x1EB0, 0x1EB2, 0x1EB2, 0x1EB4, 0x1EB4, | |
7790 0x1EB6, 0x1EB6, 0x1EB8, 0x1EB8, 0x1EBA, 0x1EBA, 0x1EBC, 0x1EBC, | |
7791 0x1EBE, 0x1EBE, 0x1EC0, 0x1EC0, 0x1EC2, 0x1EC2, 0x1EC4, 0x1EC4, | |
7792 0x1EC6, 0x1EC6, 0x1EC8, 0x1EC8, 0x1ECA, 0x1ECA, 0x1ECC, 0x1ECC, | |
7793 0x1ECE, 0x1ECE, 0x1ED0, 0x1ED0, 0x1ED2, 0x1ED2, 0x1ED4, 0x1ED4, | |
7794 0x1ED6, 0x1ED6, 0x1ED8, 0x1ED8, 0x1EDA, 0x1EDA, 0x1EDC, 0x1EDC, | |
7795 0x1EDE, 0x1EDE, 0x1EE0, 0x1EE0, 0x1EE2, 0x1EE2, 0x1EE4, 0x1EE4, | |
7796 0x1EE6, 0x1EE6, 0x1EE8, 0x1EE8, 0x1EEA, 0x1EEA, 0x1EEC, 0x1EEC, | |
7797 0x1EEE, 0x1EEE, 0x1EF0, 0x1EF0, 0x1EF2, 0x1EF2, 0x1EF4, 0x1EF4, | |
7798 0x1EF6, 0x1EF6, 0x1EF8, 0x1EF8, 0x1EFA, 0x1EFA, 0x1EFC, 0x1EFC, | |
7799 0x1EFE, 0x1EFE, 0x1F08, 0x1F0F, 0x1F18, 0x1F1D, 0x1F28, 0x1F2F, | |
7800 0x1F38, 0x1F3F, 0x1F48, 0x1F4D, 0x1F59, 0x1F59, 0x1F5B, 0x1F5B, | |
7801 0x1F5D, 0x1F5D, 0x1F5F, 0x1F5F, 0x1F68, 0x1F6F, 0x1F88, 0x1F8F, | |
7802 0x1F98, 0x1F9F, 0x1FA8, 0x1FAF, 0x1FB8, 0x1FBC, 0x1FC8, 0x1FCC, | |
7803 0x1FD8, 0x1FDB, 0x1FE8, 0x1FEC, 0x1FF8, 0x1FFC, 0x2126, 0x2126, | |
7804 0x212A, 0x212B, 0x2132, 0x2132, 0x2160, 0x216F, 0x2183, 0x2183, | |
7805 0x24B6, 0x24CF, 0x2C00, 0x2C2F, 0x2C60, 0x2C60, 0x2C62, 0x2C64, | |
7806 0x2C67, 0x2C67, 0x2C69, 0x2C69, 0x2C6B, 0x2C6B, 0x2C6D, 0x2C70, | |
7807 0x2C72, 0x2C72, 0x2C75, 0x2C75, 0x2C7E, 0x2C80, 0x2C82, 0x2C82, | |
7808 0x2C84, 0x2C84, 0x2C86, 0x2C86, 0x2C88, 0x2C88, 0x2C8A, 0x2C8A, | |
7809 0x2C8C, 0x2C8C, 0x2C8E, 0x2C8E, 0x2C90, 0x2C90, 0x2C92, 0x2C92, | |
7810 0x2C94, 0x2C94, 0x2C96, 0x2C96, 0x2C98, 0x2C98, 0x2C9A, 0x2C9A, | |
7811 0x2C9C, 0x2C9C, 0x2C9E, 0x2C9E, 0x2CA0, 0x2CA0, 0x2CA2, 0x2CA2, | |
7812 0x2CA4, 0x2CA4, 0x2CA6, 0x2CA6, 0x2CA8, 0x2CA8, 0x2CAA, 0x2CAA, | |
7813 0x2CAC, 0x2CAC, 0x2CAE, 0x2CAE, 0x2CB0, 0x2CB0, 0x2CB2, 0x2CB2, | |
7814 0x2CB4, 0x2CB4, 0x2CB6, 0x2CB6, 0x2CB8, 0x2CB8, 0x2CBA, 0x2CBA, | |
7815 0x2CBC, 0x2CBC, 0x2CBE, 0x2CBE, 0x2CC0, 0x2CC0, 0x2CC2, 0x2CC2, | |
7816 0x2CC4, 0x2CC4, 0x2CC6, 0x2CC6, 0x2CC8, 0x2CC8, 0x2CCA, 0x2CCA, | |
7817 0x2CCC, 0x2CCC, 0x2CCE, 0x2CCE, 0x2CD0, 0x2CD0, 0x2CD2, 0x2CD2, | |
7818 0x2CD4, 0x2CD4, 0x2CD6, 0x2CD6, 0x2CD8, 0x2CD8, 0x2CDA, 0x2CDA, | |
7819 0x2CDC, 0x2CDC, 0x2CDE, 0x2CDE, 0x2CE0, 0x2CE0, 0x2CE2, 0x2CE2, | |
7820 0x2CEB, 0x2CEB, 0x2CED, 0x2CED, 0x2CF2, 0x2CF2, 0xA640, 0xA640, | |
7821 0xA642, 0xA642, 0xA644, 0xA644, 0xA646, 0xA646, 0xA648, 0xA648, | |
7822 0xA64A, 0xA64A, 0xA64C, 0xA64C, 0xA64E, 0xA64E, 0xA650, 0xA650, | |
7823 0xA652, 0xA652, 0xA654, 0xA654, 0xA656, 0xA656, 0xA658, 0xA658, | |
7824 0xA65A, 0xA65A, 0xA65C, 0xA65C, 0xA65E, 0xA65E, 0xA660, 0xA660, | |
7825 0xA662, 0xA662, 0xA664, 0xA664, 0xA666, 0xA666, 0xA668, 0xA668, | |
7826 0xA66A, 0xA66A, 0xA66C, 0xA66C, 0xA680, 0xA680, 0xA682, 0xA682, | |
7827 0xA684, 0xA684, 0xA686, 0xA686, 0xA688, 0xA688, 0xA68A, 0xA68A, | |
7828 0xA68C, 0xA68C, 0xA68E, 0xA68E, 0xA690, 0xA690, 0xA692, 0xA692, | |
7829 0xA694, 0xA694, 0xA696, 0xA696, 0xA698, 0xA698, 0xA69A, 0xA69A, | |
7830 0xA722, 0xA722, 0xA724, 0xA724, 0xA726, 0xA726, 0xA728, 0xA728, | |
7831 0xA72A, 0xA72A, 0xA72C, 0xA72C, 0xA72E, 0xA72E, 0xA732, 0xA732, | |
7832 0xA734, 0xA734, 0xA736, 0xA736, 0xA738, 0xA738, 0xA73A, 0xA73A, | |
7833 0xA73C, 0xA73C, 0xA73E, 0xA73E, 0xA740, 0xA740, 0xA742, 0xA742, | |
7834 0xA744, 0xA744, 0xA746, 0xA746, 0xA748, 0xA748, 0xA74A, 0xA74A, | |
7835 0xA74C, 0xA74C, 0xA74E, 0xA74E, 0xA750, 0xA750, 0xA752, 0xA752, | |
7836 0xA754, 0xA754, 0xA756, 0xA756, 0xA758, 0xA758, 0xA75A, 0xA75A, | |
7837 0xA75C, 0xA75C, 0xA75E, 0xA75E, 0xA760, 0xA760, 0xA762, 0xA762, | |
7838 0xA764, 0xA764, 0xA766, 0xA766, 0xA768, 0xA768, 0xA76A, 0xA76A, | |
7839 0xA76C, 0xA76C, 0xA76E, 0xA76E, 0xA779, 0xA779, 0xA77B, 0xA77B, | |
7840 0xA77D, 0xA77E, 0xA780, 0xA780, 0xA782, 0xA782, 0xA784, 0xA784, | |
7841 0xA786, 0xA786, 0xA78B, 0xA78B, 0xA78D, 0xA78D, 0xA790, 0xA790, | |
7842 0xA792, 0xA792, 0xA796, 0xA796, 0xA798, 0xA798, 0xA79A, 0xA79A, | |
7843 0xA79C, 0xA79C, 0xA79E, 0xA79E, 0xA7A0, 0xA7A0, 0xA7A2, 0xA7A2, | |
7844 0xA7A4, 0xA7A4, 0xA7A6, 0xA7A6, 0xA7A8, 0xA7A8, 0xA7AA, 0xA7AE, | |
7845 0xA7B0, 0xA7B4, 0xA7B6, 0xA7B6, 0xA7B8, 0xA7B8, 0xA7BA, 0xA7BA, | |
7846 0xA7BC, 0xA7BC, 0xA7BE, 0xA7BE, 0xA7C0, 0xA7C0, 0xA7C2, 0xA7C2, | |
7847 0xA7C4, 0xA7C7, 0xA7C9, 0xA7C9, 0xA7D0, 0xA7D0, 0xA7D6, 0xA7D6, | |
7848 0xA7D8, 0xA7D8, 0xA7F5, 0xA7F5, 0xFF21, 0xFF3A, 0x10400, 0x10427, | |
7849 0x104B0, 0x104D3, 0x10570, 0x1057A, 0x1057C, 0x1058A, 0x1058C, 0x10592, | |
7850 0x10594, 0x10595, 0x10C80, 0x10CB2, 0x118A0, 0x118BF, 0x16E40, 0x16E5F, | |
7851 0x1E900, 0x1E921, | |
7852 // #55 (6821+839): bp=Changes_When_NFKC_Casefolded:CWKCF | |
7853 0x0041, 0x005A, 0x00A0, 0x00A0, 0x00A8, 0x00A8, 0x00AA, 0x00AA, | |
7854 0x00AD, 0x00AD, 0x00AF, 0x00AF, 0x00B2, 0x00B5, 0x00B8, 0x00BA, | |
7855 0x00BC, 0x00BE, 0x00C0, 0x00D6, 0x00D8, 0x00DF, 0x0100, 0x0100, | |
7856 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106, 0x0108, 0x0108, | |
7857 0x010A, 0x010A, 0x010C, 0x010C, 0x010E, 0x010E, 0x0110, 0x0110, | |
7858 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116, 0x0118, 0x0118, | |
7859 0x011A, 0x011A, 0x011C, 0x011C, 0x011E, 0x011E, 0x0120, 0x0120, | |
7860 0x0122, 0x0122, 0x0124, 0x0124, 0x0126, 0x0126, 0x0128, 0x0128, | |
7861 0x012A, 0x012A, 0x012C, 0x012C, 0x012E, 0x012E, 0x0130, 0x0130, | |
7862 0x0132, 0x0134, 0x0136, 0x0136, 0x0139, 0x0139, 0x013B, 0x013B, | |
7863 0x013D, 0x013D, 0x013F, 0x0141, 0x0143, 0x0143, 0x0145, 0x0145, | |
7864 0x0147, 0x0147, 0x0149, 0x014A, 0x014C, 0x014C, 0x014E, 0x014E, | |
7865 0x0150, 0x0150, 0x0152, 0x0152, 0x0154, 0x0154, 0x0156, 0x0156, | |
7866 0x0158, 0x0158, 0x015A, 0x015A, 0x015C, 0x015C, 0x015E, 0x015E, | |
7867 0x0160, 0x0160, 0x0162, 0x0162, 0x0164, 0x0164, 0x0166, 0x0166, | |
7868 0x0168, 0x0168, 0x016A, 0x016A, 0x016C, 0x016C, 0x016E, 0x016E, | |
7869 0x0170, 0x0170, 0x0172, 0x0172, 0x0174, 0x0174, 0x0176, 0x0176, | |
7870 0x0178, 0x0179, 0x017B, 0x017B, 0x017D, 0x017D, 0x017F, 0x017F, | |
7871 0x0181, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187, 0x0189, 0x018B, | |
7872 0x018E, 0x0191, 0x0193, 0x0194, 0x0196, 0x0198, 0x019C, 0x019D, | |
7873 0x019F, 0x01A0, 0x01A2, 0x01A2, 0x01A4, 0x01A4, 0x01A6, 0x01A7, | |
7874 0x01A9, 0x01A9, 0x01AC, 0x01AC, 0x01AE, 0x01AF, 0x01B1, 0x01B3, | |
7875 0x01B5, 0x01B5, 0x01B7, 0x01B8, 0x01BC, 0x01BC, 0x01C4, 0x01CD, | |
7876 0x01CF, 0x01CF, 0x01D1, 0x01D1, 0x01D3, 0x01D3, 0x01D5, 0x01D5, | |
7877 0x01D7, 0x01D7, 0x01D9, 0x01D9, 0x01DB, 0x01DB, 0x01DE, 0x01DE, | |
7878 0x01E0, 0x01E0, 0x01E2, 0x01E2, 0x01E4, 0x01E4, 0x01E6, 0x01E6, | |
7879 0x01E8, 0x01E8, 0x01EA, 0x01EA, 0x01EC, 0x01EC, 0x01EE, 0x01EE, | |
7880 0x01F1, 0x01F4, 0x01F6, 0x01F8, 0x01FA, 0x01FA, 0x01FC, 0x01FC, | |
7881 0x01FE, 0x01FE, 0x0200, 0x0200, 0x0202, 0x0202, 0x0204, 0x0204, | |
7882 0x0206, 0x0206, 0x0208, 0x0208, 0x020A, 0x020A, 0x020C, 0x020C, | |
7883 0x020E, 0x020E, 0x0210, 0x0210, 0x0212, 0x0212, 0x0214, 0x0214, | |
7884 0x0216, 0x0216, 0x0218, 0x0218, 0x021A, 0x021A, 0x021C, 0x021C, | |
7885 0x021E, 0x021E, 0x0220, 0x0220, 0x0222, 0x0222, 0x0224, 0x0224, | |
7886 0x0226, 0x0226, 0x0228, 0x0228, 0x022A, 0x022A, 0x022C, 0x022C, | |
7887 0x022E, 0x022E, 0x0230, 0x0230, 0x0232, 0x0232, 0x023A, 0x023B, | |
7888 0x023D, 0x023E, 0x0241, 0x0241, 0x0243, 0x0246, 0x0248, 0x0248, | |
7889 0x024A, 0x024A, 0x024C, 0x024C, 0x024E, 0x024E, 0x02B0, 0x02B8, | |
7890 0x02D8, 0x02DD, 0x02E0, 0x02E4, 0x0340, 0x0341, 0x0343, 0x0345, | |
7891 0x034F, 0x034F, 0x0370, 0x0370, 0x0372, 0x0372, 0x0374, 0x0374, | |
7892 0x0376, 0x0376, 0x037A, 0x037A, 0x037E, 0x037F, 0x0384, 0x038A, | |
7893 0x038C, 0x038C, 0x038E, 0x038F, 0x0391, 0x03A1, 0x03A3, 0x03AB, | |
7894 0x03C2, 0x03C2, 0x03CF, 0x03D6, 0x03D8, 0x03D8, 0x03DA, 0x03DA, | |
7895 0x03DC, 0x03DC, 0x03DE, 0x03DE, 0x03E0, 0x03E0, 0x03E2, 0x03E2, | |
7896 0x03E4, 0x03E4, 0x03E6, 0x03E6, 0x03E8, 0x03E8, 0x03EA, 0x03EA, | |
7897 0x03EC, 0x03EC, 0x03EE, 0x03EE, 0x03F0, 0x03F2, 0x03F4, 0x03F5, | |
7898 0x03F7, 0x03F7, 0x03F9, 0x03FA, 0x03FD, 0x042F, 0x0460, 0x0460, | |
7899 0x0462, 0x0462, 0x0464, 0x0464, 0x0466, 0x0466, 0x0468, 0x0468, | |
7900 0x046A, 0x046A, 0x046C, 0x046C, 0x046E, 0x046E, 0x0470, 0x0470, | |
7901 0x0472, 0x0472, 0x0474, 0x0474, 0x0476, 0x0476, 0x0478, 0x0478, | |
7902 0x047A, 0x047A, 0x047C, 0x047C, 0x047E, 0x047E, 0x0480, 0x0480, | |
7903 0x048A, 0x048A, 0x048C, 0x048C, 0x048E, 0x048E, 0x0490, 0x0490, | |
7904 0x0492, 0x0492, 0x0494, 0x0494, 0x0496, 0x0496, 0x0498, 0x0498, | |
7905 0x049A, 0x049A, 0x049C, 0x049C, 0x049E, 0x049E, 0x04A0, 0x04A0, | |
7906 0x04A2, 0x04A2, 0x04A4, 0x04A4, 0x04A6, 0x04A6, 0x04A8, 0x04A8, | |
7907 0x04AA, 0x04AA, 0x04AC, 0x04AC, 0x04AE, 0x04AE, 0x04B0, 0x04B0, | |
7908 0x04B2, 0x04B2, 0x04B4, 0x04B4, 0x04B6, 0x04B6, 0x04B8, 0x04B8, | |
7909 0x04BA, 0x04BA, 0x04BC, 0x04BC, 0x04BE, 0x04BE, 0x04C0, 0x04C1, | |
7910 0x04C3, 0x04C3, 0x04C5, 0x04C5, 0x04C7, 0x04C7, 0x04C9, 0x04C9, | |
7911 0x04CB, 0x04CB, 0x04CD, 0x04CD, 0x04D0, 0x04D0, 0x04D2, 0x04D2, | |
7912 0x04D4, 0x04D4, 0x04D6, 0x04D6, 0x04D8, 0x04D8, 0x04DA, 0x04DA, | |
7913 0x04DC, 0x04DC, 0x04DE, 0x04DE, 0x04E0, 0x04E0, 0x04E2, 0x04E2, | |
7914 0x04E4, 0x04E4, 0x04E6, 0x04E6, 0x04E8, 0x04E8, 0x04EA, 0x04EA, | |
7915 0x04EC, 0x04EC, 0x04EE, 0x04EE, 0x04F0, 0x04F0, 0x04F2, 0x04F2, | |
7916 0x04F4, 0x04F4, 0x04F6, 0x04F6, 0x04F8, 0x04F8, 0x04FA, 0x04FA, | |
7917 0x04FC, 0x04FC, 0x04FE, 0x04FE, 0x0500, 0x0500, 0x0502, 0x0502, | |
7918 0x0504, 0x0504, 0x0506, 0x0506, 0x0508, 0x0508, 0x050A, 0x050A, | |
7919 0x050C, 0x050C, 0x050E, 0x050E, 0x0510, 0x0510, 0x0512, 0x0512, | |
7920 0x0514, 0x0514, 0x0516, 0x0516, 0x0518, 0x0518, 0x051A, 0x051A, | |
7921 0x051C, 0x051C, 0x051E, 0x051E, 0x0520, 0x0520, 0x0522, 0x0522, | |
7922 0x0524, 0x0524, 0x0526, 0x0526, 0x0528, 0x0528, 0x052A, 0x052A, | |
7923 0x052C, 0x052C, 0x052E, 0x052E, 0x0531, 0x0556, 0x0587, 0x0587, | |
7924 0x061C, 0x061C, 0x0675, 0x0678, 0x0958, 0x095F, 0x09DC, 0x09DD, | |
7925 0x09DF, 0x09DF, 0x0A33, 0x0A33, 0x0A36, 0x0A36, 0x0A59, 0x0A5B, | |
7926 0x0A5E, 0x0A5E, 0x0B5C, 0x0B5D, 0x0E33, 0x0E33, 0x0EB3, 0x0EB3, | |
7927 0x0EDC, 0x0EDD, 0x0F0C, 0x0F0C, 0x0F43, 0x0F43, 0x0F4D, 0x0F4D, | |
7928 0x0F52, 0x0F52, 0x0F57, 0x0F57, 0x0F5C, 0x0F5C, 0x0F69, 0x0F69, | |
7929 0x0F73, 0x0F73, 0x0F75, 0x0F79, 0x0F81, 0x0F81, 0x0F93, 0x0F93, | |
7930 0x0F9D, 0x0F9D, 0x0FA2, 0x0FA2, 0x0FA7, 0x0FA7, 0x0FAC, 0x0FAC, | |
7931 0x0FB9, 0x0FB9, 0x10A0, 0x10C5, 0x10C7, 0x10C7, 0x10CD, 0x10CD, | |
7932 0x10FC, 0x10FC, 0x115F, 0x1160, 0x13F8, 0x13FD, 0x17B4, 0x17B5, | |
7933 0x180B, 0x180F, 0x1C80, 0x1C88, 0x1C90, 0x1CBA, 0x1CBD, 0x1CBF, | |
7934 0x1D2C, 0x1D2E, 0x1D30, 0x1D3A, 0x1D3C, 0x1D4D, 0x1D4F, 0x1D6A, | |
7935 0x1D78, 0x1D78, 0x1D9B, 0x1DBF, 0x1E00, 0x1E00, 0x1E02, 0x1E02, | |
7936 0x1E04, 0x1E04, 0x1E06, 0x1E06, 0x1E08, 0x1E08, 0x1E0A, 0x1E0A, | |
7937 0x1E0C, 0x1E0C, 0x1E0E, 0x1E0E, 0x1E10, 0x1E10, 0x1E12, 0x1E12, | |
7938 0x1E14, 0x1E14, 0x1E16, 0x1E16, 0x1E18, 0x1E18, 0x1E1A, 0x1E1A, | |
7939 0x1E1C, 0x1E1C, 0x1E1E, 0x1E1E, 0x1E20, 0x1E20, 0x1E22, 0x1E22, | |
7940 0x1E24, 0x1E24, 0x1E26, 0x1E26, 0x1E28, 0x1E28, 0x1E2A, 0x1E2A, | |
7941 0x1E2C, 0x1E2C, 0x1E2E, 0x1E2E, 0x1E30, 0x1E30, 0x1E32, 0x1E32, | |
7942 0x1E34, 0x1E34, 0x1E36, 0x1E36, 0x1E38, 0x1E38, 0x1E3A, 0x1E3A, | |
7943 0x1E3C, 0x1E3C, 0x1E3E, 0x1E3E, 0x1E40, 0x1E40, 0x1E42, 0x1E42, | |
7944 0x1E44, 0x1E44, 0x1E46, 0x1E46, 0x1E48, 0x1E48, 0x1E4A, 0x1E4A, | |
7945 0x1E4C, 0x1E4C, 0x1E4E, 0x1E4E, 0x1E50, 0x1E50, 0x1E52, 0x1E52, | |
7946 0x1E54, 0x1E54, 0x1E56, 0x1E56, 0x1E58, 0x1E58, 0x1E5A, 0x1E5A, | |
7947 0x1E5C, 0x1E5C, 0x1E5E, 0x1E5E, 0x1E60, 0x1E60, 0x1E62, 0x1E62, | |
7948 0x1E64, 0x1E64, 0x1E66, 0x1E66, 0x1E68, 0x1E68, 0x1E6A, 0x1E6A, | |
7949 0x1E6C, 0x1E6C, 0x1E6E, 0x1E6E, 0x1E70, 0x1E70, 0x1E72, 0x1E72, | |
7950 0x1E74, 0x1E74, 0x1E76, 0x1E76, 0x1E78, 0x1E78, 0x1E7A, 0x1E7A, | |
7951 0x1E7C, 0x1E7C, 0x1E7E, 0x1E7E, 0x1E80, 0x1E80, 0x1E82, 0x1E82, | |
7952 0x1E84, 0x1E84, 0x1E86, 0x1E86, 0x1E88, 0x1E88, 0x1E8A, 0x1E8A, | |
7953 0x1E8C, 0x1E8C, 0x1E8E, 0x1E8E, 0x1E90, 0x1E90, 0x1E92, 0x1E92, | |
7954 0x1E94, 0x1E94, 0x1E9A, 0x1E9B, 0x1E9E, 0x1E9E, 0x1EA0, 0x1EA0, | |
7955 0x1EA2, 0x1EA2, 0x1EA4, 0x1EA4, 0x1EA6, 0x1EA6, 0x1EA8, 0x1EA8, | |
7956 0x1EAA, 0x1EAA, 0x1EAC, 0x1EAC, 0x1EAE, 0x1EAE, 0x1EB0, 0x1EB0, | |
7957 0x1EB2, 0x1EB2, 0x1EB4, 0x1EB4, 0x1EB6, 0x1EB6, 0x1EB8, 0x1EB8, | |
7958 0x1EBA, 0x1EBA, 0x1EBC, 0x1EBC, 0x1EBE, 0x1EBE, 0x1EC0, 0x1EC0, | |
7959 0x1EC2, 0x1EC2, 0x1EC4, 0x1EC4, 0x1EC6, 0x1EC6, 0x1EC8, 0x1EC8, | |
7960 0x1ECA, 0x1ECA, 0x1ECC, 0x1ECC, 0x1ECE, 0x1ECE, 0x1ED0, 0x1ED0, | |
7961 0x1ED2, 0x1ED2, 0x1ED4, 0x1ED4, 0x1ED6, 0x1ED6, 0x1ED8, 0x1ED8, | |
7962 0x1EDA, 0x1EDA, 0x1EDC, 0x1EDC, 0x1EDE, 0x1EDE, 0x1EE0, 0x1EE0, | |
7963 0x1EE2, 0x1EE2, 0x1EE4, 0x1EE4, 0x1EE6, 0x1EE6, 0x1EE8, 0x1EE8, | |
7964 0x1EEA, 0x1EEA, 0x1EEC, 0x1EEC, 0x1EEE, 0x1EEE, 0x1EF0, 0x1EF0, | |
7965 0x1EF2, 0x1EF2, 0x1EF4, 0x1EF4, 0x1EF6, 0x1EF6, 0x1EF8, 0x1EF8, | |
7966 0x1EFA, 0x1EFA, 0x1EFC, 0x1EFC, 0x1EFE, 0x1EFE, 0x1F08, 0x1F0F, | |
7967 0x1F18, 0x1F1D, 0x1F28, 0x1F2F, 0x1F38, 0x1F3F, 0x1F48, 0x1F4D, | |
7968 0x1F59, 0x1F59, 0x1F5B, 0x1F5B, 0x1F5D, 0x1F5D, 0x1F5F, 0x1F5F, | |
7969 0x1F68, 0x1F6F, 0x1F71, 0x1F71, 0x1F73, 0x1F73, 0x1F75, 0x1F75, | |
7970 0x1F77, 0x1F77, 0x1F79, 0x1F79, 0x1F7B, 0x1F7B, 0x1F7D, 0x1F7D, | |
7971 0x1F80, 0x1FAF, 0x1FB2, 0x1FB4, 0x1FB7, 0x1FC4, 0x1FC7, 0x1FCF, | |
7972 0x1FD3, 0x1FD3, 0x1FD8, 0x1FDB, 0x1FDD, 0x1FDF, 0x1FE3, 0x1FE3, | |
7973 0x1FE8, 0x1FEF, 0x1FF2, 0x1FF4, 0x1FF7, 0x1FFE, 0x2000, 0x200F, | |
7974 0x2011, 0x2011, 0x2017, 0x2017, 0x2024, 0x2026, 0x202A, 0x202F, | |
7975 0x2033, 0x2034, 0x2036, 0x2037, 0x203C, 0x203C, 0x203E, 0x203E, | |
7976 0x2047, 0x2049, 0x2057, 0x2057, 0x205F, 0x2071, 0x2074, 0x208E, | |
7977 0x2090, 0x209C, 0x20A8, 0x20A8, 0x2100, 0x2103, 0x2105, 0x2107, | |
7978 0x2109, 0x2113, 0x2115, 0x2116, 0x2119, 0x211D, 0x2120, 0x2122, | |
7979 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, 0x212A, 0x212D, | |
7980 0x212F, 0x2139, 0x213B, 0x2140, 0x2145, 0x2149, 0x2150, 0x217F, | |
7981 0x2183, 0x2183, 0x2189, 0x2189, 0x222C, 0x222D, 0x222F, 0x2230, | |
7982 0x2329, 0x232A, 0x2460, 0x24EA, 0x2A0C, 0x2A0C, 0x2A74, 0x2A76, | |
7983 0x2ADC, 0x2ADC, 0x2C00, 0x2C2F, 0x2C60, 0x2C60, 0x2C62, 0x2C64, | |
7984 0x2C67, 0x2C67, 0x2C69, 0x2C69, 0x2C6B, 0x2C6B, 0x2C6D, 0x2C70, | |
7985 0x2C72, 0x2C72, 0x2C75, 0x2C75, 0x2C7C, 0x2C80, 0x2C82, 0x2C82, | |
7986 0x2C84, 0x2C84, 0x2C86, 0x2C86, 0x2C88, 0x2C88, 0x2C8A, 0x2C8A, | |
7987 0x2C8C, 0x2C8C, 0x2C8E, 0x2C8E, 0x2C90, 0x2C90, 0x2C92, 0x2C92, | |
7988 0x2C94, 0x2C94, 0x2C96, 0x2C96, 0x2C98, 0x2C98, 0x2C9A, 0x2C9A, | |
7989 0x2C9C, 0x2C9C, 0x2C9E, 0x2C9E, 0x2CA0, 0x2CA0, 0x2CA2, 0x2CA2, | |
7990 0x2CA4, 0x2CA4, 0x2CA6, 0x2CA6, 0x2CA8, 0x2CA8, 0x2CAA, 0x2CAA, | |
7991 0x2CAC, 0x2CAC, 0x2CAE, 0x2CAE, 0x2CB0, 0x2CB0, 0x2CB2, 0x2CB2, | |
7992 0x2CB4, 0x2CB4, 0x2CB6, 0x2CB6, 0x2CB8, 0x2CB8, 0x2CBA, 0x2CBA, | |
7993 0x2CBC, 0x2CBC, 0x2CBE, 0x2CBE, 0x2CC0, 0x2CC0, 0x2CC2, 0x2CC2, | |
7994 0x2CC4, 0x2CC4, 0x2CC6, 0x2CC6, 0x2CC8, 0x2CC8, 0x2CCA, 0x2CCA, | |
7995 0x2CCC, 0x2CCC, 0x2CCE, 0x2CCE, 0x2CD0, 0x2CD0, 0x2CD2, 0x2CD2, | |
7996 0x2CD4, 0x2CD4, 0x2CD6, 0x2CD6, 0x2CD8, 0x2CD8, 0x2CDA, 0x2CDA, | |
7997 0x2CDC, 0x2CDC, 0x2CDE, 0x2CDE, 0x2CE0, 0x2CE0, 0x2CE2, 0x2CE2, | |
7998 0x2CEB, 0x2CEB, 0x2CED, 0x2CED, 0x2CF2, 0x2CF2, 0x2D6F, 0x2D6F, | |
7999 0x2E9F, 0x2E9F, 0x2EF3, 0x2EF3, 0x2F00, 0x2FD5, 0x3000, 0x3000, | |
8000 0x3036, 0x3036, 0x3038, 0x303A, 0x309B, 0x309C, 0x309F, 0x309F, | |
8001 0x30FF, 0x30FF, 0x3131, 0x318E, 0x3192, 0x319F, 0x3200, 0x321E, | |
8002 0x3220, 0x3247, 0x3250, 0x327E, 0x3280, 0x33FF, 0xA640, 0xA640, | |
8003 0xA642, 0xA642, 0xA644, 0xA644, 0xA646, 0xA646, 0xA648, 0xA648, | |
8004 0xA64A, 0xA64A, 0xA64C, 0xA64C, 0xA64E, 0xA64E, 0xA650, 0xA650, | |
8005 0xA652, 0xA652, 0xA654, 0xA654, 0xA656, 0xA656, 0xA658, 0xA658, | |
8006 0xA65A, 0xA65A, 0xA65C, 0xA65C, 0xA65E, 0xA65E, 0xA660, 0xA660, | |
8007 0xA662, 0xA662, 0xA664, 0xA664, 0xA666, 0xA666, 0xA668, 0xA668, | |
8008 0xA66A, 0xA66A, 0xA66C, 0xA66C, 0xA680, 0xA680, 0xA682, 0xA682, | |
8009 0xA684, 0xA684, 0xA686, 0xA686, 0xA688, 0xA688, 0xA68A, 0xA68A, | |
8010 0xA68C, 0xA68C, 0xA68E, 0xA68E, 0xA690, 0xA690, 0xA692, 0xA692, | |
8011 0xA694, 0xA694, 0xA696, 0xA696, 0xA698, 0xA698, 0xA69A, 0xA69A, | |
8012 0xA69C, 0xA69D, 0xA722, 0xA722, 0xA724, 0xA724, 0xA726, 0xA726, | |
8013 0xA728, 0xA728, 0xA72A, 0xA72A, 0xA72C, 0xA72C, 0xA72E, 0xA72E, | |
8014 0xA732, 0xA732, 0xA734, 0xA734, 0xA736, 0xA736, 0xA738, 0xA738, | |
8015 0xA73A, 0xA73A, 0xA73C, 0xA73C, 0xA73E, 0xA73E, 0xA740, 0xA740, | |
8016 0xA742, 0xA742, 0xA744, 0xA744, 0xA746, 0xA746, 0xA748, 0xA748, | |
8017 0xA74A, 0xA74A, 0xA74C, 0xA74C, 0xA74E, 0xA74E, 0xA750, 0xA750, | |
8018 0xA752, 0xA752, 0xA754, 0xA754, 0xA756, 0xA756, 0xA758, 0xA758, | |
8019 0xA75A, 0xA75A, 0xA75C, 0xA75C, 0xA75E, 0xA75E, 0xA760, 0xA760, | |
8020 0xA762, 0xA762, 0xA764, 0xA764, 0xA766, 0xA766, 0xA768, 0xA768, | |
8021 0xA76A, 0xA76A, 0xA76C, 0xA76C, 0xA76E, 0xA76E, 0xA770, 0xA770, | |
8022 0xA779, 0xA779, 0xA77B, 0xA77B, 0xA77D, 0xA77E, 0xA780, 0xA780, | |
8023 0xA782, 0xA782, 0xA784, 0xA784, 0xA786, 0xA786, 0xA78B, 0xA78B, | |
8024 0xA78D, 0xA78D, 0xA790, 0xA790, 0xA792, 0xA792, 0xA796, 0xA796, | |
8025 0xA798, 0xA798, 0xA79A, 0xA79A, 0xA79C, 0xA79C, 0xA79E, 0xA79E, | |
8026 0xA7A0, 0xA7A0, 0xA7A2, 0xA7A2, 0xA7A4, 0xA7A4, 0xA7A6, 0xA7A6, | |
8027 0xA7A8, 0xA7A8, 0xA7AA, 0xA7AE, 0xA7B0, 0xA7B4, 0xA7B6, 0xA7B6, | |
8028 0xA7B8, 0xA7B8, 0xA7BA, 0xA7BA, 0xA7BC, 0xA7BC, 0xA7BE, 0xA7BE, | |
8029 0xA7C0, 0xA7C0, 0xA7C2, 0xA7C2, 0xA7C4, 0xA7C7, 0xA7C9, 0xA7C9, | |
8030 0xA7D0, 0xA7D0, 0xA7D6, 0xA7D6, 0xA7D8, 0xA7D8, 0xA7F2, 0xA7F5, | |
8031 0xA7F8, 0xA7F9, 0xAB5C, 0xAB5F, 0xAB69, 0xAB69, 0xAB70, 0xABBF, | |
8032 0xF900, 0xFA0D, 0xFA10, 0xFA10, 0xFA12, 0xFA12, 0xFA15, 0xFA1E, | |
8033 0xFA20, 0xFA20, 0xFA22, 0xFA22, 0xFA25, 0xFA26, 0xFA2A, 0xFA6D, | |
8034 0xFA70, 0xFAD9, 0xFB00, 0xFB06, 0xFB13, 0xFB17, 0xFB1D, 0xFB1D, | |
8035 0xFB1F, 0xFB36, 0xFB38, 0xFB3C, 0xFB3E, 0xFB3E, 0xFB40, 0xFB41, | |
8036 0xFB43, 0xFB44, 0xFB46, 0xFBB1, 0xFBD3, 0xFD3D, 0xFD50, 0xFD8F, | |
8037 0xFD92, 0xFDC7, 0xFDF0, 0xFDFC, 0xFE00, 0xFE19, 0xFE30, 0xFE44, | |
8038 0xFE47, 0xFE52, 0xFE54, 0xFE66, 0xFE68, 0xFE6B, 0xFE70, 0xFE72, | |
8039 0xFE74, 0xFE74, 0xFE76, 0xFEFC, 0xFEFF, 0xFEFF, 0xFF01, 0xFFBE, | |
8040 0xFFC2, 0xFFC7, 0xFFCA, 0xFFCF, 0xFFD2, 0xFFD7, 0xFFDA, 0xFFDC, | |
8041 0xFFE0, 0xFFE6, 0xFFE8, 0xFFEE, 0xFFF0, 0xFFF8, 0x10400, 0x10427, | |
8042 0x104B0, 0x104D3, 0x10570, 0x1057A, 0x1057C, 0x1058A, 0x1058C, 0x10592, | |
8043 0x10594, 0x10595, 0x10781, 0x10785, 0x10787, 0x107B0, 0x107B2, 0x107BA, | |
8044 0x10C80, 0x10CB2, 0x118A0, 0x118BF, 0x16E40, 0x16E5F, 0x1BCA0, 0x1BCA3, | |
8045 0x1D15E, 0x1D164, 0x1D173, 0x1D17A, 0x1D1BB, 0x1D1C0, 0x1D400, 0x1D454, | |
8046 0x1D456, 0x1D49C, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A2, 0x1D4A5, 0x1D4A6, | |
8047 0x1D4A9, 0x1D4AC, 0x1D4AE, 0x1D4B9, 0x1D4BB, 0x1D4BB, 0x1D4BD, 0x1D4C3, | |
8048 0x1D4C5, 0x1D505, 0x1D507, 0x1D50A, 0x1D50D, 0x1D514, 0x1D516, 0x1D51C, | |
8049 0x1D51E, 0x1D539, 0x1D53B, 0x1D53E, 0x1D540, 0x1D544, 0x1D546, 0x1D546, | |
8050 0x1D54A, 0x1D550, 0x1D552, 0x1D6A5, 0x1D6A8, 0x1D7CB, 0x1D7CE, 0x1D7FF, | |
8051 0x1E030, 0x1E06D, 0x1E900, 0x1E921, 0x1EE00, 0x1EE03, 0x1EE05, 0x1EE1F, | |
8052 0x1EE21, 0x1EE22, 0x1EE24, 0x1EE24, 0x1EE27, 0x1EE27, 0x1EE29, 0x1EE32, | |
8053 0x1EE34, 0x1EE37, 0x1EE39, 0x1EE39, 0x1EE3B, 0x1EE3B, 0x1EE42, 0x1EE42, | |
8054 0x1EE47, 0x1EE47, 0x1EE49, 0x1EE49, 0x1EE4B, 0x1EE4B, 0x1EE4D, 0x1EE4F, | |
8055 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE54, 0x1EE57, 0x1EE57, 0x1EE59, 0x1EE59, | |
8056 0x1EE5B, 0x1EE5B, 0x1EE5D, 0x1EE5D, 0x1EE5F, 0x1EE5F, 0x1EE61, 0x1EE62, | |
8057 0x1EE64, 0x1EE64, 0x1EE67, 0x1EE6A, 0x1EE6C, 0x1EE72, 0x1EE74, 0x1EE77, | |
8058 0x1EE79, 0x1EE7C, 0x1EE7E, 0x1EE7E, 0x1EE80, 0x1EE89, 0x1EE8B, 0x1EE9B, | |
8059 0x1EEA1, 0x1EEA3, 0x1EEA5, 0x1EEA9, 0x1EEAB, 0x1EEBB, 0x1F100, 0x1F10A, | |
8060 0x1F110, 0x1F12E, 0x1F130, 0x1F14F, 0x1F16A, 0x1F16C, 0x1F190, 0x1F190, | |
8061 0x1F200, 0x1F202, 0x1F210, 0x1F23B, 0x1F240, 0x1F248, 0x1F250, 0x1F251, | |
8062 0x1FBF0, 0x1FBF9, 0x2F800, 0x2FA1D, 0xE0000, 0xE0FFF, | |
8063 // #56 (7660+626): bp=Changes_When_Titlecased:CWT | |
8064 0x0061, 0x007A, 0x00B5, 0x00B5, 0x00DF, 0x00F6, 0x00F8, 0x00FF, | |
8065 0x0101, 0x0101, 0x0103, 0x0103, 0x0105, 0x0105, 0x0107, 0x0107, | |
8066 0x0109, 0x0109, 0x010B, 0x010B, 0x010D, 0x010D, 0x010F, 0x010F, | |
8067 0x0111, 0x0111, 0x0113, 0x0113, 0x0115, 0x0115, 0x0117, 0x0117, | |
8068 0x0119, 0x0119, 0x011B, 0x011B, 0x011D, 0x011D, 0x011F, 0x011F, | |
8069 0x0121, 0x0121, 0x0123, 0x0123, 0x0125, 0x0125, 0x0127, 0x0127, | |
8070 0x0129, 0x0129, 0x012B, 0x012B, 0x012D, 0x012D, 0x012F, 0x012F, | |
8071 0x0131, 0x0131, 0x0133, 0x0133, 0x0135, 0x0135, 0x0137, 0x0137, | |
8072 0x013A, 0x013A, 0x013C, 0x013C, 0x013E, 0x013E, 0x0140, 0x0140, | |
8073 0x0142, 0x0142, 0x0144, 0x0144, 0x0146, 0x0146, 0x0148, 0x0149, | |
8074 0x014B, 0x014B, 0x014D, 0x014D, 0x014F, 0x014F, 0x0151, 0x0151, | |
8075 0x0153, 0x0153, 0x0155, 0x0155, 0x0157, 0x0157, 0x0159, 0x0159, | |
8076 0x015B, 0x015B, 0x015D, 0x015D, 0x015F, 0x015F, 0x0161, 0x0161, | |
8077 0x0163, 0x0163, 0x0165, 0x0165, 0x0167, 0x0167, 0x0169, 0x0169, | |
8078 0x016B, 0x016B, 0x016D, 0x016D, 0x016F, 0x016F, 0x0171, 0x0171, | |
8079 0x0173, 0x0173, 0x0175, 0x0175, 0x0177, 0x0177, 0x017A, 0x017A, | |
8080 0x017C, 0x017C, 0x017E, 0x0180, 0x0183, 0x0183, 0x0185, 0x0185, | |
8081 0x0188, 0x0188, 0x018C, 0x018C, 0x0192, 0x0192, 0x0195, 0x0195, | |
8082 0x0199, 0x019A, 0x019E, 0x019E, 0x01A1, 0x01A1, 0x01A3, 0x01A3, | |
8083 0x01A5, 0x01A5, 0x01A8, 0x01A8, 0x01AD, 0x01AD, 0x01B0, 0x01B0, | |
8084 0x01B4, 0x01B4, 0x01B6, 0x01B6, 0x01B9, 0x01B9, 0x01BD, 0x01BD, | |
8085 0x01BF, 0x01BF, 0x01C4, 0x01C4, 0x01C6, 0x01C7, 0x01C9, 0x01CA, | |
8086 0x01CC, 0x01CC, 0x01CE, 0x01CE, 0x01D0, 0x01D0, 0x01D2, 0x01D2, | |
8087 0x01D4, 0x01D4, 0x01D6, 0x01D6, 0x01D8, 0x01D8, 0x01DA, 0x01DA, | |
8088 0x01DC, 0x01DD, 0x01DF, 0x01DF, 0x01E1, 0x01E1, 0x01E3, 0x01E3, | |
8089 0x01E5, 0x01E5, 0x01E7, 0x01E7, 0x01E9, 0x01E9, 0x01EB, 0x01EB, | |
8090 0x01ED, 0x01ED, 0x01EF, 0x01F1, 0x01F3, 0x01F3, 0x01F5, 0x01F5, | |
8091 0x01F9, 0x01F9, 0x01FB, 0x01FB, 0x01FD, 0x01FD, 0x01FF, 0x01FF, | |
8092 0x0201, 0x0201, 0x0203, 0x0203, 0x0205, 0x0205, 0x0207, 0x0207, | |
8093 0x0209, 0x0209, 0x020B, 0x020B, 0x020D, 0x020D, 0x020F, 0x020F, | |
8094 0x0211, 0x0211, 0x0213, 0x0213, 0x0215, 0x0215, 0x0217, 0x0217, | |
8095 0x0219, 0x0219, 0x021B, 0x021B, 0x021D, 0x021D, 0x021F, 0x021F, | |
8096 0x0223, 0x0223, 0x0225, 0x0225, 0x0227, 0x0227, 0x0229, 0x0229, | |
8097 0x022B, 0x022B, 0x022D, 0x022D, 0x022F, 0x022F, 0x0231, 0x0231, | |
8098 0x0233, 0x0233, 0x023C, 0x023C, 0x023F, 0x0240, 0x0242, 0x0242, | |
8099 0x0247, 0x0247, 0x0249, 0x0249, 0x024B, 0x024B, 0x024D, 0x024D, | |
8100 0x024F, 0x0254, 0x0256, 0x0257, 0x0259, 0x0259, 0x025B, 0x025C, | |
8101 0x0260, 0x0261, 0x0263, 0x0263, 0x0265, 0x0266, 0x0268, 0x026C, | |
8102 0x026F, 0x026F, 0x0271, 0x0272, 0x0275, 0x0275, 0x027D, 0x027D, | |
8103 0x0280, 0x0280, 0x0282, 0x0283, 0x0287, 0x028C, 0x0292, 0x0292, | |
8104 0x029D, 0x029E, 0x0345, 0x0345, 0x0371, 0x0371, 0x0373, 0x0373, | |
8105 0x0377, 0x0377, 0x037B, 0x037D, 0x0390, 0x0390, 0x03AC, 0x03CE, | |
8106 0x03D0, 0x03D1, 0x03D5, 0x03D7, 0x03D9, 0x03D9, 0x03DB, 0x03DB, | |
8107 0x03DD, 0x03DD, 0x03DF, 0x03DF, 0x03E1, 0x03E1, 0x03E3, 0x03E3, | |
8108 0x03E5, 0x03E5, 0x03E7, 0x03E7, 0x03E9, 0x03E9, 0x03EB, 0x03EB, | |
8109 0x03ED, 0x03ED, 0x03EF, 0x03F3, 0x03F5, 0x03F5, 0x03F8, 0x03F8, | |
8110 0x03FB, 0x03FB, 0x0430, 0x045F, 0x0461, 0x0461, 0x0463, 0x0463, | |
8111 0x0465, 0x0465, 0x0467, 0x0467, 0x0469, 0x0469, 0x046B, 0x046B, | |
8112 0x046D, 0x046D, 0x046F, 0x046F, 0x0471, 0x0471, 0x0473, 0x0473, | |
8113 0x0475, 0x0475, 0x0477, 0x0477, 0x0479, 0x0479, 0x047B, 0x047B, | |
8114 0x047D, 0x047D, 0x047F, 0x047F, 0x0481, 0x0481, 0x048B, 0x048B, | |
8115 0x048D, 0x048D, 0x048F, 0x048F, 0x0491, 0x0491, 0x0493, 0x0493, | |
8116 0x0495, 0x0495, 0x0497, 0x0497, 0x0499, 0x0499, 0x049B, 0x049B, | |
8117 0x049D, 0x049D, 0x049F, 0x049F, 0x04A1, 0x04A1, 0x04A3, 0x04A3, | |
8118 0x04A5, 0x04A5, 0x04A7, 0x04A7, 0x04A9, 0x04A9, 0x04AB, 0x04AB, | |
8119 0x04AD, 0x04AD, 0x04AF, 0x04AF, 0x04B1, 0x04B1, 0x04B3, 0x04B3, | |
8120 0x04B5, 0x04B5, 0x04B7, 0x04B7, 0x04B9, 0x04B9, 0x04BB, 0x04BB, | |
8121 0x04BD, 0x04BD, 0x04BF, 0x04BF, 0x04C2, 0x04C2, 0x04C4, 0x04C4, | |
8122 0x04C6, 0x04C6, 0x04C8, 0x04C8, 0x04CA, 0x04CA, 0x04CC, 0x04CC, | |
8123 0x04CE, 0x04CF, 0x04D1, 0x04D1, 0x04D3, 0x04D3, 0x04D5, 0x04D5, | |
8124 0x04D7, 0x04D7, 0x04D9, 0x04D9, 0x04DB, 0x04DB, 0x04DD, 0x04DD, | |
8125 0x04DF, 0x04DF, 0x04E1, 0x04E1, 0x04E3, 0x04E3, 0x04E5, 0x04E5, | |
8126 0x04E7, 0x04E7, 0x04E9, 0x04E9, 0x04EB, 0x04EB, 0x04ED, 0x04ED, | |
8127 0x04EF, 0x04EF, 0x04F1, 0x04F1, 0x04F3, 0x04F3, 0x04F5, 0x04F5, | |
8128 0x04F7, 0x04F7, 0x04F9, 0x04F9, 0x04FB, 0x04FB, 0x04FD, 0x04FD, | |
8129 0x04FF, 0x04FF, 0x0501, 0x0501, 0x0503, 0x0503, 0x0505, 0x0505, | |
8130 0x0507, 0x0507, 0x0509, 0x0509, 0x050B, 0x050B, 0x050D, 0x050D, | |
8131 0x050F, 0x050F, 0x0511, 0x0511, 0x0513, 0x0513, 0x0515, 0x0515, | |
8132 0x0517, 0x0517, 0x0519, 0x0519, 0x051B, 0x051B, 0x051D, 0x051D, | |
8133 0x051F, 0x051F, 0x0521, 0x0521, 0x0523, 0x0523, 0x0525, 0x0525, | |
8134 0x0527, 0x0527, 0x0529, 0x0529, 0x052B, 0x052B, 0x052D, 0x052D, | |
8135 0x052F, 0x052F, 0x0561, 0x0587, 0x13F8, 0x13FD, 0x1C80, 0x1C88, | |
8136 0x1D79, 0x1D79, 0x1D7D, 0x1D7D, 0x1D8E, 0x1D8E, 0x1E01, 0x1E01, | |
8137 0x1E03, 0x1E03, 0x1E05, 0x1E05, 0x1E07, 0x1E07, 0x1E09, 0x1E09, | |
8138 0x1E0B, 0x1E0B, 0x1E0D, 0x1E0D, 0x1E0F, 0x1E0F, 0x1E11, 0x1E11, | |
8139 0x1E13, 0x1E13, 0x1E15, 0x1E15, 0x1E17, 0x1E17, 0x1E19, 0x1E19, | |
8140 0x1E1B, 0x1E1B, 0x1E1D, 0x1E1D, 0x1E1F, 0x1E1F, 0x1E21, 0x1E21, | |
8141 0x1E23, 0x1E23, 0x1E25, 0x1E25, 0x1E27, 0x1E27, 0x1E29, 0x1E29, | |
8142 0x1E2B, 0x1E2B, 0x1E2D, 0x1E2D, 0x1E2F, 0x1E2F, 0x1E31, 0x1E31, | |
8143 0x1E33, 0x1E33, 0x1E35, 0x1E35, 0x1E37, 0x1E37, 0x1E39, 0x1E39, | |
8144 0x1E3B, 0x1E3B, 0x1E3D, 0x1E3D, 0x1E3F, 0x1E3F, 0x1E41, 0x1E41, | |
8145 0x1E43, 0x1E43, 0x1E45, 0x1E45, 0x1E47, 0x1E47, 0x1E49, 0x1E49, | |
8146 0x1E4B, 0x1E4B, 0x1E4D, 0x1E4D, 0x1E4F, 0x1E4F, 0x1E51, 0x1E51, | |
8147 0x1E53, 0x1E53, 0x1E55, 0x1E55, 0x1E57, 0x1E57, 0x1E59, 0x1E59, | |
8148 0x1E5B, 0x1E5B, 0x1E5D, 0x1E5D, 0x1E5F, 0x1E5F, 0x1E61, 0x1E61, | |
8149 0x1E63, 0x1E63, 0x1E65, 0x1E65, 0x1E67, 0x1E67, 0x1E69, 0x1E69, | |
8150 0x1E6B, 0x1E6B, 0x1E6D, 0x1E6D, 0x1E6F, 0x1E6F, 0x1E71, 0x1E71, | |
8151 0x1E73, 0x1E73, 0x1E75, 0x1E75, 0x1E77, 0x1E77, 0x1E79, 0x1E79, | |
8152 0x1E7B, 0x1E7B, 0x1E7D, 0x1E7D, 0x1E7F, 0x1E7F, 0x1E81, 0x1E81, | |
8153 0x1E83, 0x1E83, 0x1E85, 0x1E85, 0x1E87, 0x1E87, 0x1E89, 0x1E89, | |
8154 0x1E8B, 0x1E8B, 0x1E8D, 0x1E8D, 0x1E8F, 0x1E8F, 0x1E91, 0x1E91, | |
8155 0x1E93, 0x1E93, 0x1E95, 0x1E9B, 0x1EA1, 0x1EA1, 0x1EA3, 0x1EA3, | |
8156 0x1EA5, 0x1EA5, 0x1EA7, 0x1EA7, 0x1EA9, 0x1EA9, 0x1EAB, 0x1EAB, | |
8157 0x1EAD, 0x1EAD, 0x1EAF, 0x1EAF, 0x1EB1, 0x1EB1, 0x1EB3, 0x1EB3, | |
8158 0x1EB5, 0x1EB5, 0x1EB7, 0x1EB7, 0x1EB9, 0x1EB9, 0x1EBB, 0x1EBB, | |
8159 0x1EBD, 0x1EBD, 0x1EBF, 0x1EBF, 0x1EC1, 0x1EC1, 0x1EC3, 0x1EC3, | |
8160 0x1EC5, 0x1EC5, 0x1EC7, 0x1EC7, 0x1EC9, 0x1EC9, 0x1ECB, 0x1ECB, | |
8161 0x1ECD, 0x1ECD, 0x1ECF, 0x1ECF, 0x1ED1, 0x1ED1, 0x1ED3, 0x1ED3, | |
8162 0x1ED5, 0x1ED5, 0x1ED7, 0x1ED7, 0x1ED9, 0x1ED9, 0x1EDB, 0x1EDB, | |
8163 0x1EDD, 0x1EDD, 0x1EDF, 0x1EDF, 0x1EE1, 0x1EE1, 0x1EE3, 0x1EE3, | |
8164 0x1EE5, 0x1EE5, 0x1EE7, 0x1EE7, 0x1EE9, 0x1EE9, 0x1EEB, 0x1EEB, | |
8165 0x1EED, 0x1EED, 0x1EEF, 0x1EEF, 0x1EF1, 0x1EF1, 0x1EF3, 0x1EF3, | |
8166 0x1EF5, 0x1EF5, 0x1EF7, 0x1EF7, 0x1EF9, 0x1EF9, 0x1EFB, 0x1EFB, | |
8167 0x1EFD, 0x1EFD, 0x1EFF, 0x1F07, 0x1F10, 0x1F15, 0x1F20, 0x1F27, | |
8168 0x1F30, 0x1F37, 0x1F40, 0x1F45, 0x1F50, 0x1F57, 0x1F60, 0x1F67, | |
8169 0x1F70, 0x1F7D, 0x1F80, 0x1F87, 0x1F90, 0x1F97, 0x1FA0, 0x1FA7, | |
8170 0x1FB0, 0x1FB4, 0x1FB6, 0x1FB7, 0x1FBE, 0x1FBE, 0x1FC2, 0x1FC4, | |
8171 0x1FC6, 0x1FC7, 0x1FD0, 0x1FD3, 0x1FD6, 0x1FD7, 0x1FE0, 0x1FE7, | |
8172 0x1FF2, 0x1FF4, 0x1FF6, 0x1FF7, 0x214E, 0x214E, 0x2170, 0x217F, | |
8173 0x2184, 0x2184, 0x24D0, 0x24E9, 0x2C30, 0x2C5F, 0x2C61, 0x2C61, | |
8174 0x2C65, 0x2C66, 0x2C68, 0x2C68, 0x2C6A, 0x2C6A, 0x2C6C, 0x2C6C, | |
8175 0x2C73, 0x2C73, 0x2C76, 0x2C76, 0x2C81, 0x2C81, 0x2C83, 0x2C83, | |
8176 0x2C85, 0x2C85, 0x2C87, 0x2C87, 0x2C89, 0x2C89, 0x2C8B, 0x2C8B, | |
8177 0x2C8D, 0x2C8D, 0x2C8F, 0x2C8F, 0x2C91, 0x2C91, 0x2C93, 0x2C93, | |
8178 0x2C95, 0x2C95, 0x2C97, 0x2C97, 0x2C99, 0x2C99, 0x2C9B, 0x2C9B, | |
8179 0x2C9D, 0x2C9D, 0x2C9F, 0x2C9F, 0x2CA1, 0x2CA1, 0x2CA3, 0x2CA3, | |
8180 0x2CA5, 0x2CA5, 0x2CA7, 0x2CA7, 0x2CA9, 0x2CA9, 0x2CAB, 0x2CAB, | |
8181 0x2CAD, 0x2CAD, 0x2CAF, 0x2CAF, 0x2CB1, 0x2CB1, 0x2CB3, 0x2CB3, | |
8182 0x2CB5, 0x2CB5, 0x2CB7, 0x2CB7, 0x2CB9, 0x2CB9, 0x2CBB, 0x2CBB, | |
8183 0x2CBD, 0x2CBD, 0x2CBF, 0x2CBF, 0x2CC1, 0x2CC1, 0x2CC3, 0x2CC3, | |
8184 0x2CC5, 0x2CC5, 0x2CC7, 0x2CC7, 0x2CC9, 0x2CC9, 0x2CCB, 0x2CCB, | |
8185 0x2CCD, 0x2CCD, 0x2CCF, 0x2CCF, 0x2CD1, 0x2CD1, 0x2CD3, 0x2CD3, | |
8186 0x2CD5, 0x2CD5, 0x2CD7, 0x2CD7, 0x2CD9, 0x2CD9, 0x2CDB, 0x2CDB, | |
8187 0x2CDD, 0x2CDD, 0x2CDF, 0x2CDF, 0x2CE1, 0x2CE1, 0x2CE3, 0x2CE3, | |
8188 0x2CEC, 0x2CEC, 0x2CEE, 0x2CEE, 0x2CF3, 0x2CF3, 0x2D00, 0x2D25, | |
8189 0x2D27, 0x2D27, 0x2D2D, 0x2D2D, 0xA641, 0xA641, 0xA643, 0xA643, | |
8190 0xA645, 0xA645, 0xA647, 0xA647, 0xA649, 0xA649, 0xA64B, 0xA64B, | |
8191 0xA64D, 0xA64D, 0xA64F, 0xA64F, 0xA651, 0xA651, 0xA653, 0xA653, | |
8192 0xA655, 0xA655, 0xA657, 0xA657, 0xA659, 0xA659, 0xA65B, 0xA65B, | |
8193 0xA65D, 0xA65D, 0xA65F, 0xA65F, 0xA661, 0xA661, 0xA663, 0xA663, | |
8194 0xA665, 0xA665, 0xA667, 0xA667, 0xA669, 0xA669, 0xA66B, 0xA66B, | |
8195 0xA66D, 0xA66D, 0xA681, 0xA681, 0xA683, 0xA683, 0xA685, 0xA685, | |
8196 0xA687, 0xA687, 0xA689, 0xA689, 0xA68B, 0xA68B, 0xA68D, 0xA68D, | |
8197 0xA68F, 0xA68F, 0xA691, 0xA691, 0xA693, 0xA693, 0xA695, 0xA695, | |
8198 0xA697, 0xA697, 0xA699, 0xA699, 0xA69B, 0xA69B, 0xA723, 0xA723, | |
8199 0xA725, 0xA725, 0xA727, 0xA727, 0xA729, 0xA729, 0xA72B, 0xA72B, | |
8200 0xA72D, 0xA72D, 0xA72F, 0xA72F, 0xA733, 0xA733, 0xA735, 0xA735, | |
8201 0xA737, 0xA737, 0xA739, 0xA739, 0xA73B, 0xA73B, 0xA73D, 0xA73D, | |
8202 0xA73F, 0xA73F, 0xA741, 0xA741, 0xA743, 0xA743, 0xA745, 0xA745, | |
8203 0xA747, 0xA747, 0xA749, 0xA749, 0xA74B, 0xA74B, 0xA74D, 0xA74D, | |
8204 0xA74F, 0xA74F, 0xA751, 0xA751, 0xA753, 0xA753, 0xA755, 0xA755, | |
8205 0xA757, 0xA757, 0xA759, 0xA759, 0xA75B, 0xA75B, 0xA75D, 0xA75D, | |
8206 0xA75F, 0xA75F, 0xA761, 0xA761, 0xA763, 0xA763, 0xA765, 0xA765, | |
8207 0xA767, 0xA767, 0xA769, 0xA769, 0xA76B, 0xA76B, 0xA76D, 0xA76D, | |
8208 0xA76F, 0xA76F, 0xA77A, 0xA77A, 0xA77C, 0xA77C, 0xA77F, 0xA77F, | |
8209 0xA781, 0xA781, 0xA783, 0xA783, 0xA785, 0xA785, 0xA787, 0xA787, | |
8210 0xA78C, 0xA78C, 0xA791, 0xA791, 0xA793, 0xA794, 0xA797, 0xA797, | |
8211 0xA799, 0xA799, 0xA79B, 0xA79B, 0xA79D, 0xA79D, 0xA79F, 0xA79F, | |
8212 0xA7A1, 0xA7A1, 0xA7A3, 0xA7A3, 0xA7A5, 0xA7A5, 0xA7A7, 0xA7A7, | |
8213 0xA7A9, 0xA7A9, 0xA7B5, 0xA7B5, 0xA7B7, 0xA7B7, 0xA7B9, 0xA7B9, | |
8214 0xA7BB, 0xA7BB, 0xA7BD, 0xA7BD, 0xA7BF, 0xA7BF, 0xA7C1, 0xA7C1, | |
8215 0xA7C3, 0xA7C3, 0xA7C8, 0xA7C8, 0xA7CA, 0xA7CA, 0xA7D1, 0xA7D1, | |
8216 0xA7D7, 0xA7D7, 0xA7D9, 0xA7D9, 0xA7F6, 0xA7F6, 0xAB53, 0xAB53, | |
8217 0xAB70, 0xABBF, 0xFB00, 0xFB06, 0xFB13, 0xFB17, 0xFF41, 0xFF5A, | |
8218 0x10428, 0x1044F, 0x104D8, 0x104FB, 0x10597, 0x105A1, 0x105A3, 0x105B1, | |
8219 0x105B3, 0x105B9, 0x105BB, 0x105BC, 0x10CC0, 0x10CF2, 0x118C0, 0x118DF, | |
8220 0x16E60, 0x16E7F, 0x1E922, 0x1E943, | |
8221 // #57 (8286+627): bp=Changes_When_Uppercased:CWU | |
8222 0x0061, 0x007A, 0x00B5, 0x00B5, 0x00DF, 0x00F6, 0x00F8, 0x00FF, | |
8223 0x0101, 0x0101, 0x0103, 0x0103, 0x0105, 0x0105, 0x0107, 0x0107, | |
8224 0x0109, 0x0109, 0x010B, 0x010B, 0x010D, 0x010D, 0x010F, 0x010F, | |
8225 0x0111, 0x0111, 0x0113, 0x0113, 0x0115, 0x0115, 0x0117, 0x0117, | |
8226 0x0119, 0x0119, 0x011B, 0x011B, 0x011D, 0x011D, 0x011F, 0x011F, | |
8227 0x0121, 0x0121, 0x0123, 0x0123, 0x0125, 0x0125, 0x0127, 0x0127, | |
8228 0x0129, 0x0129, 0x012B, 0x012B, 0x012D, 0x012D, 0x012F, 0x012F, | |
8229 0x0131, 0x0131, 0x0133, 0x0133, 0x0135, 0x0135, 0x0137, 0x0137, | |
8230 0x013A, 0x013A, 0x013C, 0x013C, 0x013E, 0x013E, 0x0140, 0x0140, | |
8231 0x0142, 0x0142, 0x0144, 0x0144, 0x0146, 0x0146, 0x0148, 0x0149, | |
8232 0x014B, 0x014B, 0x014D, 0x014D, 0x014F, 0x014F, 0x0151, 0x0151, | |
8233 0x0153, 0x0153, 0x0155, 0x0155, 0x0157, 0x0157, 0x0159, 0x0159, | |
8234 0x015B, 0x015B, 0x015D, 0x015D, 0x015F, 0x015F, 0x0161, 0x0161, | |
8235 0x0163, 0x0163, 0x0165, 0x0165, 0x0167, 0x0167, 0x0169, 0x0169, | |
8236 0x016B, 0x016B, 0x016D, 0x016D, 0x016F, 0x016F, 0x0171, 0x0171, | |
8237 0x0173, 0x0173, 0x0175, 0x0175, 0x0177, 0x0177, 0x017A, 0x017A, | |
8238 0x017C, 0x017C, 0x017E, 0x0180, 0x0183, 0x0183, 0x0185, 0x0185, | |
8239 0x0188, 0x0188, 0x018C, 0x018C, 0x0192, 0x0192, 0x0195, 0x0195, | |
8240 0x0199, 0x019A, 0x019E, 0x019E, 0x01A1, 0x01A1, 0x01A3, 0x01A3, | |
8241 0x01A5, 0x01A5, 0x01A8, 0x01A8, 0x01AD, 0x01AD, 0x01B0, 0x01B0, | |
8242 0x01B4, 0x01B4, 0x01B6, 0x01B6, 0x01B9, 0x01B9, 0x01BD, 0x01BD, | |
8243 0x01BF, 0x01BF, 0x01C5, 0x01C6, 0x01C8, 0x01C9, 0x01CB, 0x01CC, | |
8244 0x01CE, 0x01CE, 0x01D0, 0x01D0, 0x01D2, 0x01D2, 0x01D4, 0x01D4, | |
8245 0x01D6, 0x01D6, 0x01D8, 0x01D8, 0x01DA, 0x01DA, 0x01DC, 0x01DD, | |
8246 0x01DF, 0x01DF, 0x01E1, 0x01E1, 0x01E3, 0x01E3, 0x01E5, 0x01E5, | |
8247 0x01E7, 0x01E7, 0x01E9, 0x01E9, 0x01EB, 0x01EB, 0x01ED, 0x01ED, | |
8248 0x01EF, 0x01F0, 0x01F2, 0x01F3, 0x01F5, 0x01F5, 0x01F9, 0x01F9, | |
8249 0x01FB, 0x01FB, 0x01FD, 0x01FD, 0x01FF, 0x01FF, 0x0201, 0x0201, | |
8250 0x0203, 0x0203, 0x0205, 0x0205, 0x0207, 0x0207, 0x0209, 0x0209, | |
8251 0x020B, 0x020B, 0x020D, 0x020D, 0x020F, 0x020F, 0x0211, 0x0211, | |
8252 0x0213, 0x0213, 0x0215, 0x0215, 0x0217, 0x0217, 0x0219, 0x0219, | |
8253 0x021B, 0x021B, 0x021D, 0x021D, 0x021F, 0x021F, 0x0223, 0x0223, | |
8254 0x0225, 0x0225, 0x0227, 0x0227, 0x0229, 0x0229, 0x022B, 0x022B, | |
8255 0x022D, 0x022D, 0x022F, 0x022F, 0x0231, 0x0231, 0x0233, 0x0233, | |
8256 0x023C, 0x023C, 0x023F, 0x0240, 0x0242, 0x0242, 0x0247, 0x0247, | |
8257 0x0249, 0x0249, 0x024B, 0x024B, 0x024D, 0x024D, 0x024F, 0x0254, | |
8258 0x0256, 0x0257, 0x0259, 0x0259, 0x025B, 0x025C, 0x0260, 0x0261, | |
8259 0x0263, 0x0263, 0x0265, 0x0266, 0x0268, 0x026C, 0x026F, 0x026F, | |
8260 0x0271, 0x0272, 0x0275, 0x0275, 0x027D, 0x027D, 0x0280, 0x0280, | |
8261 0x0282, 0x0283, 0x0287, 0x028C, 0x0292, 0x0292, 0x029D, 0x029E, | |
8262 0x0345, 0x0345, 0x0371, 0x0371, 0x0373, 0x0373, 0x0377, 0x0377, | |
8263 0x037B, 0x037D, 0x0390, 0x0390, 0x03AC, 0x03CE, 0x03D0, 0x03D1, | |
8264 0x03D5, 0x03D7, 0x03D9, 0x03D9, 0x03DB, 0x03DB, 0x03DD, 0x03DD, | |
8265 0x03DF, 0x03DF, 0x03E1, 0x03E1, 0x03E3, 0x03E3, 0x03E5, 0x03E5, | |
8266 0x03E7, 0x03E7, 0x03E9, 0x03E9, 0x03EB, 0x03EB, 0x03ED, 0x03ED, | |
8267 0x03EF, 0x03F3, 0x03F5, 0x03F5, 0x03F8, 0x03F8, 0x03FB, 0x03FB, | |
8268 0x0430, 0x045F, 0x0461, 0x0461, 0x0463, 0x0463, 0x0465, 0x0465, | |
8269 0x0467, 0x0467, 0x0469, 0x0469, 0x046B, 0x046B, 0x046D, 0x046D, | |
8270 0x046F, 0x046F, 0x0471, 0x0471, 0x0473, 0x0473, 0x0475, 0x0475, | |
8271 0x0477, 0x0477, 0x0479, 0x0479, 0x047B, 0x047B, 0x047D, 0x047D, | |
8272 0x047F, 0x047F, 0x0481, 0x0481, 0x048B, 0x048B, 0x048D, 0x048D, | |
8273 0x048F, 0x048F, 0x0491, 0x0491, 0x0493, 0x0493, 0x0495, 0x0495, | |
8274 0x0497, 0x0497, 0x0499, 0x0499, 0x049B, 0x049B, 0x049D, 0x049D, | |
8275 0x049F, 0x049F, 0x04A1, 0x04A1, 0x04A3, 0x04A3, 0x04A5, 0x04A5, | |
8276 0x04A7, 0x04A7, 0x04A9, 0x04A9, 0x04AB, 0x04AB, 0x04AD, 0x04AD, | |
8277 0x04AF, 0x04AF, 0x04B1, 0x04B1, 0x04B3, 0x04B3, 0x04B5, 0x04B5, | |
8278 0x04B7, 0x04B7, 0x04B9, 0x04B9, 0x04BB, 0x04BB, 0x04BD, 0x04BD, | |
8279 0x04BF, 0x04BF, 0x04C2, 0x04C2, 0x04C4, 0x04C4, 0x04C6, 0x04C6, | |
8280 0x04C8, 0x04C8, 0x04CA, 0x04CA, 0x04CC, 0x04CC, 0x04CE, 0x04CF, | |
8281 0x04D1, 0x04D1, 0x04D3, 0x04D3, 0x04D5, 0x04D5, 0x04D7, 0x04D7, | |
8282 0x04D9, 0x04D9, 0x04DB, 0x04DB, 0x04DD, 0x04DD, 0x04DF, 0x04DF, | |
8283 0x04E1, 0x04E1, 0x04E3, 0x04E3, 0x04E5, 0x04E5, 0x04E7, 0x04E7, | |
8284 0x04E9, 0x04E9, 0x04EB, 0x04EB, 0x04ED, 0x04ED, 0x04EF, 0x04EF, | |
8285 0x04F1, 0x04F1, 0x04F3, 0x04F3, 0x04F5, 0x04F5, 0x04F7, 0x04F7, | |
8286 0x04F9, 0x04F9, 0x04FB, 0x04FB, 0x04FD, 0x04FD, 0x04FF, 0x04FF, | |
8287 0x0501, 0x0501, 0x0503, 0x0503, 0x0505, 0x0505, 0x0507, 0x0507, | |
8288 0x0509, 0x0509, 0x050B, 0x050B, 0x050D, 0x050D, 0x050F, 0x050F, | |
8289 0x0511, 0x0511, 0x0513, 0x0513, 0x0515, 0x0515, 0x0517, 0x0517, | |
8290 0x0519, 0x0519, 0x051B, 0x051B, 0x051D, 0x051D, 0x051F, 0x051F, | |
8291 0x0521, 0x0521, 0x0523, 0x0523, 0x0525, 0x0525, 0x0527, 0x0527, | |
8292 0x0529, 0x0529, 0x052B, 0x052B, 0x052D, 0x052D, 0x052F, 0x052F, | |
8293 0x0561, 0x0587, 0x10D0, 0x10FA, 0x10FD, 0x10FF, 0x13F8, 0x13FD, | |
8294 0x1C80, 0x1C88, 0x1D79, 0x1D79, 0x1D7D, 0x1D7D, 0x1D8E, 0x1D8E, | |
8295 0x1E01, 0x1E01, 0x1E03, 0x1E03, 0x1E05, 0x1E05, 0x1E07, 0x1E07, | |
8296 0x1E09, 0x1E09, 0x1E0B, 0x1E0B, 0x1E0D, 0x1E0D, 0x1E0F, 0x1E0F, | |
8297 0x1E11, 0x1E11, 0x1E13, 0x1E13, 0x1E15, 0x1E15, 0x1E17, 0x1E17, | |
8298 0x1E19, 0x1E19, 0x1E1B, 0x1E1B, 0x1E1D, 0x1E1D, 0x1E1F, 0x1E1F, | |
8299 0x1E21, 0x1E21, 0x1E23, 0x1E23, 0x1E25, 0x1E25, 0x1E27, 0x1E27, | |
8300 0x1E29, 0x1E29, 0x1E2B, 0x1E2B, 0x1E2D, 0x1E2D, 0x1E2F, 0x1E2F, | |
8301 0x1E31, 0x1E31, 0x1E33, 0x1E33, 0x1E35, 0x1E35, 0x1E37, 0x1E37, | |
8302 0x1E39, 0x1E39, 0x1E3B, 0x1E3B, 0x1E3D, 0x1E3D, 0x1E3F, 0x1E3F, | |
8303 0x1E41, 0x1E41, 0x1E43, 0x1E43, 0x1E45, 0x1E45, 0x1E47, 0x1E47, | |
8304 0x1E49, 0x1E49, 0x1E4B, 0x1E4B, 0x1E4D, 0x1E4D, 0x1E4F, 0x1E4F, | |
8305 0x1E51, 0x1E51, 0x1E53, 0x1E53, 0x1E55, 0x1E55, 0x1E57, 0x1E57, | |
8306 0x1E59, 0x1E59, 0x1E5B, 0x1E5B, 0x1E5D, 0x1E5D, 0x1E5F, 0x1E5F, | |
8307 0x1E61, 0x1E61, 0x1E63, 0x1E63, 0x1E65, 0x1E65, 0x1E67, 0x1E67, | |
8308 0x1E69, 0x1E69, 0x1E6B, 0x1E6B, 0x1E6D, 0x1E6D, 0x1E6F, 0x1E6F, | |
8309 0x1E71, 0x1E71, 0x1E73, 0x1E73, 0x1E75, 0x1E75, 0x1E77, 0x1E77, | |
8310 0x1E79, 0x1E79, 0x1E7B, 0x1E7B, 0x1E7D, 0x1E7D, 0x1E7F, 0x1E7F, | |
8311 0x1E81, 0x1E81, 0x1E83, 0x1E83, 0x1E85, 0x1E85, 0x1E87, 0x1E87, | |
8312 0x1E89, 0x1E89, 0x1E8B, 0x1E8B, 0x1E8D, 0x1E8D, 0x1E8F, 0x1E8F, | |
8313 0x1E91, 0x1E91, 0x1E93, 0x1E93, 0x1E95, 0x1E9B, 0x1EA1, 0x1EA1, | |
8314 0x1EA3, 0x1EA3, 0x1EA5, 0x1EA5, 0x1EA7, 0x1EA7, 0x1EA9, 0x1EA9, | |
8315 0x1EAB, 0x1EAB, 0x1EAD, 0x1EAD, 0x1EAF, 0x1EAF, 0x1EB1, 0x1EB1, | |
8316 0x1EB3, 0x1EB3, 0x1EB5, 0x1EB5, 0x1EB7, 0x1EB7, 0x1EB9, 0x1EB9, | |
8317 0x1EBB, 0x1EBB, 0x1EBD, 0x1EBD, 0x1EBF, 0x1EBF, 0x1EC1, 0x1EC1, | |
8318 0x1EC3, 0x1EC3, 0x1EC5, 0x1EC5, 0x1EC7, 0x1EC7, 0x1EC9, 0x1EC9, | |
8319 0x1ECB, 0x1ECB, 0x1ECD, 0x1ECD, 0x1ECF, 0x1ECF, 0x1ED1, 0x1ED1, | |
8320 0x1ED3, 0x1ED3, 0x1ED5, 0x1ED5, 0x1ED7, 0x1ED7, 0x1ED9, 0x1ED9, | |
8321 0x1EDB, 0x1EDB, 0x1EDD, 0x1EDD, 0x1EDF, 0x1EDF, 0x1EE1, 0x1EE1, | |
8322 0x1EE3, 0x1EE3, 0x1EE5, 0x1EE5, 0x1EE7, 0x1EE7, 0x1EE9, 0x1EE9, | |
8323 0x1EEB, 0x1EEB, 0x1EED, 0x1EED, 0x1EEF, 0x1EEF, 0x1EF1, 0x1EF1, | |
8324 0x1EF3, 0x1EF3, 0x1EF5, 0x1EF5, 0x1EF7, 0x1EF7, 0x1EF9, 0x1EF9, | |
8325 0x1EFB, 0x1EFB, 0x1EFD, 0x1EFD, 0x1EFF, 0x1F07, 0x1F10, 0x1F15, | |
8326 0x1F20, 0x1F27, 0x1F30, 0x1F37, 0x1F40, 0x1F45, 0x1F50, 0x1F57, | |
8327 0x1F60, 0x1F67, 0x1F70, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FB7, | |
8328 0x1FBC, 0x1FBC, 0x1FBE, 0x1FBE, 0x1FC2, 0x1FC4, 0x1FC6, 0x1FC7, | |
8329 0x1FCC, 0x1FCC, 0x1FD0, 0x1FD3, 0x1FD6, 0x1FD7, 0x1FE0, 0x1FE7, | |
8330 0x1FF2, 0x1FF4, 0x1FF6, 0x1FF7, 0x1FFC, 0x1FFC, 0x214E, 0x214E, | |
8331 0x2170, 0x217F, 0x2184, 0x2184, 0x24D0, 0x24E9, 0x2C30, 0x2C5F, | |
8332 0x2C61, 0x2C61, 0x2C65, 0x2C66, 0x2C68, 0x2C68, 0x2C6A, 0x2C6A, | |
8333 0x2C6C, 0x2C6C, 0x2C73, 0x2C73, 0x2C76, 0x2C76, 0x2C81, 0x2C81, | |
8334 0x2C83, 0x2C83, 0x2C85, 0x2C85, 0x2C87, 0x2C87, 0x2C89, 0x2C89, | |
8335 0x2C8B, 0x2C8B, 0x2C8D, 0x2C8D, 0x2C8F, 0x2C8F, 0x2C91, 0x2C91, | |
8336 0x2C93, 0x2C93, 0x2C95, 0x2C95, 0x2C97, 0x2C97, 0x2C99, 0x2C99, | |
8337 0x2C9B, 0x2C9B, 0x2C9D, 0x2C9D, 0x2C9F, 0x2C9F, 0x2CA1, 0x2CA1, | |
8338 0x2CA3, 0x2CA3, 0x2CA5, 0x2CA5, 0x2CA7, 0x2CA7, 0x2CA9, 0x2CA9, | |
8339 0x2CAB, 0x2CAB, 0x2CAD, 0x2CAD, 0x2CAF, 0x2CAF, 0x2CB1, 0x2CB1, | |
8340 0x2CB3, 0x2CB3, 0x2CB5, 0x2CB5, 0x2CB7, 0x2CB7, 0x2CB9, 0x2CB9, | |
8341 0x2CBB, 0x2CBB, 0x2CBD, 0x2CBD, 0x2CBF, 0x2CBF, 0x2CC1, 0x2CC1, | |
8342 0x2CC3, 0x2CC3, 0x2CC5, 0x2CC5, 0x2CC7, 0x2CC7, 0x2CC9, 0x2CC9, | |
8343 0x2CCB, 0x2CCB, 0x2CCD, 0x2CCD, 0x2CCF, 0x2CCF, 0x2CD1, 0x2CD1, | |
8344 0x2CD3, 0x2CD3, 0x2CD5, 0x2CD5, 0x2CD7, 0x2CD7, 0x2CD9, 0x2CD9, | |
8345 0x2CDB, 0x2CDB, 0x2CDD, 0x2CDD, 0x2CDF, 0x2CDF, 0x2CE1, 0x2CE1, | |
8346 0x2CE3, 0x2CE3, 0x2CEC, 0x2CEC, 0x2CEE, 0x2CEE, 0x2CF3, 0x2CF3, | |
8347 0x2D00, 0x2D25, 0x2D27, 0x2D27, 0x2D2D, 0x2D2D, 0xA641, 0xA641, | |
8348 0xA643, 0xA643, 0xA645, 0xA645, 0xA647, 0xA647, 0xA649, 0xA649, | |
8349 0xA64B, 0xA64B, 0xA64D, 0xA64D, 0xA64F, 0xA64F, 0xA651, 0xA651, | |
8350 0xA653, 0xA653, 0xA655, 0xA655, 0xA657, 0xA657, 0xA659, 0xA659, | |
8351 0xA65B, 0xA65B, 0xA65D, 0xA65D, 0xA65F, 0xA65F, 0xA661, 0xA661, | |
8352 0xA663, 0xA663, 0xA665, 0xA665, 0xA667, 0xA667, 0xA669, 0xA669, | |
8353 0xA66B, 0xA66B, 0xA66D, 0xA66D, 0xA681, 0xA681, 0xA683, 0xA683, | |
8354 0xA685, 0xA685, 0xA687, 0xA687, 0xA689, 0xA689, 0xA68B, 0xA68B, | |
8355 0xA68D, 0xA68D, 0xA68F, 0xA68F, 0xA691, 0xA691, 0xA693, 0xA693, | |
8356 0xA695, 0xA695, 0xA697, 0xA697, 0xA699, 0xA699, 0xA69B, 0xA69B, | |
8357 0xA723, 0xA723, 0xA725, 0xA725, 0xA727, 0xA727, 0xA729, 0xA729, | |
8358 0xA72B, 0xA72B, 0xA72D, 0xA72D, 0xA72F, 0xA72F, 0xA733, 0xA733, | |
8359 0xA735, 0xA735, 0xA737, 0xA737, 0xA739, 0xA739, 0xA73B, 0xA73B, | |
8360 0xA73D, 0xA73D, 0xA73F, 0xA73F, 0xA741, 0xA741, 0xA743, 0xA743, | |
8361 0xA745, 0xA745, 0xA747, 0xA747, 0xA749, 0xA749, 0xA74B, 0xA74B, | |
8362 0xA74D, 0xA74D, 0xA74F, 0xA74F, 0xA751, 0xA751, 0xA753, 0xA753, | |
8363 0xA755, 0xA755, 0xA757, 0xA757, 0xA759, 0xA759, 0xA75B, 0xA75B, | |
8364 0xA75D, 0xA75D, 0xA75F, 0xA75F, 0xA761, 0xA761, 0xA763, 0xA763, | |
8365 0xA765, 0xA765, 0xA767, 0xA767, 0xA769, 0xA769, 0xA76B, 0xA76B, | |
8366 0xA76D, 0xA76D, 0xA76F, 0xA76F, 0xA77A, 0xA77A, 0xA77C, 0xA77C, | |
8367 0xA77F, 0xA77F, 0xA781, 0xA781, 0xA783, 0xA783, 0xA785, 0xA785, | |
8368 0xA787, 0xA787, 0xA78C, 0xA78C, 0xA791, 0xA791, 0xA793, 0xA794, | |
8369 0xA797, 0xA797, 0xA799, 0xA799, 0xA79B, 0xA79B, 0xA79D, 0xA79D, | |
8370 0xA79F, 0xA79F, 0xA7A1, 0xA7A1, 0xA7A3, 0xA7A3, 0xA7A5, 0xA7A5, | |
8371 0xA7A7, 0xA7A7, 0xA7A9, 0xA7A9, 0xA7B5, 0xA7B5, 0xA7B7, 0xA7B7, | |
8372 0xA7B9, 0xA7B9, 0xA7BB, 0xA7BB, 0xA7BD, 0xA7BD, 0xA7BF, 0xA7BF, | |
8373 0xA7C1, 0xA7C1, 0xA7C3, 0xA7C3, 0xA7C8, 0xA7C8, 0xA7CA, 0xA7CA, | |
8374 0xA7D1, 0xA7D1, 0xA7D7, 0xA7D7, 0xA7D9, 0xA7D9, 0xA7F6, 0xA7F6, | |
8375 0xAB53, 0xAB53, 0xAB70, 0xABBF, 0xFB00, 0xFB06, 0xFB13, 0xFB17, | |
8376 0xFF41, 0xFF5A, 0x10428, 0x1044F, 0x104D8, 0x104FB, 0x10597, 0x105A1, | |
8377 0x105A3, 0x105B1, 0x105B3, 0x105B9, 0x105BB, 0x105BC, 0x10CC0, 0x10CF2, | |
8378 0x118C0, 0x118DF, 0x16E60, 0x16E7F, 0x1E922, 0x1E943, | |
8379 // #58 (8913+23): bp=Dash | |
8380 0x002D, 0x002D, 0x058A, 0x058A, 0x05BE, 0x05BE, 0x1400, 0x1400, | |
8381 0x1806, 0x1806, 0x2010, 0x2015, 0x2053, 0x2053, 0x207B, 0x207B, | |
8382 0x208B, 0x208B, 0x2212, 0x2212, 0x2E17, 0x2E17, 0x2E1A, 0x2E1A, | |
8383 0x2E3A, 0x2E3B, 0x2E40, 0x2E40, 0x2E5D, 0x2E5D, 0x301C, 0x301C, | |
8384 0x3030, 0x3030, 0x30A0, 0x30A0, 0xFE31, 0xFE32, 0xFE58, 0xFE58, | |
8385 0xFE63, 0xFE63, 0xFF0D, 0xFF0D, 0x10EAD, 0x10EAD, | |
8386 // #59 (8936+17): bp=Default_Ignorable_Code_Point:DI | |
8387 0x00AD, 0x00AD, 0x034F, 0x034F, 0x061C, 0x061C, 0x115F, 0x1160, | |
8388 0x17B4, 0x17B5, 0x180B, 0x180F, 0x200B, 0x200F, 0x202A, 0x202E, | |
8389 0x2060, 0x206F, 0x3164, 0x3164, 0xFE00, 0xFE0F, 0xFEFF, 0xFEFF, | |
8390 0xFFA0, 0xFFA0, 0xFFF0, 0xFFF8, 0x1BCA0, 0x1BCA3, 0x1D173, 0x1D17A, | |
8391 0xE0000, 0xE0FFF, | |
8392 // #60 (8953+8): bp=Deprecated:Dep | |
8393 0x0149, 0x0149, 0x0673, 0x0673, 0x0F77, 0x0F77, 0x0F79, 0x0F79, | |
8394 0x17A3, 0x17A4, 0x206A, 0x206F, 0x2329, 0x232A, 0xE0001, 0xE0001, | |
8395 // #61 (8961+195): bp=Diacritic:Dia | |
8396 0x005E, 0x005E, 0x0060, 0x0060, 0x00A8, 0x00A8, 0x00AF, 0x00AF, | |
8397 0x00B4, 0x00B4, 0x00B7, 0x00B8, 0x02B0, 0x034E, 0x0350, 0x0357, | |
8398 0x035D, 0x0362, 0x0374, 0x0375, 0x037A, 0x037A, 0x0384, 0x0385, | |
8399 0x0483, 0x0487, 0x0559, 0x0559, 0x0591, 0x05A1, 0x05A3, 0x05BD, | |
8400 0x05BF, 0x05BF, 0x05C1, 0x05C2, 0x05C4, 0x05C4, 0x064B, 0x0652, | |
8401 0x0657, 0x0658, 0x06DF, 0x06E0, 0x06E5, 0x06E6, 0x06EA, 0x06EC, | |
8402 0x0730, 0x074A, 0x07A6, 0x07B0, 0x07EB, 0x07F5, 0x0818, 0x0819, | |
8403 0x0898, 0x089F, 0x08C9, 0x08D2, 0x08E3, 0x08FE, 0x093C, 0x093C, | |
8404 0x094D, 0x094D, 0x0951, 0x0954, 0x0971, 0x0971, 0x09BC, 0x09BC, | |
8405 0x09CD, 0x09CD, 0x0A3C, 0x0A3C, 0x0A4D, 0x0A4D, 0x0ABC, 0x0ABC, | |
8406 0x0ACD, 0x0ACD, 0x0AFD, 0x0AFF, 0x0B3C, 0x0B3C, 0x0B4D, 0x0B4D, | |
8407 0x0B55, 0x0B55, 0x0BCD, 0x0BCD, 0x0C3C, 0x0C3C, 0x0C4D, 0x0C4D, | |
8408 0x0CBC, 0x0CBC, 0x0CCD, 0x0CCD, 0x0D3B, 0x0D3C, 0x0D4D, 0x0D4D, | |
8409 0x0DCA, 0x0DCA, 0x0E47, 0x0E4C, 0x0E4E, 0x0E4E, 0x0EBA, 0x0EBA, | |
8410 0x0EC8, 0x0ECC, 0x0F18, 0x0F19, 0x0F35, 0x0F35, 0x0F37, 0x0F37, | |
8411 0x0F39, 0x0F39, 0x0F3E, 0x0F3F, 0x0F82, 0x0F84, 0x0F86, 0x0F87, | |
8412 0x0FC6, 0x0FC6, 0x1037, 0x1037, 0x1039, 0x103A, 0x1063, 0x1064, | |
8413 0x1069, 0x106D, 0x1087, 0x108D, 0x108F, 0x108F, 0x109A, 0x109B, | |
8414 0x135D, 0x135F, 0x1714, 0x1715, 0x17C9, 0x17D3, 0x17DD, 0x17DD, | |
8415 0x1939, 0x193B, 0x1A75, 0x1A7C, 0x1A7F, 0x1A7F, 0x1AB0, 0x1ABE, | |
8416 0x1AC1, 0x1ACB, 0x1B34, 0x1B34, 0x1B44, 0x1B44, 0x1B6B, 0x1B73, | |
8417 0x1BAA, 0x1BAB, 0x1C36, 0x1C37, 0x1C78, 0x1C7D, 0x1CD0, 0x1CE8, | |
8418 0x1CED, 0x1CED, 0x1CF4, 0x1CF4, 0x1CF7, 0x1CF9, 0x1D2C, 0x1D6A, | |
8419 0x1DC4, 0x1DCF, 0x1DF5, 0x1DFF, 0x1FBD, 0x1FBD, 0x1FBF, 0x1FC1, | |
8420 0x1FCD, 0x1FCF, 0x1FDD, 0x1FDF, 0x1FED, 0x1FEF, 0x1FFD, 0x1FFE, | |
8421 0x2CEF, 0x2CF1, 0x2E2F, 0x2E2F, 0x302A, 0x302F, 0x3099, 0x309C, | |
8422 0x30FC, 0x30FC, 0xA66F, 0xA66F, 0xA67C, 0xA67D, 0xA67F, 0xA67F, | |
8423 0xA69C, 0xA69D, 0xA6F0, 0xA6F1, 0xA700, 0xA721, 0xA788, 0xA78A, | |
8424 0xA7F8, 0xA7F9, 0xA8C4, 0xA8C4, 0xA8E0, 0xA8F1, 0xA92B, 0xA92E, | |
8425 0xA953, 0xA953, 0xA9B3, 0xA9B3, 0xA9C0, 0xA9C0, 0xA9E5, 0xA9E5, | |
8426 0xAA7B, 0xAA7D, 0xAABF, 0xAAC2, 0xAAF6, 0xAAF6, 0xAB5B, 0xAB5F, | |
8427 0xAB69, 0xAB6B, 0xABEC, 0xABED, 0xFB1E, 0xFB1E, 0xFE20, 0xFE2F, | |
8428 0xFF3E, 0xFF3E, 0xFF40, 0xFF40, 0xFF70, 0xFF70, 0xFF9E, 0xFF9F, | |
8429 0xFFE3, 0xFFE3, 0x102E0, 0x102E0, 0x10780, 0x10785, 0x10787, 0x107B0, | |
8430 0x107B2, 0x107BA, 0x10AE5, 0x10AE6, 0x10D22, 0x10D27, 0x10EFD, 0x10EFF, | |
8431 0x10F46, 0x10F50, 0x10F82, 0x10F85, 0x11046, 0x11046, 0x11070, 0x11070, | |
8432 0x110B9, 0x110BA, 0x11133, 0x11134, 0x11173, 0x11173, 0x111C0, 0x111C0, | |
8433 0x111CA, 0x111CC, 0x11235, 0x11236, 0x112E9, 0x112EA, 0x1133C, 0x1133C, | |
8434 0x1134D, 0x1134D, 0x11366, 0x1136C, 0x11370, 0x11374, 0x11442, 0x11442, | |
8435 0x11446, 0x11446, 0x114C2, 0x114C3, 0x115BF, 0x115C0, 0x1163F, 0x1163F, | |
8436 0x116B6, 0x116B7, 0x1172B, 0x1172B, 0x11839, 0x1183A, 0x1193D, 0x1193E, | |
8437 0x11943, 0x11943, 0x119E0, 0x119E0, 0x11A34, 0x11A34, 0x11A47, 0x11A47, | |
8438 0x11A99, 0x11A99, 0x11C3F, 0x11C3F, 0x11D42, 0x11D42, 0x11D44, 0x11D45, | |
8439 0x11D97, 0x11D97, 0x13447, 0x13455, 0x16AF0, 0x16AF4, 0x16B30, 0x16B36, | |
8440 0x16F8F, 0x16F9F, 0x16FF0, 0x16FF1, 0x1AFF0, 0x1AFF3, 0x1AFF5, 0x1AFFB, | |
8441 0x1AFFD, 0x1AFFE, 0x1CF00, 0x1CF2D, 0x1CF30, 0x1CF46, 0x1D167, 0x1D169, | |
8442 0x1D16D, 0x1D172, 0x1D17B, 0x1D182, 0x1D185, 0x1D18B, 0x1D1AA, 0x1D1AD, | |
8443 0x1E030, 0x1E06D, 0x1E130, 0x1E136, 0x1E2AE, 0x1E2AE, 0x1E2EC, 0x1E2EF, | |
8444 0x1E8D0, 0x1E8D6, 0x1E944, 0x1E946, 0x1E948, 0x1E94A, | |
8445 // #62 (9156+151): bp=Emoji | |
8446 0x0023, 0x0023, 0x002A, 0x002A, 0x0030, 0x0039, 0x00A9, 0x00A9, | |
8447 0x00AE, 0x00AE, 0x203C, 0x203C, 0x2049, 0x2049, 0x2122, 0x2122, | |
8448 0x2139, 0x2139, 0x2194, 0x2199, 0x21A9, 0x21AA, 0x231A, 0x231B, | |
8449 0x2328, 0x2328, 0x23CF, 0x23CF, 0x23E9, 0x23F3, 0x23F8, 0x23FA, | |
8450 0x24C2, 0x24C2, 0x25AA, 0x25AB, 0x25B6, 0x25B6, 0x25C0, 0x25C0, | |
8451 0x25FB, 0x25FE, 0x2600, 0x2604, 0x260E, 0x260E, 0x2611, 0x2611, | |
8452 0x2614, 0x2615, 0x2618, 0x2618, 0x261D, 0x261D, 0x2620, 0x2620, | |
8453 0x2622, 0x2623, 0x2626, 0x2626, 0x262A, 0x262A, 0x262E, 0x262F, | |
8454 0x2638, 0x263A, 0x2640, 0x2640, 0x2642, 0x2642, 0x2648, 0x2653, | |
8455 0x265F, 0x2660, 0x2663, 0x2663, 0x2665, 0x2666, 0x2668, 0x2668, | |
8456 0x267B, 0x267B, 0x267E, 0x267F, 0x2692, 0x2697, 0x2699, 0x2699, | |
8457 0x269B, 0x269C, 0x26A0, 0x26A1, 0x26A7, 0x26A7, 0x26AA, 0x26AB, | |
8458 0x26B0, 0x26B1, 0x26BD, 0x26BE, 0x26C4, 0x26C5, 0x26C8, 0x26C8, | |
8459 0x26CE, 0x26CF, 0x26D1, 0x26D1, 0x26D3, 0x26D4, 0x26E9, 0x26EA, | |
8460 0x26F0, 0x26F5, 0x26F7, 0x26FA, 0x26FD, 0x26FD, 0x2702, 0x2702, | |
8461 0x2705, 0x2705, 0x2708, 0x270D, 0x270F, 0x270F, 0x2712, 0x2712, | |
8462 0x2714, 0x2714, 0x2716, 0x2716, 0x271D, 0x271D, 0x2721, 0x2721, | |
8463 0x2728, 0x2728, 0x2733, 0x2734, 0x2744, 0x2744, 0x2747, 0x2747, | |
8464 0x274C, 0x274C, 0x274E, 0x274E, 0x2753, 0x2755, 0x2757, 0x2757, | |
8465 0x2763, 0x2764, 0x2795, 0x2797, 0x27A1, 0x27A1, 0x27B0, 0x27B0, | |
8466 0x27BF, 0x27BF, 0x2934, 0x2935, 0x2B05, 0x2B07, 0x2B1B, 0x2B1C, | |
8467 0x2B50, 0x2B50, 0x2B55, 0x2B55, 0x3030, 0x3030, 0x303D, 0x303D, | |
8468 0x3297, 0x3297, 0x3299, 0x3299, 0x1F004, 0x1F004, 0x1F0CF, 0x1F0CF, | |
8469 0x1F170, 0x1F171, 0x1F17E, 0x1F17F, 0x1F18E, 0x1F18E, 0x1F191, 0x1F19A, | |
8470 0x1F1E6, 0x1F1FF, 0x1F201, 0x1F202, 0x1F21A, 0x1F21A, 0x1F22F, 0x1F22F, | |
8471 0x1F232, 0x1F23A, 0x1F250, 0x1F251, 0x1F300, 0x1F321, 0x1F324, 0x1F393, | |
8472 0x1F396, 0x1F397, 0x1F399, 0x1F39B, 0x1F39E, 0x1F3F0, 0x1F3F3, 0x1F3F5, | |
8473 0x1F3F7, 0x1F4FD, 0x1F4FF, 0x1F53D, 0x1F549, 0x1F54E, 0x1F550, 0x1F567, | |
8474 0x1F56F, 0x1F570, 0x1F573, 0x1F57A, 0x1F587, 0x1F587, 0x1F58A, 0x1F58D, | |
8475 0x1F590, 0x1F590, 0x1F595, 0x1F596, 0x1F5A4, 0x1F5A5, 0x1F5A8, 0x1F5A8, | |
8476 0x1F5B1, 0x1F5B2, 0x1F5BC, 0x1F5BC, 0x1F5C2, 0x1F5C4, 0x1F5D1, 0x1F5D3, | |
8477 0x1F5DC, 0x1F5DE, 0x1F5E1, 0x1F5E1, 0x1F5E3, 0x1F5E3, 0x1F5E8, 0x1F5E8, | |
8478 0x1F5EF, 0x1F5EF, 0x1F5F3, 0x1F5F3, 0x1F5FA, 0x1F64F, 0x1F680, 0x1F6C5, | |
8479 0x1F6CB, 0x1F6D2, 0x1F6D5, 0x1F6D7, 0x1F6DC, 0x1F6E5, 0x1F6E9, 0x1F6E9, | |
8480 0x1F6EB, 0x1F6EC, 0x1F6F0, 0x1F6F0, 0x1F6F3, 0x1F6FC, 0x1F7E0, 0x1F7EB, | |
8481 0x1F7F0, 0x1F7F0, 0x1F90C, 0x1F93A, 0x1F93C, 0x1F945, 0x1F947, 0x1F9FF, | |
8482 0x1FA70, 0x1FA7C, 0x1FA80, 0x1FA88, 0x1FA90, 0x1FABD, 0x1FABF, 0x1FAC5, | |
8483 0x1FACE, 0x1FADB, 0x1FAE0, 0x1FAE8, 0x1FAF0, 0x1FAF8, | |
8484 // #63 (9307+10): bp=Emoji_Component:EComp | |
8485 0x0023, 0x0023, 0x002A, 0x002A, 0x0030, 0x0039, 0x200D, 0x200D, | |
8486 0x20E3, 0x20E3, 0xFE0F, 0xFE0F, 0x1F1E6, 0x1F1FF, 0x1F3FB, 0x1F3FF, | |
8487 0x1F9B0, 0x1F9B3, 0xE0020, 0xE007F, | |
8488 // #64 (9317+1): bp=Emoji_Modifier:EMod | |
8489 0x1F3FB, 0x1F3FF, | |
8490 // #65 (9318+40): bp=Emoji_Modifier_Base:EBase | |
8491 0x261D, 0x261D, 0x26F9, 0x26F9, 0x270A, 0x270D, 0x1F385, 0x1F385, | |
8492 0x1F3C2, 0x1F3C4, 0x1F3C7, 0x1F3C7, 0x1F3CA, 0x1F3CC, 0x1F442, 0x1F443, | |
8493 0x1F446, 0x1F450, 0x1F466, 0x1F478, 0x1F47C, 0x1F47C, 0x1F481, 0x1F483, | |
8494 0x1F485, 0x1F487, 0x1F48F, 0x1F48F, 0x1F491, 0x1F491, 0x1F4AA, 0x1F4AA, | |
8495 0x1F574, 0x1F575, 0x1F57A, 0x1F57A, 0x1F590, 0x1F590, 0x1F595, 0x1F596, | |
8496 0x1F645, 0x1F647, 0x1F64B, 0x1F64F, 0x1F6A3, 0x1F6A3, 0x1F6B4, 0x1F6B6, | |
8497 0x1F6C0, 0x1F6C0, 0x1F6CC, 0x1F6CC, 0x1F90C, 0x1F90C, 0x1F90F, 0x1F90F, | |
8498 0x1F918, 0x1F91F, 0x1F926, 0x1F926, 0x1F930, 0x1F939, 0x1F93C, 0x1F93E, | |
8499 0x1F977, 0x1F977, 0x1F9B5, 0x1F9B6, 0x1F9B8, 0x1F9B9, 0x1F9BB, 0x1F9BB, | |
8500 0x1F9CD, 0x1F9CF, 0x1F9D1, 0x1F9DD, 0x1FAC3, 0x1FAC5, 0x1FAF0, 0x1FAF8, | |
8501 // #66 (9358+81): bp=Emoji_Presentation:EPres | |
8502 0x231A, 0x231B, 0x23E9, 0x23EC, 0x23F0, 0x23F0, 0x23F3, 0x23F3, | |
8503 0x25FD, 0x25FE, 0x2614, 0x2615, 0x2648, 0x2653, 0x267F, 0x267F, | |
8504 0x2693, 0x2693, 0x26A1, 0x26A1, 0x26AA, 0x26AB, 0x26BD, 0x26BE, | |
8505 0x26C4, 0x26C5, 0x26CE, 0x26CE, 0x26D4, 0x26D4, 0x26EA, 0x26EA, | |
8506 0x26F2, 0x26F3, 0x26F5, 0x26F5, 0x26FA, 0x26FA, 0x26FD, 0x26FD, | |
8507 0x2705, 0x2705, 0x270A, 0x270B, 0x2728, 0x2728, 0x274C, 0x274C, | |
8508 0x274E, 0x274E, 0x2753, 0x2755, 0x2757, 0x2757, 0x2795, 0x2797, | |
8509 0x27B0, 0x27B0, 0x27BF, 0x27BF, 0x2B1B, 0x2B1C, 0x2B50, 0x2B50, | |
8510 0x2B55, 0x2B55, 0x1F004, 0x1F004, 0x1F0CF, 0x1F0CF, 0x1F18E, 0x1F18E, | |
8511 0x1F191, 0x1F19A, 0x1F1E6, 0x1F1FF, 0x1F201, 0x1F201, 0x1F21A, 0x1F21A, | |
8512 0x1F22F, 0x1F22F, 0x1F232, 0x1F236, 0x1F238, 0x1F23A, 0x1F250, 0x1F251, | |
8513 0x1F300, 0x1F320, 0x1F32D, 0x1F335, 0x1F337, 0x1F37C, 0x1F37E, 0x1F393, | |
8514 0x1F3A0, 0x1F3CA, 0x1F3CF, 0x1F3D3, 0x1F3E0, 0x1F3F0, 0x1F3F4, 0x1F3F4, | |
8515 0x1F3F8, 0x1F43E, 0x1F440, 0x1F440, 0x1F442, 0x1F4FC, 0x1F4FF, 0x1F53D, | |
8516 0x1F54B, 0x1F54E, 0x1F550, 0x1F567, 0x1F57A, 0x1F57A, 0x1F595, 0x1F596, | |
8517 0x1F5A4, 0x1F5A4, 0x1F5FB, 0x1F64F, 0x1F680, 0x1F6C5, 0x1F6CC, 0x1F6CC, | |
8518 0x1F6D0, 0x1F6D2, 0x1F6D5, 0x1F6D7, 0x1F6DC, 0x1F6DF, 0x1F6EB, 0x1F6EC, | |
8519 0x1F6F4, 0x1F6FC, 0x1F7E0, 0x1F7EB, 0x1F7F0, 0x1F7F0, 0x1F90C, 0x1F93A, | |
8520 0x1F93C, 0x1F945, 0x1F947, 0x1F9FF, 0x1FA70, 0x1FA7C, 0x1FA80, 0x1FA88, | |
8521 0x1FA90, 0x1FABD, 0x1FABF, 0x1FAC5, 0x1FACE, 0x1FADB, 0x1FAE0, 0x1FAE8, | |
8522 0x1FAF0, 0x1FAF8, | |
8523 // #67 (9439+78): bp=Extended_Pictographic:ExtPict | |
8524 0x00A9, 0x00A9, 0x00AE, 0x00AE, 0x203C, 0x203C, 0x2049, 0x2049, | |
8525 0x2122, 0x2122, 0x2139, 0x2139, 0x2194, 0x2199, 0x21A9, 0x21AA, | |
8526 0x231A, 0x231B, 0x2328, 0x2328, 0x2388, 0x2388, 0x23CF, 0x23CF, | |
8527 0x23E9, 0x23F3, 0x23F8, 0x23FA, 0x24C2, 0x24C2, 0x25AA, 0x25AB, | |
8528 0x25B6, 0x25B6, 0x25C0, 0x25C0, 0x25FB, 0x25FE, 0x2600, 0x2605, | |
8529 0x2607, 0x2612, 0x2614, 0x2685, 0x2690, 0x2705, 0x2708, 0x2712, | |
8530 0x2714, 0x2714, 0x2716, 0x2716, 0x271D, 0x271D, 0x2721, 0x2721, | |
8531 0x2728, 0x2728, 0x2733, 0x2734, 0x2744, 0x2744, 0x2747, 0x2747, | |
8532 0x274C, 0x274C, 0x274E, 0x274E, 0x2753, 0x2755, 0x2757, 0x2757, | |
8533 0x2763, 0x2767, 0x2795, 0x2797, 0x27A1, 0x27A1, 0x27B0, 0x27B0, | |
8534 0x27BF, 0x27BF, 0x2934, 0x2935, 0x2B05, 0x2B07, 0x2B1B, 0x2B1C, | |
8535 0x2B50, 0x2B50, 0x2B55, 0x2B55, 0x3030, 0x3030, 0x303D, 0x303D, | |
8536 0x3297, 0x3297, 0x3299, 0x3299, 0x1F000, 0x1F0FF, 0x1F10D, 0x1F10F, | |
8537 0x1F12F, 0x1F12F, 0x1F16C, 0x1F171, 0x1F17E, 0x1F17F, 0x1F18E, 0x1F18E, | |
8538 0x1F191, 0x1F19A, 0x1F1AD, 0x1F1E5, 0x1F201, 0x1F20F, 0x1F21A, 0x1F21A, | |
8539 0x1F22F, 0x1F22F, 0x1F232, 0x1F23A, 0x1F23C, 0x1F23F, 0x1F249, 0x1F3FA, | |
8540 0x1F400, 0x1F53D, 0x1F546, 0x1F64F, 0x1F680, 0x1F6FF, 0x1F774, 0x1F77F, | |
8541 0x1F7D5, 0x1F7FF, 0x1F80C, 0x1F80F, 0x1F848, 0x1F84F, 0x1F85A, 0x1F85F, | |
8542 0x1F888, 0x1F88F, 0x1F8AE, 0x1F8FF, 0x1F90C, 0x1F93A, 0x1F93C, 0x1F945, | |
8543 0x1F947, 0x1FAFF, 0x1FC00, 0x1FFFD, | |
8544 // #68 (9517+33): bp=Extender:Ext | |
8545 0x00B7, 0x00B7, 0x02D0, 0x02D1, 0x0640, 0x0640, 0x07FA, 0x07FA, | |
8546 0x0B55, 0x0B55, 0x0E46, 0x0E46, 0x0EC6, 0x0EC6, 0x180A, 0x180A, | |
8547 0x1843, 0x1843, 0x1AA7, 0x1AA7, 0x1C36, 0x1C36, 0x1C7B, 0x1C7B, | |
8548 0x3005, 0x3005, 0x3031, 0x3035, 0x309D, 0x309E, 0x30FC, 0x30FE, | |
8549 0xA015, 0xA015, 0xA60C, 0xA60C, 0xA9CF, 0xA9CF, 0xA9E6, 0xA9E6, | |
8550 0xAA70, 0xAA70, 0xAADD, 0xAADD, 0xAAF3, 0xAAF4, 0xFF70, 0xFF70, | |
8551 0x10781, 0x10782, 0x1135D, 0x1135D, 0x115C6, 0x115C8, 0x11A98, 0x11A98, | |
8552 0x16B42, 0x16B43, 0x16FE0, 0x16FE1, 0x16FE3, 0x16FE3, 0x1E13C, 0x1E13D, | |
8553 0x1E944, 0x1E946, | |
8554 // #69 (9550+875): bp=Grapheme_Base:Gr_Base | |
8555 0x0020, 0x007E, 0x00A0, 0x00AC, 0x00AE, 0x02FF, 0x0370, 0x0377, | |
8556 0x037A, 0x037F, 0x0384, 0x038A, 0x038C, 0x038C, 0x038E, 0x03A1, | |
8557 0x03A3, 0x0482, 0x048A, 0x052F, 0x0531, 0x0556, 0x0559, 0x058A, | |
8558 0x058D, 0x058F, 0x05BE, 0x05BE, 0x05C0, 0x05C0, 0x05C3, 0x05C3, | |
8559 0x05C6, 0x05C6, 0x05D0, 0x05EA, 0x05EF, 0x05F4, 0x0606, 0x060F, | |
8560 0x061B, 0x061B, 0x061D, 0x064A, 0x0660, 0x066F, 0x0671, 0x06D5, | |
8561 0x06DE, 0x06DE, 0x06E5, 0x06E6, 0x06E9, 0x06E9, 0x06EE, 0x070D, | |
8562 0x0710, 0x0710, 0x0712, 0x072F, 0x074D, 0x07A5, 0x07B1, 0x07B1, | |
8563 0x07C0, 0x07EA, 0x07F4, 0x07FA, 0x07FE, 0x0815, 0x081A, 0x081A, | |
8564 0x0824, 0x0824, 0x0828, 0x0828, 0x0830, 0x083E, 0x0840, 0x0858, | |
8565 0x085E, 0x085E, 0x0860, 0x086A, 0x0870, 0x088E, 0x08A0, 0x08C9, | |
8566 0x0903, 0x0939, 0x093B, 0x093B, 0x093D, 0x0940, 0x0949, 0x094C, | |
8567 0x094E, 0x0950, 0x0958, 0x0961, 0x0964, 0x0980, 0x0982, 0x0983, | |
8568 0x0985, 0x098C, 0x098F, 0x0990, 0x0993, 0x09A8, 0x09AA, 0x09B0, | |
8569 0x09B2, 0x09B2, 0x09B6, 0x09B9, 0x09BD, 0x09BD, 0x09BF, 0x09C0, | |
8570 0x09C7, 0x09C8, 0x09CB, 0x09CC, 0x09CE, 0x09CE, 0x09DC, 0x09DD, | |
8571 0x09DF, 0x09E1, 0x09E6, 0x09FD, 0x0A03, 0x0A03, 0x0A05, 0x0A0A, | |
8572 0x0A0F, 0x0A10, 0x0A13, 0x0A28, 0x0A2A, 0x0A30, 0x0A32, 0x0A33, | |
8573 0x0A35, 0x0A36, 0x0A38, 0x0A39, 0x0A3E, 0x0A40, 0x0A59, 0x0A5C, | |
8574 0x0A5E, 0x0A5E, 0x0A66, 0x0A6F, 0x0A72, 0x0A74, 0x0A76, 0x0A76, | |
8575 0x0A83, 0x0A83, 0x0A85, 0x0A8D, 0x0A8F, 0x0A91, 0x0A93, 0x0AA8, | |
8576 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3, 0x0AB5, 0x0AB9, 0x0ABD, 0x0AC0, | |
8577 0x0AC9, 0x0AC9, 0x0ACB, 0x0ACC, 0x0AD0, 0x0AD0, 0x0AE0, 0x0AE1, | |
8578 0x0AE6, 0x0AF1, 0x0AF9, 0x0AF9, 0x0B02, 0x0B03, 0x0B05, 0x0B0C, | |
8579 0x0B0F, 0x0B10, 0x0B13, 0x0B28, 0x0B2A, 0x0B30, 0x0B32, 0x0B33, | |
8580 0x0B35, 0x0B39, 0x0B3D, 0x0B3D, 0x0B40, 0x0B40, 0x0B47, 0x0B48, | |
8581 0x0B4B, 0x0B4C, 0x0B5C, 0x0B5D, 0x0B5F, 0x0B61, 0x0B66, 0x0B77, | |
8582 0x0B83, 0x0B83, 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, 0x0B92, 0x0B95, | |
8583 0x0B99, 0x0B9A, 0x0B9C, 0x0B9C, 0x0B9E, 0x0B9F, 0x0BA3, 0x0BA4, | |
8584 0x0BA8, 0x0BAA, 0x0BAE, 0x0BB9, 0x0BBF, 0x0BBF, 0x0BC1, 0x0BC2, | |
8585 0x0BC6, 0x0BC8, 0x0BCA, 0x0BCC, 0x0BD0, 0x0BD0, 0x0BE6, 0x0BFA, | |
8586 0x0C01, 0x0C03, 0x0C05, 0x0C0C, 0x0C0E, 0x0C10, 0x0C12, 0x0C28, | |
8587 0x0C2A, 0x0C39, 0x0C3D, 0x0C3D, 0x0C41, 0x0C44, 0x0C58, 0x0C5A, | |
8588 0x0C5D, 0x0C5D, 0x0C60, 0x0C61, 0x0C66, 0x0C6F, 0x0C77, 0x0C80, | |
8589 0x0C82, 0x0C8C, 0x0C8E, 0x0C90, 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3, | |
8590 0x0CB5, 0x0CB9, 0x0CBD, 0x0CBE, 0x0CC0, 0x0CC1, 0x0CC3, 0x0CC4, | |
8591 0x0CC7, 0x0CC8, 0x0CCA, 0x0CCB, 0x0CDD, 0x0CDE, 0x0CE0, 0x0CE1, | |
8592 0x0CE6, 0x0CEF, 0x0CF1, 0x0CF3, 0x0D02, 0x0D0C, 0x0D0E, 0x0D10, | |
8593 0x0D12, 0x0D3A, 0x0D3D, 0x0D3D, 0x0D3F, 0x0D40, 0x0D46, 0x0D48, | |
8594 0x0D4A, 0x0D4C, 0x0D4E, 0x0D4F, 0x0D54, 0x0D56, 0x0D58, 0x0D61, | |
8595 0x0D66, 0x0D7F, 0x0D82, 0x0D83, 0x0D85, 0x0D96, 0x0D9A, 0x0DB1, | |
8596 0x0DB3, 0x0DBB, 0x0DBD, 0x0DBD, 0x0DC0, 0x0DC6, 0x0DD0, 0x0DD1, | |
8597 0x0DD8, 0x0DDE, 0x0DE6, 0x0DEF, 0x0DF2, 0x0DF4, 0x0E01, 0x0E30, | |
8598 0x0E32, 0x0E33, 0x0E3F, 0x0E46, 0x0E4F, 0x0E5B, 0x0E81, 0x0E82, | |
8599 0x0E84, 0x0E84, 0x0E86, 0x0E8A, 0x0E8C, 0x0EA3, 0x0EA5, 0x0EA5, | |
8600 0x0EA7, 0x0EB0, 0x0EB2, 0x0EB3, 0x0EBD, 0x0EBD, 0x0EC0, 0x0EC4, | |
8601 0x0EC6, 0x0EC6, 0x0ED0, 0x0ED9, 0x0EDC, 0x0EDF, 0x0F00, 0x0F17, | |
8602 0x0F1A, 0x0F34, 0x0F36, 0x0F36, 0x0F38, 0x0F38, 0x0F3A, 0x0F47, | |
8603 0x0F49, 0x0F6C, 0x0F7F, 0x0F7F, 0x0F85, 0x0F85, 0x0F88, 0x0F8C, | |
8604 0x0FBE, 0x0FC5, 0x0FC7, 0x0FCC, 0x0FCE, 0x0FDA, 0x1000, 0x102C, | |
8605 0x1031, 0x1031, 0x1038, 0x1038, 0x103B, 0x103C, 0x103F, 0x1057, | |
8606 0x105A, 0x105D, 0x1061, 0x1070, 0x1075, 0x1081, 0x1083, 0x1084, | |
8607 0x1087, 0x108C, 0x108E, 0x109C, 0x109E, 0x10C5, 0x10C7, 0x10C7, | |
8608 0x10CD, 0x10CD, 0x10D0, 0x1248, 0x124A, 0x124D, 0x1250, 0x1256, | |
8609 0x1258, 0x1258, 0x125A, 0x125D, 0x1260, 0x1288, 0x128A, 0x128D, | |
8610 0x1290, 0x12B0, 0x12B2, 0x12B5, 0x12B8, 0x12BE, 0x12C0, 0x12C0, | |
8611 0x12C2, 0x12C5, 0x12C8, 0x12D6, 0x12D8, 0x1310, 0x1312, 0x1315, | |
8612 0x1318, 0x135A, 0x1360, 0x137C, 0x1380, 0x1399, 0x13A0, 0x13F5, | |
8613 0x13F8, 0x13FD, 0x1400, 0x169C, 0x16A0, 0x16F8, 0x1700, 0x1711, | |
8614 0x1715, 0x1715, 0x171F, 0x1731, 0x1734, 0x1736, 0x1740, 0x1751, | |
8615 0x1760, 0x176C, 0x176E, 0x1770, 0x1780, 0x17B3, 0x17B6, 0x17B6, | |
8616 0x17BE, 0x17C5, 0x17C7, 0x17C8, 0x17D4, 0x17DC, 0x17E0, 0x17E9, | |
8617 0x17F0, 0x17F9, 0x1800, 0x180A, 0x1810, 0x1819, 0x1820, 0x1878, | |
8618 0x1880, 0x1884, 0x1887, 0x18A8, 0x18AA, 0x18AA, 0x18B0, 0x18F5, | |
8619 0x1900, 0x191E, 0x1923, 0x1926, 0x1929, 0x192B, 0x1930, 0x1931, | |
8620 0x1933, 0x1938, 0x1940, 0x1940, 0x1944, 0x196D, 0x1970, 0x1974, | |
8621 0x1980, 0x19AB, 0x19B0, 0x19C9, 0x19D0, 0x19DA, 0x19DE, 0x1A16, | |
8622 0x1A19, 0x1A1A, 0x1A1E, 0x1A55, 0x1A57, 0x1A57, 0x1A61, 0x1A61, | |
8623 0x1A63, 0x1A64, 0x1A6D, 0x1A72, 0x1A80, 0x1A89, 0x1A90, 0x1A99, | |
8624 0x1AA0, 0x1AAD, 0x1B04, 0x1B33, 0x1B3B, 0x1B3B, 0x1B3D, 0x1B41, | |
8625 0x1B43, 0x1B4C, 0x1B50, 0x1B6A, 0x1B74, 0x1B7E, 0x1B82, 0x1BA1, | |
8626 0x1BA6, 0x1BA7, 0x1BAA, 0x1BAA, 0x1BAE, 0x1BE5, 0x1BE7, 0x1BE7, | |
8627 0x1BEA, 0x1BEC, 0x1BEE, 0x1BEE, 0x1BF2, 0x1BF3, 0x1BFC, 0x1C2B, | |
8628 0x1C34, 0x1C35, 0x1C3B, 0x1C49, 0x1C4D, 0x1C88, 0x1C90, 0x1CBA, | |
8629 0x1CBD, 0x1CC7, 0x1CD3, 0x1CD3, 0x1CE1, 0x1CE1, 0x1CE9, 0x1CEC, | |
8630 0x1CEE, 0x1CF3, 0x1CF5, 0x1CF7, 0x1CFA, 0x1CFA, 0x1D00, 0x1DBF, | |
8631 0x1E00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, 0x1F48, 0x1F4D, | |
8632 0x1F50, 0x1F57, 0x1F59, 0x1F59, 0x1F5B, 0x1F5B, 0x1F5D, 0x1F5D, | |
8633 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FC4, 0x1FC6, 0x1FD3, | |
8634 0x1FD6, 0x1FDB, 0x1FDD, 0x1FEF, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFE, | |
8635 0x2000, 0x200A, 0x2010, 0x2027, 0x202F, 0x205F, 0x2070, 0x2071, | |
8636 0x2074, 0x208E, 0x2090, 0x209C, 0x20A0, 0x20C0, 0x2100, 0x218B, | |
8637 0x2190, 0x2426, 0x2440, 0x244A, 0x2460, 0x2B73, 0x2B76, 0x2B95, | |
8638 0x2B97, 0x2CEE, 0x2CF2, 0x2CF3, 0x2CF9, 0x2D25, 0x2D27, 0x2D27, | |
8639 0x2D2D, 0x2D2D, 0x2D30, 0x2D67, 0x2D6F, 0x2D70, 0x2D80, 0x2D96, | |
8640 0x2DA0, 0x2DA6, 0x2DA8, 0x2DAE, 0x2DB0, 0x2DB6, 0x2DB8, 0x2DBE, | |
8641 0x2DC0, 0x2DC6, 0x2DC8, 0x2DCE, 0x2DD0, 0x2DD6, 0x2DD8, 0x2DDE, | |
8642 0x2E00, 0x2E5D, 0x2E80, 0x2E99, 0x2E9B, 0x2EF3, 0x2F00, 0x2FD5, | |
8643 0x2FF0, 0x3029, 0x3030, 0x303F, 0x3041, 0x3096, 0x309B, 0x30FF, | |
8644 0x3105, 0x312F, 0x3131, 0x318E, 0x3190, 0x31E3, 0x31EF, 0x321E, | |
8645 0x3220, 0xA48C, 0xA490, 0xA4C6, 0xA4D0, 0xA62B, 0xA640, 0xA66E, | |
8646 0xA673, 0xA673, 0xA67E, 0xA69D, 0xA6A0, 0xA6EF, 0xA6F2, 0xA6F7, | |
8647 0xA700, 0xA7CA, 0xA7D0, 0xA7D1, 0xA7D3, 0xA7D3, 0xA7D5, 0xA7D9, | |
8648 0xA7F2, 0xA801, 0xA803, 0xA805, 0xA807, 0xA80A, 0xA80C, 0xA824, | |
8649 0xA827, 0xA82B, 0xA830, 0xA839, 0xA840, 0xA877, 0xA880, 0xA8C3, | |
8650 0xA8CE, 0xA8D9, 0xA8F2, 0xA8FE, 0xA900, 0xA925, 0xA92E, 0xA946, | |
8651 0xA952, 0xA953, 0xA95F, 0xA97C, 0xA983, 0xA9B2, 0xA9B4, 0xA9B5, | |
8652 0xA9BA, 0xA9BB, 0xA9BE, 0xA9CD, 0xA9CF, 0xA9D9, 0xA9DE, 0xA9E4, | |
8653 0xA9E6, 0xA9FE, 0xAA00, 0xAA28, 0xAA2F, 0xAA30, 0xAA33, 0xAA34, | |
8654 0xAA40, 0xAA42, 0xAA44, 0xAA4B, 0xAA4D, 0xAA4D, 0xAA50, 0xAA59, | |
8655 0xAA5C, 0xAA7B, 0xAA7D, 0xAAAF, 0xAAB1, 0xAAB1, 0xAAB5, 0xAAB6, | |
8656 0xAAB9, 0xAABD, 0xAAC0, 0xAAC0, 0xAAC2, 0xAAC2, 0xAADB, 0xAAEB, | |
8657 0xAAEE, 0xAAF5, 0xAB01, 0xAB06, 0xAB09, 0xAB0E, 0xAB11, 0xAB16, | |
8658 0xAB20, 0xAB26, 0xAB28, 0xAB2E, 0xAB30, 0xAB6B, 0xAB70, 0xABE4, | |
8659 0xABE6, 0xABE7, 0xABE9, 0xABEC, 0xABF0, 0xABF9, 0xAC00, 0xD7A3, | |
8660 0xD7B0, 0xD7C6, 0xD7CB, 0xD7FB, 0xF900, 0xFA6D, 0xFA70, 0xFAD9, | |
8661 0xFB00, 0xFB06, 0xFB13, 0xFB17, 0xFB1D, 0xFB1D, 0xFB1F, 0xFB36, | |
8662 0xFB38, 0xFB3C, 0xFB3E, 0xFB3E, 0xFB40, 0xFB41, 0xFB43, 0xFB44, | |
8663 0xFB46, 0xFBC2, 0xFBD3, 0xFD8F, 0xFD92, 0xFDC7, 0xFDCF, 0xFDCF, | |
8664 0xFDF0, 0xFDFF, 0xFE10, 0xFE19, 0xFE30, 0xFE52, 0xFE54, 0xFE66, | |
8665 0xFE68, 0xFE6B, 0xFE70, 0xFE74, 0xFE76, 0xFEFC, 0xFF01, 0xFF9D, | |
8666 0xFFA0, 0xFFBE, 0xFFC2, 0xFFC7, 0xFFCA, 0xFFCF, 0xFFD2, 0xFFD7, | |
8667 0xFFDA, 0xFFDC, 0xFFE0, 0xFFE6, 0xFFE8, 0xFFEE, 0xFFFC, 0xFFFD, | |
8668 0x10000, 0x1000B, 0x1000D, 0x10026, 0x10028, 0x1003A, 0x1003C, 0x1003D, | |
8669 0x1003F, 0x1004D, 0x10050, 0x1005D, 0x10080, 0x100FA, 0x10100, 0x10102, | |
8670 0x10107, 0x10133, 0x10137, 0x1018E, 0x10190, 0x1019C, 0x101A0, 0x101A0, | |
8671 0x101D0, 0x101FC, 0x10280, 0x1029C, 0x102A0, 0x102D0, 0x102E1, 0x102FB, | |
8672 0x10300, 0x10323, 0x1032D, 0x1034A, 0x10350, 0x10375, 0x10380, 0x1039D, | |
8673 0x1039F, 0x103C3, 0x103C8, 0x103D5, 0x10400, 0x1049D, 0x104A0, 0x104A9, | |
8674 0x104B0, 0x104D3, 0x104D8, 0x104FB, 0x10500, 0x10527, 0x10530, 0x10563, | |
8675 0x1056F, 0x1057A, 0x1057C, 0x1058A, 0x1058C, 0x10592, 0x10594, 0x10595, | |
8676 0x10597, 0x105A1, 0x105A3, 0x105B1, 0x105B3, 0x105B9, 0x105BB, 0x105BC, | |
8677 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, 0x10780, 0x10785, | |
8678 0x10787, 0x107B0, 0x107B2, 0x107BA, 0x10800, 0x10805, 0x10808, 0x10808, | |
8679 0x1080A, 0x10835, 0x10837, 0x10838, 0x1083C, 0x1083C, 0x1083F, 0x10855, | |
8680 0x10857, 0x1089E, 0x108A7, 0x108AF, 0x108E0, 0x108F2, 0x108F4, 0x108F5, | |
8681 0x108FB, 0x1091B, 0x1091F, 0x10939, 0x1093F, 0x1093F, 0x10980, 0x109B7, | |
8682 0x109BC, 0x109CF, 0x109D2, 0x10A00, 0x10A10, 0x10A13, 0x10A15, 0x10A17, | |
8683 0x10A19, 0x10A35, 0x10A40, 0x10A48, 0x10A50, 0x10A58, 0x10A60, 0x10A9F, | |
8684 0x10AC0, 0x10AE4, 0x10AEB, 0x10AF6, 0x10B00, 0x10B35, 0x10B39, 0x10B55, | |
8685 0x10B58, 0x10B72, 0x10B78, 0x10B91, 0x10B99, 0x10B9C, 0x10BA9, 0x10BAF, | |
8686 0x10C00, 0x10C48, 0x10C80, 0x10CB2, 0x10CC0, 0x10CF2, 0x10CFA, 0x10D23, | |
8687 0x10D30, 0x10D39, 0x10E60, 0x10E7E, 0x10E80, 0x10EA9, 0x10EAD, 0x10EAD, | |
8688 0x10EB0, 0x10EB1, 0x10F00, 0x10F27, 0x10F30, 0x10F45, 0x10F51, 0x10F59, | |
8689 0x10F70, 0x10F81, 0x10F86, 0x10F89, 0x10FB0, 0x10FCB, 0x10FE0, 0x10FF6, | |
8690 0x11000, 0x11000, 0x11002, 0x11037, 0x11047, 0x1104D, 0x11052, 0x1106F, | |
8691 0x11071, 0x11072, 0x11075, 0x11075, 0x11082, 0x110B2, 0x110B7, 0x110B8, | |
8692 0x110BB, 0x110BC, 0x110BE, 0x110C1, 0x110D0, 0x110E8, 0x110F0, 0x110F9, | |
8693 0x11103, 0x11126, 0x1112C, 0x1112C, 0x11136, 0x11147, 0x11150, 0x11172, | |
8694 0x11174, 0x11176, 0x11182, 0x111B5, 0x111BF, 0x111C8, 0x111CD, 0x111CE, | |
8695 0x111D0, 0x111DF, 0x111E1, 0x111F4, 0x11200, 0x11211, 0x11213, 0x1122E, | |
8696 0x11232, 0x11233, 0x11235, 0x11235, 0x11238, 0x1123D, 0x1123F, 0x11240, | |
8697 0x11280, 0x11286, 0x11288, 0x11288, 0x1128A, 0x1128D, 0x1128F, 0x1129D, | |
8698 0x1129F, 0x112A9, 0x112B0, 0x112DE, 0x112E0, 0x112E2, 0x112F0, 0x112F9, | |
8699 0x11302, 0x11303, 0x11305, 0x1130C, 0x1130F, 0x11310, 0x11313, 0x11328, | |
8700 0x1132A, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133D, 0x1133D, | |
8701 0x1133F, 0x1133F, 0x11341, 0x11344, 0x11347, 0x11348, 0x1134B, 0x1134D, | |
8702 0x11350, 0x11350, 0x1135D, 0x11363, 0x11400, 0x11437, 0x11440, 0x11441, | |
8703 0x11445, 0x11445, 0x11447, 0x1145B, 0x1145D, 0x1145D, 0x1145F, 0x11461, | |
8704 0x11480, 0x114AF, 0x114B1, 0x114B2, 0x114B9, 0x114B9, 0x114BB, 0x114BC, | |
8705 0x114BE, 0x114BE, 0x114C1, 0x114C1, 0x114C4, 0x114C7, 0x114D0, 0x114D9, | |
8706 0x11580, 0x115AE, 0x115B0, 0x115B1, 0x115B8, 0x115BB, 0x115BE, 0x115BE, | |
8707 0x115C1, 0x115DB, 0x11600, 0x11632, 0x1163B, 0x1163C, 0x1163E, 0x1163E, | |
8708 0x11641, 0x11644, 0x11650, 0x11659, 0x11660, 0x1166C, 0x11680, 0x116AA, | |
8709 0x116AC, 0x116AC, 0x116AE, 0x116AF, 0x116B6, 0x116B6, 0x116B8, 0x116B9, | |
8710 0x116C0, 0x116C9, 0x11700, 0x1171A, 0x11720, 0x11721, 0x11726, 0x11726, | |
8711 0x11730, 0x11746, 0x11800, 0x1182E, 0x11838, 0x11838, 0x1183B, 0x1183B, | |
8712 0x118A0, 0x118F2, 0x118FF, 0x11906, 0x11909, 0x11909, 0x1190C, 0x11913, | |
8713 0x11915, 0x11916, 0x11918, 0x1192F, 0x11931, 0x11935, 0x11937, 0x11938, | |
8714 0x1193D, 0x1193D, 0x1193F, 0x11942, 0x11944, 0x11946, 0x11950, 0x11959, | |
8715 0x119A0, 0x119A7, 0x119AA, 0x119D3, 0x119DC, 0x119DF, 0x119E1, 0x119E4, | |
8716 0x11A00, 0x11A00, 0x11A0B, 0x11A32, 0x11A39, 0x11A3A, 0x11A3F, 0x11A46, | |
8717 0x11A50, 0x11A50, 0x11A57, 0x11A58, 0x11A5C, 0x11A89, 0x11A97, 0x11A97, | |
8718 0x11A9A, 0x11AA2, 0x11AB0, 0x11AF8, 0x11B00, 0x11B09, 0x11C00, 0x11C08, | |
8719 0x11C0A, 0x11C2F, 0x11C3E, 0x11C3E, 0x11C40, 0x11C45, 0x11C50, 0x11C6C, | |
8720 0x11C70, 0x11C8F, 0x11CA9, 0x11CA9, 0x11CB1, 0x11CB1, 0x11CB4, 0x11CB4, | |
8721 0x11D00, 0x11D06, 0x11D08, 0x11D09, 0x11D0B, 0x11D30, 0x11D46, 0x11D46, | |
8722 0x11D50, 0x11D59, 0x11D60, 0x11D65, 0x11D67, 0x11D68, 0x11D6A, 0x11D8E, | |
8723 0x11D93, 0x11D94, 0x11D96, 0x11D96, 0x11D98, 0x11D98, 0x11DA0, 0x11DA9, | |
8724 0x11EE0, 0x11EF2, 0x11EF5, 0x11EF8, 0x11F02, 0x11F10, 0x11F12, 0x11F35, | |
8725 0x11F3E, 0x11F3F, 0x11F41, 0x11F41, 0x11F43, 0x11F59, 0x11FB0, 0x11FB0, | |
8726 0x11FC0, 0x11FF1, 0x11FFF, 0x12399, 0x12400, 0x1246E, 0x12470, 0x12474, | |
8727 0x12480, 0x12543, 0x12F90, 0x12FF2, 0x13000, 0x1342F, 0x13441, 0x13446, | |
8728 0x14400, 0x14646, 0x16800, 0x16A38, 0x16A40, 0x16A5E, 0x16A60, 0x16A69, | |
8729 0x16A6E, 0x16ABE, 0x16AC0, 0x16AC9, 0x16AD0, 0x16AED, 0x16AF5, 0x16AF5, | |
8730 0x16B00, 0x16B2F, 0x16B37, 0x16B45, 0x16B50, 0x16B59, 0x16B5B, 0x16B61, | |
8731 0x16B63, 0x16B77, 0x16B7D, 0x16B8F, 0x16E40, 0x16E9A, 0x16F00, 0x16F4A, | |
8732 0x16F50, 0x16F87, 0x16F93, 0x16F9F, 0x16FE0, 0x16FE3, 0x16FF0, 0x16FF1, | |
8733 0x17000, 0x187F7, 0x18800, 0x18CD5, 0x18D00, 0x18D08, 0x1AFF0, 0x1AFF3, | |
8734 0x1AFF5, 0x1AFFB, 0x1AFFD, 0x1AFFE, 0x1B000, 0x1B122, 0x1B132, 0x1B132, | |
8735 0x1B150, 0x1B152, 0x1B155, 0x1B155, 0x1B164, 0x1B167, 0x1B170, 0x1B2FB, | |
8736 0x1BC00, 0x1BC6A, 0x1BC70, 0x1BC7C, 0x1BC80, 0x1BC88, 0x1BC90, 0x1BC99, | |
8737 0x1BC9C, 0x1BC9C, 0x1BC9F, 0x1BC9F, 0x1CF50, 0x1CFC3, 0x1D000, 0x1D0F5, | |
8738 0x1D100, 0x1D126, 0x1D129, 0x1D164, 0x1D166, 0x1D166, 0x1D16A, 0x1D16D, | |
8739 0x1D183, 0x1D184, 0x1D18C, 0x1D1A9, 0x1D1AE, 0x1D1EA, 0x1D200, 0x1D241, | |
8740 0x1D245, 0x1D245, 0x1D2C0, 0x1D2D3, 0x1D2E0, 0x1D2F3, 0x1D300, 0x1D356, | |
8741 0x1D360, 0x1D378, 0x1D400, 0x1D454, 0x1D456, 0x1D49C, 0x1D49E, 0x1D49F, | |
8742 0x1D4A2, 0x1D4A2, 0x1D4A5, 0x1D4A6, 0x1D4A9, 0x1D4AC, 0x1D4AE, 0x1D4B9, | |
8743 0x1D4BB, 0x1D4BB, 0x1D4BD, 0x1D4C3, 0x1D4C5, 0x1D505, 0x1D507, 0x1D50A, | |
8744 0x1D50D, 0x1D514, 0x1D516, 0x1D51C, 0x1D51E, 0x1D539, 0x1D53B, 0x1D53E, | |
8745 0x1D540, 0x1D544, 0x1D546, 0x1D546, 0x1D54A, 0x1D550, 0x1D552, 0x1D6A5, | |
8746 0x1D6A8, 0x1D7CB, 0x1D7CE, 0x1D9FF, 0x1DA37, 0x1DA3A, 0x1DA6D, 0x1DA74, | |
8747 0x1DA76, 0x1DA83, 0x1DA85, 0x1DA8B, 0x1DF00, 0x1DF1E, 0x1DF25, 0x1DF2A, | |
8748 0x1E030, 0x1E06D, 0x1E100, 0x1E12C, 0x1E137, 0x1E13D, 0x1E140, 0x1E149, | |
8749 0x1E14E, 0x1E14F, 0x1E290, 0x1E2AD, 0x1E2C0, 0x1E2EB, 0x1E2F0, 0x1E2F9, | |
8750 0x1E2FF, 0x1E2FF, 0x1E4D0, 0x1E4EB, 0x1E4F0, 0x1E4F9, 0x1E7E0, 0x1E7E6, | |
8751 0x1E7E8, 0x1E7EB, 0x1E7ED, 0x1E7EE, 0x1E7F0, 0x1E7FE, 0x1E800, 0x1E8C4, | |
8752 0x1E8C7, 0x1E8CF, 0x1E900, 0x1E943, 0x1E94B, 0x1E94B, 0x1E950, 0x1E959, | |
8753 0x1E95E, 0x1E95F, 0x1EC71, 0x1ECB4, 0x1ED01, 0x1ED3D, 0x1EE00, 0x1EE03, | |
8754 0x1EE05, 0x1EE1F, 0x1EE21, 0x1EE22, 0x1EE24, 0x1EE24, 0x1EE27, 0x1EE27, | |
8755 0x1EE29, 0x1EE32, 0x1EE34, 0x1EE37, 0x1EE39, 0x1EE39, 0x1EE3B, 0x1EE3B, | |
8756 0x1EE42, 0x1EE42, 0x1EE47, 0x1EE47, 0x1EE49, 0x1EE49, 0x1EE4B, 0x1EE4B, | |
8757 0x1EE4D, 0x1EE4F, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE54, 0x1EE57, 0x1EE57, | |
8758 0x1EE59, 0x1EE59, 0x1EE5B, 0x1EE5B, 0x1EE5D, 0x1EE5D, 0x1EE5F, 0x1EE5F, | |
8759 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE64, 0x1EE67, 0x1EE6A, 0x1EE6C, 0x1EE72, | |
8760 0x1EE74, 0x1EE77, 0x1EE79, 0x1EE7C, 0x1EE7E, 0x1EE7E, 0x1EE80, 0x1EE89, | |
8761 0x1EE8B, 0x1EE9B, 0x1EEA1, 0x1EEA3, 0x1EEA5, 0x1EEA9, 0x1EEAB, 0x1EEBB, | |
8762 0x1EEF0, 0x1EEF1, 0x1F000, 0x1F02B, 0x1F030, 0x1F093, 0x1F0A0, 0x1F0AE, | |
8763 0x1F0B1, 0x1F0BF, 0x1F0C1, 0x1F0CF, 0x1F0D1, 0x1F0F5, 0x1F100, 0x1F1AD, | |
8764 0x1F1E6, 0x1F202, 0x1F210, 0x1F23B, 0x1F240, 0x1F248, 0x1F250, 0x1F251, | |
8765 0x1F260, 0x1F265, 0x1F300, 0x1F6D7, 0x1F6DC, 0x1F6EC, 0x1F6F0, 0x1F6FC, | |
8766 0x1F700, 0x1F776, 0x1F77B, 0x1F7D9, 0x1F7E0, 0x1F7EB, 0x1F7F0, 0x1F7F0, | |
8767 0x1F800, 0x1F80B, 0x1F810, 0x1F847, 0x1F850, 0x1F859, 0x1F860, 0x1F887, | |
8768 0x1F890, 0x1F8AD, 0x1F8B0, 0x1F8B1, 0x1F900, 0x1FA53, 0x1FA60, 0x1FA6D, | |
8769 0x1FA70, 0x1FA7C, 0x1FA80, 0x1FA88, 0x1FA90, 0x1FABD, 0x1FABF, 0x1FAC5, | |
8770 0x1FACE, 0x1FADB, 0x1FAE0, 0x1FAE8, 0x1FAF0, 0x1FAF8, 0x1FB00, 0x1FB92, | |
8771 0x1FB94, 0x1FBCA, 0x1FBF0, 0x1FBF9, 0x20000, 0x2A6DF, 0x2A700, 0x2B739, | |
8772 0x2B740, 0x2B81D, 0x2B820, 0x2CEA1, 0x2CEB0, 0x2EBE0, 0x2EBF0, 0x2EE5D, | |
8773 0x2F800, 0x2FA1D, 0x30000, 0x3134A, 0x31350, 0x323AF, | |
8774 // #70 (10425+363): bp=Grapheme_Extend:Gr_Ext | |
8775 0x0300, 0x036F, 0x0483, 0x0489, 0x0591, 0x05BD, 0x05BF, 0x05BF, | |
8776 0x05C1, 0x05C2, 0x05C4, 0x05C5, 0x05C7, 0x05C7, 0x0610, 0x061A, | |
8777 0x064B, 0x065F, 0x0670, 0x0670, 0x06D6, 0x06DC, 0x06DF, 0x06E4, | |
8778 0x06E7, 0x06E8, 0x06EA, 0x06ED, 0x0711, 0x0711, 0x0730, 0x074A, | |
8779 0x07A6, 0x07B0, 0x07EB, 0x07F3, 0x07FD, 0x07FD, 0x0816, 0x0819, | |
8780 0x081B, 0x0823, 0x0825, 0x0827, 0x0829, 0x082D, 0x0859, 0x085B, | |
8781 0x0898, 0x089F, 0x08CA, 0x08E1, 0x08E3, 0x0902, 0x093A, 0x093A, | |
8782 0x093C, 0x093C, 0x0941, 0x0948, 0x094D, 0x094D, 0x0951, 0x0957, | |
8783 0x0962, 0x0963, 0x0981, 0x0981, 0x09BC, 0x09BC, 0x09BE, 0x09BE, | |
8784 0x09C1, 0x09C4, 0x09CD, 0x09CD, 0x09D7, 0x09D7, 0x09E2, 0x09E3, | |
8785 0x09FE, 0x09FE, 0x0A01, 0x0A02, 0x0A3C, 0x0A3C, 0x0A41, 0x0A42, | |
8786 0x0A47, 0x0A48, 0x0A4B, 0x0A4D, 0x0A51, 0x0A51, 0x0A70, 0x0A71, | |
8787 0x0A75, 0x0A75, 0x0A81, 0x0A82, 0x0ABC, 0x0ABC, 0x0AC1, 0x0AC5, | |
8788 0x0AC7, 0x0AC8, 0x0ACD, 0x0ACD, 0x0AE2, 0x0AE3, 0x0AFA, 0x0AFF, | |
8789 0x0B01, 0x0B01, 0x0B3C, 0x0B3C, 0x0B3E, 0x0B3F, 0x0B41, 0x0B44, | |
8790 0x0B4D, 0x0B4D, 0x0B55, 0x0B57, 0x0B62, 0x0B63, 0x0B82, 0x0B82, | |
8791 0x0BBE, 0x0BBE, 0x0BC0, 0x0BC0, 0x0BCD, 0x0BCD, 0x0BD7, 0x0BD7, | |
8792 0x0C00, 0x0C00, 0x0C04, 0x0C04, 0x0C3C, 0x0C3C, 0x0C3E, 0x0C40, | |
8793 0x0C46, 0x0C48, 0x0C4A, 0x0C4D, 0x0C55, 0x0C56, 0x0C62, 0x0C63, | |
8794 0x0C81, 0x0C81, 0x0CBC, 0x0CBC, 0x0CBF, 0x0CBF, 0x0CC2, 0x0CC2, | |
8795 0x0CC6, 0x0CC6, 0x0CCC, 0x0CCD, 0x0CD5, 0x0CD6, 0x0CE2, 0x0CE3, | |
8796 0x0D00, 0x0D01, 0x0D3B, 0x0D3C, 0x0D3E, 0x0D3E, 0x0D41, 0x0D44, | |
8797 0x0D4D, 0x0D4D, 0x0D57, 0x0D57, 0x0D62, 0x0D63, 0x0D81, 0x0D81, | |
8798 0x0DCA, 0x0DCA, 0x0DCF, 0x0DCF, 0x0DD2, 0x0DD4, 0x0DD6, 0x0DD6, | |
8799 0x0DDF, 0x0DDF, 0x0E31, 0x0E31, 0x0E34, 0x0E3A, 0x0E47, 0x0E4E, | |
8800 0x0EB1, 0x0EB1, 0x0EB4, 0x0EBC, 0x0EC8, 0x0ECE, 0x0F18, 0x0F19, | |
8801 0x0F35, 0x0F35, 0x0F37, 0x0F37, 0x0F39, 0x0F39, 0x0F71, 0x0F7E, | |
8802 0x0F80, 0x0F84, 0x0F86, 0x0F87, 0x0F8D, 0x0F97, 0x0F99, 0x0FBC, | |
8803 0x0FC6, 0x0FC6, 0x102D, 0x1030, 0x1032, 0x1037, 0x1039, 0x103A, | |
8804 0x103D, 0x103E, 0x1058, 0x1059, 0x105E, 0x1060, 0x1071, 0x1074, | |
8805 0x1082, 0x1082, 0x1085, 0x1086, 0x108D, 0x108D, 0x109D, 0x109D, | |
8806 0x135D, 0x135F, 0x1712, 0x1714, 0x1732, 0x1733, 0x1752, 0x1753, | |
8807 0x1772, 0x1773, 0x17B4, 0x17B5, 0x17B7, 0x17BD, 0x17C6, 0x17C6, | |
8808 0x17C9, 0x17D3, 0x17DD, 0x17DD, 0x180B, 0x180D, 0x180F, 0x180F, | |
8809 0x1885, 0x1886, 0x18A9, 0x18A9, 0x1920, 0x1922, 0x1927, 0x1928, | |
8810 0x1932, 0x1932, 0x1939, 0x193B, 0x1A17, 0x1A18, 0x1A1B, 0x1A1B, | |
8811 0x1A56, 0x1A56, 0x1A58, 0x1A5E, 0x1A60, 0x1A60, 0x1A62, 0x1A62, | |
8812 0x1A65, 0x1A6C, 0x1A73, 0x1A7C, 0x1A7F, 0x1A7F, 0x1AB0, 0x1ACE, | |
8813 0x1B00, 0x1B03, 0x1B34, 0x1B3A, 0x1B3C, 0x1B3C, 0x1B42, 0x1B42, | |
8814 0x1B6B, 0x1B73, 0x1B80, 0x1B81, 0x1BA2, 0x1BA5, 0x1BA8, 0x1BA9, | |
8815 0x1BAB, 0x1BAD, 0x1BE6, 0x1BE6, 0x1BE8, 0x1BE9, 0x1BED, 0x1BED, | |
8816 0x1BEF, 0x1BF1, 0x1C2C, 0x1C33, 0x1C36, 0x1C37, 0x1CD0, 0x1CD2, | |
8817 0x1CD4, 0x1CE0, 0x1CE2, 0x1CE8, 0x1CED, 0x1CED, 0x1CF4, 0x1CF4, | |
8818 0x1CF8, 0x1CF9, 0x1DC0, 0x1DFF, 0x200C, 0x200C, 0x20D0, 0x20F0, | |
8819 0x2CEF, 0x2CF1, 0x2D7F, 0x2D7F, 0x2DE0, 0x2DFF, 0x302A, 0x302F, | |
8820 0x3099, 0x309A, 0xA66F, 0xA672, 0xA674, 0xA67D, 0xA69E, 0xA69F, | |
8821 0xA6F0, 0xA6F1, 0xA802, 0xA802, 0xA806, 0xA806, 0xA80B, 0xA80B, | |
8822 0xA825, 0xA826, 0xA82C, 0xA82C, 0xA8C4, 0xA8C5, 0xA8E0, 0xA8F1, | |
8823 0xA8FF, 0xA8FF, 0xA926, 0xA92D, 0xA947, 0xA951, 0xA980, 0xA982, | |
8824 0xA9B3, 0xA9B3, 0xA9B6, 0xA9B9, 0xA9BC, 0xA9BD, 0xA9E5, 0xA9E5, | |
8825 0xAA29, 0xAA2E, 0xAA31, 0xAA32, 0xAA35, 0xAA36, 0xAA43, 0xAA43, | |
8826 0xAA4C, 0xAA4C, 0xAA7C, 0xAA7C, 0xAAB0, 0xAAB0, 0xAAB2, 0xAAB4, | |
8827 0xAAB7, 0xAAB8, 0xAABE, 0xAABF, 0xAAC1, 0xAAC1, 0xAAEC, 0xAAED, | |
8828 0xAAF6, 0xAAF6, 0xABE5, 0xABE5, 0xABE8, 0xABE8, 0xABED, 0xABED, | |
8829 0xFB1E, 0xFB1E, 0xFE00, 0xFE0F, 0xFE20, 0xFE2F, 0xFF9E, 0xFF9F, | |
8830 0x101FD, 0x101FD, 0x102E0, 0x102E0, 0x10376, 0x1037A, 0x10A01, 0x10A03, | |
8831 0x10A05, 0x10A06, 0x10A0C, 0x10A0F, 0x10A38, 0x10A3A, 0x10A3F, 0x10A3F, | |
8832 0x10AE5, 0x10AE6, 0x10D24, 0x10D27, 0x10EAB, 0x10EAC, 0x10EFD, 0x10EFF, | |
8833 0x10F46, 0x10F50, 0x10F82, 0x10F85, 0x11001, 0x11001, 0x11038, 0x11046, | |
8834 0x11070, 0x11070, 0x11073, 0x11074, 0x1107F, 0x11081, 0x110B3, 0x110B6, | |
8835 0x110B9, 0x110BA, 0x110C2, 0x110C2, 0x11100, 0x11102, 0x11127, 0x1112B, | |
8836 0x1112D, 0x11134, 0x11173, 0x11173, 0x11180, 0x11181, 0x111B6, 0x111BE, | |
8837 0x111C9, 0x111CC, 0x111CF, 0x111CF, 0x1122F, 0x11231, 0x11234, 0x11234, | |
8838 0x11236, 0x11237, 0x1123E, 0x1123E, 0x11241, 0x11241, 0x112DF, 0x112DF, | |
8839 0x112E3, 0x112EA, 0x11300, 0x11301, 0x1133B, 0x1133C, 0x1133E, 0x1133E, | |
8840 0x11340, 0x11340, 0x11357, 0x11357, 0x11366, 0x1136C, 0x11370, 0x11374, | |
8841 0x11438, 0x1143F, 0x11442, 0x11444, 0x11446, 0x11446, 0x1145E, 0x1145E, | |
8842 0x114B0, 0x114B0, 0x114B3, 0x114B8, 0x114BA, 0x114BA, 0x114BD, 0x114BD, | |
8843 0x114BF, 0x114C0, 0x114C2, 0x114C3, 0x115AF, 0x115AF, 0x115B2, 0x115B5, | |
8844 0x115BC, 0x115BD, 0x115BF, 0x115C0, 0x115DC, 0x115DD, 0x11633, 0x1163A, | |
8845 0x1163D, 0x1163D, 0x1163F, 0x11640, 0x116AB, 0x116AB, 0x116AD, 0x116AD, | |
8846 0x116B0, 0x116B5, 0x116B7, 0x116B7, 0x1171D, 0x1171F, 0x11722, 0x11725, | |
8847 0x11727, 0x1172B, 0x1182F, 0x11837, 0x11839, 0x1183A, 0x11930, 0x11930, | |
8848 0x1193B, 0x1193C, 0x1193E, 0x1193E, 0x11943, 0x11943, 0x119D4, 0x119D7, | |
8849 0x119DA, 0x119DB, 0x119E0, 0x119E0, 0x11A01, 0x11A0A, 0x11A33, 0x11A38, | |
8850 0x11A3B, 0x11A3E, 0x11A47, 0x11A47, 0x11A51, 0x11A56, 0x11A59, 0x11A5B, | |
8851 0x11A8A, 0x11A96, 0x11A98, 0x11A99, 0x11C30, 0x11C36, 0x11C38, 0x11C3D, | |
8852 0x11C3F, 0x11C3F, 0x11C92, 0x11CA7, 0x11CAA, 0x11CB0, 0x11CB2, 0x11CB3, | |
8853 0x11CB5, 0x11CB6, 0x11D31, 0x11D36, 0x11D3A, 0x11D3A, 0x11D3C, 0x11D3D, | |
8854 0x11D3F, 0x11D45, 0x11D47, 0x11D47, 0x11D90, 0x11D91, 0x11D95, 0x11D95, | |
8855 0x11D97, 0x11D97, 0x11EF3, 0x11EF4, 0x11F00, 0x11F01, 0x11F36, 0x11F3A, | |
8856 0x11F40, 0x11F40, 0x11F42, 0x11F42, 0x13440, 0x13440, 0x13447, 0x13455, | |
8857 0x16AF0, 0x16AF4, 0x16B30, 0x16B36, 0x16F4F, 0x16F4F, 0x16F8F, 0x16F92, | |
8858 0x16FE4, 0x16FE4, 0x1BC9D, 0x1BC9E, 0x1CF00, 0x1CF2D, 0x1CF30, 0x1CF46, | |
8859 0x1D165, 0x1D165, 0x1D167, 0x1D169, 0x1D16E, 0x1D172, 0x1D17B, 0x1D182, | |
8860 0x1D185, 0x1D18B, 0x1D1AA, 0x1D1AD, 0x1D242, 0x1D244, 0x1DA00, 0x1DA36, | |
8861 0x1DA3B, 0x1DA6C, 0x1DA75, 0x1DA75, 0x1DA84, 0x1DA84, 0x1DA9B, 0x1DA9F, | |
8862 0x1DAA1, 0x1DAAF, 0x1E000, 0x1E006, 0x1E008, 0x1E018, 0x1E01B, 0x1E021, | |
8863 0x1E023, 0x1E024, 0x1E026, 0x1E02A, 0x1E08F, 0x1E08F, 0x1E130, 0x1E136, | |
8864 0x1E2AE, 0x1E2AE, 0x1E2EC, 0x1E2EF, 0x1E4EC, 0x1E4EF, 0x1E8D0, 0x1E8D6, | |
8865 0x1E944, 0x1E94A, 0xE0020, 0xE007F, 0xE0100, 0xE01EF, | |
8866 // #71 (10788+6): bp=Hex_Digit:Hex | |
8867 0x0030, 0x0039, 0x0041, 0x0046, 0x0061, 0x0066, 0xFF10, 0xFF19, | |
8868 0xFF21, 0xFF26, 0xFF41, 0xFF46, | |
8869 // #72 (10794+3): bp=IDS_Binary_Operator:IDSB | |
8870 0x2FF0, 0x2FF1, 0x2FF4, 0x2FFD, 0x31EF, 0x31EF, | |
8871 // #73 (10797+1): bp=IDS_Trinary_Operator:IDST | |
8872 0x2FF2, 0x2FF3, | |
8873 // #74 (10798+769): bp=ID_Continue:IDC | |
8874 0x0030, 0x0039, 0x0041, 0x005A, 0x005F, 0x005F, 0x0061, 0x007A, | |
8875 0x00AA, 0x00AA, 0x00B5, 0x00B5, 0x00B7, 0x00B7, 0x00BA, 0x00BA, | |
8876 0x00C0, 0x00D6, 0x00D8, 0x00F6, 0x00F8, 0x02C1, 0x02C6, 0x02D1, | |
8877 0x02E0, 0x02E4, 0x02EC, 0x02EC, 0x02EE, 0x02EE, 0x0300, 0x0374, | |
8878 0x0376, 0x0377, 0x037A, 0x037D, 0x037F, 0x037F, 0x0386, 0x038A, | |
8879 0x038C, 0x038C, 0x038E, 0x03A1, 0x03A3, 0x03F5, 0x03F7, 0x0481, | |
8880 0x0483, 0x0487, 0x048A, 0x052F, 0x0531, 0x0556, 0x0559, 0x0559, | |
8881 0x0560, 0x0588, 0x0591, 0x05BD, 0x05BF, 0x05BF, 0x05C1, 0x05C2, | |
8882 0x05C4, 0x05C5, 0x05C7, 0x05C7, 0x05D0, 0x05EA, 0x05EF, 0x05F2, | |
8883 0x0610, 0x061A, 0x0620, 0x0669, 0x066E, 0x06D3, 0x06D5, 0x06DC, | |
8884 0x06DF, 0x06E8, 0x06EA, 0x06FC, 0x06FF, 0x06FF, 0x0710, 0x074A, | |
8885 0x074D, 0x07B1, 0x07C0, 0x07F5, 0x07FA, 0x07FA, 0x07FD, 0x07FD, | |
8886 0x0800, 0x082D, 0x0840, 0x085B, 0x0860, 0x086A, 0x0870, 0x0887, | |
8887 0x0889, 0x088E, 0x0898, 0x08E1, 0x08E3, 0x0963, 0x0966, 0x096F, | |
8888 0x0971, 0x0983, 0x0985, 0x098C, 0x098F, 0x0990, 0x0993, 0x09A8, | |
8889 0x09AA, 0x09B0, 0x09B2, 0x09B2, 0x09B6, 0x09B9, 0x09BC, 0x09C4, | |
8890 0x09C7, 0x09C8, 0x09CB, 0x09CE, 0x09D7, 0x09D7, 0x09DC, 0x09DD, | |
8891 0x09DF, 0x09E3, 0x09E6, 0x09F1, 0x09FC, 0x09FC, 0x09FE, 0x09FE, | |
8892 0x0A01, 0x0A03, 0x0A05, 0x0A0A, 0x0A0F, 0x0A10, 0x0A13, 0x0A28, | |
8893 0x0A2A, 0x0A30, 0x0A32, 0x0A33, 0x0A35, 0x0A36, 0x0A38, 0x0A39, | |
8894 0x0A3C, 0x0A3C, 0x0A3E, 0x0A42, 0x0A47, 0x0A48, 0x0A4B, 0x0A4D, | |
8895 0x0A51, 0x0A51, 0x0A59, 0x0A5C, 0x0A5E, 0x0A5E, 0x0A66, 0x0A75, | |
8896 0x0A81, 0x0A83, 0x0A85, 0x0A8D, 0x0A8F, 0x0A91, 0x0A93, 0x0AA8, | |
8897 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3, 0x0AB5, 0x0AB9, 0x0ABC, 0x0AC5, | |
8898 0x0AC7, 0x0AC9, 0x0ACB, 0x0ACD, 0x0AD0, 0x0AD0, 0x0AE0, 0x0AE3, | |
8899 0x0AE6, 0x0AEF, 0x0AF9, 0x0AFF, 0x0B01, 0x0B03, 0x0B05, 0x0B0C, | |
8900 0x0B0F, 0x0B10, 0x0B13, 0x0B28, 0x0B2A, 0x0B30, 0x0B32, 0x0B33, | |
8901 0x0B35, 0x0B39, 0x0B3C, 0x0B44, 0x0B47, 0x0B48, 0x0B4B, 0x0B4D, | |
8902 0x0B55, 0x0B57, 0x0B5C, 0x0B5D, 0x0B5F, 0x0B63, 0x0B66, 0x0B6F, | |
8903 0x0B71, 0x0B71, 0x0B82, 0x0B83, 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, | |
8904 0x0B92, 0x0B95, 0x0B99, 0x0B9A, 0x0B9C, 0x0B9C, 0x0B9E, 0x0B9F, | |
8905 0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA, 0x0BAE, 0x0BB9, 0x0BBE, 0x0BC2, | |
8906 0x0BC6, 0x0BC8, 0x0BCA, 0x0BCD, 0x0BD0, 0x0BD0, 0x0BD7, 0x0BD7, | |
8907 0x0BE6, 0x0BEF, 0x0C00, 0x0C0C, 0x0C0E, 0x0C10, 0x0C12, 0x0C28, | |
8908 0x0C2A, 0x0C39, 0x0C3C, 0x0C44, 0x0C46, 0x0C48, 0x0C4A, 0x0C4D, | |
8909 0x0C55, 0x0C56, 0x0C58, 0x0C5A, 0x0C5D, 0x0C5D, 0x0C60, 0x0C63, | |
8910 0x0C66, 0x0C6F, 0x0C80, 0x0C83, 0x0C85, 0x0C8C, 0x0C8E, 0x0C90, | |
8911 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3, 0x0CB5, 0x0CB9, 0x0CBC, 0x0CC4, | |
8912 0x0CC6, 0x0CC8, 0x0CCA, 0x0CCD, 0x0CD5, 0x0CD6, 0x0CDD, 0x0CDE, | |
8913 0x0CE0, 0x0CE3, 0x0CE6, 0x0CEF, 0x0CF1, 0x0CF3, 0x0D00, 0x0D0C, | |
8914 0x0D0E, 0x0D10, 0x0D12, 0x0D44, 0x0D46, 0x0D48, 0x0D4A, 0x0D4E, | |
8915 0x0D54, 0x0D57, 0x0D5F, 0x0D63, 0x0D66, 0x0D6F, 0x0D7A, 0x0D7F, | |
8916 0x0D81, 0x0D83, 0x0D85, 0x0D96, 0x0D9A, 0x0DB1, 0x0DB3, 0x0DBB, | |
8917 0x0DBD, 0x0DBD, 0x0DC0, 0x0DC6, 0x0DCA, 0x0DCA, 0x0DCF, 0x0DD4, | |
8918 0x0DD6, 0x0DD6, 0x0DD8, 0x0DDF, 0x0DE6, 0x0DEF, 0x0DF2, 0x0DF3, | |
8919 0x0E01, 0x0E3A, 0x0E40, 0x0E4E, 0x0E50, 0x0E59, 0x0E81, 0x0E82, | |
8920 0x0E84, 0x0E84, 0x0E86, 0x0E8A, 0x0E8C, 0x0EA3, 0x0EA5, 0x0EA5, | |
8921 0x0EA7, 0x0EBD, 0x0EC0, 0x0EC4, 0x0EC6, 0x0EC6, 0x0EC8, 0x0ECE, | |
8922 0x0ED0, 0x0ED9, 0x0EDC, 0x0EDF, 0x0F00, 0x0F00, 0x0F18, 0x0F19, | |
8923 0x0F20, 0x0F29, 0x0F35, 0x0F35, 0x0F37, 0x0F37, 0x0F39, 0x0F39, | |
8924 0x0F3E, 0x0F47, 0x0F49, 0x0F6C, 0x0F71, 0x0F84, 0x0F86, 0x0F97, | |
8925 0x0F99, 0x0FBC, 0x0FC6, 0x0FC6, 0x1000, 0x1049, 0x1050, 0x109D, | |
8926 0x10A0, 0x10C5, 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x10D0, 0x10FA, | |
8927 0x10FC, 0x1248, 0x124A, 0x124D, 0x1250, 0x1256, 0x1258, 0x1258, | |
8928 0x125A, 0x125D, 0x1260, 0x1288, 0x128A, 0x128D, 0x1290, 0x12B0, | |
8929 0x12B2, 0x12B5, 0x12B8, 0x12BE, 0x12C0, 0x12C0, 0x12C2, 0x12C5, | |
8930 0x12C8, 0x12D6, 0x12D8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135A, | |
8931 0x135D, 0x135F, 0x1369, 0x1371, 0x1380, 0x138F, 0x13A0, 0x13F5, | |
8932 0x13F8, 0x13FD, 0x1401, 0x166C, 0x166F, 0x167F, 0x1681, 0x169A, | |
8933 0x16A0, 0x16EA, 0x16EE, 0x16F8, 0x1700, 0x1715, 0x171F, 0x1734, | |
8934 0x1740, 0x1753, 0x1760, 0x176C, 0x176E, 0x1770, 0x1772, 0x1773, | |
8935 0x1780, 0x17D3, 0x17D7, 0x17D7, 0x17DC, 0x17DD, 0x17E0, 0x17E9, | |
8936 0x180B, 0x180D, 0x180F, 0x1819, 0x1820, 0x1878, 0x1880, 0x18AA, | |
8937 0x18B0, 0x18F5, 0x1900, 0x191E, 0x1920, 0x192B, 0x1930, 0x193B, | |
8938 0x1946, 0x196D, 0x1970, 0x1974, 0x1980, 0x19AB, 0x19B0, 0x19C9, | |
8939 0x19D0, 0x19DA, 0x1A00, 0x1A1B, 0x1A20, 0x1A5E, 0x1A60, 0x1A7C, | |
8940 0x1A7F, 0x1A89, 0x1A90, 0x1A99, 0x1AA7, 0x1AA7, 0x1AB0, 0x1ABD, | |
8941 0x1ABF, 0x1ACE, 0x1B00, 0x1B4C, 0x1B50, 0x1B59, 0x1B6B, 0x1B73, | |
8942 0x1B80, 0x1BF3, 0x1C00, 0x1C37, 0x1C40, 0x1C49, 0x1C4D, 0x1C7D, | |
8943 0x1C80, 0x1C88, 0x1C90, 0x1CBA, 0x1CBD, 0x1CBF, 0x1CD0, 0x1CD2, | |
8944 0x1CD4, 0x1CFA, 0x1D00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, | |
8945 0x1F48, 0x1F4D, 0x1F50, 0x1F57, 0x1F59, 0x1F59, 0x1F5B, 0x1F5B, | |
8946 0x1F5D, 0x1F5D, 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FBC, | |
8947 0x1FBE, 0x1FBE, 0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, 0x1FD0, 0x1FD3, | |
8948 0x1FD6, 0x1FDB, 0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFC, | |
8949 0x200C, 0x200D, 0x203F, 0x2040, 0x2054, 0x2054, 0x2071, 0x2071, | |
8950 0x207F, 0x207F, 0x2090, 0x209C, 0x20D0, 0x20DC, 0x20E1, 0x20E1, | |
8951 0x20E5, 0x20F0, 0x2102, 0x2102, 0x2107, 0x2107, 0x210A, 0x2113, | |
8952 0x2115, 0x2115, 0x2118, 0x211D, 0x2124, 0x2124, 0x2126, 0x2126, | |
8953 0x2128, 0x2128, 0x212A, 0x2139, 0x213C, 0x213F, 0x2145, 0x2149, | |
8954 0x214E, 0x214E, 0x2160, 0x2188, 0x2C00, 0x2CE4, 0x2CEB, 0x2CF3, | |
8955 0x2D00, 0x2D25, 0x2D27, 0x2D27, 0x2D2D, 0x2D2D, 0x2D30, 0x2D67, | |
8956 0x2D6F, 0x2D6F, 0x2D7F, 0x2D96, 0x2DA0, 0x2DA6, 0x2DA8, 0x2DAE, | |
8957 0x2DB0, 0x2DB6, 0x2DB8, 0x2DBE, 0x2DC0, 0x2DC6, 0x2DC8, 0x2DCE, | |
8958 0x2DD0, 0x2DD6, 0x2DD8, 0x2DDE, 0x2DE0, 0x2DFF, 0x3005, 0x3007, | |
8959 0x3021, 0x302F, 0x3031, 0x3035, 0x3038, 0x303C, 0x3041, 0x3096, | |
8960 0x3099, 0x309F, 0x30A1, 0x30FF, 0x3105, 0x312F, 0x3131, 0x318E, | |
8961 0x31A0, 0x31BF, 0x31F0, 0x31FF, 0x3400, 0x4DBF, 0x4E00, 0xA48C, | |
8962 0xA4D0, 0xA4FD, 0xA500, 0xA60C, 0xA610, 0xA62B, 0xA640, 0xA66F, | |
8963 0xA674, 0xA67D, 0xA67F, 0xA6F1, 0xA717, 0xA71F, 0xA722, 0xA788, | |
8964 0xA78B, 0xA7CA, 0xA7D0, 0xA7D1, 0xA7D3, 0xA7D3, 0xA7D5, 0xA7D9, | |
8965 0xA7F2, 0xA827, 0xA82C, 0xA82C, 0xA840, 0xA873, 0xA880, 0xA8C5, | |
8966 0xA8D0, 0xA8D9, 0xA8E0, 0xA8F7, 0xA8FB, 0xA8FB, 0xA8FD, 0xA92D, | |
8967 0xA930, 0xA953, 0xA960, 0xA97C, 0xA980, 0xA9C0, 0xA9CF, 0xA9D9, | |
8968 0xA9E0, 0xA9FE, 0xAA00, 0xAA36, 0xAA40, 0xAA4D, 0xAA50, 0xAA59, | |
8969 0xAA60, 0xAA76, 0xAA7A, 0xAAC2, 0xAADB, 0xAADD, 0xAAE0, 0xAAEF, | |
8970 0xAAF2, 0xAAF6, 0xAB01, 0xAB06, 0xAB09, 0xAB0E, 0xAB11, 0xAB16, | |
8971 0xAB20, 0xAB26, 0xAB28, 0xAB2E, 0xAB30, 0xAB5A, 0xAB5C, 0xAB69, | |
8972 0xAB70, 0xABEA, 0xABEC, 0xABED, 0xABF0, 0xABF9, 0xAC00, 0xD7A3, | |
8973 0xD7B0, 0xD7C6, 0xD7CB, 0xD7FB, 0xF900, 0xFA6D, 0xFA70, 0xFAD9, | |
8974 0xFB00, 0xFB06, 0xFB13, 0xFB17, 0xFB1D, 0xFB28, 0xFB2A, 0xFB36, | |
8975 0xFB38, 0xFB3C, 0xFB3E, 0xFB3E, 0xFB40, 0xFB41, 0xFB43, 0xFB44, | |
8976 0xFB46, 0xFBB1, 0xFBD3, 0xFD3D, 0xFD50, 0xFD8F, 0xFD92, 0xFDC7, | |
8977 0xFDF0, 0xFDFB, 0xFE00, 0xFE0F, 0xFE20, 0xFE2F, 0xFE33, 0xFE34, | |
8978 0xFE4D, 0xFE4F, 0xFE70, 0xFE74, 0xFE76, 0xFEFC, 0xFF10, 0xFF19, | |
8979 0xFF21, 0xFF3A, 0xFF3F, 0xFF3F, 0xFF41, 0xFF5A, 0xFF65, 0xFFBE, | |
8980 0xFFC2, 0xFFC7, 0xFFCA, 0xFFCF, 0xFFD2, 0xFFD7, 0xFFDA, 0xFFDC, | |
8981 0x10000, 0x1000B, 0x1000D, 0x10026, 0x10028, 0x1003A, 0x1003C, 0x1003D, | |
8982 0x1003F, 0x1004D, 0x10050, 0x1005D, 0x10080, 0x100FA, 0x10140, 0x10174, | |
8983 0x101FD, 0x101FD, 0x10280, 0x1029C, 0x102A0, 0x102D0, 0x102E0, 0x102E0, | |
8984 0x10300, 0x1031F, 0x1032D, 0x1034A, 0x10350, 0x1037A, 0x10380, 0x1039D, | |
8985 0x103A0, 0x103C3, 0x103C8, 0x103CF, 0x103D1, 0x103D5, 0x10400, 0x1049D, | |
8986 0x104A0, 0x104A9, 0x104B0, 0x104D3, 0x104D8, 0x104FB, 0x10500, 0x10527, | |
8987 0x10530, 0x10563, 0x10570, 0x1057A, 0x1057C, 0x1058A, 0x1058C, 0x10592, | |
8988 0x10594, 0x10595, 0x10597, 0x105A1, 0x105A3, 0x105B1, 0x105B3, 0x105B9, | |
8989 0x105BB, 0x105BC, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, | |
8990 0x10780, 0x10785, 0x10787, 0x107B0, 0x107B2, 0x107BA, 0x10800, 0x10805, | |
8991 0x10808, 0x10808, 0x1080A, 0x10835, 0x10837, 0x10838, 0x1083C, 0x1083C, | |
8992 0x1083F, 0x10855, 0x10860, 0x10876, 0x10880, 0x1089E, 0x108E0, 0x108F2, | |
8993 0x108F4, 0x108F5, 0x10900, 0x10915, 0x10920, 0x10939, 0x10980, 0x109B7, | |
8994 0x109BE, 0x109BF, 0x10A00, 0x10A03, 0x10A05, 0x10A06, 0x10A0C, 0x10A13, | |
8995 0x10A15, 0x10A17, 0x10A19, 0x10A35, 0x10A38, 0x10A3A, 0x10A3F, 0x10A3F, | |
8996 0x10A60, 0x10A7C, 0x10A80, 0x10A9C, 0x10AC0, 0x10AC7, 0x10AC9, 0x10AE6, | |
8997 0x10B00, 0x10B35, 0x10B40, 0x10B55, 0x10B60, 0x10B72, 0x10B80, 0x10B91, | |
8998 0x10C00, 0x10C48, 0x10C80, 0x10CB2, 0x10CC0, 0x10CF2, 0x10D00, 0x10D27, | |
8999 0x10D30, 0x10D39, 0x10E80, 0x10EA9, 0x10EAB, 0x10EAC, 0x10EB0, 0x10EB1, | |
9000 0x10EFD, 0x10F1C, 0x10F27, 0x10F27, 0x10F30, 0x10F50, 0x10F70, 0x10F85, | |
9001 0x10FB0, 0x10FC4, 0x10FE0, 0x10FF6, 0x11000, 0x11046, 0x11066, 0x11075, | |
9002 0x1107F, 0x110BA, 0x110C2, 0x110C2, 0x110D0, 0x110E8, 0x110F0, 0x110F9, | |
9003 0x11100, 0x11134, 0x11136, 0x1113F, 0x11144, 0x11147, 0x11150, 0x11173, | |
9004 0x11176, 0x11176, 0x11180, 0x111C4, 0x111C9, 0x111CC, 0x111CE, 0x111DA, | |
9005 0x111DC, 0x111DC, 0x11200, 0x11211, 0x11213, 0x11237, 0x1123E, 0x11241, | |
9006 0x11280, 0x11286, 0x11288, 0x11288, 0x1128A, 0x1128D, 0x1128F, 0x1129D, | |
9007 0x1129F, 0x112A8, 0x112B0, 0x112EA, 0x112F0, 0x112F9, 0x11300, 0x11303, | |
9008 0x11305, 0x1130C, 0x1130F, 0x11310, 0x11313, 0x11328, 0x1132A, 0x11330, | |
9009 0x11332, 0x11333, 0x11335, 0x11339, 0x1133B, 0x11344, 0x11347, 0x11348, | |
9010 0x1134B, 0x1134D, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135D, 0x11363, | |
9011 0x11366, 0x1136C, 0x11370, 0x11374, 0x11400, 0x1144A, 0x11450, 0x11459, | |
9012 0x1145E, 0x11461, 0x11480, 0x114C5, 0x114C7, 0x114C7, 0x114D0, 0x114D9, | |
9013 0x11580, 0x115B5, 0x115B8, 0x115C0, 0x115D8, 0x115DD, 0x11600, 0x11640, | |
9014 0x11644, 0x11644, 0x11650, 0x11659, 0x11680, 0x116B8, 0x116C0, 0x116C9, | |
9015 0x11700, 0x1171A, 0x1171D, 0x1172B, 0x11730, 0x11739, 0x11740, 0x11746, | |
9016 0x11800, 0x1183A, 0x118A0, 0x118E9, 0x118FF, 0x11906, 0x11909, 0x11909, | |
9017 0x1190C, 0x11913, 0x11915, 0x11916, 0x11918, 0x11935, 0x11937, 0x11938, | |
9018 0x1193B, 0x11943, 0x11950, 0x11959, 0x119A0, 0x119A7, 0x119AA, 0x119D7, | |
9019 0x119DA, 0x119E1, 0x119E3, 0x119E4, 0x11A00, 0x11A3E, 0x11A47, 0x11A47, | |
9020 0x11A50, 0x11A99, 0x11A9D, 0x11A9D, 0x11AB0, 0x11AF8, 0x11C00, 0x11C08, | |
9021 0x11C0A, 0x11C36, 0x11C38, 0x11C40, 0x11C50, 0x11C59, 0x11C72, 0x11C8F, | |
9022 0x11C92, 0x11CA7, 0x11CA9, 0x11CB6, 0x11D00, 0x11D06, 0x11D08, 0x11D09, | |
9023 0x11D0B, 0x11D36, 0x11D3A, 0x11D3A, 0x11D3C, 0x11D3D, 0x11D3F, 0x11D47, | |
9024 0x11D50, 0x11D59, 0x11D60, 0x11D65, 0x11D67, 0x11D68, 0x11D6A, 0x11D8E, | |
9025 0x11D90, 0x11D91, 0x11D93, 0x11D98, 0x11DA0, 0x11DA9, 0x11EE0, 0x11EF6, | |
9026 0x11F00, 0x11F10, 0x11F12, 0x11F3A, 0x11F3E, 0x11F42, 0x11F50, 0x11F59, | |
9027 0x11FB0, 0x11FB0, 0x12000, 0x12399, 0x12400, 0x1246E, 0x12480, 0x12543, | |
9028 0x12F90, 0x12FF0, 0x13000, 0x1342F, 0x13440, 0x13455, 0x14400, 0x14646, | |
9029 0x16800, 0x16A38, 0x16A40, 0x16A5E, 0x16A60, 0x16A69, 0x16A70, 0x16ABE, | |
9030 0x16AC0, 0x16AC9, 0x16AD0, 0x16AED, 0x16AF0, 0x16AF4, 0x16B00, 0x16B36, | |
9031 0x16B40, 0x16B43, 0x16B50, 0x16B59, 0x16B63, 0x16B77, 0x16B7D, 0x16B8F, | |
9032 0x16E40, 0x16E7F, 0x16F00, 0x16F4A, 0x16F4F, 0x16F87, 0x16F8F, 0x16F9F, | |
9033 0x16FE0, 0x16FE1, 0x16FE3, 0x16FE4, 0x16FF0, 0x16FF1, 0x17000, 0x187F7, | |
9034 0x18800, 0x18CD5, 0x18D00, 0x18D08, 0x1AFF0, 0x1AFF3, 0x1AFF5, 0x1AFFB, | |
9035 0x1AFFD, 0x1AFFE, 0x1B000, 0x1B122, 0x1B132, 0x1B132, 0x1B150, 0x1B152, | |
9036 0x1B155, 0x1B155, 0x1B164, 0x1B167, 0x1B170, 0x1B2FB, 0x1BC00, 0x1BC6A, | |
9037 0x1BC70, 0x1BC7C, 0x1BC80, 0x1BC88, 0x1BC90, 0x1BC99, 0x1BC9D, 0x1BC9E, | |
9038 0x1CF00, 0x1CF2D, 0x1CF30, 0x1CF46, 0x1D165, 0x1D169, 0x1D16D, 0x1D172, | |
9039 0x1D17B, 0x1D182, 0x1D185, 0x1D18B, 0x1D1AA, 0x1D1AD, 0x1D242, 0x1D244, | |
9040 0x1D400, 0x1D454, 0x1D456, 0x1D49C, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A2, | |
9041 0x1D4A5, 0x1D4A6, 0x1D4A9, 0x1D4AC, 0x1D4AE, 0x1D4B9, 0x1D4BB, 0x1D4BB, | |
9042 0x1D4BD, 0x1D4C3, 0x1D4C5, 0x1D505, 0x1D507, 0x1D50A, 0x1D50D, 0x1D514, | |
9043 0x1D516, 0x1D51C, 0x1D51E, 0x1D539, 0x1D53B, 0x1D53E, 0x1D540, 0x1D544, | |
9044 0x1D546, 0x1D546, 0x1D54A, 0x1D550, 0x1D552, 0x1D6A5, 0x1D6A8, 0x1D6C0, | |
9045 0x1D6C2, 0x1D6DA, 0x1D6DC, 0x1D6FA, 0x1D6FC, 0x1D714, 0x1D716, 0x1D734, | |
9046 0x1D736, 0x1D74E, 0x1D750, 0x1D76E, 0x1D770, 0x1D788, 0x1D78A, 0x1D7A8, | |
9047 0x1D7AA, 0x1D7C2, 0x1D7C4, 0x1D7CB, 0x1D7CE, 0x1D7FF, 0x1DA00, 0x1DA36, | |
9048 0x1DA3B, 0x1DA6C, 0x1DA75, 0x1DA75, 0x1DA84, 0x1DA84, 0x1DA9B, 0x1DA9F, | |
9049 0x1DAA1, 0x1DAAF, 0x1DF00, 0x1DF1E, 0x1DF25, 0x1DF2A, 0x1E000, 0x1E006, | |
9050 0x1E008, 0x1E018, 0x1E01B, 0x1E021, 0x1E023, 0x1E024, 0x1E026, 0x1E02A, | |
9051 0x1E030, 0x1E06D, 0x1E08F, 0x1E08F, 0x1E100, 0x1E12C, 0x1E130, 0x1E13D, | |
9052 0x1E140, 0x1E149, 0x1E14E, 0x1E14E, 0x1E290, 0x1E2AE, 0x1E2C0, 0x1E2F9, | |
9053 0x1E4D0, 0x1E4F9, 0x1E7E0, 0x1E7E6, 0x1E7E8, 0x1E7EB, 0x1E7ED, 0x1E7EE, | |
9054 0x1E7F0, 0x1E7FE, 0x1E800, 0x1E8C4, 0x1E8D0, 0x1E8D6, 0x1E900, 0x1E94B, | |
9055 0x1E950, 0x1E959, 0x1EE00, 0x1EE03, 0x1EE05, 0x1EE1F, 0x1EE21, 0x1EE22, | |
9056 0x1EE24, 0x1EE24, 0x1EE27, 0x1EE27, 0x1EE29, 0x1EE32, 0x1EE34, 0x1EE37, | |
9057 0x1EE39, 0x1EE39, 0x1EE3B, 0x1EE3B, 0x1EE42, 0x1EE42, 0x1EE47, 0x1EE47, | |
9058 0x1EE49, 0x1EE49, 0x1EE4B, 0x1EE4B, 0x1EE4D, 0x1EE4F, 0x1EE51, 0x1EE52, | |
9059 0x1EE54, 0x1EE54, 0x1EE57, 0x1EE57, 0x1EE59, 0x1EE59, 0x1EE5B, 0x1EE5B, | |
9060 0x1EE5D, 0x1EE5D, 0x1EE5F, 0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE64, | |
9061 0x1EE67, 0x1EE6A, 0x1EE6C, 0x1EE72, 0x1EE74, 0x1EE77, 0x1EE79, 0x1EE7C, | |
9062 0x1EE7E, 0x1EE7E, 0x1EE80, 0x1EE89, 0x1EE8B, 0x1EE9B, 0x1EEA1, 0x1EEA3, | |
9063 0x1EEA5, 0x1EEA9, 0x1EEAB, 0x1EEBB, 0x1FBF0, 0x1FBF9, 0x20000, 0x2A6DF, | |
9064 0x2A700, 0x2B739, 0x2B740, 0x2B81D, 0x2B820, 0x2CEA1, 0x2CEB0, 0x2EBE0, | |
9065 0x2EBF0, 0x2EE5D, 0x2F800, 0x2FA1D, 0x30000, 0x3134A, 0x31350, 0x323AF, | |
9066 0xE0100, 0xE01EF, | |
9067 // #75 (11567+660): bp=ID_Start:IDS | |
9068 0x0041, 0x005A, 0x0061, 0x007A, 0x00AA, 0x00AA, 0x00B5, 0x00B5, | |
9069 0x00BA, 0x00BA, 0x00C0, 0x00D6, 0x00D8, 0x00F6, 0x00F8, 0x02C1, | |
9070 0x02C6, 0x02D1, 0x02E0, 0x02E4, 0x02EC, 0x02EC, 0x02EE, 0x02EE, | |
9071 0x0370, 0x0374, 0x0376, 0x0377, 0x037A, 0x037D, 0x037F, 0x037F, | |
9072 0x0386, 0x0386, 0x0388, 0x038A, 0x038C, 0x038C, 0x038E, 0x03A1, | |
9073 0x03A3, 0x03F5, 0x03F7, 0x0481, 0x048A, 0x052F, 0x0531, 0x0556, | |
9074 0x0559, 0x0559, 0x0560, 0x0588, 0x05D0, 0x05EA, 0x05EF, 0x05F2, | |
9075 0x0620, 0x064A, 0x066E, 0x066F, 0x0671, 0x06D3, 0x06D5, 0x06D5, | |
9076 0x06E5, 0x06E6, 0x06EE, 0x06EF, 0x06FA, 0x06FC, 0x06FF, 0x06FF, | |
9077 0x0710, 0x0710, 0x0712, 0x072F, 0x074D, 0x07A5, 0x07B1, 0x07B1, | |
9078 0x07CA, 0x07EA, 0x07F4, 0x07F5, 0x07FA, 0x07FA, 0x0800, 0x0815, | |
9079 0x081A, 0x081A, 0x0824, 0x0824, 0x0828, 0x0828, 0x0840, 0x0858, | |
9080 0x0860, 0x086A, 0x0870, 0x0887, 0x0889, 0x088E, 0x08A0, 0x08C9, | |
9081 0x0904, 0x0939, 0x093D, 0x093D, 0x0950, 0x0950, 0x0958, 0x0961, | |
9082 0x0971, 0x0980, 0x0985, 0x098C, 0x098F, 0x0990, 0x0993, 0x09A8, | |
9083 0x09AA, 0x09B0, 0x09B2, 0x09B2, 0x09B6, 0x09B9, 0x09BD, 0x09BD, | |
9084 0x09CE, 0x09CE, 0x09DC, 0x09DD, 0x09DF, 0x09E1, 0x09F0, 0x09F1, | |
9085 0x09FC, 0x09FC, 0x0A05, 0x0A0A, 0x0A0F, 0x0A10, 0x0A13, 0x0A28, | |
9086 0x0A2A, 0x0A30, 0x0A32, 0x0A33, 0x0A35, 0x0A36, 0x0A38, 0x0A39, | |
9087 0x0A59, 0x0A5C, 0x0A5E, 0x0A5E, 0x0A72, 0x0A74, 0x0A85, 0x0A8D, | |
9088 0x0A8F, 0x0A91, 0x0A93, 0x0AA8, 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3, | |
9089 0x0AB5, 0x0AB9, 0x0ABD, 0x0ABD, 0x0AD0, 0x0AD0, 0x0AE0, 0x0AE1, | |
9090 0x0AF9, 0x0AF9, 0x0B05, 0x0B0C, 0x0B0F, 0x0B10, 0x0B13, 0x0B28, | |
9091 0x0B2A, 0x0B30, 0x0B32, 0x0B33, 0x0B35, 0x0B39, 0x0B3D, 0x0B3D, | |
9092 0x0B5C, 0x0B5D, 0x0B5F, 0x0B61, 0x0B71, 0x0B71, 0x0B83, 0x0B83, | |
9093 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, 0x0B92, 0x0B95, 0x0B99, 0x0B9A, | |
9094 0x0B9C, 0x0B9C, 0x0B9E, 0x0B9F, 0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA, | |
9095 0x0BAE, 0x0BB9, 0x0BD0, 0x0BD0, 0x0C05, 0x0C0C, 0x0C0E, 0x0C10, | |
9096 0x0C12, 0x0C28, 0x0C2A, 0x0C39, 0x0C3D, 0x0C3D, 0x0C58, 0x0C5A, | |
9097 0x0C5D, 0x0C5D, 0x0C60, 0x0C61, 0x0C80, 0x0C80, 0x0C85, 0x0C8C, | |
9098 0x0C8E, 0x0C90, 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3, 0x0CB5, 0x0CB9, | |
9099 0x0CBD, 0x0CBD, 0x0CDD, 0x0CDE, 0x0CE0, 0x0CE1, 0x0CF1, 0x0CF2, | |
9100 0x0D04, 0x0D0C, 0x0D0E, 0x0D10, 0x0D12, 0x0D3A, 0x0D3D, 0x0D3D, | |
9101 0x0D4E, 0x0D4E, 0x0D54, 0x0D56, 0x0D5F, 0x0D61, 0x0D7A, 0x0D7F, | |
9102 0x0D85, 0x0D96, 0x0D9A, 0x0DB1, 0x0DB3, 0x0DBB, 0x0DBD, 0x0DBD, | |
9103 0x0DC0, 0x0DC6, 0x0E01, 0x0E30, 0x0E32, 0x0E33, 0x0E40, 0x0E46, | |
9104 0x0E81, 0x0E82, 0x0E84, 0x0E84, 0x0E86, 0x0E8A, 0x0E8C, 0x0EA3, | |
9105 0x0EA5, 0x0EA5, 0x0EA7, 0x0EB0, 0x0EB2, 0x0EB3, 0x0EBD, 0x0EBD, | |
9106 0x0EC0, 0x0EC4, 0x0EC6, 0x0EC6, 0x0EDC, 0x0EDF, 0x0F00, 0x0F00, | |
9107 0x0F40, 0x0F47, 0x0F49, 0x0F6C, 0x0F88, 0x0F8C, 0x1000, 0x102A, | |
9108 0x103F, 0x103F, 0x1050, 0x1055, 0x105A, 0x105D, 0x1061, 0x1061, | |
9109 0x1065, 0x1066, 0x106E, 0x1070, 0x1075, 0x1081, 0x108E, 0x108E, | |
9110 0x10A0, 0x10C5, 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x10D0, 0x10FA, | |
9111 0x10FC, 0x1248, 0x124A, 0x124D, 0x1250, 0x1256, 0x1258, 0x1258, | |
9112 0x125A, 0x125D, 0x1260, 0x1288, 0x128A, 0x128D, 0x1290, 0x12B0, | |
9113 0x12B2, 0x12B5, 0x12B8, 0x12BE, 0x12C0, 0x12C0, 0x12C2, 0x12C5, | |
9114 0x12C8, 0x12D6, 0x12D8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135A, | |
9115 0x1380, 0x138F, 0x13A0, 0x13F5, 0x13F8, 0x13FD, 0x1401, 0x166C, | |
9116 0x166F, 0x167F, 0x1681, 0x169A, 0x16A0, 0x16EA, 0x16EE, 0x16F8, | |
9117 0x1700, 0x1711, 0x171F, 0x1731, 0x1740, 0x1751, 0x1760, 0x176C, | |
9118 0x176E, 0x1770, 0x1780, 0x17B3, 0x17D7, 0x17D7, 0x17DC, 0x17DC, | |
9119 0x1820, 0x1878, 0x1880, 0x18A8, 0x18AA, 0x18AA, 0x18B0, 0x18F5, | |
9120 0x1900, 0x191E, 0x1950, 0x196D, 0x1970, 0x1974, 0x1980, 0x19AB, | |
9121 0x19B0, 0x19C9, 0x1A00, 0x1A16, 0x1A20, 0x1A54, 0x1AA7, 0x1AA7, | |
9122 0x1B05, 0x1B33, 0x1B45, 0x1B4C, 0x1B83, 0x1BA0, 0x1BAE, 0x1BAF, | |
9123 0x1BBA, 0x1BE5, 0x1C00, 0x1C23, 0x1C4D, 0x1C4F, 0x1C5A, 0x1C7D, | |
9124 0x1C80, 0x1C88, 0x1C90, 0x1CBA, 0x1CBD, 0x1CBF, 0x1CE9, 0x1CEC, | |
9125 0x1CEE, 0x1CF3, 0x1CF5, 0x1CF6, 0x1CFA, 0x1CFA, 0x1D00, 0x1DBF, | |
9126 0x1E00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, 0x1F48, 0x1F4D, | |
9127 0x1F50, 0x1F57, 0x1F59, 0x1F59, 0x1F5B, 0x1F5B, 0x1F5D, 0x1F5D, | |
9128 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FBC, 0x1FBE, 0x1FBE, | |
9129 0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, 0x1FD0, 0x1FD3, 0x1FD6, 0x1FDB, | |
9130 0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFC, 0x2071, 0x2071, | |
9131 0x207F, 0x207F, 0x2090, 0x209C, 0x2102, 0x2102, 0x2107, 0x2107, | |
9132 0x210A, 0x2113, 0x2115, 0x2115, 0x2118, 0x211D, 0x2124, 0x2124, | |
9133 0x2126, 0x2126, 0x2128, 0x2128, 0x212A, 0x2139, 0x213C, 0x213F, | |
9134 0x2145, 0x2149, 0x214E, 0x214E, 0x2160, 0x2188, 0x2C00, 0x2CE4, | |
9135 0x2CEB, 0x2CEE, 0x2CF2, 0x2CF3, 0x2D00, 0x2D25, 0x2D27, 0x2D27, | |
9136 0x2D2D, 0x2D2D, 0x2D30, 0x2D67, 0x2D6F, 0x2D6F, 0x2D80, 0x2D96, | |
9137 0x2DA0, 0x2DA6, 0x2DA8, 0x2DAE, 0x2DB0, 0x2DB6, 0x2DB8, 0x2DBE, | |
9138 0x2DC0, 0x2DC6, 0x2DC8, 0x2DCE, 0x2DD0, 0x2DD6, 0x2DD8, 0x2DDE, | |
9139 0x3005, 0x3007, 0x3021, 0x3029, 0x3031, 0x3035, 0x3038, 0x303C, | |
9140 0x3041, 0x3096, 0x309B, 0x309F, 0x30A1, 0x30FA, 0x30FC, 0x30FF, | |
9141 0x3105, 0x312F, 0x3131, 0x318E, 0x31A0, 0x31BF, 0x31F0, 0x31FF, | |
9142 0x3400, 0x4DBF, 0x4E00, 0xA48C, 0xA4D0, 0xA4FD, 0xA500, 0xA60C, | |
9143 0xA610, 0xA61F, 0xA62A, 0xA62B, 0xA640, 0xA66E, 0xA67F, 0xA69D, | |
9144 0xA6A0, 0xA6EF, 0xA717, 0xA71F, 0xA722, 0xA788, 0xA78B, 0xA7CA, | |
9145 0xA7D0, 0xA7D1, 0xA7D3, 0xA7D3, 0xA7D5, 0xA7D9, 0xA7F2, 0xA801, | |
9146 0xA803, 0xA805, 0xA807, 0xA80A, 0xA80C, 0xA822, 0xA840, 0xA873, | |
9147 0xA882, 0xA8B3, 0xA8F2, 0xA8F7, 0xA8FB, 0xA8FB, 0xA8FD, 0xA8FE, | |
9148 0xA90A, 0xA925, 0xA930, 0xA946, 0xA960, 0xA97C, 0xA984, 0xA9B2, | |
9149 0xA9CF, 0xA9CF, 0xA9E0, 0xA9E4, 0xA9E6, 0xA9EF, 0xA9FA, 0xA9FE, | |
9150 0xAA00, 0xAA28, 0xAA40, 0xAA42, 0xAA44, 0xAA4B, 0xAA60, 0xAA76, | |
9151 0xAA7A, 0xAA7A, 0xAA7E, 0xAAAF, 0xAAB1, 0xAAB1, 0xAAB5, 0xAAB6, | |
9152 0xAAB9, 0xAABD, 0xAAC0, 0xAAC0, 0xAAC2, 0xAAC2, 0xAADB, 0xAADD, | |
9153 0xAAE0, 0xAAEA, 0xAAF2, 0xAAF4, 0xAB01, 0xAB06, 0xAB09, 0xAB0E, | |
9154 0xAB11, 0xAB16, 0xAB20, 0xAB26, 0xAB28, 0xAB2E, 0xAB30, 0xAB5A, | |
9155 0xAB5C, 0xAB69, 0xAB70, 0xABE2, 0xAC00, 0xD7A3, 0xD7B0, 0xD7C6, | |
9156 0xD7CB, 0xD7FB, 0xF900, 0xFA6D, 0xFA70, 0xFAD9, 0xFB00, 0xFB06, | |
9157 0xFB13, 0xFB17, 0xFB1D, 0xFB1D, 0xFB1F, 0xFB28, 0xFB2A, 0xFB36, | |
9158 0xFB38, 0xFB3C, 0xFB3E, 0xFB3E, 0xFB40, 0xFB41, 0xFB43, 0xFB44, | |
9159 0xFB46, 0xFBB1, 0xFBD3, 0xFD3D, 0xFD50, 0xFD8F, 0xFD92, 0xFDC7, | |
9160 0xFDF0, 0xFDFB, 0xFE70, 0xFE74, 0xFE76, 0xFEFC, 0xFF21, 0xFF3A, | |
9161 0xFF41, 0xFF5A, 0xFF66, 0xFFBE, 0xFFC2, 0xFFC7, 0xFFCA, 0xFFCF, | |
9162 0xFFD2, 0xFFD7, 0xFFDA, 0xFFDC, 0x10000, 0x1000B, 0x1000D, 0x10026, | |
9163 0x10028, 0x1003A, 0x1003C, 0x1003D, 0x1003F, 0x1004D, 0x10050, 0x1005D, | |
9164 0x10080, 0x100FA, 0x10140, 0x10174, 0x10280, 0x1029C, 0x102A0, 0x102D0, | |
9165 0x10300, 0x1031F, 0x1032D, 0x1034A, 0x10350, 0x10375, 0x10380, 0x1039D, | |
9166 0x103A0, 0x103C3, 0x103C8, 0x103CF, 0x103D1, 0x103D5, 0x10400, 0x1049D, | |
9167 0x104B0, 0x104D3, 0x104D8, 0x104FB, 0x10500, 0x10527, 0x10530, 0x10563, | |
9168 0x10570, 0x1057A, 0x1057C, 0x1058A, 0x1058C, 0x10592, 0x10594, 0x10595, | |
9169 0x10597, 0x105A1, 0x105A3, 0x105B1, 0x105B3, 0x105B9, 0x105BB, 0x105BC, | |
9170 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, 0x10780, 0x10785, | |
9171 0x10787, 0x107B0, 0x107B2, 0x107BA, 0x10800, 0x10805, 0x10808, 0x10808, | |
9172 0x1080A, 0x10835, 0x10837, 0x10838, 0x1083C, 0x1083C, 0x1083F, 0x10855, | |
9173 0x10860, 0x10876, 0x10880, 0x1089E, 0x108E0, 0x108F2, 0x108F4, 0x108F5, | |
9174 0x10900, 0x10915, 0x10920, 0x10939, 0x10980, 0x109B7, 0x109BE, 0x109BF, | |
9175 0x10A00, 0x10A00, 0x10A10, 0x10A13, 0x10A15, 0x10A17, 0x10A19, 0x10A35, | |
9176 0x10A60, 0x10A7C, 0x10A80, 0x10A9C, 0x10AC0, 0x10AC7, 0x10AC9, 0x10AE4, | |
9177 0x10B00, 0x10B35, 0x10B40, 0x10B55, 0x10B60, 0x10B72, 0x10B80, 0x10B91, | |
9178 0x10C00, 0x10C48, 0x10C80, 0x10CB2, 0x10CC0, 0x10CF2, 0x10D00, 0x10D23, | |
9179 0x10E80, 0x10EA9, 0x10EB0, 0x10EB1, 0x10F00, 0x10F1C, 0x10F27, 0x10F27, | |
9180 0x10F30, 0x10F45, 0x10F70, 0x10F81, 0x10FB0, 0x10FC4, 0x10FE0, 0x10FF6, | |
9181 0x11003, 0x11037, 0x11071, 0x11072, 0x11075, 0x11075, 0x11083, 0x110AF, | |
9182 0x110D0, 0x110E8, 0x11103, 0x11126, 0x11144, 0x11144, 0x11147, 0x11147, | |
9183 0x11150, 0x11172, 0x11176, 0x11176, 0x11183, 0x111B2, 0x111C1, 0x111C4, | |
9184 0x111DA, 0x111DA, 0x111DC, 0x111DC, 0x11200, 0x11211, 0x11213, 0x1122B, | |
9185 0x1123F, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128A, 0x1128D, | |
9186 0x1128F, 0x1129D, 0x1129F, 0x112A8, 0x112B0, 0x112DE, 0x11305, 0x1130C, | |
9187 0x1130F, 0x11310, 0x11313, 0x11328, 0x1132A, 0x11330, 0x11332, 0x11333, | |
9188 0x11335, 0x11339, 0x1133D, 0x1133D, 0x11350, 0x11350, 0x1135D, 0x11361, | |
9189 0x11400, 0x11434, 0x11447, 0x1144A, 0x1145F, 0x11461, 0x11480, 0x114AF, | |
9190 0x114C4, 0x114C5, 0x114C7, 0x114C7, 0x11580, 0x115AE, 0x115D8, 0x115DB, | |
9191 0x11600, 0x1162F, 0x11644, 0x11644, 0x11680, 0x116AA, 0x116B8, 0x116B8, | |
9192 0x11700, 0x1171A, 0x11740, 0x11746, 0x11800, 0x1182B, 0x118A0, 0x118DF, | |
9193 0x118FF, 0x11906, 0x11909, 0x11909, 0x1190C, 0x11913, 0x11915, 0x11916, | |
9194 0x11918, 0x1192F, 0x1193F, 0x1193F, 0x11941, 0x11941, 0x119A0, 0x119A7, | |
9195 0x119AA, 0x119D0, 0x119E1, 0x119E1, 0x119E3, 0x119E3, 0x11A00, 0x11A00, | |
9196 0x11A0B, 0x11A32, 0x11A3A, 0x11A3A, 0x11A50, 0x11A50, 0x11A5C, 0x11A89, | |
9197 0x11A9D, 0x11A9D, 0x11AB0, 0x11AF8, 0x11C00, 0x11C08, 0x11C0A, 0x11C2E, | |
9198 0x11C40, 0x11C40, 0x11C72, 0x11C8F, 0x11D00, 0x11D06, 0x11D08, 0x11D09, | |
9199 0x11D0B, 0x11D30, 0x11D46, 0x11D46, 0x11D60, 0x11D65, 0x11D67, 0x11D68, | |
9200 0x11D6A, 0x11D89, 0x11D98, 0x11D98, 0x11EE0, 0x11EF2, 0x11F02, 0x11F02, | |
9201 0x11F04, 0x11F10, 0x11F12, 0x11F33, 0x11FB0, 0x11FB0, 0x12000, 0x12399, | |
9202 0x12400, 0x1246E, 0x12480, 0x12543, 0x12F90, 0x12FF0, 0x13000, 0x1342F, | |
9203 0x13441, 0x13446, 0x14400, 0x14646, 0x16800, 0x16A38, 0x16A40, 0x16A5E, | |
9204 0x16A70, 0x16ABE, 0x16AD0, 0x16AED, 0x16B00, 0x16B2F, 0x16B40, 0x16B43, | |
9205 0x16B63, 0x16B77, 0x16B7D, 0x16B8F, 0x16E40, 0x16E7F, 0x16F00, 0x16F4A, | |
9206 0x16F50, 0x16F50, 0x16F93, 0x16F9F, 0x16FE0, 0x16FE1, 0x16FE3, 0x16FE3, | |
9207 0x17000, 0x187F7, 0x18800, 0x18CD5, 0x18D00, 0x18D08, 0x1AFF0, 0x1AFF3, | |
9208 0x1AFF5, 0x1AFFB, 0x1AFFD, 0x1AFFE, 0x1B000, 0x1B122, 0x1B132, 0x1B132, | |
9209 0x1B150, 0x1B152, 0x1B155, 0x1B155, 0x1B164, 0x1B167, 0x1B170, 0x1B2FB, | |
9210 0x1BC00, 0x1BC6A, 0x1BC70, 0x1BC7C, 0x1BC80, 0x1BC88, 0x1BC90, 0x1BC99, | |
9211 0x1D400, 0x1D454, 0x1D456, 0x1D49C, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A2, | |
9212 0x1D4A5, 0x1D4A6, 0x1D4A9, 0x1D4AC, 0x1D4AE, 0x1D4B9, 0x1D4BB, 0x1D4BB, | |
9213 0x1D4BD, 0x1D4C3, 0x1D4C5, 0x1D505, 0x1D507, 0x1D50A, 0x1D50D, 0x1D514, | |
9214 0x1D516, 0x1D51C, 0x1D51E, 0x1D539, 0x1D53B, 0x1D53E, 0x1D540, 0x1D544, | |
9215 0x1D546, 0x1D546, 0x1D54A, 0x1D550, 0x1D552, 0x1D6A5, 0x1D6A8, 0x1D6C0, | |
9216 0x1D6C2, 0x1D6DA, 0x1D6DC, 0x1D6FA, 0x1D6FC, 0x1D714, 0x1D716, 0x1D734, | |
9217 0x1D736, 0x1D74E, 0x1D750, 0x1D76E, 0x1D770, 0x1D788, 0x1D78A, 0x1D7A8, | |
9218 0x1D7AA, 0x1D7C2, 0x1D7C4, 0x1D7CB, 0x1DF00, 0x1DF1E, 0x1DF25, 0x1DF2A, | |
9219 0x1E030, 0x1E06D, 0x1E100, 0x1E12C, 0x1E137, 0x1E13D, 0x1E14E, 0x1E14E, | |
9220 0x1E290, 0x1E2AD, 0x1E2C0, 0x1E2EB, 0x1E4D0, 0x1E4EB, 0x1E7E0, 0x1E7E6, | |
9221 0x1E7E8, 0x1E7EB, 0x1E7ED, 0x1E7EE, 0x1E7F0, 0x1E7FE, 0x1E800, 0x1E8C4, | |
9222 0x1E900, 0x1E943, 0x1E94B, 0x1E94B, 0x1EE00, 0x1EE03, 0x1EE05, 0x1EE1F, | |
9223 0x1EE21, 0x1EE22, 0x1EE24, 0x1EE24, 0x1EE27, 0x1EE27, 0x1EE29, 0x1EE32, | |
9224 0x1EE34, 0x1EE37, 0x1EE39, 0x1EE39, 0x1EE3B, 0x1EE3B, 0x1EE42, 0x1EE42, | |
9225 0x1EE47, 0x1EE47, 0x1EE49, 0x1EE49, 0x1EE4B, 0x1EE4B, 0x1EE4D, 0x1EE4F, | |
9226 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE54, 0x1EE57, 0x1EE57, 0x1EE59, 0x1EE59, | |
9227 0x1EE5B, 0x1EE5B, 0x1EE5D, 0x1EE5D, 0x1EE5F, 0x1EE5F, 0x1EE61, 0x1EE62, | |
9228 0x1EE64, 0x1EE64, 0x1EE67, 0x1EE6A, 0x1EE6C, 0x1EE72, 0x1EE74, 0x1EE77, | |
9229 0x1EE79, 0x1EE7C, 0x1EE7E, 0x1EE7E, 0x1EE80, 0x1EE89, 0x1EE8B, 0x1EE9B, | |
9230 0x1EEA1, 0x1EEA3, 0x1EEA5, 0x1EEA9, 0x1EEAB, 0x1EEBB, 0x20000, 0x2A6DF, | |
9231 0x2A700, 0x2B739, 0x2B740, 0x2B81D, 0x2B820, 0x2CEA1, 0x2CEB0, 0x2EBE0, | |
9232 0x2EBF0, 0x2EE5D, 0x2F800, 0x2FA1D, 0x30000, 0x3134A, 0x31350, 0x323AF, | |
9233 // #76 (12227+21): bp=Ideographic:Ideo | |
9234 0x3006, 0x3007, 0x3021, 0x3029, 0x3038, 0x303A, 0x3400, 0x4DBF, | |
9235 0x4E00, 0x9FFF, 0xF900, 0xFA6D, 0xFA70, 0xFAD9, 0x16FE4, 0x16FE4, | |
9236 0x17000, 0x187F7, 0x18800, 0x18CD5, 0x18D00, 0x18D08, 0x1B170, 0x1B2FB, | |
9237 0x20000, 0x2A6DF, 0x2A700, 0x2B739, 0x2B740, 0x2B81D, 0x2B820, 0x2CEA1, | |
9238 0x2CEB0, 0x2EBE0, 0x2EBF0, 0x2EE5D, 0x2F800, 0x2FA1D, 0x30000, 0x3134A, | |
9239 0x31350, 0x323AF, | |
9240 // #77 (12248+1): bp=Join_Control:Join_C | |
9241 0x200C, 0x200D, | |
9242 // #78 (12249+7): bp=Logical_Order_Exception:LOE | |
9243 0x0E40, 0x0E44, 0x0EC0, 0x0EC4, 0x19B5, 0x19B7, 0x19BA, 0x19BA, | |
9244 0xAAB5, 0xAAB6, 0xAAB9, 0xAAB9, 0xAABB, 0xAABC, | |
9245 // #79 (12256+671): bp=Lowercase:Lower | |
9246 0x0061, 0x007A, 0x00AA, 0x00AA, 0x00B5, 0x00B5, 0x00BA, 0x00BA, | |
9247 0x00DF, 0x00F6, 0x00F8, 0x00FF, 0x0101, 0x0101, 0x0103, 0x0103, | |
9248 0x0105, 0x0105, 0x0107, 0x0107, 0x0109, 0x0109, 0x010B, 0x010B, | |
9249 0x010D, 0x010D, 0x010F, 0x010F, 0x0111, 0x0111, 0x0113, 0x0113, | |
9250 0x0115, 0x0115, 0x0117, 0x0117, 0x0119, 0x0119, 0x011B, 0x011B, | |
9251 0x011D, 0x011D, 0x011F, 0x011F, 0x0121, 0x0121, 0x0123, 0x0123, | |
9252 0x0125, 0x0125, 0x0127, 0x0127, 0x0129, 0x0129, 0x012B, 0x012B, | |
9253 0x012D, 0x012D, 0x012F, 0x012F, 0x0131, 0x0131, 0x0133, 0x0133, | |
9254 0x0135, 0x0135, 0x0137, 0x0138, 0x013A, 0x013A, 0x013C, 0x013C, | |
9255 0x013E, 0x013E, 0x0140, 0x0140, 0x0142, 0x0142, 0x0144, 0x0144, | |
9256 0x0146, 0x0146, 0x0148, 0x0149, 0x014B, 0x014B, 0x014D, 0x014D, | |
9257 0x014F, 0x014F, 0x0151, 0x0151, 0x0153, 0x0153, 0x0155, 0x0155, | |
9258 0x0157, 0x0157, 0x0159, 0x0159, 0x015B, 0x015B, 0x015D, 0x015D, | |
9259 0x015F, 0x015F, 0x0161, 0x0161, 0x0163, 0x0163, 0x0165, 0x0165, | |
9260 0x0167, 0x0167, 0x0169, 0x0169, 0x016B, 0x016B, 0x016D, 0x016D, | |
9261 0x016F, 0x016F, 0x0171, 0x0171, 0x0173, 0x0173, 0x0175, 0x0175, | |
9262 0x0177, 0x0177, 0x017A, 0x017A, 0x017C, 0x017C, 0x017E, 0x0180, | |
9263 0x0183, 0x0183, 0x0185, 0x0185, 0x0188, 0x0188, 0x018C, 0x018D, | |
9264 0x0192, 0x0192, 0x0195, 0x0195, 0x0199, 0x019B, 0x019E, 0x019E, | |
9265 0x01A1, 0x01A1, 0x01A3, 0x01A3, 0x01A5, 0x01A5, 0x01A8, 0x01A8, | |
9266 0x01AA, 0x01AB, 0x01AD, 0x01AD, 0x01B0, 0x01B0, 0x01B4, 0x01B4, | |
9267 0x01B6, 0x01B6, 0x01B9, 0x01BA, 0x01BD, 0x01BF, 0x01C6, 0x01C6, | |
9268 0x01C9, 0x01C9, 0x01CC, 0x01CC, 0x01CE, 0x01CE, 0x01D0, 0x01D0, | |
9269 0x01D2, 0x01D2, 0x01D4, 0x01D4, 0x01D6, 0x01D6, 0x01D8, 0x01D8, | |
9270 0x01DA, 0x01DA, 0x01DC, 0x01DD, 0x01DF, 0x01DF, 0x01E1, 0x01E1, | |
9271 0x01E3, 0x01E3, 0x01E5, 0x01E5, 0x01E7, 0x01E7, 0x01E9, 0x01E9, | |
9272 0x01EB, 0x01EB, 0x01ED, 0x01ED, 0x01EF, 0x01F0, 0x01F3, 0x01F3, | |
9273 0x01F5, 0x01F5, 0x01F9, 0x01F9, 0x01FB, 0x01FB, 0x01FD, 0x01FD, | |
9274 0x01FF, 0x01FF, 0x0201, 0x0201, 0x0203, 0x0203, 0x0205, 0x0205, | |
9275 0x0207, 0x0207, 0x0209, 0x0209, 0x020B, 0x020B, 0x020D, 0x020D, | |
9276 0x020F, 0x020F, 0x0211, 0x0211, 0x0213, 0x0213, 0x0215, 0x0215, | |
9277 0x0217, 0x0217, 0x0219, 0x0219, 0x021B, 0x021B, 0x021D, 0x021D, | |
9278 0x021F, 0x021F, 0x0221, 0x0221, 0x0223, 0x0223, 0x0225, 0x0225, | |
9279 0x0227, 0x0227, 0x0229, 0x0229, 0x022B, 0x022B, 0x022D, 0x022D, | |
9280 0x022F, 0x022F, 0x0231, 0x0231, 0x0233, 0x0239, 0x023C, 0x023C, | |
9281 0x023F, 0x0240, 0x0242, 0x0242, 0x0247, 0x0247, 0x0249, 0x0249, | |
9282 0x024B, 0x024B, 0x024D, 0x024D, 0x024F, 0x0293, 0x0295, 0x02B8, | |
9283 0x02C0, 0x02C1, 0x02E0, 0x02E4, 0x0345, 0x0345, 0x0371, 0x0371, | |
9284 0x0373, 0x0373, 0x0377, 0x0377, 0x037A, 0x037D, 0x0390, 0x0390, | |
9285 0x03AC, 0x03CE, 0x03D0, 0x03D1, 0x03D5, 0x03D7, 0x03D9, 0x03D9, | |
9286 0x03DB, 0x03DB, 0x03DD, 0x03DD, 0x03DF, 0x03DF, 0x03E1, 0x03E1, | |
9287 0x03E3, 0x03E3, 0x03E5, 0x03E5, 0x03E7, 0x03E7, 0x03E9, 0x03E9, | |
9288 0x03EB, 0x03EB, 0x03ED, 0x03ED, 0x03EF, 0x03F3, 0x03F5, 0x03F5, | |
9289 0x03F8, 0x03F8, 0x03FB, 0x03FC, 0x0430, 0x045F, 0x0461, 0x0461, | |
9290 0x0463, 0x0463, 0x0465, 0x0465, 0x0467, 0x0467, 0x0469, 0x0469, | |
9291 0x046B, 0x046B, 0x046D, 0x046D, 0x046F, 0x046F, 0x0471, 0x0471, | |
9292 0x0473, 0x0473, 0x0475, 0x0475, 0x0477, 0x0477, 0x0479, 0x0479, | |
9293 0x047B, 0x047B, 0x047D, 0x047D, 0x047F, 0x047F, 0x0481, 0x0481, | |
9294 0x048B, 0x048B, 0x048D, 0x048D, 0x048F, 0x048F, 0x0491, 0x0491, | |
9295 0x0493, 0x0493, 0x0495, 0x0495, 0x0497, 0x0497, 0x0499, 0x0499, | |
9296 0x049B, 0x049B, 0x049D, 0x049D, 0x049F, 0x049F, 0x04A1, 0x04A1, | |
9297 0x04A3, 0x04A3, 0x04A5, 0x04A5, 0x04A7, 0x04A7, 0x04A9, 0x04A9, | |
9298 0x04AB, 0x04AB, 0x04AD, 0x04AD, 0x04AF, 0x04AF, 0x04B1, 0x04B1, | |
9299 0x04B3, 0x04B3, 0x04B5, 0x04B5, 0x04B7, 0x04B7, 0x04B9, 0x04B9, | |
9300 0x04BB, 0x04BB, 0x04BD, 0x04BD, 0x04BF, 0x04BF, 0x04C2, 0x04C2, | |
9301 0x04C4, 0x04C4, 0x04C6, 0x04C6, 0x04C8, 0x04C8, 0x04CA, 0x04CA, | |
9302 0x04CC, 0x04CC, 0x04CE, 0x04CF, 0x04D1, 0x04D1, 0x04D3, 0x04D3, | |
9303 0x04D5, 0x04D5, 0x04D7, 0x04D7, 0x04D9, 0x04D9, 0x04DB, 0x04DB, | |
9304 0x04DD, 0x04DD, 0x04DF, 0x04DF, 0x04E1, 0x04E1, 0x04E3, 0x04E3, | |
9305 0x04E5, 0x04E5, 0x04E7, 0x04E7, 0x04E9, 0x04E9, 0x04EB, 0x04EB, | |
9306 0x04ED, 0x04ED, 0x04EF, 0x04EF, 0x04F1, 0x04F1, 0x04F3, 0x04F3, | |
9307 0x04F5, 0x04F5, 0x04F7, 0x04F7, 0x04F9, 0x04F9, 0x04FB, 0x04FB, | |
9308 0x04FD, 0x04FD, 0x04FF, 0x04FF, 0x0501, 0x0501, 0x0503, 0x0503, | |
9309 0x0505, 0x0505, 0x0507, 0x0507, 0x0509, 0x0509, 0x050B, 0x050B, | |
9310 0x050D, 0x050D, 0x050F, 0x050F, 0x0511, 0x0511, 0x0513, 0x0513, | |
9311 0x0515, 0x0515, 0x0517, 0x0517, 0x0519, 0x0519, 0x051B, 0x051B, | |
9312 0x051D, 0x051D, 0x051F, 0x051F, 0x0521, 0x0521, 0x0523, 0x0523, | |
9313 0x0525, 0x0525, 0x0527, 0x0527, 0x0529, 0x0529, 0x052B, 0x052B, | |
9314 0x052D, 0x052D, 0x052F, 0x052F, 0x0560, 0x0588, 0x10D0, 0x10FA, | |
9315 0x10FC, 0x10FF, 0x13F8, 0x13FD, 0x1C80, 0x1C88, 0x1D00, 0x1DBF, | |
9316 0x1E01, 0x1E01, 0x1E03, 0x1E03, 0x1E05, 0x1E05, 0x1E07, 0x1E07, | |
9317 0x1E09, 0x1E09, 0x1E0B, 0x1E0B, 0x1E0D, 0x1E0D, 0x1E0F, 0x1E0F, | |
9318 0x1E11, 0x1E11, 0x1E13, 0x1E13, 0x1E15, 0x1E15, 0x1E17, 0x1E17, | |
9319 0x1E19, 0x1E19, 0x1E1B, 0x1E1B, 0x1E1D, 0x1E1D, 0x1E1F, 0x1E1F, | |
9320 0x1E21, 0x1E21, 0x1E23, 0x1E23, 0x1E25, 0x1E25, 0x1E27, 0x1E27, | |
9321 0x1E29, 0x1E29, 0x1E2B, 0x1E2B, 0x1E2D, 0x1E2D, 0x1E2F, 0x1E2F, | |
9322 0x1E31, 0x1E31, 0x1E33, 0x1E33, 0x1E35, 0x1E35, 0x1E37, 0x1E37, | |
9323 0x1E39, 0x1E39, 0x1E3B, 0x1E3B, 0x1E3D, 0x1E3D, 0x1E3F, 0x1E3F, | |
9324 0x1E41, 0x1E41, 0x1E43, 0x1E43, 0x1E45, 0x1E45, 0x1E47, 0x1E47, | |
9325 0x1E49, 0x1E49, 0x1E4B, 0x1E4B, 0x1E4D, 0x1E4D, 0x1E4F, 0x1E4F, | |
9326 0x1E51, 0x1E51, 0x1E53, 0x1E53, 0x1E55, 0x1E55, 0x1E57, 0x1E57, | |
9327 0x1E59, 0x1E59, 0x1E5B, 0x1E5B, 0x1E5D, 0x1E5D, 0x1E5F, 0x1E5F, | |
9328 0x1E61, 0x1E61, 0x1E63, 0x1E63, 0x1E65, 0x1E65, 0x1E67, 0x1E67, | |
9329 0x1E69, 0x1E69, 0x1E6B, 0x1E6B, 0x1E6D, 0x1E6D, 0x1E6F, 0x1E6F, | |
9330 0x1E71, 0x1E71, 0x1E73, 0x1E73, 0x1E75, 0x1E75, 0x1E77, 0x1E77, | |
9331 0x1E79, 0x1E79, 0x1E7B, 0x1E7B, 0x1E7D, 0x1E7D, 0x1E7F, 0x1E7F, | |
9332 0x1E81, 0x1E81, 0x1E83, 0x1E83, 0x1E85, 0x1E85, 0x1E87, 0x1E87, | |
9333 0x1E89, 0x1E89, 0x1E8B, 0x1E8B, 0x1E8D, 0x1E8D, 0x1E8F, 0x1E8F, | |
9334 0x1E91, 0x1E91, 0x1E93, 0x1E93, 0x1E95, 0x1E9D, 0x1E9F, 0x1E9F, | |
9335 0x1EA1, 0x1EA1, 0x1EA3, 0x1EA3, 0x1EA5, 0x1EA5, 0x1EA7, 0x1EA7, | |
9336 0x1EA9, 0x1EA9, 0x1EAB, 0x1EAB, 0x1EAD, 0x1EAD, 0x1EAF, 0x1EAF, | |
9337 0x1EB1, 0x1EB1, 0x1EB3, 0x1EB3, 0x1EB5, 0x1EB5, 0x1EB7, 0x1EB7, | |
9338 0x1EB9, 0x1EB9, 0x1EBB, 0x1EBB, 0x1EBD, 0x1EBD, 0x1EBF, 0x1EBF, | |
9339 0x1EC1, 0x1EC1, 0x1EC3, 0x1EC3, 0x1EC5, 0x1EC5, 0x1EC7, 0x1EC7, | |
9340 0x1EC9, 0x1EC9, 0x1ECB, 0x1ECB, 0x1ECD, 0x1ECD, 0x1ECF, 0x1ECF, | |
9341 0x1ED1, 0x1ED1, 0x1ED3, 0x1ED3, 0x1ED5, 0x1ED5, 0x1ED7, 0x1ED7, | |
9342 0x1ED9, 0x1ED9, 0x1EDB, 0x1EDB, 0x1EDD, 0x1EDD, 0x1EDF, 0x1EDF, | |
9343 0x1EE1, 0x1EE1, 0x1EE3, 0x1EE3, 0x1EE5, 0x1EE5, 0x1EE7, 0x1EE7, | |
9344 0x1EE9, 0x1EE9, 0x1EEB, 0x1EEB, 0x1EED, 0x1EED, 0x1EEF, 0x1EEF, | |
9345 0x1EF1, 0x1EF1, 0x1EF3, 0x1EF3, 0x1EF5, 0x1EF5, 0x1EF7, 0x1EF7, | |
9346 0x1EF9, 0x1EF9, 0x1EFB, 0x1EFB, 0x1EFD, 0x1EFD, 0x1EFF, 0x1F07, | |
9347 0x1F10, 0x1F15, 0x1F20, 0x1F27, 0x1F30, 0x1F37, 0x1F40, 0x1F45, | |
9348 0x1F50, 0x1F57, 0x1F60, 0x1F67, 0x1F70, 0x1F7D, 0x1F80, 0x1F87, | |
9349 0x1F90, 0x1F97, 0x1FA0, 0x1FA7, 0x1FB0, 0x1FB4, 0x1FB6, 0x1FB7, | |
9350 0x1FBE, 0x1FBE, 0x1FC2, 0x1FC4, 0x1FC6, 0x1FC7, 0x1FD0, 0x1FD3, | |
9351 0x1FD6, 0x1FD7, 0x1FE0, 0x1FE7, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FF7, | |
9352 0x2071, 0x2071, 0x207F, 0x207F, 0x2090, 0x209C, 0x210A, 0x210A, | |
9353 0x210E, 0x210F, 0x2113, 0x2113, 0x212F, 0x212F, 0x2134, 0x2134, | |
9354 0x2139, 0x2139, 0x213C, 0x213D, 0x2146, 0x2149, 0x214E, 0x214E, | |
9355 0x2170, 0x217F, 0x2184, 0x2184, 0x24D0, 0x24E9, 0x2C30, 0x2C5F, | |
9356 0x2C61, 0x2C61, 0x2C65, 0x2C66, 0x2C68, 0x2C68, 0x2C6A, 0x2C6A, | |
9357 0x2C6C, 0x2C6C, 0x2C71, 0x2C71, 0x2C73, 0x2C74, 0x2C76, 0x2C7D, | |
9358 0x2C81, 0x2C81, 0x2C83, 0x2C83, 0x2C85, 0x2C85, 0x2C87, 0x2C87, | |
9359 0x2C89, 0x2C89, 0x2C8B, 0x2C8B, 0x2C8D, 0x2C8D, 0x2C8F, 0x2C8F, | |
9360 0x2C91, 0x2C91, 0x2C93, 0x2C93, 0x2C95, 0x2C95, 0x2C97, 0x2C97, | |
9361 0x2C99, 0x2C99, 0x2C9B, 0x2C9B, 0x2C9D, 0x2C9D, 0x2C9F, 0x2C9F, | |
9362 0x2CA1, 0x2CA1, 0x2CA3, 0x2CA3, 0x2CA5, 0x2CA5, 0x2CA7, 0x2CA7, | |
9363 0x2CA9, 0x2CA9, 0x2CAB, 0x2CAB, 0x2CAD, 0x2CAD, 0x2CAF, 0x2CAF, | |
9364 0x2CB1, 0x2CB1, 0x2CB3, 0x2CB3, 0x2CB5, 0x2CB5, 0x2CB7, 0x2CB7, | |
9365 0x2CB9, 0x2CB9, 0x2CBB, 0x2CBB, 0x2CBD, 0x2CBD, 0x2CBF, 0x2CBF, | |
9366 0x2CC1, 0x2CC1, 0x2CC3, 0x2CC3, 0x2CC5, 0x2CC5, 0x2CC7, 0x2CC7, | |
9367 0x2CC9, 0x2CC9, 0x2CCB, 0x2CCB, 0x2CCD, 0x2CCD, 0x2CCF, 0x2CCF, | |
9368 0x2CD1, 0x2CD1, 0x2CD3, 0x2CD3, 0x2CD5, 0x2CD5, 0x2CD7, 0x2CD7, | |
9369 0x2CD9, 0x2CD9, 0x2CDB, 0x2CDB, 0x2CDD, 0x2CDD, 0x2CDF, 0x2CDF, | |
9370 0x2CE1, 0x2CE1, 0x2CE3, 0x2CE4, 0x2CEC, 0x2CEC, 0x2CEE, 0x2CEE, | |
9371 0x2CF3, 0x2CF3, 0x2D00, 0x2D25, 0x2D27, 0x2D27, 0x2D2D, 0x2D2D, | |
9372 0xA641, 0xA641, 0xA643, 0xA643, 0xA645, 0xA645, 0xA647, 0xA647, | |
9373 0xA649, 0xA649, 0xA64B, 0xA64B, 0xA64D, 0xA64D, 0xA64F, 0xA64F, | |
9374 0xA651, 0xA651, 0xA653, 0xA653, 0xA655, 0xA655, 0xA657, 0xA657, | |
9375 0xA659, 0xA659, 0xA65B, 0xA65B, 0xA65D, 0xA65D, 0xA65F, 0xA65F, | |
9376 0xA661, 0xA661, 0xA663, 0xA663, 0xA665, 0xA665, 0xA667, 0xA667, | |
9377 0xA669, 0xA669, 0xA66B, 0xA66B, 0xA66D, 0xA66D, 0xA681, 0xA681, | |
9378 0xA683, 0xA683, 0xA685, 0xA685, 0xA687, 0xA687, 0xA689, 0xA689, | |
9379 0xA68B, 0xA68B, 0xA68D, 0xA68D, 0xA68F, 0xA68F, 0xA691, 0xA691, | |
9380 0xA693, 0xA693, 0xA695, 0xA695, 0xA697, 0xA697, 0xA699, 0xA699, | |
9381 0xA69B, 0xA69D, 0xA723, 0xA723, 0xA725, 0xA725, 0xA727, 0xA727, | |
9382 0xA729, 0xA729, 0xA72B, 0xA72B, 0xA72D, 0xA72D, 0xA72F, 0xA731, | |
9383 0xA733, 0xA733, 0xA735, 0xA735, 0xA737, 0xA737, 0xA739, 0xA739, | |
9384 0xA73B, 0xA73B, 0xA73D, 0xA73D, 0xA73F, 0xA73F, 0xA741, 0xA741, | |
9385 0xA743, 0xA743, 0xA745, 0xA745, 0xA747, 0xA747, 0xA749, 0xA749, | |
9386 0xA74B, 0xA74B, 0xA74D, 0xA74D, 0xA74F, 0xA74F, 0xA751, 0xA751, | |
9387 0xA753, 0xA753, 0xA755, 0xA755, 0xA757, 0xA757, 0xA759, 0xA759, | |
9388 0xA75B, 0xA75B, 0xA75D, 0xA75D, 0xA75F, 0xA75F, 0xA761, 0xA761, | |
9389 0xA763, 0xA763, 0xA765, 0xA765, 0xA767, 0xA767, 0xA769, 0xA769, | |
9390 0xA76B, 0xA76B, 0xA76D, 0xA76D, 0xA76F, 0xA778, 0xA77A, 0xA77A, | |
9391 0xA77C, 0xA77C, 0xA77F, 0xA77F, 0xA781, 0xA781, 0xA783, 0xA783, | |
9392 0xA785, 0xA785, 0xA787, 0xA787, 0xA78C, 0xA78C, 0xA78E, 0xA78E, | |
9393 0xA791, 0xA791, 0xA793, 0xA795, 0xA797, 0xA797, 0xA799, 0xA799, | |
9394 0xA79B, 0xA79B, 0xA79D, 0xA79D, 0xA79F, 0xA79F, 0xA7A1, 0xA7A1, | |
9395 0xA7A3, 0xA7A3, 0xA7A5, 0xA7A5, 0xA7A7, 0xA7A7, 0xA7A9, 0xA7A9, | |
9396 0xA7AF, 0xA7AF, 0xA7B5, 0xA7B5, 0xA7B7, 0xA7B7, 0xA7B9, 0xA7B9, | |
9397 0xA7BB, 0xA7BB, 0xA7BD, 0xA7BD, 0xA7BF, 0xA7BF, 0xA7C1, 0xA7C1, | |
9398 0xA7C3, 0xA7C3, 0xA7C8, 0xA7C8, 0xA7CA, 0xA7CA, 0xA7D1, 0xA7D1, | |
9399 0xA7D3, 0xA7D3, 0xA7D5, 0xA7D5, 0xA7D7, 0xA7D7, 0xA7D9, 0xA7D9, | |
9400 0xA7F2, 0xA7F4, 0xA7F6, 0xA7F6, 0xA7F8, 0xA7FA, 0xAB30, 0xAB5A, | |
9401 0xAB5C, 0xAB69, 0xAB70, 0xABBF, 0xFB00, 0xFB06, 0xFB13, 0xFB17, | |
9402 0xFF41, 0xFF5A, 0x10428, 0x1044F, 0x104D8, 0x104FB, 0x10597, 0x105A1, | |
9403 0x105A3, 0x105B1, 0x105B3, 0x105B9, 0x105BB, 0x105BC, 0x10780, 0x10780, | |
9404 0x10783, 0x10785, 0x10787, 0x107B0, 0x107B2, 0x107BA, 0x10CC0, 0x10CF2, | |
9405 0x118C0, 0x118DF, 0x16E60, 0x16E7F, 0x1D41A, 0x1D433, 0x1D44E, 0x1D454, | |
9406 0x1D456, 0x1D467, 0x1D482, 0x1D49B, 0x1D4B6, 0x1D4B9, 0x1D4BB, 0x1D4BB, | |
9407 0x1D4BD, 0x1D4C3, 0x1D4C5, 0x1D4CF, 0x1D4EA, 0x1D503, 0x1D51E, 0x1D537, | |
9408 0x1D552, 0x1D56B, 0x1D586, 0x1D59F, 0x1D5BA, 0x1D5D3, 0x1D5EE, 0x1D607, | |
9409 0x1D622, 0x1D63B, 0x1D656, 0x1D66F, 0x1D68A, 0x1D6A5, 0x1D6C2, 0x1D6DA, | |
9410 0x1D6DC, 0x1D6E1, 0x1D6FC, 0x1D714, 0x1D716, 0x1D71B, 0x1D736, 0x1D74E, | |
9411 0x1D750, 0x1D755, 0x1D770, 0x1D788, 0x1D78A, 0x1D78F, 0x1D7AA, 0x1D7C2, | |
9412 0x1D7C4, 0x1D7C9, 0x1D7CB, 0x1D7CB, 0x1DF00, 0x1DF09, 0x1DF0B, 0x1DF1E, | |
9413 0x1DF25, 0x1DF2A, 0x1E030, 0x1E06D, 0x1E922, 0x1E943, | |
9414 // #80 (12927+138): bp=Math | |
9415 0x002B, 0x002B, 0x003C, 0x003E, 0x005E, 0x005E, 0x007C, 0x007C, | |
9416 0x007E, 0x007E, 0x00AC, 0x00AC, 0x00B1, 0x00B1, 0x00D7, 0x00D7, | |
9417 0x00F7, 0x00F7, 0x03D0, 0x03D2, 0x03D5, 0x03D5, 0x03F0, 0x03F1, | |
9418 0x03F4, 0x03F6, 0x0606, 0x0608, 0x2016, 0x2016, 0x2032, 0x2034, | |
9419 0x2040, 0x2040, 0x2044, 0x2044, 0x2052, 0x2052, 0x2061, 0x2064, | |
9420 0x207A, 0x207E, 0x208A, 0x208E, 0x20D0, 0x20DC, 0x20E1, 0x20E1, | |
9421 0x20E5, 0x20E6, 0x20EB, 0x20EF, 0x2102, 0x2102, 0x2107, 0x2107, | |
9422 0x210A, 0x2113, 0x2115, 0x2115, 0x2118, 0x211D, 0x2124, 0x2124, | |
9423 0x2128, 0x2129, 0x212C, 0x212D, 0x212F, 0x2131, 0x2133, 0x2138, | |
9424 0x213C, 0x2149, 0x214B, 0x214B, 0x2190, 0x21A7, 0x21A9, 0x21AE, | |
9425 0x21B0, 0x21B1, 0x21B6, 0x21B7, 0x21BC, 0x21DB, 0x21DD, 0x21DD, | |
9426 0x21E4, 0x21E5, 0x21F4, 0x22FF, 0x2308, 0x230B, 0x2320, 0x2321, | |
9427 0x237C, 0x237C, 0x239B, 0x23B5, 0x23B7, 0x23B7, 0x23D0, 0x23D0, | |
9428 0x23DC, 0x23E2, 0x25A0, 0x25A1, 0x25AE, 0x25B7, 0x25BC, 0x25C1, | |
9429 0x25C6, 0x25C7, 0x25CA, 0x25CB, 0x25CF, 0x25D3, 0x25E2, 0x25E2, | |
9430 0x25E4, 0x25E4, 0x25E7, 0x25EC, 0x25F8, 0x25FF, 0x2605, 0x2606, | |
9431 0x2640, 0x2640, 0x2642, 0x2642, 0x2660, 0x2663, 0x266D, 0x266F, | |
9432 0x27C0, 0x27FF, 0x2900, 0x2AFF, 0x2B30, 0x2B44, 0x2B47, 0x2B4C, | |
9433 0xFB29, 0xFB29, 0xFE61, 0xFE66, 0xFE68, 0xFE68, 0xFF0B, 0xFF0B, | |
9434 0xFF1C, 0xFF1E, 0xFF3C, 0xFF3C, 0xFF3E, 0xFF3E, 0xFF5C, 0xFF5C, | |
9435 0xFF5E, 0xFF5E, 0xFFE2, 0xFFE2, 0xFFE9, 0xFFEC, 0x1D400, 0x1D454, | |
9436 0x1D456, 0x1D49C, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A2, 0x1D4A5, 0x1D4A6, | |
9437 0x1D4A9, 0x1D4AC, 0x1D4AE, 0x1D4B9, 0x1D4BB, 0x1D4BB, 0x1D4BD, 0x1D4C3, | |
9438 0x1D4C5, 0x1D505, 0x1D507, 0x1D50A, 0x1D50D, 0x1D514, 0x1D516, 0x1D51C, | |
9439 0x1D51E, 0x1D539, 0x1D53B, 0x1D53E, 0x1D540, 0x1D544, 0x1D546, 0x1D546, | |
9440 0x1D54A, 0x1D550, 0x1D552, 0x1D6A5, 0x1D6A8, 0x1D7CB, 0x1D7CE, 0x1D7FF, | |
9441 0x1EE00, 0x1EE03, 0x1EE05, 0x1EE1F, 0x1EE21, 0x1EE22, 0x1EE24, 0x1EE24, | |
9442 0x1EE27, 0x1EE27, 0x1EE29, 0x1EE32, 0x1EE34, 0x1EE37, 0x1EE39, 0x1EE39, | |
9443 0x1EE3B, 0x1EE3B, 0x1EE42, 0x1EE42, 0x1EE47, 0x1EE47, 0x1EE49, 0x1EE49, | |
9444 0x1EE4B, 0x1EE4B, 0x1EE4D, 0x1EE4F, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE54, | |
9445 0x1EE57, 0x1EE57, 0x1EE59, 0x1EE59, 0x1EE5B, 0x1EE5B, 0x1EE5D, 0x1EE5D, | |
9446 0x1EE5F, 0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE64, 0x1EE67, 0x1EE6A, | |
9447 0x1EE6C, 0x1EE72, 0x1EE74, 0x1EE77, 0x1EE79, 0x1EE7C, 0x1EE7E, 0x1EE7E, | |
9448 0x1EE80, 0x1EE89, 0x1EE8B, 0x1EE9B, 0x1EEA1, 0x1EEA3, 0x1EEA5, 0x1EEA9, | |
9449 0x1EEAB, 0x1EEBB, 0x1EEF0, 0x1EEF1, | |
9450 // #81 (13065+18): bp=Noncharacter_Code_Point:NChar | |
9451 0xFDD0, 0xFDEF, 0xFFFE, 0xFFFF, 0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, | |
9452 0x3FFFE, 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF, 0x6FFFE, 0x6FFFF, | |
9453 0x7FFFE, 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, | |
9454 0xBFFFE, 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE, 0xDFFFF, 0xEFFFE, 0xEFFFF, | |
9455 0xFFFFE, 0xFFFFF, 0x10FFFE, 0x10FFFF, | |
9456 // #82 (13083+28): bp=Pattern_Syntax:Pat_Syn | |
9457 0x0021, 0x002F, 0x003A, 0x0040, 0x005B, 0x005E, 0x0060, 0x0060, | |
9458 0x007B, 0x007E, 0x00A1, 0x00A7, 0x00A9, 0x00A9, 0x00AB, 0x00AC, | |
9459 0x00AE, 0x00AE, 0x00B0, 0x00B1, 0x00B6, 0x00B6, 0x00BB, 0x00BB, | |
9460 0x00BF, 0x00BF, 0x00D7, 0x00D7, 0x00F7, 0x00F7, 0x2010, 0x2027, | |
9461 0x2030, 0x203E, 0x2041, 0x2053, 0x2055, 0x205E, 0x2190, 0x245F, | |
9462 0x2500, 0x2775, 0x2794, 0x2BFF, 0x2E00, 0x2E7F, 0x3001, 0x3003, | |
9463 0x3008, 0x3020, 0x3030, 0x3030, 0xFD3E, 0xFD3F, 0xFE45, 0xFE46, | |
9464 // #83 (13111+5): bp=Pattern_White_Space:Pat_WS | |
9465 0x0009, 0x000D, 0x0020, 0x0020, 0x0085, 0x0085, 0x200E, 0x200F, | |
9466 0x2028, 0x2029, | |
9467 // #84 (13116+13): bp=Quotation_Mark:QMark | |
9468 0x0022, 0x0022, 0x0027, 0x0027, 0x00AB, 0x00AB, 0x00BB, 0x00BB, | |
9469 0x2018, 0x201F, 0x2039, 0x203A, 0x2E42, 0x2E42, 0x300C, 0x300F, | |
9470 0x301D, 0x301F, 0xFE41, 0xFE44, 0xFF02, 0xFF02, 0xFF07, 0xFF07, | |
9471 0xFF62, 0xFF63, | |
9472 // #85 (13129+3): bp=Radical | |
9473 0x2E80, 0x2E99, 0x2E9B, 0x2EF3, 0x2F00, 0x2FD5, | |
9474 // #86 (13132+1): bp=Regional_Indicator:RI | |
9475 0x1F1E6, 0x1F1FF, | |
9476 // #87 (13133+81): bp=Sentence_Terminal:STerm | |
9477 0x0021, 0x0021, 0x002E, 0x002E, 0x003F, 0x003F, 0x0589, 0x0589, | |
9478 0x061D, 0x061F, 0x06D4, 0x06D4, 0x0700, 0x0702, 0x07F9, 0x07F9, | |
9479 0x0837, 0x0837, 0x0839, 0x0839, 0x083D, 0x083E, 0x0964, 0x0965, | |
9480 0x104A, 0x104B, 0x1362, 0x1362, 0x1367, 0x1368, 0x166E, 0x166E, | |
9481 0x1735, 0x1736, 0x17D4, 0x17D5, 0x1803, 0x1803, 0x1809, 0x1809, | |
9482 0x1944, 0x1945, 0x1AA8, 0x1AAB, 0x1B5A, 0x1B5B, 0x1B5E, 0x1B5F, | |
9483 0x1B7D, 0x1B7E, 0x1C3B, 0x1C3C, 0x1C7E, 0x1C7F, 0x203C, 0x203D, | |
9484 0x2047, 0x2049, 0x2E2E, 0x2E2E, 0x2E3C, 0x2E3C, 0x2E53, 0x2E54, | |
9485 0x3002, 0x3002, 0xA4FF, 0xA4FF, 0xA60E, 0xA60F, 0xA6F3, 0xA6F3, | |
9486 0xA6F7, 0xA6F7, 0xA876, 0xA877, 0xA8CE, 0xA8CF, 0xA92F, 0xA92F, | |
9487 0xA9C8, 0xA9C9, 0xAA5D, 0xAA5F, 0xAAF0, 0xAAF1, 0xABEB, 0xABEB, | |
9488 0xFE52, 0xFE52, 0xFE56, 0xFE57, 0xFF01, 0xFF01, 0xFF0E, 0xFF0E, | |
9489 0xFF1F, 0xFF1F, 0xFF61, 0xFF61, 0x10A56, 0x10A57, 0x10F55, 0x10F59, | |
9490 0x10F86, 0x10F89, 0x11047, 0x11048, 0x110BE, 0x110C1, 0x11141, 0x11143, | |
9491 0x111C5, 0x111C6, 0x111CD, 0x111CD, 0x111DE, 0x111DF, 0x11238, 0x11239, | |
9492 0x1123B, 0x1123C, 0x112A9, 0x112A9, 0x1144B, 0x1144C, 0x115C2, 0x115C3, | |
9493 0x115C9, 0x115D7, 0x11641, 0x11642, 0x1173C, 0x1173E, 0x11944, 0x11944, | |
9494 0x11946, 0x11946, 0x11A42, 0x11A43, 0x11A9B, 0x11A9C, 0x11C41, 0x11C42, | |
9495 0x11EF7, 0x11EF8, 0x11F43, 0x11F44, 0x16A6E, 0x16A6F, 0x16AF5, 0x16AF5, | |
9496 0x16B37, 0x16B38, 0x16B44, 0x16B44, 0x16E98, 0x16E98, 0x1BC9F, 0x1BC9F, | |
9497 0x1DA88, 0x1DA88, | |
9498 // #88 (13214+34): bp=Soft_Dotted:SD | |
9499 0x0069, 0x006A, 0x012F, 0x012F, 0x0249, 0x0249, 0x0268, 0x0268, | |
9500 0x029D, 0x029D, 0x02B2, 0x02B2, 0x03F3, 0x03F3, 0x0456, 0x0456, | |
9501 0x0458, 0x0458, 0x1D62, 0x1D62, 0x1D96, 0x1D96, 0x1DA4, 0x1DA4, | |
9502 0x1DA8, 0x1DA8, 0x1E2D, 0x1E2D, 0x1ECB, 0x1ECB, 0x2071, 0x2071, | |
9503 0x2148, 0x2149, 0x2C7C, 0x2C7C, 0x1D422, 0x1D423, 0x1D456, 0x1D457, | |
9504 0x1D48A, 0x1D48B, 0x1D4BE, 0x1D4BF, 0x1D4F2, 0x1D4F3, 0x1D526, 0x1D527, | |
9505 0x1D55A, 0x1D55B, 0x1D58E, 0x1D58F, 0x1D5C2, 0x1D5C3, 0x1D5F6, 0x1D5F7, | |
9506 0x1D62A, 0x1D62B, 0x1D65E, 0x1D65F, 0x1D692, 0x1D693, 0x1DF1A, 0x1DF1A, | |
9507 0x1E04C, 0x1E04D, 0x1E068, 0x1E068, | |
9508 // #89 (13248+108): bp=Terminal_Punctuation:Term | |
9509 0x0021, 0x0021, 0x002C, 0x002C, 0x002E, 0x002E, 0x003A, 0x003B, | |
9510 0x003F, 0x003F, 0x037E, 0x037E, 0x0387, 0x0387, 0x0589, 0x0589, | |
9511 0x05C3, 0x05C3, 0x060C, 0x060C, 0x061B, 0x061B, 0x061D, 0x061F, | |
9512 0x06D4, 0x06D4, 0x0700, 0x070A, 0x070C, 0x070C, 0x07F8, 0x07F9, | |
9513 0x0830, 0x083E, 0x085E, 0x085E, 0x0964, 0x0965, 0x0E5A, 0x0E5B, | |
9514 0x0F08, 0x0F08, 0x0F0D, 0x0F12, 0x104A, 0x104B, 0x1361, 0x1368, | |
9515 0x166E, 0x166E, 0x16EB, 0x16ED, 0x1735, 0x1736, 0x17D4, 0x17D6, | |
9516 0x17DA, 0x17DA, 0x1802, 0x1805, 0x1808, 0x1809, 0x1944, 0x1945, | |
9517 0x1AA8, 0x1AAB, 0x1B5A, 0x1B5B, 0x1B5D, 0x1B5F, 0x1B7D, 0x1B7E, | |
9518 0x1C3B, 0x1C3F, 0x1C7E, 0x1C7F, 0x203C, 0x203D, 0x2047, 0x2049, | |
9519 0x2E2E, 0x2E2E, 0x2E3C, 0x2E3C, 0x2E41, 0x2E41, 0x2E4C, 0x2E4C, | |
9520 0x2E4E, 0x2E4F, 0x2E53, 0x2E54, 0x3001, 0x3002, 0xA4FE, 0xA4FF, | |
9521 0xA60D, 0xA60F, 0xA6F3, 0xA6F7, 0xA876, 0xA877, 0xA8CE, 0xA8CF, | |
9522 0xA92F, 0xA92F, 0xA9C7, 0xA9C9, 0xAA5D, 0xAA5F, 0xAADF, 0xAADF, | |
9523 0xAAF0, 0xAAF1, 0xABEB, 0xABEB, 0xFE50, 0xFE52, 0xFE54, 0xFE57, | |
9524 0xFF01, 0xFF01, 0xFF0C, 0xFF0C, 0xFF0E, 0xFF0E, 0xFF1A, 0xFF1B, | |
9525 0xFF1F, 0xFF1F, 0xFF61, 0xFF61, 0xFF64, 0xFF64, 0x1039F, 0x1039F, | |
9526 0x103D0, 0x103D0, 0x10857, 0x10857, 0x1091F, 0x1091F, 0x10A56, 0x10A57, | |
9527 0x10AF0, 0x10AF5, 0x10B3A, 0x10B3F, 0x10B99, 0x10B9C, 0x10F55, 0x10F59, | |
9528 0x10F86, 0x10F89, 0x11047, 0x1104D, 0x110BE, 0x110C1, 0x11141, 0x11143, | |
9529 0x111C5, 0x111C6, 0x111CD, 0x111CD, 0x111DE, 0x111DF, 0x11238, 0x1123C, | |
9530 0x112A9, 0x112A9, 0x1144B, 0x1144D, 0x1145A, 0x1145B, 0x115C2, 0x115C5, | |
9531 0x115C9, 0x115D7, 0x11641, 0x11642, 0x1173C, 0x1173E, 0x11944, 0x11944, | |
9532 0x11946, 0x11946, 0x11A42, 0x11A43, 0x11A9B, 0x11A9C, 0x11AA1, 0x11AA2, | |
9533 0x11C41, 0x11C43, 0x11C71, 0x11C71, 0x11EF7, 0x11EF8, 0x11F43, 0x11F44, | |
9534 0x12470, 0x12474, 0x16A6E, 0x16A6F, 0x16AF5, 0x16AF5, 0x16B37, 0x16B39, | |
9535 0x16B44, 0x16B44, 0x16E97, 0x16E98, 0x1BC9F, 0x1BC9F, 0x1DA87, 0x1DA8A, | |
9536 // #90 (13356+17): bp=Unified_Ideograph:UIdeo | |
9537 0x3400, 0x4DBF, 0x4E00, 0x9FFF, 0xFA0E, 0xFA0F, 0xFA11, 0xFA11, | |
9538 0xFA13, 0xFA14, 0xFA1F, 0xFA1F, 0xFA21, 0xFA21, 0xFA23, 0xFA24, | |
9539 0xFA27, 0xFA29, 0x20000, 0x2A6DF, 0x2A700, 0x2B739, 0x2B740, 0x2B81D, | |
9540 0x2B820, 0x2CEA1, 0x2CEB0, 0x2EBE0, 0x2EBF0, 0x2EE5D, 0x30000, 0x3134A, | |
9541 0x31350, 0x323AF, | |
9542 // #91 (13373+651): bp=Uppercase:Upper | |
9543 0x0041, 0x005A, 0x00C0, 0x00D6, 0x00D8, 0x00DE, 0x0100, 0x0100, | |
9544 0x0102, 0x0102, 0x0104, 0x0104, 0x0106, 0x0106, 0x0108, 0x0108, | |
9545 0x010A, 0x010A, 0x010C, 0x010C, 0x010E, 0x010E, 0x0110, 0x0110, | |
9546 0x0112, 0x0112, 0x0114, 0x0114, 0x0116, 0x0116, 0x0118, 0x0118, | |
9547 0x011A, 0x011A, 0x011C, 0x011C, 0x011E, 0x011E, 0x0120, 0x0120, | |
9548 0x0122, 0x0122, 0x0124, 0x0124, 0x0126, 0x0126, 0x0128, 0x0128, | |
9549 0x012A, 0x012A, 0x012C, 0x012C, 0x012E, 0x012E, 0x0130, 0x0130, | |
9550 0x0132, 0x0132, 0x0134, 0x0134, 0x0136, 0x0136, 0x0139, 0x0139, | |
9551 0x013B, 0x013B, 0x013D, 0x013D, 0x013F, 0x013F, 0x0141, 0x0141, | |
9552 0x0143, 0x0143, 0x0145, 0x0145, 0x0147, 0x0147, 0x014A, 0x014A, | |
9553 0x014C, 0x014C, 0x014E, 0x014E, 0x0150, 0x0150, 0x0152, 0x0152, | |
9554 0x0154, 0x0154, 0x0156, 0x0156, 0x0158, 0x0158, 0x015A, 0x015A, | |
9555 0x015C, 0x015C, 0x015E, 0x015E, 0x0160, 0x0160, 0x0162, 0x0162, | |
9556 0x0164, 0x0164, 0x0166, 0x0166, 0x0168, 0x0168, 0x016A, 0x016A, | |
9557 0x016C, 0x016C, 0x016E, 0x016E, 0x0170, 0x0170, 0x0172, 0x0172, | |
9558 0x0174, 0x0174, 0x0176, 0x0176, 0x0178, 0x0179, 0x017B, 0x017B, | |
9559 0x017D, 0x017D, 0x0181, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187, | |
9560 0x0189, 0x018B, 0x018E, 0x0191, 0x0193, 0x0194, 0x0196, 0x0198, | |
9561 0x019C, 0x019D, 0x019F, 0x01A0, 0x01A2, 0x01A2, 0x01A4, 0x01A4, | |
9562 0x01A6, 0x01A7, 0x01A9, 0x01A9, 0x01AC, 0x01AC, 0x01AE, 0x01AF, | |
9563 0x01B1, 0x01B3, 0x01B5, 0x01B5, 0x01B7, 0x01B8, 0x01BC, 0x01BC, | |
9564 0x01C4, 0x01C4, 0x01C7, 0x01C7, 0x01CA, 0x01CA, 0x01CD, 0x01CD, | |
9565 0x01CF, 0x01CF, 0x01D1, 0x01D1, 0x01D3, 0x01D3, 0x01D5, 0x01D5, | |
9566 0x01D7, 0x01D7, 0x01D9, 0x01D9, 0x01DB, 0x01DB, 0x01DE, 0x01DE, | |
9567 0x01E0, 0x01E0, 0x01E2, 0x01E2, 0x01E4, 0x01E4, 0x01E6, 0x01E6, | |
9568 0x01E8, 0x01E8, 0x01EA, 0x01EA, 0x01EC, 0x01EC, 0x01EE, 0x01EE, | |
9569 0x01F1, 0x01F1, 0x01F4, 0x01F4, 0x01F6, 0x01F8, 0x01FA, 0x01FA, | |
9570 0x01FC, 0x01FC, 0x01FE, 0x01FE, 0x0200, 0x0200, 0x0202, 0x0202, | |
9571 0x0204, 0x0204, 0x0206, 0x0206, 0x0208, 0x0208, 0x020A, 0x020A, | |
9572 0x020C, 0x020C, 0x020E, 0x020E, 0x0210, 0x0210, 0x0212, 0x0212, | |
9573 0x0214, 0x0214, 0x0216, 0x0216, 0x0218, 0x0218, 0x021A, 0x021A, | |
9574 0x021C, 0x021C, 0x021E, 0x021E, 0x0220, 0x0220, 0x0222, 0x0222, | |
9575 0x0224, 0x0224, 0x0226, 0x0226, 0x0228, 0x0228, 0x022A, 0x022A, | |
9576 0x022C, 0x022C, 0x022E, 0x022E, 0x0230, 0x0230, 0x0232, 0x0232, | |
9577 0x023A, 0x023B, 0x023D, 0x023E, 0x0241, 0x0241, 0x0243, 0x0246, | |
9578 0x0248, 0x0248, 0x024A, 0x024A, 0x024C, 0x024C, 0x024E, 0x024E, | |
9579 0x0370, 0x0370, 0x0372, 0x0372, 0x0376, 0x0376, 0x037F, 0x037F, | |
9580 0x0386, 0x0386, 0x0388, 0x038A, 0x038C, 0x038C, 0x038E, 0x038F, | |
9581 0x0391, 0x03A1, 0x03A3, 0x03AB, 0x03CF, 0x03CF, 0x03D2, 0x03D4, | |
9582 0x03D8, 0x03D8, 0x03DA, 0x03DA, 0x03DC, 0x03DC, 0x03DE, 0x03DE, | |
9583 0x03E0, 0x03E0, 0x03E2, 0x03E2, 0x03E4, 0x03E4, 0x03E6, 0x03E6, | |
9584 0x03E8, 0x03E8, 0x03EA, 0x03EA, 0x03EC, 0x03EC, 0x03EE, 0x03EE, | |
9585 0x03F4, 0x03F4, 0x03F7, 0x03F7, 0x03F9, 0x03FA, 0x03FD, 0x042F, | |
9586 0x0460, 0x0460, 0x0462, 0x0462, 0x0464, 0x0464, 0x0466, 0x0466, | |
9587 0x0468, 0x0468, 0x046A, 0x046A, 0x046C, 0x046C, 0x046E, 0x046E, | |
9588 0x0470, 0x0470, 0x0472, 0x0472, 0x0474, 0x0474, 0x0476, 0x0476, | |
9589 0x0478, 0x0478, 0x047A, 0x047A, 0x047C, 0x047C, 0x047E, 0x047E, | |
9590 0x0480, 0x0480, 0x048A, 0x048A, 0x048C, 0x048C, 0x048E, 0x048E, | |
9591 0x0490, 0x0490, 0x0492, 0x0492, 0x0494, 0x0494, 0x0496, 0x0496, | |
9592 0x0498, 0x0498, 0x049A, 0x049A, 0x049C, 0x049C, 0x049E, 0x049E, | |
9593 0x04A0, 0x04A0, 0x04A2, 0x04A2, 0x04A4, 0x04A4, 0x04A6, 0x04A6, | |
9594 0x04A8, 0x04A8, 0x04AA, 0x04AA, 0x04AC, 0x04AC, 0x04AE, 0x04AE, | |
9595 0x04B0, 0x04B0, 0x04B2, 0x04B2, 0x04B4, 0x04B4, 0x04B6, 0x04B6, | |
9596 0x04B8, 0x04B8, 0x04BA, 0x04BA, 0x04BC, 0x04BC, 0x04BE, 0x04BE, | |
9597 0x04C0, 0x04C1, 0x04C3, 0x04C3, 0x04C5, 0x04C5, 0x04C7, 0x04C7, | |
9598 0x04C9, 0x04C9, 0x04CB, 0x04CB, 0x04CD, 0x04CD, 0x04D0, 0x04D0, | |
9599 0x04D2, 0x04D2, 0x04D4, 0x04D4, 0x04D6, 0x04D6, 0x04D8, 0x04D8, | |
9600 0x04DA, 0x04DA, 0x04DC, 0x04DC, 0x04DE, 0x04DE, 0x04E0, 0x04E0, | |
9601 0x04E2, 0x04E2, 0x04E4, 0x04E4, 0x04E6, 0x04E6, 0x04E8, 0x04E8, | |
9602 0x04EA, 0x04EA, 0x04EC, 0x04EC, 0x04EE, 0x04EE, 0x04F0, 0x04F0, | |
9603 0x04F2, 0x04F2, 0x04F4, 0x04F4, 0x04F6, 0x04F6, 0x04F8, 0x04F8, | |
9604 0x04FA, 0x04FA, 0x04FC, 0x04FC, 0x04FE, 0x04FE, 0x0500, 0x0500, | |
9605 0x0502, 0x0502, 0x0504, 0x0504, 0x0506, 0x0506, 0x0508, 0x0508, | |
9606 0x050A, 0x050A, 0x050C, 0x050C, 0x050E, 0x050E, 0x0510, 0x0510, | |
9607 0x0512, 0x0512, 0x0514, 0x0514, 0x0516, 0x0516, 0x0518, 0x0518, | |
9608 0x051A, 0x051A, 0x051C, 0x051C, 0x051E, 0x051E, 0x0520, 0x0520, | |
9609 0x0522, 0x0522, 0x0524, 0x0524, 0x0526, 0x0526, 0x0528, 0x0528, | |
9610 0x052A, 0x052A, 0x052C, 0x052C, 0x052E, 0x052E, 0x0531, 0x0556, | |
9611 0x10A0, 0x10C5, 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x13A0, 0x13F5, | |
9612 0x1C90, 0x1CBA, 0x1CBD, 0x1CBF, 0x1E00, 0x1E00, 0x1E02, 0x1E02, | |
9613 0x1E04, 0x1E04, 0x1E06, 0x1E06, 0x1E08, 0x1E08, 0x1E0A, 0x1E0A, | |
9614 0x1E0C, 0x1E0C, 0x1E0E, 0x1E0E, 0x1E10, 0x1E10, 0x1E12, 0x1E12, | |
9615 0x1E14, 0x1E14, 0x1E16, 0x1E16, 0x1E18, 0x1E18, 0x1E1A, 0x1E1A, | |
9616 0x1E1C, 0x1E1C, 0x1E1E, 0x1E1E, 0x1E20, 0x1E20, 0x1E22, 0x1E22, | |
9617 0x1E24, 0x1E24, 0x1E26, 0x1E26, 0x1E28, 0x1E28, 0x1E2A, 0x1E2A, | |
9618 0x1E2C, 0x1E2C, 0x1E2E, 0x1E2E, 0x1E30, 0x1E30, 0x1E32, 0x1E32, | |
9619 0x1E34, 0x1E34, 0x1E36, 0x1E36, 0x1E38, 0x1E38, 0x1E3A, 0x1E3A, | |
9620 0x1E3C, 0x1E3C, 0x1E3E, 0x1E3E, 0x1E40, 0x1E40, 0x1E42, 0x1E42, | |
9621 0x1E44, 0x1E44, 0x1E46, 0x1E46, 0x1E48, 0x1E48, 0x1E4A, 0x1E4A, | |
9622 0x1E4C, 0x1E4C, 0x1E4E, 0x1E4E, 0x1E50, 0x1E50, 0x1E52, 0x1E52, | |
9623 0x1E54, 0x1E54, 0x1E56, 0x1E56, 0x1E58, 0x1E58, 0x1E5A, 0x1E5A, | |
9624 0x1E5C, 0x1E5C, 0x1E5E, 0x1E5E, 0x1E60, 0x1E60, 0x1E62, 0x1E62, | |
9625 0x1E64, 0x1E64, 0x1E66, 0x1E66, 0x1E68, 0x1E68, 0x1E6A, 0x1E6A, | |
9626 0x1E6C, 0x1E6C, 0x1E6E, 0x1E6E, 0x1E70, 0x1E70, 0x1E72, 0x1E72, | |
9627 0x1E74, 0x1E74, 0x1E76, 0x1E76, 0x1E78, 0x1E78, 0x1E7A, 0x1E7A, | |
9628 0x1E7C, 0x1E7C, 0x1E7E, 0x1E7E, 0x1E80, 0x1E80, 0x1E82, 0x1E82, | |
9629 0x1E84, 0x1E84, 0x1E86, 0x1E86, 0x1E88, 0x1E88, 0x1E8A, 0x1E8A, | |
9630 0x1E8C, 0x1E8C, 0x1E8E, 0x1E8E, 0x1E90, 0x1E90, 0x1E92, 0x1E92, | |
9631 0x1E94, 0x1E94, 0x1E9E, 0x1E9E, 0x1EA0, 0x1EA0, 0x1EA2, 0x1EA2, | |
9632 0x1EA4, 0x1EA4, 0x1EA6, 0x1EA6, 0x1EA8, 0x1EA8, 0x1EAA, 0x1EAA, | |
9633 0x1EAC, 0x1EAC, 0x1EAE, 0x1EAE, 0x1EB0, 0x1EB0, 0x1EB2, 0x1EB2, | |
9634 0x1EB4, 0x1EB4, 0x1EB6, 0x1EB6, 0x1EB8, 0x1EB8, 0x1EBA, 0x1EBA, | |
9635 0x1EBC, 0x1EBC, 0x1EBE, 0x1EBE, 0x1EC0, 0x1EC0, 0x1EC2, 0x1EC2, | |
9636 0x1EC4, 0x1EC4, 0x1EC6, 0x1EC6, 0x1EC8, 0x1EC8, 0x1ECA, 0x1ECA, | |
9637 0x1ECC, 0x1ECC, 0x1ECE, 0x1ECE, 0x1ED0, 0x1ED0, 0x1ED2, 0x1ED2, | |
9638 0x1ED4, 0x1ED4, 0x1ED6, 0x1ED6, 0x1ED8, 0x1ED8, 0x1EDA, 0x1EDA, | |
9639 0x1EDC, 0x1EDC, 0x1EDE, 0x1EDE, 0x1EE0, 0x1EE0, 0x1EE2, 0x1EE2, | |
9640 0x1EE4, 0x1EE4, 0x1EE6, 0x1EE6, 0x1EE8, 0x1EE8, 0x1EEA, 0x1EEA, | |
9641 0x1EEC, 0x1EEC, 0x1EEE, 0x1EEE, 0x1EF0, 0x1EF0, 0x1EF2, 0x1EF2, | |
9642 0x1EF4, 0x1EF4, 0x1EF6, 0x1EF6, 0x1EF8, 0x1EF8, 0x1EFA, 0x1EFA, | |
9643 0x1EFC, 0x1EFC, 0x1EFE, 0x1EFE, 0x1F08, 0x1F0F, 0x1F18, 0x1F1D, | |
9644 0x1F28, 0x1F2F, 0x1F38, 0x1F3F, 0x1F48, 0x1F4D, 0x1F59, 0x1F59, | |
9645 0x1F5B, 0x1F5B, 0x1F5D, 0x1F5D, 0x1F5F, 0x1F5F, 0x1F68, 0x1F6F, | |
9646 0x1FB8, 0x1FBB, 0x1FC8, 0x1FCB, 0x1FD8, 0x1FDB, 0x1FE8, 0x1FEC, | |
9647 0x1FF8, 0x1FFB, 0x2102, 0x2102, 0x2107, 0x2107, 0x210B, 0x210D, | |
9648 0x2110, 0x2112, 0x2115, 0x2115, 0x2119, 0x211D, 0x2124, 0x2124, | |
9649 0x2126, 0x2126, 0x2128, 0x2128, 0x212A, 0x212D, 0x2130, 0x2133, | |
9650 0x213E, 0x213F, 0x2145, 0x2145, 0x2160, 0x216F, 0x2183, 0x2183, | |
9651 0x24B6, 0x24CF, 0x2C00, 0x2C2F, 0x2C60, 0x2C60, 0x2C62, 0x2C64, | |
9652 0x2C67, 0x2C67, 0x2C69, 0x2C69, 0x2C6B, 0x2C6B, 0x2C6D, 0x2C70, | |
9653 0x2C72, 0x2C72, 0x2C75, 0x2C75, 0x2C7E, 0x2C80, 0x2C82, 0x2C82, | |
9654 0x2C84, 0x2C84, 0x2C86, 0x2C86, 0x2C88, 0x2C88, 0x2C8A, 0x2C8A, | |
9655 0x2C8C, 0x2C8C, 0x2C8E, 0x2C8E, 0x2C90, 0x2C90, 0x2C92, 0x2C92, | |
9656 0x2C94, 0x2C94, 0x2C96, 0x2C96, 0x2C98, 0x2C98, 0x2C9A, 0x2C9A, | |
9657 0x2C9C, 0x2C9C, 0x2C9E, 0x2C9E, 0x2CA0, 0x2CA0, 0x2CA2, 0x2CA2, | |
9658 0x2CA4, 0x2CA4, 0x2CA6, 0x2CA6, 0x2CA8, 0x2CA8, 0x2CAA, 0x2CAA, | |
9659 0x2CAC, 0x2CAC, 0x2CAE, 0x2CAE, 0x2CB0, 0x2CB0, 0x2CB2, 0x2CB2, | |
9660 0x2CB4, 0x2CB4, 0x2CB6, 0x2CB6, 0x2CB8, 0x2CB8, 0x2CBA, 0x2CBA, | |
9661 0x2CBC, 0x2CBC, 0x2CBE, 0x2CBE, 0x2CC0, 0x2CC0, 0x2CC2, 0x2CC2, | |
9662 0x2CC4, 0x2CC4, 0x2CC6, 0x2CC6, 0x2CC8, 0x2CC8, 0x2CCA, 0x2CCA, | |
9663 0x2CCC, 0x2CCC, 0x2CCE, 0x2CCE, 0x2CD0, 0x2CD0, 0x2CD2, 0x2CD2, | |
9664 0x2CD4, 0x2CD4, 0x2CD6, 0x2CD6, 0x2CD8, 0x2CD8, 0x2CDA, 0x2CDA, | |
9665 0x2CDC, 0x2CDC, 0x2CDE, 0x2CDE, 0x2CE0, 0x2CE0, 0x2CE2, 0x2CE2, | |
9666 0x2CEB, 0x2CEB, 0x2CED, 0x2CED, 0x2CF2, 0x2CF2, 0xA640, 0xA640, | |
9667 0xA642, 0xA642, 0xA644, 0xA644, 0xA646, 0xA646, 0xA648, 0xA648, | |
9668 0xA64A, 0xA64A, 0xA64C, 0xA64C, 0xA64E, 0xA64E, 0xA650, 0xA650, | |
9669 0xA652, 0xA652, 0xA654, 0xA654, 0xA656, 0xA656, 0xA658, 0xA658, | |
9670 0xA65A, 0xA65A, 0xA65C, 0xA65C, 0xA65E, 0xA65E, 0xA660, 0xA660, | |
9671 0xA662, 0xA662, 0xA664, 0xA664, 0xA666, 0xA666, 0xA668, 0xA668, | |
9672 0xA66A, 0xA66A, 0xA66C, 0xA66C, 0xA680, 0xA680, 0xA682, 0xA682, | |
9673 0xA684, 0xA684, 0xA686, 0xA686, 0xA688, 0xA688, 0xA68A, 0xA68A, | |
9674 0xA68C, 0xA68C, 0xA68E, 0xA68E, 0xA690, 0xA690, 0xA692, 0xA692, | |
9675 0xA694, 0xA694, 0xA696, 0xA696, 0xA698, 0xA698, 0xA69A, 0xA69A, | |
9676 0xA722, 0xA722, 0xA724, 0xA724, 0xA726, 0xA726, 0xA728, 0xA728, | |
9677 0xA72A, 0xA72A, 0xA72C, 0xA72C, 0xA72E, 0xA72E, 0xA732, 0xA732, | |
9678 0xA734, 0xA734, 0xA736, 0xA736, 0xA738, 0xA738, 0xA73A, 0xA73A, | |
9679 0xA73C, 0xA73C, 0xA73E, 0xA73E, 0xA740, 0xA740, 0xA742, 0xA742, | |
9680 0xA744, 0xA744, 0xA746, 0xA746, 0xA748, 0xA748, 0xA74A, 0xA74A, | |
9681 0xA74C, 0xA74C, 0xA74E, 0xA74E, 0xA750, 0xA750, 0xA752, 0xA752, | |
9682 0xA754, 0xA754, 0xA756, 0xA756, 0xA758, 0xA758, 0xA75A, 0xA75A, | |
9683 0xA75C, 0xA75C, 0xA75E, 0xA75E, 0xA760, 0xA760, 0xA762, 0xA762, | |
9684 0xA764, 0xA764, 0xA766, 0xA766, 0xA768, 0xA768, 0xA76A, 0xA76A, | |
9685 0xA76C, 0xA76C, 0xA76E, 0xA76E, 0xA779, 0xA779, 0xA77B, 0xA77B, | |
9686 0xA77D, 0xA77E, 0xA780, 0xA780, 0xA782, 0xA782, 0xA784, 0xA784, | |
9687 0xA786, 0xA786, 0xA78B, 0xA78B, 0xA78D, 0xA78D, 0xA790, 0xA790, | |
9688 0xA792, 0xA792, 0xA796, 0xA796, 0xA798, 0xA798, 0xA79A, 0xA79A, | |
9689 0xA79C, 0xA79C, 0xA79E, 0xA79E, 0xA7A0, 0xA7A0, 0xA7A2, 0xA7A2, | |
9690 0xA7A4, 0xA7A4, 0xA7A6, 0xA7A6, 0xA7A8, 0xA7A8, 0xA7AA, 0xA7AE, | |
9691 0xA7B0, 0xA7B4, 0xA7B6, 0xA7B6, 0xA7B8, 0xA7B8, 0xA7BA, 0xA7BA, | |
9692 0xA7BC, 0xA7BC, 0xA7BE, 0xA7BE, 0xA7C0, 0xA7C0, 0xA7C2, 0xA7C2, | |
9693 0xA7C4, 0xA7C7, 0xA7C9, 0xA7C9, 0xA7D0, 0xA7D0, 0xA7D6, 0xA7D6, | |
9694 0xA7D8, 0xA7D8, 0xA7F5, 0xA7F5, 0xFF21, 0xFF3A, 0x10400, 0x10427, | |
9695 0x104B0, 0x104D3, 0x10570, 0x1057A, 0x1057C, 0x1058A, 0x1058C, 0x10592, | |
9696 0x10594, 0x10595, 0x10C80, 0x10CB2, 0x118A0, 0x118BF, 0x16E40, 0x16E5F, | |
9697 0x1D400, 0x1D419, 0x1D434, 0x1D44D, 0x1D468, 0x1D481, 0x1D49C, 0x1D49C, | |
9698 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A2, 0x1D4A5, 0x1D4A6, 0x1D4A9, 0x1D4AC, | |
9699 0x1D4AE, 0x1D4B5, 0x1D4D0, 0x1D4E9, 0x1D504, 0x1D505, 0x1D507, 0x1D50A, | |
9700 0x1D50D, 0x1D514, 0x1D516, 0x1D51C, 0x1D538, 0x1D539, 0x1D53B, 0x1D53E, | |
9701 0x1D540, 0x1D544, 0x1D546, 0x1D546, 0x1D54A, 0x1D550, 0x1D56C, 0x1D585, | |
9702 0x1D5A0, 0x1D5B9, 0x1D5D4, 0x1D5ED, 0x1D608, 0x1D621, 0x1D63C, 0x1D655, | |
9703 0x1D670, 0x1D689, 0x1D6A8, 0x1D6C0, 0x1D6E2, 0x1D6FA, 0x1D71C, 0x1D734, | |
9704 0x1D756, 0x1D76E, 0x1D790, 0x1D7A8, 0x1D7CA, 0x1D7CA, 0x1E900, 0x1E921, | |
9705 0x1F130, 0x1F149, 0x1F150, 0x1F169, 0x1F170, 0x1F189, | |
9706 // #92 (14024+4): bp=Variation_Selector:VS | |
9707 0x180B, 0x180D, 0x180F, 0x180F, 0xFE00, 0xFE0F, 0xE0100, 0xE01EF, | |
9708 // #93 (14028+10): bp=White_Space:space | |
9709 0x0009, 0x000D, 0x0020, 0x0020, 0x0085, 0x0085, 0x00A0, 0x00A0, | |
9710 0x1680, 0x1680, 0x2000, 0x200A, 0x2028, 0x2029, 0x202F, 0x202F, | |
9711 0x205F, 0x205F, 0x3000, 0x3000, | |
9712 // #94 (14038+776): bp=XID_Continue:XIDC | |
9713 0x0030, 0x0039, 0x0041, 0x005A, 0x005F, 0x005F, 0x0061, 0x007A, | |
9714 0x00AA, 0x00AA, 0x00B5, 0x00B5, 0x00B7, 0x00B7, 0x00BA, 0x00BA, | |
9715 0x00C0, 0x00D6, 0x00D8, 0x00F6, 0x00F8, 0x02C1, 0x02C6, 0x02D1, | |
9716 0x02E0, 0x02E4, 0x02EC, 0x02EC, 0x02EE, 0x02EE, 0x0300, 0x0374, | |
9717 0x0376, 0x0377, 0x037B, 0x037D, 0x037F, 0x037F, 0x0386, 0x038A, | |
9718 0x038C, 0x038C, 0x038E, 0x03A1, 0x03A3, 0x03F5, 0x03F7, 0x0481, | |
9719 0x0483, 0x0487, 0x048A, 0x052F, 0x0531, 0x0556, 0x0559, 0x0559, | |
9720 0x0560, 0x0588, 0x0591, 0x05BD, 0x05BF, 0x05BF, 0x05C1, 0x05C2, | |
9721 0x05C4, 0x05C5, 0x05C7, 0x05C7, 0x05D0, 0x05EA, 0x05EF, 0x05F2, | |
9722 0x0610, 0x061A, 0x0620, 0x0669, 0x066E, 0x06D3, 0x06D5, 0x06DC, | |
9723 0x06DF, 0x06E8, 0x06EA, 0x06FC, 0x06FF, 0x06FF, 0x0710, 0x074A, | |
9724 0x074D, 0x07B1, 0x07C0, 0x07F5, 0x07FA, 0x07FA, 0x07FD, 0x07FD, | |
9725 0x0800, 0x082D, 0x0840, 0x085B, 0x0860, 0x086A, 0x0870, 0x0887, | |
9726 0x0889, 0x088E, 0x0898, 0x08E1, 0x08E3, 0x0963, 0x0966, 0x096F, | |
9727 0x0971, 0x0983, 0x0985, 0x098C, 0x098F, 0x0990, 0x0993, 0x09A8, | |
9728 0x09AA, 0x09B0, 0x09B2, 0x09B2, 0x09B6, 0x09B9, 0x09BC, 0x09C4, | |
9729 0x09C7, 0x09C8, 0x09CB, 0x09CE, 0x09D7, 0x09D7, 0x09DC, 0x09DD, | |
9730 0x09DF, 0x09E3, 0x09E6, 0x09F1, 0x09FC, 0x09FC, 0x09FE, 0x09FE, | |
9731 0x0A01, 0x0A03, 0x0A05, 0x0A0A, 0x0A0F, 0x0A10, 0x0A13, 0x0A28, | |
9732 0x0A2A, 0x0A30, 0x0A32, 0x0A33, 0x0A35, 0x0A36, 0x0A38, 0x0A39, | |
9733 0x0A3C, 0x0A3C, 0x0A3E, 0x0A42, 0x0A47, 0x0A48, 0x0A4B, 0x0A4D, | |
9734 0x0A51, 0x0A51, 0x0A59, 0x0A5C, 0x0A5E, 0x0A5E, 0x0A66, 0x0A75, | |
9735 0x0A81, 0x0A83, 0x0A85, 0x0A8D, 0x0A8F, 0x0A91, 0x0A93, 0x0AA8, | |
9736 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3, 0x0AB5, 0x0AB9, 0x0ABC, 0x0AC5, | |
9737 0x0AC7, 0x0AC9, 0x0ACB, 0x0ACD, 0x0AD0, 0x0AD0, 0x0AE0, 0x0AE3, | |
9738 0x0AE6, 0x0AEF, 0x0AF9, 0x0AFF, 0x0B01, 0x0B03, 0x0B05, 0x0B0C, | |
9739 0x0B0F, 0x0B10, 0x0B13, 0x0B28, 0x0B2A, 0x0B30, 0x0B32, 0x0B33, | |
9740 0x0B35, 0x0B39, 0x0B3C, 0x0B44, 0x0B47, 0x0B48, 0x0B4B, 0x0B4D, | |
9741 0x0B55, 0x0B57, 0x0B5C, 0x0B5D, 0x0B5F, 0x0B63, 0x0B66, 0x0B6F, | |
9742 0x0B71, 0x0B71, 0x0B82, 0x0B83, 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, | |
9743 0x0B92, 0x0B95, 0x0B99, 0x0B9A, 0x0B9C, 0x0B9C, 0x0B9E, 0x0B9F, | |
9744 0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA, 0x0BAE, 0x0BB9, 0x0BBE, 0x0BC2, | |
9745 0x0BC6, 0x0BC8, 0x0BCA, 0x0BCD, 0x0BD0, 0x0BD0, 0x0BD7, 0x0BD7, | |
9746 0x0BE6, 0x0BEF, 0x0C00, 0x0C0C, 0x0C0E, 0x0C10, 0x0C12, 0x0C28, | |
9747 0x0C2A, 0x0C39, 0x0C3C, 0x0C44, 0x0C46, 0x0C48, 0x0C4A, 0x0C4D, | |
9748 0x0C55, 0x0C56, 0x0C58, 0x0C5A, 0x0C5D, 0x0C5D, 0x0C60, 0x0C63, | |
9749 0x0C66, 0x0C6F, 0x0C80, 0x0C83, 0x0C85, 0x0C8C, 0x0C8E, 0x0C90, | |
9750 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3, 0x0CB5, 0x0CB9, 0x0CBC, 0x0CC4, | |
9751 0x0CC6, 0x0CC8, 0x0CCA, 0x0CCD, 0x0CD5, 0x0CD6, 0x0CDD, 0x0CDE, | |
9752 0x0CE0, 0x0CE3, 0x0CE6, 0x0CEF, 0x0CF1, 0x0CF3, 0x0D00, 0x0D0C, | |
9753 0x0D0E, 0x0D10, 0x0D12, 0x0D44, 0x0D46, 0x0D48, 0x0D4A, 0x0D4E, | |
9754 0x0D54, 0x0D57, 0x0D5F, 0x0D63, 0x0D66, 0x0D6F, 0x0D7A, 0x0D7F, | |
9755 0x0D81, 0x0D83, 0x0D85, 0x0D96, 0x0D9A, 0x0DB1, 0x0DB3, 0x0DBB, | |
9756 0x0DBD, 0x0DBD, 0x0DC0, 0x0DC6, 0x0DCA, 0x0DCA, 0x0DCF, 0x0DD4, | |
9757 0x0DD6, 0x0DD6, 0x0DD8, 0x0DDF, 0x0DE6, 0x0DEF, 0x0DF2, 0x0DF3, | |
9758 0x0E01, 0x0E3A, 0x0E40, 0x0E4E, 0x0E50, 0x0E59, 0x0E81, 0x0E82, | |
9759 0x0E84, 0x0E84, 0x0E86, 0x0E8A, 0x0E8C, 0x0EA3, 0x0EA5, 0x0EA5, | |
9760 0x0EA7, 0x0EBD, 0x0EC0, 0x0EC4, 0x0EC6, 0x0EC6, 0x0EC8, 0x0ECE, | |
9761 0x0ED0, 0x0ED9, 0x0EDC, 0x0EDF, 0x0F00, 0x0F00, 0x0F18, 0x0F19, | |
9762 0x0F20, 0x0F29, 0x0F35, 0x0F35, 0x0F37, 0x0F37, 0x0F39, 0x0F39, | |
9763 0x0F3E, 0x0F47, 0x0F49, 0x0F6C, 0x0F71, 0x0F84, 0x0F86, 0x0F97, | |
9764 0x0F99, 0x0FBC, 0x0FC6, 0x0FC6, 0x1000, 0x1049, 0x1050, 0x109D, | |
9765 0x10A0, 0x10C5, 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x10D0, 0x10FA, | |
9766 0x10FC, 0x1248, 0x124A, 0x124D, 0x1250, 0x1256, 0x1258, 0x1258, | |
9767 0x125A, 0x125D, 0x1260, 0x1288, 0x128A, 0x128D, 0x1290, 0x12B0, | |
9768 0x12B2, 0x12B5, 0x12B8, 0x12BE, 0x12C0, 0x12C0, 0x12C2, 0x12C5, | |
9769 0x12C8, 0x12D6, 0x12D8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135A, | |
9770 0x135D, 0x135F, 0x1369, 0x1371, 0x1380, 0x138F, 0x13A0, 0x13F5, | |
9771 0x13F8, 0x13FD, 0x1401, 0x166C, 0x166F, 0x167F, 0x1681, 0x169A, | |
9772 0x16A0, 0x16EA, 0x16EE, 0x16F8, 0x1700, 0x1715, 0x171F, 0x1734, | |
9773 0x1740, 0x1753, 0x1760, 0x176C, 0x176E, 0x1770, 0x1772, 0x1773, | |
9774 0x1780, 0x17D3, 0x17D7, 0x17D7, 0x17DC, 0x17DD, 0x17E0, 0x17E9, | |
9775 0x180B, 0x180D, 0x180F, 0x1819, 0x1820, 0x1878, 0x1880, 0x18AA, | |
9776 0x18B0, 0x18F5, 0x1900, 0x191E, 0x1920, 0x192B, 0x1930, 0x193B, | |
9777 0x1946, 0x196D, 0x1970, 0x1974, 0x1980, 0x19AB, 0x19B0, 0x19C9, | |
9778 0x19D0, 0x19DA, 0x1A00, 0x1A1B, 0x1A20, 0x1A5E, 0x1A60, 0x1A7C, | |
9779 0x1A7F, 0x1A89, 0x1A90, 0x1A99, 0x1AA7, 0x1AA7, 0x1AB0, 0x1ABD, | |
9780 0x1ABF, 0x1ACE, 0x1B00, 0x1B4C, 0x1B50, 0x1B59, 0x1B6B, 0x1B73, | |
9781 0x1B80, 0x1BF3, 0x1C00, 0x1C37, 0x1C40, 0x1C49, 0x1C4D, 0x1C7D, | |
9782 0x1C80, 0x1C88, 0x1C90, 0x1CBA, 0x1CBD, 0x1CBF, 0x1CD0, 0x1CD2, | |
9783 0x1CD4, 0x1CFA, 0x1D00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, | |
9784 0x1F48, 0x1F4D, 0x1F50, 0x1F57, 0x1F59, 0x1F59, 0x1F5B, 0x1F5B, | |
9785 0x1F5D, 0x1F5D, 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FBC, | |
9786 0x1FBE, 0x1FBE, 0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, 0x1FD0, 0x1FD3, | |
9787 0x1FD6, 0x1FDB, 0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFC, | |
9788 0x200C, 0x200D, 0x203F, 0x2040, 0x2054, 0x2054, 0x2071, 0x2071, | |
9789 0x207F, 0x207F, 0x2090, 0x209C, 0x20D0, 0x20DC, 0x20E1, 0x20E1, | |
9790 0x20E5, 0x20F0, 0x2102, 0x2102, 0x2107, 0x2107, 0x210A, 0x2113, | |
9791 0x2115, 0x2115, 0x2118, 0x211D, 0x2124, 0x2124, 0x2126, 0x2126, | |
9792 0x2128, 0x2128, 0x212A, 0x2139, 0x213C, 0x213F, 0x2145, 0x2149, | |
9793 0x214E, 0x214E, 0x2160, 0x2188, 0x2C00, 0x2CE4, 0x2CEB, 0x2CF3, | |
9794 0x2D00, 0x2D25, 0x2D27, 0x2D27, 0x2D2D, 0x2D2D, 0x2D30, 0x2D67, | |
9795 0x2D6F, 0x2D6F, 0x2D7F, 0x2D96, 0x2DA0, 0x2DA6, 0x2DA8, 0x2DAE, | |
9796 0x2DB0, 0x2DB6, 0x2DB8, 0x2DBE, 0x2DC0, 0x2DC6, 0x2DC8, 0x2DCE, | |
9797 0x2DD0, 0x2DD6, 0x2DD8, 0x2DDE, 0x2DE0, 0x2DFF, 0x3005, 0x3007, | |
9798 0x3021, 0x302F, 0x3031, 0x3035, 0x3038, 0x303C, 0x3041, 0x3096, | |
9799 0x3099, 0x309A, 0x309D, 0x309F, 0x30A1, 0x30FF, 0x3105, 0x312F, | |
9800 0x3131, 0x318E, 0x31A0, 0x31BF, 0x31F0, 0x31FF, 0x3400, 0x4DBF, | |
9801 0x4E00, 0xA48C, 0xA4D0, 0xA4FD, 0xA500, 0xA60C, 0xA610, 0xA62B, | |
9802 0xA640, 0xA66F, 0xA674, 0xA67D, 0xA67F, 0xA6F1, 0xA717, 0xA71F, | |
9803 0xA722, 0xA788, 0xA78B, 0xA7CA, 0xA7D0, 0xA7D1, 0xA7D3, 0xA7D3, | |
9804 0xA7D5, 0xA7D9, 0xA7F2, 0xA827, 0xA82C, 0xA82C, 0xA840, 0xA873, | |
9805 0xA880, 0xA8C5, 0xA8D0, 0xA8D9, 0xA8E0, 0xA8F7, 0xA8FB, 0xA8FB, | |
9806 0xA8FD, 0xA92D, 0xA930, 0xA953, 0xA960, 0xA97C, 0xA980, 0xA9C0, | |
9807 0xA9CF, 0xA9D9, 0xA9E0, 0xA9FE, 0xAA00, 0xAA36, 0xAA40, 0xAA4D, | |
9808 0xAA50, 0xAA59, 0xAA60, 0xAA76, 0xAA7A, 0xAAC2, 0xAADB, 0xAADD, | |
9809 0xAAE0, 0xAAEF, 0xAAF2, 0xAAF6, 0xAB01, 0xAB06, 0xAB09, 0xAB0E, | |
9810 0xAB11, 0xAB16, 0xAB20, 0xAB26, 0xAB28, 0xAB2E, 0xAB30, 0xAB5A, | |
9811 0xAB5C, 0xAB69, 0xAB70, 0xABEA, 0xABEC, 0xABED, 0xABF0, 0xABF9, | |
9812 0xAC00, 0xD7A3, 0xD7B0, 0xD7C6, 0xD7CB, 0xD7FB, 0xF900, 0xFA6D, | |
9813 0xFA70, 0xFAD9, 0xFB00, 0xFB06, 0xFB13, 0xFB17, 0xFB1D, 0xFB28, | |
9814 0xFB2A, 0xFB36, 0xFB38, 0xFB3C, 0xFB3E, 0xFB3E, 0xFB40, 0xFB41, | |
9815 0xFB43, 0xFB44, 0xFB46, 0xFBB1, 0xFBD3, 0xFC5D, 0xFC64, 0xFD3D, | |
9816 0xFD50, 0xFD8F, 0xFD92, 0xFDC7, 0xFDF0, 0xFDF9, 0xFE00, 0xFE0F, | |
9817 0xFE20, 0xFE2F, 0xFE33, 0xFE34, 0xFE4D, 0xFE4F, 0xFE71, 0xFE71, | |
9818 0xFE73, 0xFE73, 0xFE77, 0xFE77, 0xFE79, 0xFE79, 0xFE7B, 0xFE7B, | |
9819 0xFE7D, 0xFE7D, 0xFE7F, 0xFEFC, 0xFF10, 0xFF19, 0xFF21, 0xFF3A, | |
9820 0xFF3F, 0xFF3F, 0xFF41, 0xFF5A, 0xFF65, 0xFFBE, 0xFFC2, 0xFFC7, | |
9821 0xFFCA, 0xFFCF, 0xFFD2, 0xFFD7, 0xFFDA, 0xFFDC, 0x10000, 0x1000B, | |
9822 0x1000D, 0x10026, 0x10028, 0x1003A, 0x1003C, 0x1003D, 0x1003F, 0x1004D, | |
9823 0x10050, 0x1005D, 0x10080, 0x100FA, 0x10140, 0x10174, 0x101FD, 0x101FD, | |
9824 0x10280, 0x1029C, 0x102A0, 0x102D0, 0x102E0, 0x102E0, 0x10300, 0x1031F, | |
9825 0x1032D, 0x1034A, 0x10350, 0x1037A, 0x10380, 0x1039D, 0x103A0, 0x103C3, | |
9826 0x103C8, 0x103CF, 0x103D1, 0x103D5, 0x10400, 0x1049D, 0x104A0, 0x104A9, | |
9827 0x104B0, 0x104D3, 0x104D8, 0x104FB, 0x10500, 0x10527, 0x10530, 0x10563, | |
9828 0x10570, 0x1057A, 0x1057C, 0x1058A, 0x1058C, 0x10592, 0x10594, 0x10595, | |
9829 0x10597, 0x105A1, 0x105A3, 0x105B1, 0x105B3, 0x105B9, 0x105BB, 0x105BC, | |
9830 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, 0x10780, 0x10785, | |
9831 0x10787, 0x107B0, 0x107B2, 0x107BA, 0x10800, 0x10805, 0x10808, 0x10808, | |
9832 0x1080A, 0x10835, 0x10837, 0x10838, 0x1083C, 0x1083C, 0x1083F, 0x10855, | |
9833 0x10860, 0x10876, 0x10880, 0x1089E, 0x108E0, 0x108F2, 0x108F4, 0x108F5, | |
9834 0x10900, 0x10915, 0x10920, 0x10939, 0x10980, 0x109B7, 0x109BE, 0x109BF, | |
9835 0x10A00, 0x10A03, 0x10A05, 0x10A06, 0x10A0C, 0x10A13, 0x10A15, 0x10A17, | |
9836 0x10A19, 0x10A35, 0x10A38, 0x10A3A, 0x10A3F, 0x10A3F, 0x10A60, 0x10A7C, | |
9837 0x10A80, 0x10A9C, 0x10AC0, 0x10AC7, 0x10AC9, 0x10AE6, 0x10B00, 0x10B35, | |
9838 0x10B40, 0x10B55, 0x10B60, 0x10B72, 0x10B80, 0x10B91, 0x10C00, 0x10C48, | |
9839 0x10C80, 0x10CB2, 0x10CC0, 0x10CF2, 0x10D00, 0x10D27, 0x10D30, 0x10D39, | |
9840 0x10E80, 0x10EA9, 0x10EAB, 0x10EAC, 0x10EB0, 0x10EB1, 0x10EFD, 0x10F1C, | |
9841 0x10F27, 0x10F27, 0x10F30, 0x10F50, 0x10F70, 0x10F85, 0x10FB0, 0x10FC4, | |
9842 0x10FE0, 0x10FF6, 0x11000, 0x11046, 0x11066, 0x11075, 0x1107F, 0x110BA, | |
9843 0x110C2, 0x110C2, 0x110D0, 0x110E8, 0x110F0, 0x110F9, 0x11100, 0x11134, | |
9844 0x11136, 0x1113F, 0x11144, 0x11147, 0x11150, 0x11173, 0x11176, 0x11176, | |
9845 0x11180, 0x111C4, 0x111C9, 0x111CC, 0x111CE, 0x111DA, 0x111DC, 0x111DC, | |
9846 0x11200, 0x11211, 0x11213, 0x11237, 0x1123E, 0x11241, 0x11280, 0x11286, | |
9847 0x11288, 0x11288, 0x1128A, 0x1128D, 0x1128F, 0x1129D, 0x1129F, 0x112A8, | |
9848 0x112B0, 0x112EA, 0x112F0, 0x112F9, 0x11300, 0x11303, 0x11305, 0x1130C, | |
9849 0x1130F, 0x11310, 0x11313, 0x11328, 0x1132A, 0x11330, 0x11332, 0x11333, | |
9850 0x11335, 0x11339, 0x1133B, 0x11344, 0x11347, 0x11348, 0x1134B, 0x1134D, | |
9851 0x11350, 0x11350, 0x11357, 0x11357, 0x1135D, 0x11363, 0x11366, 0x1136C, | |
9852 0x11370, 0x11374, 0x11400, 0x1144A, 0x11450, 0x11459, 0x1145E, 0x11461, | |
9853 0x11480, 0x114C5, 0x114C7, 0x114C7, 0x114D0, 0x114D9, 0x11580, 0x115B5, | |
9854 0x115B8, 0x115C0, 0x115D8, 0x115DD, 0x11600, 0x11640, 0x11644, 0x11644, | |
9855 0x11650, 0x11659, 0x11680, 0x116B8, 0x116C0, 0x116C9, 0x11700, 0x1171A, | |
9856 0x1171D, 0x1172B, 0x11730, 0x11739, 0x11740, 0x11746, 0x11800, 0x1183A, | |
9857 0x118A0, 0x118E9, 0x118FF, 0x11906, 0x11909, 0x11909, 0x1190C, 0x11913, | |
9858 0x11915, 0x11916, 0x11918, 0x11935, 0x11937, 0x11938, 0x1193B, 0x11943, | |
9859 0x11950, 0x11959, 0x119A0, 0x119A7, 0x119AA, 0x119D7, 0x119DA, 0x119E1, | |
9860 0x119E3, 0x119E4, 0x11A00, 0x11A3E, 0x11A47, 0x11A47, 0x11A50, 0x11A99, | |
9861 0x11A9D, 0x11A9D, 0x11AB0, 0x11AF8, 0x11C00, 0x11C08, 0x11C0A, 0x11C36, | |
9862 0x11C38, 0x11C40, 0x11C50, 0x11C59, 0x11C72, 0x11C8F, 0x11C92, 0x11CA7, | |
9863 0x11CA9, 0x11CB6, 0x11D00, 0x11D06, 0x11D08, 0x11D09, 0x11D0B, 0x11D36, | |
9864 0x11D3A, 0x11D3A, 0x11D3C, 0x11D3D, 0x11D3F, 0x11D47, 0x11D50, 0x11D59, | |
9865 0x11D60, 0x11D65, 0x11D67, 0x11D68, 0x11D6A, 0x11D8E, 0x11D90, 0x11D91, | |
9866 0x11D93, 0x11D98, 0x11DA0, 0x11DA9, 0x11EE0, 0x11EF6, 0x11F00, 0x11F10, | |
9867 0x11F12, 0x11F3A, 0x11F3E, 0x11F42, 0x11F50, 0x11F59, 0x11FB0, 0x11FB0, | |
9868 0x12000, 0x12399, 0x12400, 0x1246E, 0x12480, 0x12543, 0x12F90, 0x12FF0, | |
9869 0x13000, 0x1342F, 0x13440, 0x13455, 0x14400, 0x14646, 0x16800, 0x16A38, | |
9870 0x16A40, 0x16A5E, 0x16A60, 0x16A69, 0x16A70, 0x16ABE, 0x16AC0, 0x16AC9, | |
9871 0x16AD0, 0x16AED, 0x16AF0, 0x16AF4, 0x16B00, 0x16B36, 0x16B40, 0x16B43, | |
9872 0x16B50, 0x16B59, 0x16B63, 0x16B77, 0x16B7D, 0x16B8F, 0x16E40, 0x16E7F, | |
9873 0x16F00, 0x16F4A, 0x16F4F, 0x16F87, 0x16F8F, 0x16F9F, 0x16FE0, 0x16FE1, | |
9874 0x16FE3, 0x16FE4, 0x16FF0, 0x16FF1, 0x17000, 0x187F7, 0x18800, 0x18CD5, | |
9875 0x18D00, 0x18D08, 0x1AFF0, 0x1AFF3, 0x1AFF5, 0x1AFFB, 0x1AFFD, 0x1AFFE, | |
9876 0x1B000, 0x1B122, 0x1B132, 0x1B132, 0x1B150, 0x1B152, 0x1B155, 0x1B155, | |
9877 0x1B164, 0x1B167, 0x1B170, 0x1B2FB, 0x1BC00, 0x1BC6A, 0x1BC70, 0x1BC7C, | |
9878 0x1BC80, 0x1BC88, 0x1BC90, 0x1BC99, 0x1BC9D, 0x1BC9E, 0x1CF00, 0x1CF2D, | |
9879 0x1CF30, 0x1CF46, 0x1D165, 0x1D169, 0x1D16D, 0x1D172, 0x1D17B, 0x1D182, | |
9880 0x1D185, 0x1D18B, 0x1D1AA, 0x1D1AD, 0x1D242, 0x1D244, 0x1D400, 0x1D454, | |
9881 0x1D456, 0x1D49C, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A2, 0x1D4A5, 0x1D4A6, | |
9882 0x1D4A9, 0x1D4AC, 0x1D4AE, 0x1D4B9, 0x1D4BB, 0x1D4BB, 0x1D4BD, 0x1D4C3, | |
9883 0x1D4C5, 0x1D505, 0x1D507, 0x1D50A, 0x1D50D, 0x1D514, 0x1D516, 0x1D51C, | |
9884 0x1D51E, 0x1D539, 0x1D53B, 0x1D53E, 0x1D540, 0x1D544, 0x1D546, 0x1D546, | |
9885 0x1D54A, 0x1D550, 0x1D552, 0x1D6A5, 0x1D6A8, 0x1D6C0, 0x1D6C2, 0x1D6DA, | |
9886 0x1D6DC, 0x1D6FA, 0x1D6FC, 0x1D714, 0x1D716, 0x1D734, 0x1D736, 0x1D74E, | |
9887 0x1D750, 0x1D76E, 0x1D770, 0x1D788, 0x1D78A, 0x1D7A8, 0x1D7AA, 0x1D7C2, | |
9888 0x1D7C4, 0x1D7CB, 0x1D7CE, 0x1D7FF, 0x1DA00, 0x1DA36, 0x1DA3B, 0x1DA6C, | |
9889 0x1DA75, 0x1DA75, 0x1DA84, 0x1DA84, 0x1DA9B, 0x1DA9F, 0x1DAA1, 0x1DAAF, | |
9890 0x1DF00, 0x1DF1E, 0x1DF25, 0x1DF2A, 0x1E000, 0x1E006, 0x1E008, 0x1E018, | |
9891 0x1E01B, 0x1E021, 0x1E023, 0x1E024, 0x1E026, 0x1E02A, 0x1E030, 0x1E06D, | |
9892 0x1E08F, 0x1E08F, 0x1E100, 0x1E12C, 0x1E130, 0x1E13D, 0x1E140, 0x1E149, | |
9893 0x1E14E, 0x1E14E, 0x1E290, 0x1E2AE, 0x1E2C0, 0x1E2F9, 0x1E4D0, 0x1E4F9, | |
9894 0x1E7E0, 0x1E7E6, 0x1E7E8, 0x1E7EB, 0x1E7ED, 0x1E7EE, 0x1E7F0, 0x1E7FE, | |
9895 0x1E800, 0x1E8C4, 0x1E8D0, 0x1E8D6, 0x1E900, 0x1E94B, 0x1E950, 0x1E959, | |
9896 0x1EE00, 0x1EE03, 0x1EE05, 0x1EE1F, 0x1EE21, 0x1EE22, 0x1EE24, 0x1EE24, | |
9897 0x1EE27, 0x1EE27, 0x1EE29, 0x1EE32, 0x1EE34, 0x1EE37, 0x1EE39, 0x1EE39, | |
9898 0x1EE3B, 0x1EE3B, 0x1EE42, 0x1EE42, 0x1EE47, 0x1EE47, 0x1EE49, 0x1EE49, | |
9899 0x1EE4B, 0x1EE4B, 0x1EE4D, 0x1EE4F, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE54, | |
9900 0x1EE57, 0x1EE57, 0x1EE59, 0x1EE59, 0x1EE5B, 0x1EE5B, 0x1EE5D, 0x1EE5D, | |
9901 0x1EE5F, 0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE64, 0x1EE67, 0x1EE6A, | |
9902 0x1EE6C, 0x1EE72, 0x1EE74, 0x1EE77, 0x1EE79, 0x1EE7C, 0x1EE7E, 0x1EE7E, | |
9903 0x1EE80, 0x1EE89, 0x1EE8B, 0x1EE9B, 0x1EEA1, 0x1EEA3, 0x1EEA5, 0x1EEA9, | |
9904 0x1EEAB, 0x1EEBB, 0x1FBF0, 0x1FBF9, 0x20000, 0x2A6DF, 0x2A700, 0x2B739, | |
9905 0x2B740, 0x2B81D, 0x2B820, 0x2CEA1, 0x2CEB0, 0x2EBE0, 0x2EBF0, 0x2EE5D, | |
9906 0x2F800, 0x2FA1D, 0x30000, 0x3134A, 0x31350, 0x323AF, 0xE0100, 0xE01EF, | |
9907 // #95 (14814+667): bp=XID_Start:XIDS | |
9908 0x0041, 0x005A, 0x0061, 0x007A, 0x00AA, 0x00AA, 0x00B5, 0x00B5, | |
9909 0x00BA, 0x00BA, 0x00C0, 0x00D6, 0x00D8, 0x00F6, 0x00F8, 0x02C1, | |
9910 0x02C6, 0x02D1, 0x02E0, 0x02E4, 0x02EC, 0x02EC, 0x02EE, 0x02EE, | |
9911 0x0370, 0x0374, 0x0376, 0x0377, 0x037B, 0x037D, 0x037F, 0x037F, | |
9912 0x0386, 0x0386, 0x0388, 0x038A, 0x038C, 0x038C, 0x038E, 0x03A1, | |
9913 0x03A3, 0x03F5, 0x03F7, 0x0481, 0x048A, 0x052F, 0x0531, 0x0556, | |
9914 0x0559, 0x0559, 0x0560, 0x0588, 0x05D0, 0x05EA, 0x05EF, 0x05F2, | |
9915 0x0620, 0x064A, 0x066E, 0x066F, 0x0671, 0x06D3, 0x06D5, 0x06D5, | |
9916 0x06E5, 0x06E6, 0x06EE, 0x06EF, 0x06FA, 0x06FC, 0x06FF, 0x06FF, | |
9917 0x0710, 0x0710, 0x0712, 0x072F, 0x074D, 0x07A5, 0x07B1, 0x07B1, | |
9918 0x07CA, 0x07EA, 0x07F4, 0x07F5, 0x07FA, 0x07FA, 0x0800, 0x0815, | |
9919 0x081A, 0x081A, 0x0824, 0x0824, 0x0828, 0x0828, 0x0840, 0x0858, | |
9920 0x0860, 0x086A, 0x0870, 0x0887, 0x0889, 0x088E, 0x08A0, 0x08C9, | |
9921 0x0904, 0x0939, 0x093D, 0x093D, 0x0950, 0x0950, 0x0958, 0x0961, | |
9922 0x0971, 0x0980, 0x0985, 0x098C, 0x098F, 0x0990, 0x0993, 0x09A8, | |
9923 0x09AA, 0x09B0, 0x09B2, 0x09B2, 0x09B6, 0x09B9, 0x09BD, 0x09BD, | |
9924 0x09CE, 0x09CE, 0x09DC, 0x09DD, 0x09DF, 0x09E1, 0x09F0, 0x09F1, | |
9925 0x09FC, 0x09FC, 0x0A05, 0x0A0A, 0x0A0F, 0x0A10, 0x0A13, 0x0A28, | |
9926 0x0A2A, 0x0A30, 0x0A32, 0x0A33, 0x0A35, 0x0A36, 0x0A38, 0x0A39, | |
9927 0x0A59, 0x0A5C, 0x0A5E, 0x0A5E, 0x0A72, 0x0A74, 0x0A85, 0x0A8D, | |
9928 0x0A8F, 0x0A91, 0x0A93, 0x0AA8, 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3, | |
9929 0x0AB5, 0x0AB9, 0x0ABD, 0x0ABD, 0x0AD0, 0x0AD0, 0x0AE0, 0x0AE1, | |
9930 0x0AF9, 0x0AF9, 0x0B05, 0x0B0C, 0x0B0F, 0x0B10, 0x0B13, 0x0B28, | |
9931 0x0B2A, 0x0B30, 0x0B32, 0x0B33, 0x0B35, 0x0B39, 0x0B3D, 0x0B3D, | |
9932 0x0B5C, 0x0B5D, 0x0B5F, 0x0B61, 0x0B71, 0x0B71, 0x0B83, 0x0B83, | |
9933 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, 0x0B92, 0x0B95, 0x0B99, 0x0B9A, | |
9934 0x0B9C, 0x0B9C, 0x0B9E, 0x0B9F, 0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA, | |
9935 0x0BAE, 0x0BB9, 0x0BD0, 0x0BD0, 0x0C05, 0x0C0C, 0x0C0E, 0x0C10, | |
9936 0x0C12, 0x0C28, 0x0C2A, 0x0C39, 0x0C3D, 0x0C3D, 0x0C58, 0x0C5A, | |
9937 0x0C5D, 0x0C5D, 0x0C60, 0x0C61, 0x0C80, 0x0C80, 0x0C85, 0x0C8C, | |
9938 0x0C8E, 0x0C90, 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3, 0x0CB5, 0x0CB9, | |
9939 0x0CBD, 0x0CBD, 0x0CDD, 0x0CDE, 0x0CE0, 0x0CE1, 0x0CF1, 0x0CF2, | |
9940 0x0D04, 0x0D0C, 0x0D0E, 0x0D10, 0x0D12, 0x0D3A, 0x0D3D, 0x0D3D, | |
9941 0x0D4E, 0x0D4E, 0x0D54, 0x0D56, 0x0D5F, 0x0D61, 0x0D7A, 0x0D7F, | |
9942 0x0D85, 0x0D96, 0x0D9A, 0x0DB1, 0x0DB3, 0x0DBB, 0x0DBD, 0x0DBD, | |
9943 0x0DC0, 0x0DC6, 0x0E01, 0x0E30, 0x0E32, 0x0E32, 0x0E40, 0x0E46, | |
9944 0x0E81, 0x0E82, 0x0E84, 0x0E84, 0x0E86, 0x0E8A, 0x0E8C, 0x0EA3, | |
9945 0x0EA5, 0x0EA5, 0x0EA7, 0x0EB0, 0x0EB2, 0x0EB2, 0x0EBD, 0x0EBD, | |
9946 0x0EC0, 0x0EC4, 0x0EC6, 0x0EC6, 0x0EDC, 0x0EDF, 0x0F00, 0x0F00, | |
9947 0x0F40, 0x0F47, 0x0F49, 0x0F6C, 0x0F88, 0x0F8C, 0x1000, 0x102A, | |
9948 0x103F, 0x103F, 0x1050, 0x1055, 0x105A, 0x105D, 0x1061, 0x1061, | |
9949 0x1065, 0x1066, 0x106E, 0x1070, 0x1075, 0x1081, 0x108E, 0x108E, | |
9950 0x10A0, 0x10C5, 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x10D0, 0x10FA, | |
9951 0x10FC, 0x1248, 0x124A, 0x124D, 0x1250, 0x1256, 0x1258, 0x1258, | |
9952 0x125A, 0x125D, 0x1260, 0x1288, 0x128A, 0x128D, 0x1290, 0x12B0, | |
9953 0x12B2, 0x12B5, 0x12B8, 0x12BE, 0x12C0, 0x12C0, 0x12C2, 0x12C5, | |
9954 0x12C8, 0x12D6, 0x12D8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135A, | |
9955 0x1380, 0x138F, 0x13A0, 0x13F5, 0x13F8, 0x13FD, 0x1401, 0x166C, | |
9956 0x166F, 0x167F, 0x1681, 0x169A, 0x16A0, 0x16EA, 0x16EE, 0x16F8, | |
9957 0x1700, 0x1711, 0x171F, 0x1731, 0x1740, 0x1751, 0x1760, 0x176C, | |
9958 0x176E, 0x1770, 0x1780, 0x17B3, 0x17D7, 0x17D7, 0x17DC, 0x17DC, | |
9959 0x1820, 0x1878, 0x1880, 0x18A8, 0x18AA, 0x18AA, 0x18B0, 0x18F5, | |
9960 0x1900, 0x191E, 0x1950, 0x196D, 0x1970, 0x1974, 0x1980, 0x19AB, | |
9961 0x19B0, 0x19C9, 0x1A00, 0x1A16, 0x1A20, 0x1A54, 0x1AA7, 0x1AA7, | |
9962 0x1B05, 0x1B33, 0x1B45, 0x1B4C, 0x1B83, 0x1BA0, 0x1BAE, 0x1BAF, | |
9963 0x1BBA, 0x1BE5, 0x1C00, 0x1C23, 0x1C4D, 0x1C4F, 0x1C5A, 0x1C7D, | |
9964 0x1C80, 0x1C88, 0x1C90, 0x1CBA, 0x1CBD, 0x1CBF, 0x1CE9, 0x1CEC, | |
9965 0x1CEE, 0x1CF3, 0x1CF5, 0x1CF6, 0x1CFA, 0x1CFA, 0x1D00, 0x1DBF, | |
9966 0x1E00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, 0x1F48, 0x1F4D, | |
9967 0x1F50, 0x1F57, 0x1F59, 0x1F59, 0x1F5B, 0x1F5B, 0x1F5D, 0x1F5D, | |
9968 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FBC, 0x1FBE, 0x1FBE, | |
9969 0x1FC2, 0x1FC4, 0x1FC6, 0x1FCC, 0x1FD0, 0x1FD3, 0x1FD6, 0x1FDB, | |
9970 0x1FE0, 0x1FEC, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFC, 0x2071, 0x2071, | |
9971 0x207F, 0x207F, 0x2090, 0x209C, 0x2102, 0x2102, 0x2107, 0x2107, | |
9972 0x210A, 0x2113, 0x2115, 0x2115, 0x2118, 0x211D, 0x2124, 0x2124, | |
9973 0x2126, 0x2126, 0x2128, 0x2128, 0x212A, 0x2139, 0x213C, 0x213F, | |
9974 0x2145, 0x2149, 0x214E, 0x214E, 0x2160, 0x2188, 0x2C00, 0x2CE4, | |
9975 0x2CEB, 0x2CEE, 0x2CF2, 0x2CF3, 0x2D00, 0x2D25, 0x2D27, 0x2D27, | |
9976 0x2D2D, 0x2D2D, 0x2D30, 0x2D67, 0x2D6F, 0x2D6F, 0x2D80, 0x2D96, | |
9977 0x2DA0, 0x2DA6, 0x2DA8, 0x2DAE, 0x2DB0, 0x2DB6, 0x2DB8, 0x2DBE, | |
9978 0x2DC0, 0x2DC6, 0x2DC8, 0x2DCE, 0x2DD0, 0x2DD6, 0x2DD8, 0x2DDE, | |
9979 0x3005, 0x3007, 0x3021, 0x3029, 0x3031, 0x3035, 0x3038, 0x303C, | |
9980 0x3041, 0x3096, 0x309D, 0x309F, 0x30A1, 0x30FA, 0x30FC, 0x30FF, | |
9981 0x3105, 0x312F, 0x3131, 0x318E, 0x31A0, 0x31BF, 0x31F0, 0x31FF, | |
9982 0x3400, 0x4DBF, 0x4E00, 0xA48C, 0xA4D0, 0xA4FD, 0xA500, 0xA60C, | |
9983 0xA610, 0xA61F, 0xA62A, 0xA62B, 0xA640, 0xA66E, 0xA67F, 0xA69D, | |
9984 0xA6A0, 0xA6EF, 0xA717, 0xA71F, 0xA722, 0xA788, 0xA78B, 0xA7CA, | |
9985 0xA7D0, 0xA7D1, 0xA7D3, 0xA7D3, 0xA7D5, 0xA7D9, 0xA7F2, 0xA801, | |
9986 0xA803, 0xA805, 0xA807, 0xA80A, 0xA80C, 0xA822, 0xA840, 0xA873, | |
9987 0xA882, 0xA8B3, 0xA8F2, 0xA8F7, 0xA8FB, 0xA8FB, 0xA8FD, 0xA8FE, | |
9988 0xA90A, 0xA925, 0xA930, 0xA946, 0xA960, 0xA97C, 0xA984, 0xA9B2, | |
9989 0xA9CF, 0xA9CF, 0xA9E0, 0xA9E4, 0xA9E6, 0xA9EF, 0xA9FA, 0xA9FE, | |
9990 0xAA00, 0xAA28, 0xAA40, 0xAA42, 0xAA44, 0xAA4B, 0xAA60, 0xAA76, | |
9991 0xAA7A, 0xAA7A, 0xAA7E, 0xAAAF, 0xAAB1, 0xAAB1, 0xAAB5, 0xAAB6, | |
9992 0xAAB9, 0xAABD, 0xAAC0, 0xAAC0, 0xAAC2, 0xAAC2, 0xAADB, 0xAADD, | |
9993 0xAAE0, 0xAAEA, 0xAAF2, 0xAAF4, 0xAB01, 0xAB06, 0xAB09, 0xAB0E, | |
9994 0xAB11, 0xAB16, 0xAB20, 0xAB26, 0xAB28, 0xAB2E, 0xAB30, 0xAB5A, | |
9995 0xAB5C, 0xAB69, 0xAB70, 0xABE2, 0xAC00, 0xD7A3, 0xD7B0, 0xD7C6, | |
9996 0xD7CB, 0xD7FB, 0xF900, 0xFA6D, 0xFA70, 0xFAD9, 0xFB00, 0xFB06, | |
9997 0xFB13, 0xFB17, 0xFB1D, 0xFB1D, 0xFB1F, 0xFB28, 0xFB2A, 0xFB36, | |
9998 0xFB38, 0xFB3C, 0xFB3E, 0xFB3E, 0xFB40, 0xFB41, 0xFB43, 0xFB44, | |
9999 0xFB46, 0xFBB1, 0xFBD3, 0xFC5D, 0xFC64, 0xFD3D, 0xFD50, 0xFD8F, | |
10000 0xFD92, 0xFDC7, 0xFDF0, 0xFDF9, 0xFE71, 0xFE71, 0xFE73, 0xFE73, | |
10001 0xFE77, 0xFE77, 0xFE79, 0xFE79, 0xFE7B, 0xFE7B, 0xFE7D, 0xFE7D, | |
10002 0xFE7F, 0xFEFC, 0xFF21, 0xFF3A, 0xFF41, 0xFF5A, 0xFF66, 0xFF9D, | |
10003 0xFFA0, 0xFFBE, 0xFFC2, 0xFFC7, 0xFFCA, 0xFFCF, 0xFFD2, 0xFFD7, | |
10004 0xFFDA, 0xFFDC, 0x10000, 0x1000B, 0x1000D, 0x10026, 0x10028, 0x1003A, | |
10005 0x1003C, 0x1003D, 0x1003F, 0x1004D, 0x10050, 0x1005D, 0x10080, 0x100FA, | |
10006 0x10140, 0x10174, 0x10280, 0x1029C, 0x102A0, 0x102D0, 0x10300, 0x1031F, | |
10007 0x1032D, 0x1034A, 0x10350, 0x10375, 0x10380, 0x1039D, 0x103A0, 0x103C3, | |
10008 0x103C8, 0x103CF, 0x103D1, 0x103D5, 0x10400, 0x1049D, 0x104B0, 0x104D3, | |
10009 0x104D8, 0x104FB, 0x10500, 0x10527, 0x10530, 0x10563, 0x10570, 0x1057A, | |
10010 0x1057C, 0x1058A, 0x1058C, 0x10592, 0x10594, 0x10595, 0x10597, 0x105A1, | |
10011 0x105A3, 0x105B1, 0x105B3, 0x105B9, 0x105BB, 0x105BC, 0x10600, 0x10736, | |
10012 0x10740, 0x10755, 0x10760, 0x10767, 0x10780, 0x10785, 0x10787, 0x107B0, | |
10013 0x107B2, 0x107BA, 0x10800, 0x10805, 0x10808, 0x10808, 0x1080A, 0x10835, | |
10014 0x10837, 0x10838, 0x1083C, 0x1083C, 0x1083F, 0x10855, 0x10860, 0x10876, | |
10015 0x10880, 0x1089E, 0x108E0, 0x108F2, 0x108F4, 0x108F5, 0x10900, 0x10915, | |
10016 0x10920, 0x10939, 0x10980, 0x109B7, 0x109BE, 0x109BF, 0x10A00, 0x10A00, | |
10017 0x10A10, 0x10A13, 0x10A15, 0x10A17, 0x10A19, 0x10A35, 0x10A60, 0x10A7C, | |
10018 0x10A80, 0x10A9C, 0x10AC0, 0x10AC7, 0x10AC9, 0x10AE4, 0x10B00, 0x10B35, | |
10019 0x10B40, 0x10B55, 0x10B60, 0x10B72, 0x10B80, 0x10B91, 0x10C00, 0x10C48, | |
10020 0x10C80, 0x10CB2, 0x10CC0, 0x10CF2, 0x10D00, 0x10D23, 0x10E80, 0x10EA9, | |
10021 0x10EB0, 0x10EB1, 0x10F00, 0x10F1C, 0x10F27, 0x10F27, 0x10F30, 0x10F45, | |
10022 0x10F70, 0x10F81, 0x10FB0, 0x10FC4, 0x10FE0, 0x10FF6, 0x11003, 0x11037, | |
10023 0x11071, 0x11072, 0x11075, 0x11075, 0x11083, 0x110AF, 0x110D0, 0x110E8, | |
10024 0x11103, 0x11126, 0x11144, 0x11144, 0x11147, 0x11147, 0x11150, 0x11172, | |
10025 0x11176, 0x11176, 0x11183, 0x111B2, 0x111C1, 0x111C4, 0x111DA, 0x111DA, | |
10026 0x111DC, 0x111DC, 0x11200, 0x11211, 0x11213, 0x1122B, 0x1123F, 0x11240, | |
10027 0x11280, 0x11286, 0x11288, 0x11288, 0x1128A, 0x1128D, 0x1128F, 0x1129D, | |
10028 0x1129F, 0x112A8, 0x112B0, 0x112DE, 0x11305, 0x1130C, 0x1130F, 0x11310, | |
10029 0x11313, 0x11328, 0x1132A, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, | |
10030 0x1133D, 0x1133D, 0x11350, 0x11350, 0x1135D, 0x11361, 0x11400, 0x11434, | |
10031 0x11447, 0x1144A, 0x1145F, 0x11461, 0x11480, 0x114AF, 0x114C4, 0x114C5, | |
10032 0x114C7, 0x114C7, 0x11580, 0x115AE, 0x115D8, 0x115DB, 0x11600, 0x1162F, | |
10033 0x11644, 0x11644, 0x11680, 0x116AA, 0x116B8, 0x116B8, 0x11700, 0x1171A, | |
10034 0x11740, 0x11746, 0x11800, 0x1182B, 0x118A0, 0x118DF, 0x118FF, 0x11906, | |
10035 0x11909, 0x11909, 0x1190C, 0x11913, 0x11915, 0x11916, 0x11918, 0x1192F, | |
10036 0x1193F, 0x1193F, 0x11941, 0x11941, 0x119A0, 0x119A7, 0x119AA, 0x119D0, | |
10037 0x119E1, 0x119E1, 0x119E3, 0x119E3, 0x11A00, 0x11A00, 0x11A0B, 0x11A32, | |
10038 0x11A3A, 0x11A3A, 0x11A50, 0x11A50, 0x11A5C, 0x11A89, 0x11A9D, 0x11A9D, | |
10039 0x11AB0, 0x11AF8, 0x11C00, 0x11C08, 0x11C0A, 0x11C2E, 0x11C40, 0x11C40, | |
10040 0x11C72, 0x11C8F, 0x11D00, 0x11D06, 0x11D08, 0x11D09, 0x11D0B, 0x11D30, | |
10041 0x11D46, 0x11D46, 0x11D60, 0x11D65, 0x11D67, 0x11D68, 0x11D6A, 0x11D89, | |
10042 0x11D98, 0x11D98, 0x11EE0, 0x11EF2, 0x11F02, 0x11F02, 0x11F04, 0x11F10, | |
10043 0x11F12, 0x11F33, 0x11FB0, 0x11FB0, 0x12000, 0x12399, 0x12400, 0x1246E, | |
10044 0x12480, 0x12543, 0x12F90, 0x12FF0, 0x13000, 0x1342F, 0x13441, 0x13446, | |
10045 0x14400, 0x14646, 0x16800, 0x16A38, 0x16A40, 0x16A5E, 0x16A70, 0x16ABE, | |
10046 0x16AD0, 0x16AED, 0x16B00, 0x16B2F, 0x16B40, 0x16B43, 0x16B63, 0x16B77, | |
10047 0x16B7D, 0x16B8F, 0x16E40, 0x16E7F, 0x16F00, 0x16F4A, 0x16F50, 0x16F50, | |
10048 0x16F93, 0x16F9F, 0x16FE0, 0x16FE1, 0x16FE3, 0x16FE3, 0x17000, 0x187F7, | |
10049 0x18800, 0x18CD5, 0x18D00, 0x18D08, 0x1AFF0, 0x1AFF3, 0x1AFF5, 0x1AFFB, | |
10050 0x1AFFD, 0x1AFFE, 0x1B000, 0x1B122, 0x1B132, 0x1B132, 0x1B150, 0x1B152, | |
10051 0x1B155, 0x1B155, 0x1B164, 0x1B167, 0x1B170, 0x1B2FB, 0x1BC00, 0x1BC6A, | |
10052 0x1BC70, 0x1BC7C, 0x1BC80, 0x1BC88, 0x1BC90, 0x1BC99, 0x1D400, 0x1D454, | |
10053 0x1D456, 0x1D49C, 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A2, 0x1D4A5, 0x1D4A6, | |
10054 0x1D4A9, 0x1D4AC, 0x1D4AE, 0x1D4B9, 0x1D4BB, 0x1D4BB, 0x1D4BD, 0x1D4C3, | |
10055 0x1D4C5, 0x1D505, 0x1D507, 0x1D50A, 0x1D50D, 0x1D514, 0x1D516, 0x1D51C, | |
10056 0x1D51E, 0x1D539, 0x1D53B, 0x1D53E, 0x1D540, 0x1D544, 0x1D546, 0x1D546, | |
10057 0x1D54A, 0x1D550, 0x1D552, 0x1D6A5, 0x1D6A8, 0x1D6C0, 0x1D6C2, 0x1D6DA, | |
10058 0x1D6DC, 0x1D6FA, 0x1D6FC, 0x1D714, 0x1D716, 0x1D734, 0x1D736, 0x1D74E, | |
10059 0x1D750, 0x1D76E, 0x1D770, 0x1D788, 0x1D78A, 0x1D7A8, 0x1D7AA, 0x1D7C2, | |
10060 0x1D7C4, 0x1D7CB, 0x1DF00, 0x1DF1E, 0x1DF25, 0x1DF2A, 0x1E030, 0x1E06D, | |
10061 0x1E100, 0x1E12C, 0x1E137, 0x1E13D, 0x1E14E, 0x1E14E, 0x1E290, 0x1E2AD, | |
10062 0x1E2C0, 0x1E2EB, 0x1E4D0, 0x1E4EB, 0x1E7E0, 0x1E7E6, 0x1E7E8, 0x1E7EB, | |
10063 0x1E7ED, 0x1E7EE, 0x1E7F0, 0x1E7FE, 0x1E800, 0x1E8C4, 0x1E900, 0x1E943, | |
10064 0x1E94B, 0x1E94B, 0x1EE00, 0x1EE03, 0x1EE05, 0x1EE1F, 0x1EE21, 0x1EE22, | |
10065 0x1EE24, 0x1EE24, 0x1EE27, 0x1EE27, 0x1EE29, 0x1EE32, 0x1EE34, 0x1EE37, | |
10066 0x1EE39, 0x1EE39, 0x1EE3B, 0x1EE3B, 0x1EE42, 0x1EE42, 0x1EE47, 0x1EE47, | |
10067 0x1EE49, 0x1EE49, 0x1EE4B, 0x1EE4B, 0x1EE4D, 0x1EE4F, 0x1EE51, 0x1EE52, | |
10068 0x1EE54, 0x1EE54, 0x1EE57, 0x1EE57, 0x1EE59, 0x1EE59, 0x1EE5B, 0x1EE5B, | |
10069 0x1EE5D, 0x1EE5D, 0x1EE5F, 0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE64, | |
10070 0x1EE67, 0x1EE6A, 0x1EE6C, 0x1EE72, 0x1EE74, 0x1EE77, 0x1EE79, 0x1EE7C, | |
10071 0x1EE7E, 0x1EE7E, 0x1EE80, 0x1EE89, 0x1EE8B, 0x1EE9B, 0x1EEA1, 0x1EEA3, | |
10072 0x1EEA5, 0x1EEA9, 0x1EEAB, 0x1EEBB, 0x20000, 0x2A6DF, 0x2A700, 0x2B739, | |
10073 0x2B740, 0x2B81D, 0x2B820, 0x2CEA1, 0x2CEB0, 0x2EBE0, 0x2EBF0, 0x2EE5D, | |
10074 0x2F800, 0x2FA1D, 0x30000, 0x3134A, 0x31350, 0x323AF, | |
10075 // #96 (15481+173): sc=Common:Zyyy | |
10076 0x0000, 0x0040, 0x005B, 0x0060, 0x007B, 0x00A9, 0x00AB, 0x00B9, | |
10077 0x00BB, 0x00BF, 0x00D7, 0x00D7, 0x00F7, 0x00F7, 0x02B9, 0x02DF, | |
10078 0x02E5, 0x02E9, 0x02EC, 0x02FF, 0x0374, 0x0374, 0x037E, 0x037E, | |
10079 0x0385, 0x0385, 0x0387, 0x0387, 0x0605, 0x0605, 0x060C, 0x060C, | |
10080 0x061B, 0x061B, 0x061F, 0x061F, 0x0640, 0x0640, 0x06DD, 0x06DD, | |
10081 0x08E2, 0x08E2, 0x0964, 0x0965, 0x0E3F, 0x0E3F, 0x0FD5, 0x0FD8, | |
10082 0x10FB, 0x10FB, 0x16EB, 0x16ED, 0x1735, 0x1736, 0x1802, 0x1803, | |
10083 0x1805, 0x1805, 0x1CD3, 0x1CD3, 0x1CE1, 0x1CE1, 0x1CE9, 0x1CEC, | |
10084 0x1CEE, 0x1CF3, 0x1CF5, 0x1CF7, 0x1CFA, 0x1CFA, 0x2000, 0x200B, | |
10085 0x200E, 0x2064, 0x2066, 0x2070, 0x2074, 0x207E, 0x2080, 0x208E, | |
10086 0x20A0, 0x20C0, 0x2100, 0x2125, 0x2127, 0x2129, 0x212C, 0x2131, | |
10087 0x2133, 0x214D, 0x214F, 0x215F, 0x2189, 0x218B, 0x2190, 0x2426, | |
10088 0x2440, 0x244A, 0x2460, 0x27FF, 0x2900, 0x2B73, 0x2B76, 0x2B95, | |
10089 0x2B97, 0x2BFF, 0x2E00, 0x2E5D, 0x2FF0, 0x3004, 0x3006, 0x3006, | |
10090 0x3008, 0x3020, 0x3030, 0x3037, 0x303C, 0x303F, 0x309B, 0x309C, | |
10091 0x30A0, 0x30A0, 0x30FB, 0x30FC, 0x3190, 0x319F, 0x31C0, 0x31E3, | |
10092 0x31EF, 0x31EF, 0x3220, 0x325F, 0x327F, 0x32CF, 0x32FF, 0x32FF, | |
10093 0x3358, 0x33FF, 0x4DC0, 0x4DFF, 0xA700, 0xA721, 0xA788, 0xA78A, | |
10094 0xA830, 0xA839, 0xA92E, 0xA92E, 0xA9CF, 0xA9CF, 0xAB5B, 0xAB5B, | |
10095 0xAB6A, 0xAB6B, 0xFD3E, 0xFD3F, 0xFE10, 0xFE19, 0xFE30, 0xFE52, | |
10096 0xFE54, 0xFE66, 0xFE68, 0xFE6B, 0xFEFF, 0xFEFF, 0xFF01, 0xFF20, | |
10097 0xFF3B, 0xFF40, 0xFF5B, 0xFF65, 0xFF70, 0xFF70, 0xFF9E, 0xFF9F, | |
10098 0xFFE0, 0xFFE6, 0xFFE8, 0xFFEE, 0xFFF9, 0xFFFD, 0x10100, 0x10102, | |
10099 0x10107, 0x10133, 0x10137, 0x1013F, 0x10190, 0x1019C, 0x101D0, 0x101FC, | |
10100 0x102E1, 0x102FB, 0x1BCA0, 0x1BCA3, 0x1CF50, 0x1CFC3, 0x1D000, 0x1D0F5, | |
10101 0x1D100, 0x1D126, 0x1D129, 0x1D166, 0x1D16A, 0x1D17A, 0x1D183, 0x1D184, | |
10102 0x1D18C, 0x1D1A9, 0x1D1AE, 0x1D1EA, 0x1D2C0, 0x1D2D3, 0x1D2E0, 0x1D2F3, | |
10103 0x1D300, 0x1D356, 0x1D360, 0x1D378, 0x1D400, 0x1D454, 0x1D456, 0x1D49C, | |
10104 0x1D49E, 0x1D49F, 0x1D4A2, 0x1D4A2, 0x1D4A5, 0x1D4A6, 0x1D4A9, 0x1D4AC, | |
10105 0x1D4AE, 0x1D4B9, 0x1D4BB, 0x1D4BB, 0x1D4BD, 0x1D4C3, 0x1D4C5, 0x1D505, | |
10106 0x1D507, 0x1D50A, 0x1D50D, 0x1D514, 0x1D516, 0x1D51C, 0x1D51E, 0x1D539, | |
10107 0x1D53B, 0x1D53E, 0x1D540, 0x1D544, 0x1D546, 0x1D546, 0x1D54A, 0x1D550, | |
10108 0x1D552, 0x1D6A5, 0x1D6A8, 0x1D7CB, 0x1D7CE, 0x1D7FF, 0x1EC71, 0x1ECB4, | |
10109 0x1ED01, 0x1ED3D, 0x1F000, 0x1F02B, 0x1F030, 0x1F093, 0x1F0A0, 0x1F0AE, | |
10110 0x1F0B1, 0x1F0BF, 0x1F0C1, 0x1F0CF, 0x1F0D1, 0x1F0F5, 0x1F100, 0x1F1AD, | |
10111 0x1F1E6, 0x1F1FF, 0x1F201, 0x1F202, 0x1F210, 0x1F23B, 0x1F240, 0x1F248, | |
10112 0x1F250, 0x1F251, 0x1F260, 0x1F265, 0x1F300, 0x1F6D7, 0x1F6DC, 0x1F6EC, | |
10113 0x1F6F0, 0x1F6FC, 0x1F700, 0x1F776, 0x1F77B, 0x1F7D9, 0x1F7E0, 0x1F7EB, | |
10114 0x1F7F0, 0x1F7F0, 0x1F800, 0x1F80B, 0x1F810, 0x1F847, 0x1F850, 0x1F859, | |
10115 0x1F860, 0x1F887, 0x1F890, 0x1F8AD, 0x1F8B0, 0x1F8B1, 0x1F900, 0x1FA53, | |
10116 0x1FA60, 0x1FA6D, 0x1FA70, 0x1FA7C, 0x1FA80, 0x1FA88, 0x1FA90, 0x1FABD, | |
10117 0x1FABF, 0x1FAC5, 0x1FACE, 0x1FADB, 0x1FAE0, 0x1FAE8, 0x1FAF0, 0x1FAF8, | |
10118 0x1FB00, 0x1FB92, 0x1FB94, 0x1FBCA, 0x1FBF0, 0x1FBF9, 0xE0001, 0xE0001, | |
10119 0xE0020, 0xE007F, | |
10120 // #97 (15654+39): sc=Latin:Latn | |
10121 0x0041, 0x005A, 0x0061, 0x007A, 0x00AA, 0x00AA, 0x00BA, 0x00BA, | |
10122 0x00C0, 0x00D6, 0x00D8, 0x00F6, 0x00F8, 0x02B8, 0x02E0, 0x02E4, | |
10123 0x1D00, 0x1D25, 0x1D2C, 0x1D5C, 0x1D62, 0x1D65, 0x1D6B, 0x1D77, | |
10124 0x1D79, 0x1DBE, 0x1E00, 0x1EFF, 0x2071, 0x2071, 0x207F, 0x207F, | |
10125 0x2090, 0x209C, 0x212A, 0x212B, 0x2132, 0x2132, 0x214E, 0x214E, | |
10126 0x2160, 0x2188, 0x2C60, 0x2C7F, 0xA722, 0xA787, 0xA78B, 0xA7CA, | |
10127 0xA7D0, 0xA7D1, 0xA7D3, 0xA7D3, 0xA7D5, 0xA7D9, 0xA7F2, 0xA7FF, | |
10128 0xAB30, 0xAB5A, 0xAB5C, 0xAB64, 0xAB66, 0xAB69, 0xFB00, 0xFB06, | |
10129 0xFF21, 0xFF3A, 0xFF41, 0xFF5A, 0x10780, 0x10785, 0x10787, 0x107B0, | |
10130 0x107B2, 0x107BA, 0x1DF00, 0x1DF1E, 0x1DF25, 0x1DF2A, | |
10131 // #98 (15693+36): sc=Greek:Grek | |
10132 0x0370, 0x0373, 0x0375, 0x0377, 0x037A, 0x037D, 0x037F, 0x037F, | |
10133 0x0384, 0x0384, 0x0386, 0x0386, 0x0388, 0x038A, 0x038C, 0x038C, | |
10134 0x038E, 0x03A1, 0x03A3, 0x03E1, 0x03F0, 0x03FF, 0x1D26, 0x1D2A, | |
10135 0x1D5D, 0x1D61, 0x1D66, 0x1D6A, 0x1DBF, 0x1DBF, 0x1F00, 0x1F15, | |
10136 0x1F18, 0x1F1D, 0x1F20, 0x1F45, 0x1F48, 0x1F4D, 0x1F50, 0x1F57, | |
10137 0x1F59, 0x1F59, 0x1F5B, 0x1F5B, 0x1F5D, 0x1F5D, 0x1F5F, 0x1F7D, | |
10138 0x1F80, 0x1FB4, 0x1FB6, 0x1FC4, 0x1FC6, 0x1FD3, 0x1FD6, 0x1FDB, | |
10139 0x1FDD, 0x1FEF, 0x1FF2, 0x1FF4, 0x1FF6, 0x1FFE, 0x2126, 0x2126, | |
10140 0xAB65, 0xAB65, 0x10140, 0x1018E, 0x101A0, 0x101A0, 0x1D200, 0x1D245, | |
10141 // #99 (15729+10): sc=Cyrillic:Cyrl | |
10142 0x0400, 0x0484, 0x0487, 0x052F, 0x1C80, 0x1C88, 0x1D2B, 0x1D2B, | |
10143 0x1D78, 0x1D78, 0x2DE0, 0x2DFF, 0xA640, 0xA69F, 0xFE2E, 0xFE2F, | |
10144 0x1E030, 0x1E06D, 0x1E08F, 0x1E08F, | |
10145 // #100 (15739+4): sc=Armenian:Armn scx=Armenian:Armn | |
10146 0x0531, 0x0556, 0x0559, 0x058A, 0x058D, 0x058F, 0xFB13, 0xFB17, | |
10147 // #101 (15743+9): sc=Hebrew:Hebr scx=Hebrew:Hebr | |
10148 0x0591, 0x05C7, 0x05D0, 0x05EA, 0x05EF, 0x05F4, 0xFB1D, 0xFB36, | |
10149 0xFB38, 0xFB3C, 0xFB3E, 0xFB3E, 0xFB40, 0xFB41, 0xFB43, 0xFB44, | |
10150 0xFB46, 0xFB4F, | |
10151 // #102 (15752+58): sc=Arabic:Arab | |
10152 0x0600, 0x0604, 0x0606, 0x060B, 0x060D, 0x061A, 0x061C, 0x061E, | |
10153 0x0620, 0x063F, 0x0641, 0x064A, 0x0656, 0x066F, 0x0671, 0x06DC, | |
10154 0x06DE, 0x06FF, 0x0750, 0x077F, 0x0870, 0x088E, 0x0890, 0x0891, | |
10155 0x0898, 0x08E1, 0x08E3, 0x08FF, 0xFB50, 0xFBC2, 0xFBD3, 0xFD3D, | |
10156 0xFD40, 0xFD8F, 0xFD92, 0xFDC7, 0xFDCF, 0xFDCF, 0xFDF0, 0xFDFF, | |
10157 0xFE70, 0xFE74, 0xFE76, 0xFEFC, 0x10E60, 0x10E7E, 0x10EFD, 0x10EFF, | |
10158 0x1EE00, 0x1EE03, 0x1EE05, 0x1EE1F, 0x1EE21, 0x1EE22, 0x1EE24, 0x1EE24, | |
10159 0x1EE27, 0x1EE27, 0x1EE29, 0x1EE32, 0x1EE34, 0x1EE37, 0x1EE39, 0x1EE39, | |
10160 0x1EE3B, 0x1EE3B, 0x1EE42, 0x1EE42, 0x1EE47, 0x1EE47, 0x1EE49, 0x1EE49, | |
10161 0x1EE4B, 0x1EE4B, 0x1EE4D, 0x1EE4F, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE54, | |
10162 0x1EE57, 0x1EE57, 0x1EE59, 0x1EE59, 0x1EE5B, 0x1EE5B, 0x1EE5D, 0x1EE5D, | |
10163 0x1EE5F, 0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE64, 0x1EE67, 0x1EE6A, | |
10164 0x1EE6C, 0x1EE72, 0x1EE74, 0x1EE77, 0x1EE79, 0x1EE7C, 0x1EE7E, 0x1EE7E, | |
10165 0x1EE80, 0x1EE89, 0x1EE8B, 0x1EE9B, 0x1EEA1, 0x1EEA3, 0x1EEA5, 0x1EEA9, | |
10166 0x1EEAB, 0x1EEBB, 0x1EEF0, 0x1EEF1, | |
10167 // #103 (15810+4): sc=Syriac:Syrc | |
10168 0x0700, 0x070D, 0x070F, 0x074A, 0x074D, 0x074F, 0x0860, 0x086A, | |
10169 // #104 (15814+1): sc=Thaana:Thaa | |
10170 0x0780, 0x07B1, | |
10171 // #105 (15815+5): sc=Devanagari:Deva | |
10172 0x0900, 0x0950, 0x0955, 0x0963, 0x0966, 0x097F, 0xA8E0, 0xA8FF, | |
10173 0x11B00, 0x11B09, | |
10174 // #106 (15820+14): sc=Bengali:Beng | |
10175 0x0980, 0x0983, 0x0985, 0x098C, 0x098F, 0x0990, 0x0993, 0x09A8, | |
10176 0x09AA, 0x09B0, 0x09B2, 0x09B2, 0x09B6, 0x09B9, 0x09BC, 0x09C4, | |
10177 0x09C7, 0x09C8, 0x09CB, 0x09CE, 0x09D7, 0x09D7, 0x09DC, 0x09DD, | |
10178 0x09DF, 0x09E3, 0x09E6, 0x09FE, | |
10179 // #107 (15834+16): sc=Gurmukhi:Guru | |
10180 0x0A01, 0x0A03, 0x0A05, 0x0A0A, 0x0A0F, 0x0A10, 0x0A13, 0x0A28, | |
10181 0x0A2A, 0x0A30, 0x0A32, 0x0A33, 0x0A35, 0x0A36, 0x0A38, 0x0A39, | |
10182 0x0A3C, 0x0A3C, 0x0A3E, 0x0A42, 0x0A47, 0x0A48, 0x0A4B, 0x0A4D, | |
10183 0x0A51, 0x0A51, 0x0A59, 0x0A5C, 0x0A5E, 0x0A5E, 0x0A66, 0x0A76, | |
10184 // #108 (15850+14): sc=Gujarati:Gujr | |
10185 0x0A81, 0x0A83, 0x0A85, 0x0A8D, 0x0A8F, 0x0A91, 0x0A93, 0x0AA8, | |
10186 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3, 0x0AB5, 0x0AB9, 0x0ABC, 0x0AC5, | |
10187 0x0AC7, 0x0AC9, 0x0ACB, 0x0ACD, 0x0AD0, 0x0AD0, 0x0AE0, 0x0AE3, | |
10188 0x0AE6, 0x0AF1, 0x0AF9, 0x0AFF, | |
10189 // #109 (15864+14): sc=Oriya:Orya | |
10190 0x0B01, 0x0B03, 0x0B05, 0x0B0C, 0x0B0F, 0x0B10, 0x0B13, 0x0B28, | |
10191 0x0B2A, 0x0B30, 0x0B32, 0x0B33, 0x0B35, 0x0B39, 0x0B3C, 0x0B44, | |
10192 0x0B47, 0x0B48, 0x0B4B, 0x0B4D, 0x0B55, 0x0B57, 0x0B5C, 0x0B5D, | |
10193 0x0B5F, 0x0B63, 0x0B66, 0x0B77, | |
10194 // #110 (15878+18): sc=Tamil:Taml | |
10195 0x0B82, 0x0B83, 0x0B85, 0x0B8A, 0x0B8E, 0x0B90, 0x0B92, 0x0B95, | |
10196 0x0B99, 0x0B9A, 0x0B9C, 0x0B9C, 0x0B9E, 0x0B9F, 0x0BA3, 0x0BA4, | |
10197 0x0BA8, 0x0BAA, 0x0BAE, 0x0BB9, 0x0BBE, 0x0BC2, 0x0BC6, 0x0BC8, | |
10198 0x0BCA, 0x0BCD, 0x0BD0, 0x0BD0, 0x0BD7, 0x0BD7, 0x0BE6, 0x0BFA, | |
10199 0x11FC0, 0x11FF1, 0x11FFF, 0x11FFF, | |
10200 // #111 (15896+13): sc=Telugu:Telu | |
10201 0x0C00, 0x0C0C, 0x0C0E, 0x0C10, 0x0C12, 0x0C28, 0x0C2A, 0x0C39, | |
10202 0x0C3C, 0x0C44, 0x0C46, 0x0C48, 0x0C4A, 0x0C4D, 0x0C55, 0x0C56, | |
10203 0x0C58, 0x0C5A, 0x0C5D, 0x0C5D, 0x0C60, 0x0C63, 0x0C66, 0x0C6F, | |
10204 0x0C77, 0x0C7F, | |
10205 // #112 (15909+13): sc=Kannada:Knda | |
10206 0x0C80, 0x0C8C, 0x0C8E, 0x0C90, 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3, | |
10207 0x0CB5, 0x0CB9, 0x0CBC, 0x0CC4, 0x0CC6, 0x0CC8, 0x0CCA, 0x0CCD, | |
10208 0x0CD5, 0x0CD6, 0x0CDD, 0x0CDE, 0x0CE0, 0x0CE3, 0x0CE6, 0x0CEF, | |
10209 0x0CF1, 0x0CF3, | |
10210 // #113 (15922+7): sc=Malayalam:Mlym | |
10211 0x0D00, 0x0D0C, 0x0D0E, 0x0D10, 0x0D12, 0x0D44, 0x0D46, 0x0D48, | |
10212 0x0D4A, 0x0D4F, 0x0D54, 0x0D63, 0x0D66, 0x0D7F, | |
10213 // #114 (15929+13): sc=Sinhala:Sinh | |
10214 0x0D81, 0x0D83, 0x0D85, 0x0D96, 0x0D9A, 0x0DB1, 0x0DB3, 0x0DBB, | |
10215 0x0DBD, 0x0DBD, 0x0DC0, 0x0DC6, 0x0DCA, 0x0DCA, 0x0DCF, 0x0DD4, | |
10216 0x0DD6, 0x0DD6, 0x0DD8, 0x0DDF, 0x0DE6, 0x0DEF, 0x0DF2, 0x0DF4, | |
10217 0x111E1, 0x111F4, | |
10218 // #115 (15942+2): sc=Thai scx=Thai | |
10219 0x0E01, 0x0E3A, 0x0E40, 0x0E5B, | |
10220 // #116 (15944+11): sc=Lao:Laoo scx=Lao:Laoo | |
10221 0x0E81, 0x0E82, 0x0E84, 0x0E84, 0x0E86, 0x0E8A, 0x0E8C, 0x0EA3, | |
10222 0x0EA5, 0x0EA5, 0x0EA7, 0x0EBD, 0x0EC0, 0x0EC4, 0x0EC6, 0x0EC6, | |
10223 0x0EC8, 0x0ECE, 0x0ED0, 0x0ED9, 0x0EDC, 0x0EDF, | |
10224 // #117 (15955+7): sc=Tibetan:Tibt scx=Tibetan:Tibt | |
10225 0x0F00, 0x0F47, 0x0F49, 0x0F6C, 0x0F71, 0x0F97, 0x0F99, 0x0FBC, | |
10226 0x0FBE, 0x0FCC, 0x0FCE, 0x0FD4, 0x0FD9, 0x0FDA, | |
10227 // #118 (15962+3): sc=Myanmar:Mymr | |
10228 0x1000, 0x109F, 0xA9E0, 0xA9FE, 0xAA60, 0xAA7F, | |
10229 // #119 (15965+10): sc=Georgian:Geor | |
10230 0x10A0, 0x10C5, 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x10D0, 0x10FA, | |
10231 0x10FC, 0x10FF, 0x1C90, 0x1CBA, 0x1CBD, 0x1CBF, 0x2D00, 0x2D25, | |
10232 0x2D27, 0x2D27, 0x2D2D, 0x2D2D, | |
10233 // #120 (15975+14): sc=Hangul:Hang | |
10234 0x1100, 0x11FF, 0x302E, 0x302F, 0x3131, 0x318E, 0x3200, 0x321E, | |
10235 0x3260, 0x327E, 0xA960, 0xA97C, 0xAC00, 0xD7A3, 0xD7B0, 0xD7C6, | |
10236 0xD7CB, 0xD7FB, 0xFFA0, 0xFFBE, 0xFFC2, 0xFFC7, 0xFFCA, 0xFFCF, | |
10237 0xFFD2, 0xFFD7, 0xFFDA, 0xFFDC, | |
10238 // #121 (15989+36): sc=Ethiopic:Ethi scx=Ethiopic:Ethi | |
10239 0x1200, 0x1248, 0x124A, 0x124D, 0x1250, 0x1256, 0x1258, 0x1258, | |
10240 0x125A, 0x125D, 0x1260, 0x1288, 0x128A, 0x128D, 0x1290, 0x12B0, | |
10241 0x12B2, 0x12B5, 0x12B8, 0x12BE, 0x12C0, 0x12C0, 0x12C2, 0x12C5, | |
10242 0x12C8, 0x12D6, 0x12D8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135A, | |
10243 0x135D, 0x137C, 0x1380, 0x1399, 0x2D80, 0x2D96, 0x2DA0, 0x2DA6, | |
10244 0x2DA8, 0x2DAE, 0x2DB0, 0x2DB6, 0x2DB8, 0x2DBE, 0x2DC0, 0x2DC6, | |
10245 0x2DC8, 0x2DCE, 0x2DD0, 0x2DD6, 0x2DD8, 0x2DDE, 0xAB01, 0xAB06, | |
10246 0xAB09, 0xAB0E, 0xAB11, 0xAB16, 0xAB20, 0xAB26, 0xAB28, 0xAB2E, | |
10247 0x1E7E0, 0x1E7E6, 0x1E7E8, 0x1E7EB, 0x1E7ED, 0x1E7EE, 0x1E7F0, 0x1E7FE, | |
10248 // #122 (16025+3): sc=Cherokee:Cher scx=Cherokee:Cher | |
10249 0x13A0, 0x13F5, 0x13F8, 0x13FD, 0xAB70, 0xABBF, | |
10250 // #123 (16028+3): sc=Canadian_Aboriginal:Cans scx=Canadian_Aboriginal:Cans | |
10251 0x1400, 0x167F, 0x18B0, 0x18F5, 0x11AB0, 0x11ABF, | |
10252 // #124 (16031+1): sc=Ogham:Ogam scx=Ogham:Ogam | |
10253 0x1680, 0x169C, | |
10254 // #125 (16032+2): sc=Runic:Runr scx=Runic:Runr | |
10255 0x16A0, 0x16EA, 0x16EE, 0x16F8, | |
10256 // #126 (16034+4): sc=Khmer:Khmr scx=Khmer:Khmr | |
10257 0x1780, 0x17DD, 0x17E0, 0x17E9, 0x17F0, 0x17F9, 0x19E0, 0x19FF, | |
10258 // #127 (16038+6): sc=Mongolian:Mong | |
10259 0x1800, 0x1801, 0x1804, 0x1804, 0x1806, 0x1819, 0x1820, 0x1878, | |
10260 0x1880, 0x18AA, 0x11660, 0x1166C, | |
10261 // #128 (16044+6): sc=Hiragana:Hira | |
10262 0x3041, 0x3096, 0x309D, 0x309F, 0x1B001, 0x1B11F, 0x1B132, 0x1B132, | |
10263 0x1B150, 0x1B152, 0x1F200, 0x1F200, | |
10264 // #129 (16050+14): sc=Katakana:Kana | |
10265 0x30A1, 0x30FA, 0x30FD, 0x30FF, 0x31F0, 0x31FF, 0x32D0, 0x32FE, | |
10266 0x3300, 0x3357, 0xFF66, 0xFF6F, 0xFF71, 0xFF9D, 0x1AFF0, 0x1AFF3, | |
10267 0x1AFF5, 0x1AFFB, 0x1AFFD, 0x1AFFE, 0x1B000, 0x1B000, 0x1B120, 0x1B122, | |
10268 0x1B155, 0x1B155, 0x1B164, 0x1B167, | |
10269 // #130 (16064+3): sc=Bopomofo:Bopo | |
10270 0x02EA, 0x02EB, 0x3105, 0x312F, 0x31A0, 0x31BF, | |
10271 // #131 (16067+22): sc=Han:Hani | |
10272 0x2E80, 0x2E99, 0x2E9B, 0x2EF3, 0x2F00, 0x2FD5, 0x3005, 0x3005, | |
10273 0x3007, 0x3007, 0x3021, 0x3029, 0x3038, 0x303B, 0x3400, 0x4DBF, | |
10274 0x4E00, 0x9FFF, 0xF900, 0xFA6D, 0xFA70, 0xFAD9, 0x16FE2, 0x16FE3, | |
10275 0x16FF0, 0x16FF1, 0x20000, 0x2A6DF, 0x2A700, 0x2B739, 0x2B740, 0x2B81D, | |
10276 0x2B820, 0x2CEA1, 0x2CEB0, 0x2EBE0, 0x2EBF0, 0x2EE5D, 0x2F800, 0x2FA1D, | |
10277 0x30000, 0x3134A, 0x31350, 0x323AF, | |
10278 // #132 (16089+2): sc=Yi:Yiii | |
10279 0xA000, 0xA48C, 0xA490, 0xA4C6, | |
10280 // #133 (16091+2): sc=Old_Italic:Ital scx=Old_Italic:Ital | |
10281 0x10300, 0x10323, 0x1032D, 0x1032F, | |
10282 // #134 (16093+1): sc=Gothic:Goth scx=Gothic:Goth | |
10283 0x10330, 0x1034A, | |
10284 // #135 (16094+1): sc=Deseret:Dsrt scx=Deseret:Dsrt | |
10285 0x10400, 0x1044F, | |
10286 // #136 (16095+29): sc=Inherited:Zinh:Qaai | |
10287 0x0300, 0x036F, 0x0485, 0x0486, 0x064B, 0x0655, 0x0670, 0x0670, | |
10288 0x0951, 0x0954, 0x1AB0, 0x1ACE, 0x1CD0, 0x1CD2, 0x1CD4, 0x1CE0, | |
10289 0x1CE2, 0x1CE8, 0x1CED, 0x1CED, 0x1CF4, 0x1CF4, 0x1CF8, 0x1CF9, | |
10290 0x1DC0, 0x1DFF, 0x200C, 0x200D, 0x20D0, 0x20F0, 0x302A, 0x302D, | |
10291 0x3099, 0x309A, 0xFE00, 0xFE0F, 0xFE20, 0xFE2D, 0x101FD, 0x101FD, | |
10292 0x102E0, 0x102E0, 0x1133B, 0x1133B, 0x1CF00, 0x1CF2D, 0x1CF30, 0x1CF46, | |
10293 0x1D167, 0x1D169, 0x1D17B, 0x1D182, 0x1D185, 0x1D18B, 0x1D1AA, 0x1D1AD, | |
10294 0xE0100, 0xE01EF, | |
10295 // #137 (16124+2): sc=Tagalog:Tglg | |
10296 0x1700, 0x1715, 0x171F, 0x171F, | |
10297 // #138 (16126+1): sc=Hanunoo:Hano | |
10298 0x1720, 0x1734, | |
10299 // #139 (16127+1): sc=Buhid:Buhd | |
10300 0x1740, 0x1753, | |
10301 // #140 (16128+3): sc=Tagbanwa:Tagb | |
10302 0x1760, 0x176C, 0x176E, 0x1770, 0x1772, 0x1773, | |
10303 // #141 (16131+5): sc=Limbu:Limb | |
10304 0x1900, 0x191E, 0x1920, 0x192B, 0x1930, 0x193B, 0x1940, 0x1940, | |
10305 0x1944, 0x194F, | |
10306 // #142 (16136+2): sc=Tai_Le:Tale | |
10307 0x1950, 0x196D, 0x1970, 0x1974, | |
10308 // #143 (16138+7): sc=Linear_B:Linb | |
10309 0x10000, 0x1000B, 0x1000D, 0x10026, 0x10028, 0x1003A, 0x1003C, 0x1003D, | |
10310 0x1003F, 0x1004D, 0x10050, 0x1005D, 0x10080, 0x100FA, | |
10311 // #144 (16145+2): sc=Ugaritic:Ugar scx=Ugaritic:Ugar | |
10312 0x10380, 0x1039D, 0x1039F, 0x1039F, | |
10313 // #145 (16147+1): sc=Shavian:Shaw scx=Shavian:Shaw | |
10314 0x10450, 0x1047F, | |
10315 // #146 (16148+2): sc=Osmanya:Osma scx=Osmanya:Osma | |
10316 0x10480, 0x1049D, 0x104A0, 0x104A9, | |
10317 // #147 (16150+6): sc=Cypriot:Cprt | |
10318 0x10800, 0x10805, 0x10808, 0x10808, 0x1080A, 0x10835, 0x10837, 0x10838, | |
10319 0x1083C, 0x1083C, 0x1083F, 0x1083F, | |
10320 // #148 (16156+1): sc=Braille:Brai scx=Braille:Brai | |
10321 0x2800, 0x28FF, | |
10322 // #149 (16157+2): sc=Buginese:Bugi | |
10323 0x1A00, 0x1A1B, 0x1A1E, 0x1A1F, | |
10324 // #150 (16159+3): sc=Coptic:Copt:Qaac | |
10325 0x03E2, 0x03EF, 0x2C80, 0x2CF3, 0x2CF9, 0x2CFF, | |
10326 // #151 (16162+4): sc=New_Tai_Lue:Talu scx=New_Tai_Lue:Talu | |
10327 0x1980, 0x19AB, 0x19B0, 0x19C9, 0x19D0, 0x19DA, 0x19DE, 0x19DF, | |
10328 // #152 (16166+6): sc=Glagolitic:Glag | |
10329 0x2C00, 0x2C5F, 0x1E000, 0x1E006, 0x1E008, 0x1E018, 0x1E01B, 0x1E021, | |
10330 0x1E023, 0x1E024, 0x1E026, 0x1E02A, | |
10331 // #153 (16172+3): sc=Tifinagh:Tfng scx=Tifinagh:Tfng | |
10332 0x2D30, 0x2D67, 0x2D6F, 0x2D70, 0x2D7F, 0x2D7F, | |
10333 // #154 (16175+1): sc=Syloti_Nagri:Sylo | |
10334 0xA800, 0xA82C, | |
10335 // #155 (16176+2): sc=Old_Persian:Xpeo scx=Old_Persian:Xpeo | |
10336 0x103A0, 0x103C3, 0x103C8, 0x103D5, | |
10337 // #156 (16178+8): sc=Kharoshthi:Khar scx=Kharoshthi:Khar | |
10338 0x10A00, 0x10A03, 0x10A05, 0x10A06, 0x10A0C, 0x10A13, 0x10A15, 0x10A17, | |
10339 0x10A19, 0x10A35, 0x10A38, 0x10A3A, 0x10A3F, 0x10A48, 0x10A50, 0x10A58, | |
10340 // #157 (16186+2): sc=Balinese:Bali scx=Balinese:Bali | |
10341 0x1B00, 0x1B4C, 0x1B50, 0x1B7E, | |
10342 // #158 (16188+4): sc=Cuneiform:Xsux scx=Cuneiform:Xsux | |
10343 0x12000, 0x12399, 0x12400, 0x1246E, 0x12470, 0x12474, 0x12480, 0x12543, | |
10344 // #159 (16192+2): sc=Phoenician:Phnx scx=Phoenician:Phnx | |
10345 0x10900, 0x1091B, 0x1091F, 0x1091F, | |
10346 // #160 (16194+1): sc=Phags_Pa:Phag | |
10347 0xA840, 0xA877, | |
10348 // #161 (16195+2): sc=Nko:Nkoo | |
10349 0x07C0, 0x07FA, 0x07FD, 0x07FF, | |
10350 // #162 (16197+2): sc=Sundanese:Sund scx=Sundanese:Sund | |
10351 0x1B80, 0x1BBF, 0x1CC0, 0x1CC7, | |
10352 // #163 (16199+3): sc=Lepcha:Lepc scx=Lepcha:Lepc | |
10353 0x1C00, 0x1C37, 0x1C3B, 0x1C49, 0x1C4D, 0x1C4F, | |
10354 // #164 (16202+1): sc=Ol_Chiki:Olck scx=Ol_Chiki:Olck | |
10355 0x1C50, 0x1C7F, | |
10356 // #165 (16203+1): sc=Vai:Vaii scx=Vai:Vaii | |
10357 0xA500, 0xA62B, | |
10358 // #166 (16204+2): sc=Saurashtra:Saur scx=Saurashtra:Saur | |
10359 0xA880, 0xA8C5, 0xA8CE, 0xA8D9, | |
10360 // #167 (16206+2): sc=Kayah_Li:Kali | |
10361 0xA900, 0xA92D, 0xA92F, 0xA92F, | |
10362 // #168 (16208+2): sc=Rejang:Rjng scx=Rejang:Rjng | |
10363 0xA930, 0xA953, 0xA95F, 0xA95F, | |
10364 // #169 (16210+1): sc=Lycian:Lyci scx=Lycian:Lyci | |
10365 0x10280, 0x1029C, | |
10366 // #170 (16211+1): sc=Carian:Cari scx=Carian:Cari | |
10367 0x102A0, 0x102D0, | |
10368 // #171 (16212+2): sc=Lydian:Lydi scx=Lydian:Lydi | |
10369 0x10920, 0x10939, 0x1093F, 0x1093F, | |
10370 // #172 (16214+4): sc=Cham scx=Cham | |
10371 0xAA00, 0xAA36, 0xAA40, 0xAA4D, 0xAA50, 0xAA59, 0xAA5C, 0xAA5F, | |
10372 // #173 (16218+5): sc=Tai_Tham:Lana scx=Tai_Tham:Lana | |
10373 0x1A20, 0x1A5E, 0x1A60, 0x1A7C, 0x1A7F, 0x1A89, 0x1A90, 0x1A99, | |
10374 0x1AA0, 0x1AAD, | |
10375 // #174 (16223+2): sc=Tai_Viet:Tavt scx=Tai_Viet:Tavt | |
10376 0xAA80, 0xAAC2, 0xAADB, 0xAADF, | |
10377 // #175 (16225+2): sc=Avestan:Avst scx=Avestan:Avst | |
10378 0x10B00, 0x10B35, 0x10B39, 0x10B3F, | |
10379 // #176 (16227+1): sc=Egyptian_Hieroglyphs:Egyp scx=Egyptian_Hieroglyphs:Egyp | |
10380 0x13000, 0x13455, | |
10381 // #177 (16228+2): sc=Samaritan:Samr scx=Samaritan:Samr | |
10382 0x0800, 0x082D, 0x0830, 0x083E, | |
10383 // #178 (16230+2): sc=Lisu scx=Lisu | |
10384 0xA4D0, 0xA4FF, 0x11FB0, 0x11FB0, | |
10385 // #179 (16232+2): sc=Bamum:Bamu scx=Bamum:Bamu | |
10386 0xA6A0, 0xA6F7, 0x16800, 0x16A38, | |
10387 // #180 (16234+3): sc=Javanese:Java | |
10388 0xA980, 0xA9CD, 0xA9D0, 0xA9D9, 0xA9DE, 0xA9DF, | |
10389 // #181 (16237+3): sc=Meetei_Mayek:Mtei scx=Meetei_Mayek:Mtei | |
10390 0xAAE0, 0xAAF6, 0xABC0, 0xABED, 0xABF0, 0xABF9, | |
10391 // #182 (16240+2): sc=Imperial_Aramaic:Armi scx=Imperial_Aramaic:Armi | |
10392 0x10840, 0x10855, 0x10857, 0x1085F, | |
10393 // #183 (16242+1): sc=Old_South_Arabian:Sarb scx=Old_South_Arabian:Sarb | |
10394 0x10A60, 0x10A7F, | |
10395 // #184 (16243+2): sc=Inscriptional_Parthian:Prti scx=Inscriptional_Parthian:Prti | |
10396 0x10B40, 0x10B55, 0x10B58, 0x10B5F, | |
10397 // #185 (16245+2): sc=Inscriptional_Pahlavi:Phli scx=Inscriptional_Pahlavi:Phli | |
10398 0x10B60, 0x10B72, 0x10B78, 0x10B7F, | |
10399 // #186 (16247+1): sc=Old_Turkic:Orkh scx=Old_Turkic:Orkh | |
10400 0x10C00, 0x10C48, | |
10401 // #187 (16248+2): sc=Kaithi:Kthi | |
10402 0x11080, 0x110C2, 0x110CD, 0x110CD, | |
10403 // #188 (16250+2): sc=Batak:Batk scx=Batak:Batk | |
10404 0x1BC0, 0x1BF3, 0x1BFC, 0x1BFF, | |
10405 // #189 (16252+3): sc=Brahmi:Brah scx=Brahmi:Brah | |
10406 0x11000, 0x1104D, 0x11052, 0x11075, 0x1107F, 0x1107F, | |
10407 // #190 (16255+2): sc=Mandaic:Mand | |
10408 0x0840, 0x085B, 0x085E, 0x085E, | |
10409 // #191 (16257+2): sc=Chakma:Cakm | |
10410 0x11100, 0x11134, 0x11136, 0x11147, | |
10411 // #192 (16259+3): sc=Meroitic_Cursive:Merc scx=Meroitic_Cursive:Merc | |
10412 0x109A0, 0x109B7, 0x109BC, 0x109CF, 0x109D2, 0x109FF, | |
10413 // #193 (16262+1): sc=Meroitic_Hieroglyphs:Mero scx=Meroitic_Hieroglyphs:Mero | |
10414 0x10980, 0x1099F, | |
10415 // #194 (16263+3): sc=Miao:Plrd scx=Miao:Plrd | |
10416 0x16F00, 0x16F4A, 0x16F4F, 0x16F87, 0x16F8F, 0x16F9F, | |
10417 // #195 (16266+1): sc=Sharada:Shrd | |
10418 0x11180, 0x111DF, | |
10419 // #196 (16267+2): sc=Sora_Sompeng:Sora scx=Sora_Sompeng:Sora | |
10420 0x110D0, 0x110E8, 0x110F0, 0x110F9, | |
10421 // #197 (16269+2): sc=Takri:Takr | |
10422 0x11680, 0x116B9, 0x116C0, 0x116C9, | |
10423 // #198 (16271+2): sc=Caucasian_Albanian:Aghb scx=Caucasian_Albanian:Aghb | |
10424 0x10530, 0x10563, 0x1056F, 0x1056F, | |
10425 // #199 (16273+2): sc=Bassa_Vah:Bass scx=Bassa_Vah:Bass | |
10426 0x16AD0, 0x16AED, 0x16AF0, 0x16AF5, | |
10427 // #200 (16275+5): sc=Duployan:Dupl | |
10428 0x1BC00, 0x1BC6A, 0x1BC70, 0x1BC7C, 0x1BC80, 0x1BC88, 0x1BC90, 0x1BC99, | |
10429 0x1BC9C, 0x1BC9F, | |
10430 // #201 (16280+1): sc=Elbasan:Elba scx=Elbasan:Elba | |
10431 0x10500, 0x10527, | |
10432 // #202 (16281+15): sc=Grantha:Gran | |
10433 0x11300, 0x11303, 0x11305, 0x1130C, 0x1130F, 0x11310, 0x11313, 0x11328, | |
10434 0x1132A, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133C, 0x11344, | |
10435 0x11347, 0x11348, 0x1134B, 0x1134D, 0x11350, 0x11350, 0x11357, 0x11357, | |
10436 0x1135D, 0x11363, 0x11366, 0x1136C, 0x11370, 0x11374, | |
10437 // #203 (16296+5): sc=Pahawh_Hmong:Hmng scx=Pahawh_Hmong:Hmng | |
10438 0x16B00, 0x16B45, 0x16B50, 0x16B59, 0x16B5B, 0x16B61, 0x16B63, 0x16B77, | |
10439 0x16B7D, 0x16B8F, | |
10440 // #204 (16301+2): sc=Khojki:Khoj | |
10441 0x11200, 0x11211, 0x11213, 0x11241, | |
10442 // #205 (16303+3): sc=Linear_A:Lina | |
10443 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, | |
10444 // #206 (16306+1): sc=Mahajani:Mahj | |
10445 0x11150, 0x11176, | |
10446 // #207 (16307+2): sc=Manichaean:Mani | |
10447 0x10AC0, 0x10AE6, 0x10AEB, 0x10AF6, | |
10448 // #208 (16309+2): sc=Mende_Kikakui:Mend scx=Mende_Kikakui:Mend | |
10449 0x1E800, 0x1E8C4, 0x1E8C7, 0x1E8D6, | |
10450 // #209 (16311+2): sc=Modi | |
10451 0x11600, 0x11644, 0x11650, 0x11659, | |
10452 // #210 (16313+3): sc=Mro:Mroo scx=Mro:Mroo | |
10453 0x16A40, 0x16A5E, 0x16A60, 0x16A69, 0x16A6E, 0x16A6F, | |
10454 // #211 (16316+1): sc=Old_North_Arabian:Narb scx=Old_North_Arabian:Narb | |
10455 0x10A80, 0x10A9F, | |
10456 // #212 (16317+2): sc=Nabataean:Nbat scx=Nabataean:Nbat | |
10457 0x10880, 0x1089E, 0x108A7, 0x108AF, | |
10458 // #213 (16319+1): sc=Palmyrene:Palm scx=Palmyrene:Palm | |
10459 0x10860, 0x1087F, | |
10460 // #214 (16320+1): sc=Pau_Cin_Hau:Pauc scx=Pau_Cin_Hau:Pauc | |
10461 0x11AC0, 0x11AF8, | |
10462 // #215 (16321+1): sc=Old_Permic:Perm | |
10463 0x10350, 0x1037A, | |
10464 // #216 (16322+3): sc=Psalter_Pahlavi:Phlp | |
10465 0x10B80, 0x10B91, 0x10B99, 0x10B9C, 0x10BA9, 0x10BAF, | |
10466 // #217 (16325+2): sc=Siddham:Sidd scx=Siddham:Sidd | |
10467 0x11580, 0x115B5, 0x115B8, 0x115DD, | |
10468 // #218 (16327+2): sc=Khudawadi:Sind | |
10469 0x112B0, 0x112EA, 0x112F0, 0x112F9, | |
10470 // #219 (16329+2): sc=Tirhuta:Tirh | |
10471 0x11480, 0x114C7, 0x114D0, 0x114D9, | |
10472 // #220 (16331+2): sc=Warang_Citi:Wara scx=Warang_Citi:Wara | |
10473 0x118A0, 0x118F2, 0x118FF, 0x118FF, | |
10474 // #221 (16333+3): sc=Ahom scx=Ahom | |
10475 0x11700, 0x1171A, 0x1171D, 0x1172B, 0x11730, 0x11746, | |
10476 // #222 (16336+1): sc=Anatolian_Hieroglyphs:Hluw scx=Anatolian_Hieroglyphs:Hluw | |
10477 0x14400, 0x14646, | |
10478 // #223 (16337+3): sc=Hatran:Hatr scx=Hatran:Hatr | |
10479 0x108E0, 0x108F2, 0x108F4, 0x108F5, 0x108FB, 0x108FF, | |
10480 // #224 (16340+5): sc=Multani:Mult | |
10481 0x11280, 0x11286, 0x11288, 0x11288, 0x1128A, 0x1128D, 0x1128F, 0x1129D, | |
10482 0x1129F, 0x112A9, | |
10483 // #225 (16345+3): sc=Old_Hungarian:Hung scx=Old_Hungarian:Hung | |
10484 0x10C80, 0x10CB2, 0x10CC0, 0x10CF2, 0x10CFA, 0x10CFF, | |
10485 // #226 (16348+3): sc=SignWriting:Sgnw scx=SignWriting:Sgnw | |
10486 0x1D800, 0x1DA8B, 0x1DA9B, 0x1DA9F, 0x1DAA1, 0x1DAAF, | |
10487 // #227 (16351+3): sc=Adlam:Adlm | |
10488 0x1E900, 0x1E94B, 0x1E950, 0x1E959, 0x1E95E, 0x1E95F, | |
10489 // #228 (16354+4): sc=Bhaiksuki:Bhks scx=Bhaiksuki:Bhks | |
10490 0x11C00, 0x11C08, 0x11C0A, 0x11C36, 0x11C38, 0x11C45, 0x11C50, 0x11C6C, | |
10491 // #229 (16358+3): sc=Marchen:Marc scx=Marchen:Marc | |
10492 0x11C70, 0x11C8F, 0x11C92, 0x11CA7, 0x11CA9, 0x11CB6, | |
10493 // #230 (16361+2): sc=Newa scx=Newa | |
10494 0x11400, 0x1145B, 0x1145D, 0x11461, | |
10495 // #231 (16363+2): sc=Osage:Osge scx=Osage:Osge | |
10496 0x104B0, 0x104D3, 0x104D8, 0x104FB, | |
10497 // #232 (16365+4): sc=Tangut:Tang scx=Tangut:Tang | |
10498 0x16FE0, 0x16FE0, 0x17000, 0x187F7, 0x18800, 0x18AFF, 0x18D00, 0x18D08, | |
10499 // #233 (16369+7): sc=Masaram_Gondi:Gonm | |
10500 0x11D00, 0x11D06, 0x11D08, 0x11D09, 0x11D0B, 0x11D36, 0x11D3A, 0x11D3A, | |
10501 0x11D3C, 0x11D3D, 0x11D3F, 0x11D47, 0x11D50, 0x11D59, | |
10502 // #234 (16376+2): sc=Nushu:Nshu scx=Nushu:Nshu | |
10503 0x16FE1, 0x16FE1, 0x1B170, 0x1B2FB, | |
10504 // #235 (16378+1): sc=Soyombo:Soyo scx=Soyombo:Soyo | |
10505 0x11A50, 0x11AA2, | |
10506 // #236 (16379+1): sc=Zanabazar_Square:Zanb scx=Zanabazar_Square:Zanb | |
10507 0x11A00, 0x11A47, | |
10508 // #237 (16380+1): sc=Dogra:Dogr | |
10509 0x11800, 0x1183B, | |
10510 // #238 (16381+6): sc=Gunjala_Gondi:Gong | |
10511 0x11D60, 0x11D65, 0x11D67, 0x11D68, 0x11D6A, 0x11D8E, 0x11D90, 0x11D91, | |
10512 0x11D93, 0x11D98, 0x11DA0, 0x11DA9, | |
10513 // #239 (16387+1): sc=Makasar:Maka scx=Makasar:Maka | |
10514 0x11EE0, 0x11EF8, | |
10515 // #240 (16388+1): sc=Medefaidrin:Medf scx=Medefaidrin:Medf | |
10516 0x16E40, 0x16E9A, | |
10517 // #241 (16389+2): sc=Hanifi_Rohingya:Rohg | |
10518 0x10D00, 0x10D27, 0x10D30, 0x10D39, | |
10519 // #242 (16391+1): sc=Sogdian:Sogd | |
10520 0x10F30, 0x10F59, | |
10521 // #243 (16392+1): sc=Old_Sogdian:Sogo scx=Old_Sogdian:Sogo | |
10522 0x10F00, 0x10F27, | |
10523 // #244 (16393+1): sc=Elymaic:Elym scx=Elymaic:Elym | |
10524 0x10FE0, 0x10FF6, | |
10525 // #245 (16394+3): sc=Nandinagari:Nand | |
10526 0x119A0, 0x119A7, 0x119AA, 0x119D7, 0x119DA, 0x119E4, | |
10527 // #246 (16397+4): sc=Nyiakeng_Puachue_Hmong:Hmnp scx=Nyiakeng_Puachue_Hmong:Hmnp | |
10528 0x1E100, 0x1E12C, 0x1E130, 0x1E13D, 0x1E140, 0x1E149, 0x1E14E, 0x1E14F, | |
10529 // #247 (16401+2): sc=Wancho:Wcho scx=Wancho:Wcho | |
10530 0x1E2C0, 0x1E2F9, 0x1E2FF, 0x1E2FF, | |
10531 // #248 (16403+1): sc=Chorasmian:Chrs scx=Chorasmian:Chrs | |
10532 0x10FB0, 0x10FCB, | |
10533 // #249 (16404+8): sc=Dives_Akuru:Diak scx=Dives_Akuru:Diak | |
10534 0x11900, 0x11906, 0x11909, 0x11909, 0x1190C, 0x11913, 0x11915, 0x11916, | |
10535 0x11918, 0x11935, 0x11937, 0x11938, 0x1193B, 0x11946, 0x11950, 0x11959, | |
10536 // #250 (16412+2): sc=Khitan_Small_Script:Kits scx=Khitan_Small_Script:Kits | |
10537 0x16FE4, 0x16FE4, 0x18B00, 0x18CD5, | |
10538 // #251 (16414+3): sc=Yezidi:Yezi | |
10539 0x10E80, 0x10EA9, 0x10EAB, 0x10EAD, 0x10EB0, 0x10EB1, | |
10540 // #252 (16417+1): sc=Cypro_Minoan:Cpmn | |
10541 0x12F90, 0x12FF2, | |
10542 // #253 (16418+1): sc=Old_Uyghur:Ougr | |
10543 0x10F70, 0x10F89, | |
10544 // #254 (16419+2): sc=Tangsa:Tnsa scx=Tangsa:Tnsa | |
10545 0x16A70, 0x16ABE, 0x16AC0, 0x16AC9, | |
10546 // #255 (16421+1): sc=Toto scx=Toto | |
10547 0x1E290, 0x1E2AE, | |
10548 // #256 (16422+8): sc=Vithkuqi:Vith scx=Vithkuqi:Vith | |
10549 0x10570, 0x1057A, 0x1057C, 0x1058A, 0x1058C, 0x10592, 0x10594, 0x10595, | |
10550 0x10597, 0x105A1, 0x105A3, 0x105B1, 0x105B3, 0x105B9, 0x105BB, 0x105BC, | |
10551 // #257 (16430+3): sc=Kawi scx=Kawi | |
10552 0x11F00, 0x11F10, 0x11F12, 0x11F3A, 0x11F3E, 0x11F59, | |
10553 // #258 (16433+1): sc=Nag_Mundari:Nagm scx=Nag_Mundari:Nagm | |
10554 0x1E4D0, 0x1E4F9, | |
10555 // #259 (16434+705): sc=Unknown:Zzzz scx=Unknown:Zzzz | |
10556 0x0378, 0x0379, 0x0380, 0x0383, 0x038B, 0x038B, 0x038D, 0x038D, | |
10557 0x03A2, 0x03A2, 0x0530, 0x0530, 0x0557, 0x0558, 0x058B, 0x058C, | |
10558 0x0590, 0x0590, 0x05C8, 0x05CF, 0x05EB, 0x05EE, 0x05F5, 0x05FF, | |
10559 0x070E, 0x070E, 0x074B, 0x074C, 0x07B2, 0x07BF, 0x07FB, 0x07FC, | |
10560 0x082E, 0x082F, 0x083F, 0x083F, 0x085C, 0x085D, 0x085F, 0x085F, | |
10561 0x086B, 0x086F, 0x088F, 0x088F, 0x0892, 0x0897, 0x0984, 0x0984, | |
10562 0x098D, 0x098E, 0x0991, 0x0992, 0x09A9, 0x09A9, 0x09B1, 0x09B1, | |
10563 0x09B3, 0x09B5, 0x09BA, 0x09BB, 0x09C5, 0x09C6, 0x09C9, 0x09CA, | |
10564 0x09CF, 0x09D6, 0x09D8, 0x09DB, 0x09DE, 0x09DE, 0x09E4, 0x09E5, | |
10565 0x09FF, 0x0A00, 0x0A04, 0x0A04, 0x0A0B, 0x0A0E, 0x0A11, 0x0A12, | |
10566 0x0A29, 0x0A29, 0x0A31, 0x0A31, 0x0A34, 0x0A34, 0x0A37, 0x0A37, | |
10567 0x0A3A, 0x0A3B, 0x0A3D, 0x0A3D, 0x0A43, 0x0A46, 0x0A49, 0x0A4A, | |
10568 0x0A4E, 0x0A50, 0x0A52, 0x0A58, 0x0A5D, 0x0A5D, 0x0A5F, 0x0A65, | |
10569 0x0A77, 0x0A80, 0x0A84, 0x0A84, 0x0A8E, 0x0A8E, 0x0A92, 0x0A92, | |
10570 0x0AA9, 0x0AA9, 0x0AB1, 0x0AB1, 0x0AB4, 0x0AB4, 0x0ABA, 0x0ABB, | |
10571 0x0AC6, 0x0AC6, 0x0ACA, 0x0ACA, 0x0ACE, 0x0ACF, 0x0AD1, 0x0ADF, | |
10572 0x0AE4, 0x0AE5, 0x0AF2, 0x0AF8, 0x0B00, 0x0B00, 0x0B04, 0x0B04, | |
10573 0x0B0D, 0x0B0E, 0x0B11, 0x0B12, 0x0B29, 0x0B29, 0x0B31, 0x0B31, | |
10574 0x0B34, 0x0B34, 0x0B3A, 0x0B3B, 0x0B45, 0x0B46, 0x0B49, 0x0B4A, | |
10575 0x0B4E, 0x0B54, 0x0B58, 0x0B5B, 0x0B5E, 0x0B5E, 0x0B64, 0x0B65, | |
10576 0x0B78, 0x0B81, 0x0B84, 0x0B84, 0x0B8B, 0x0B8D, 0x0B91, 0x0B91, | |
10577 0x0B96, 0x0B98, 0x0B9B, 0x0B9B, 0x0B9D, 0x0B9D, 0x0BA0, 0x0BA2, | |
10578 0x0BA5, 0x0BA7, 0x0BAB, 0x0BAD, 0x0BBA, 0x0BBD, 0x0BC3, 0x0BC5, | |
10579 0x0BC9, 0x0BC9, 0x0BCE, 0x0BCF, 0x0BD1, 0x0BD6, 0x0BD8, 0x0BE5, | |
10580 0x0BFB, 0x0BFF, 0x0C0D, 0x0C0D, 0x0C11, 0x0C11, 0x0C29, 0x0C29, | |
10581 0x0C3A, 0x0C3B, 0x0C45, 0x0C45, 0x0C49, 0x0C49, 0x0C4E, 0x0C54, | |
10582 0x0C57, 0x0C57, 0x0C5B, 0x0C5C, 0x0C5E, 0x0C5F, 0x0C64, 0x0C65, | |
10583 0x0C70, 0x0C76, 0x0C8D, 0x0C8D, 0x0C91, 0x0C91, 0x0CA9, 0x0CA9, | |
10584 0x0CB4, 0x0CB4, 0x0CBA, 0x0CBB, 0x0CC5, 0x0CC5, 0x0CC9, 0x0CC9, | |
10585 0x0CCE, 0x0CD4, 0x0CD7, 0x0CDC, 0x0CDF, 0x0CDF, 0x0CE4, 0x0CE5, | |
10586 0x0CF0, 0x0CF0, 0x0CF4, 0x0CFF, 0x0D0D, 0x0D0D, 0x0D11, 0x0D11, | |
10587 0x0D45, 0x0D45, 0x0D49, 0x0D49, 0x0D50, 0x0D53, 0x0D64, 0x0D65, | |
10588 0x0D80, 0x0D80, 0x0D84, 0x0D84, 0x0D97, 0x0D99, 0x0DB2, 0x0DB2, | |
10589 0x0DBC, 0x0DBC, 0x0DBE, 0x0DBF, 0x0DC7, 0x0DC9, 0x0DCB, 0x0DCE, | |
10590 0x0DD5, 0x0DD5, 0x0DD7, 0x0DD7, 0x0DE0, 0x0DE5, 0x0DF0, 0x0DF1, | |
10591 0x0DF5, 0x0E00, 0x0E3B, 0x0E3E, 0x0E5C, 0x0E80, 0x0E83, 0x0E83, | |
10592 0x0E85, 0x0E85, 0x0E8B, 0x0E8B, 0x0EA4, 0x0EA4, 0x0EA6, 0x0EA6, | |
10593 0x0EBE, 0x0EBF, 0x0EC5, 0x0EC5, 0x0EC7, 0x0EC7, 0x0ECF, 0x0ECF, | |
10594 0x0EDA, 0x0EDB, 0x0EE0, 0x0EFF, 0x0F48, 0x0F48, 0x0F6D, 0x0F70, | |
10595 0x0F98, 0x0F98, 0x0FBD, 0x0FBD, 0x0FCD, 0x0FCD, 0x0FDB, 0x0FFF, | |
10596 0x10C6, 0x10C6, 0x10C8, 0x10CC, 0x10CE, 0x10CF, 0x1249, 0x1249, | |
10597 0x124E, 0x124F, 0x1257, 0x1257, 0x1259, 0x1259, 0x125E, 0x125F, | |
10598 0x1289, 0x1289, 0x128E, 0x128F, 0x12B1, 0x12B1, 0x12B6, 0x12B7, | |
10599 0x12BF, 0x12BF, 0x12C1, 0x12C1, 0x12C6, 0x12C7, 0x12D7, 0x12D7, | |
10600 0x1311, 0x1311, 0x1316, 0x1317, 0x135B, 0x135C, 0x137D, 0x137F, | |
10601 0x139A, 0x139F, 0x13F6, 0x13F7, 0x13FE, 0x13FF, 0x169D, 0x169F, | |
10602 0x16F9, 0x16FF, 0x1716, 0x171E, 0x1737, 0x173F, 0x1754, 0x175F, | |
10603 0x176D, 0x176D, 0x1771, 0x1771, 0x1774, 0x177F, 0x17DE, 0x17DF, | |
10604 0x17EA, 0x17EF, 0x17FA, 0x17FF, 0x181A, 0x181F, 0x1879, 0x187F, | |
10605 0x18AB, 0x18AF, 0x18F6, 0x18FF, 0x191F, 0x191F, 0x192C, 0x192F, | |
10606 0x193C, 0x193F, 0x1941, 0x1943, 0x196E, 0x196F, 0x1975, 0x197F, | |
10607 0x19AC, 0x19AF, 0x19CA, 0x19CF, 0x19DB, 0x19DD, 0x1A1C, 0x1A1D, | |
10608 0x1A5F, 0x1A5F, 0x1A7D, 0x1A7E, 0x1A8A, 0x1A8F, 0x1A9A, 0x1A9F, | |
10609 0x1AAE, 0x1AAF, 0x1ACF, 0x1AFF, 0x1B4D, 0x1B4F, 0x1B7F, 0x1B7F, | |
10610 0x1BF4, 0x1BFB, 0x1C38, 0x1C3A, 0x1C4A, 0x1C4C, 0x1C89, 0x1C8F, | |
10611 0x1CBB, 0x1CBC, 0x1CC8, 0x1CCF, 0x1CFB, 0x1CFF, 0x1F16, 0x1F17, | |
10612 0x1F1E, 0x1F1F, 0x1F46, 0x1F47, 0x1F4E, 0x1F4F, 0x1F58, 0x1F58, | |
10613 0x1F5A, 0x1F5A, 0x1F5C, 0x1F5C, 0x1F5E, 0x1F5E, 0x1F7E, 0x1F7F, | |
10614 0x1FB5, 0x1FB5, 0x1FC5, 0x1FC5, 0x1FD4, 0x1FD5, 0x1FDC, 0x1FDC, | |
10615 0x1FF0, 0x1FF1, 0x1FF5, 0x1FF5, 0x1FFF, 0x1FFF, 0x2065, 0x2065, | |
10616 0x2072, 0x2073, 0x208F, 0x208F, 0x209D, 0x209F, 0x20C1, 0x20CF, | |
10617 0x20F1, 0x20FF, 0x218C, 0x218F, 0x2427, 0x243F, 0x244B, 0x245F, | |
10618 0x2B74, 0x2B75, 0x2B96, 0x2B96, 0x2CF4, 0x2CF8, 0x2D26, 0x2D26, | |
10619 0x2D28, 0x2D2C, 0x2D2E, 0x2D2F, 0x2D68, 0x2D6E, 0x2D71, 0x2D7E, | |
10620 0x2D97, 0x2D9F, 0x2DA7, 0x2DA7, 0x2DAF, 0x2DAF, 0x2DB7, 0x2DB7, | |
10621 0x2DBF, 0x2DBF, 0x2DC7, 0x2DC7, 0x2DCF, 0x2DCF, 0x2DD7, 0x2DD7, | |
10622 0x2DDF, 0x2DDF, 0x2E5E, 0x2E7F, 0x2E9A, 0x2E9A, 0x2EF4, 0x2EFF, | |
10623 0x2FD6, 0x2FEF, 0x3040, 0x3040, 0x3097, 0x3098, 0x3100, 0x3104, | |
10624 0x3130, 0x3130, 0x318F, 0x318F, 0x31E4, 0x31EE, 0x321F, 0x321F, | |
10625 0xA48D, 0xA48F, 0xA4C7, 0xA4CF, 0xA62C, 0xA63F, 0xA6F8, 0xA6FF, | |
10626 0xA7CB, 0xA7CF, 0xA7D2, 0xA7D2, 0xA7D4, 0xA7D4, 0xA7DA, 0xA7F1, | |
10627 0xA82D, 0xA82F, 0xA83A, 0xA83F, 0xA878, 0xA87F, 0xA8C6, 0xA8CD, | |
10628 0xA8DA, 0xA8DF, 0xA954, 0xA95E, 0xA97D, 0xA97F, 0xA9CE, 0xA9CE, | |
10629 0xA9DA, 0xA9DD, 0xA9FF, 0xA9FF, 0xAA37, 0xAA3F, 0xAA4E, 0xAA4F, | |
10630 0xAA5A, 0xAA5B, 0xAAC3, 0xAADA, 0xAAF7, 0xAB00, 0xAB07, 0xAB08, | |
10631 0xAB0F, 0xAB10, 0xAB17, 0xAB1F, 0xAB27, 0xAB27, 0xAB2F, 0xAB2F, | |
10632 0xAB6C, 0xAB6F, 0xABEE, 0xABEF, 0xABFA, 0xABFF, 0xD7A4, 0xD7AF, | |
10633 0xD7C7, 0xD7CA, 0xD7FC, 0xF8FF, 0xFA6E, 0xFA6F, 0xFADA, 0xFAFF, | |
10634 0xFB07, 0xFB12, 0xFB18, 0xFB1C, 0xFB37, 0xFB37, 0xFB3D, 0xFB3D, | |
10635 0xFB3F, 0xFB3F, 0xFB42, 0xFB42, 0xFB45, 0xFB45, 0xFBC3, 0xFBD2, | |
10636 0xFD90, 0xFD91, 0xFDC8, 0xFDCE, 0xFDD0, 0xFDEF, 0xFE1A, 0xFE1F, | |
10637 0xFE53, 0xFE53, 0xFE67, 0xFE67, 0xFE6C, 0xFE6F, 0xFE75, 0xFE75, | |
10638 0xFEFD, 0xFEFE, 0xFF00, 0xFF00, 0xFFBF, 0xFFC1, 0xFFC8, 0xFFC9, | |
10639 0xFFD0, 0xFFD1, 0xFFD8, 0xFFD9, 0xFFDD, 0xFFDF, 0xFFE7, 0xFFE7, | |
10640 0xFFEF, 0xFFF8, 0xFFFE, 0xFFFF, 0x1000C, 0x1000C, 0x10027, 0x10027, | |
10641 0x1003B, 0x1003B, 0x1003E, 0x1003E, 0x1004E, 0x1004F, 0x1005E, 0x1007F, | |
10642 0x100FB, 0x100FF, 0x10103, 0x10106, 0x10134, 0x10136, 0x1018F, 0x1018F, | |
10643 0x1019D, 0x1019F, 0x101A1, 0x101CF, 0x101FE, 0x1027F, 0x1029D, 0x1029F, | |
10644 0x102D1, 0x102DF, 0x102FC, 0x102FF, 0x10324, 0x1032C, 0x1034B, 0x1034F, | |
10645 0x1037B, 0x1037F, 0x1039E, 0x1039E, 0x103C4, 0x103C7, 0x103D6, 0x103FF, | |
10646 0x1049E, 0x1049F, 0x104AA, 0x104AF, 0x104D4, 0x104D7, 0x104FC, 0x104FF, | |
10647 0x10528, 0x1052F, 0x10564, 0x1056E, 0x1057B, 0x1057B, 0x1058B, 0x1058B, | |
10648 0x10593, 0x10593, 0x10596, 0x10596, 0x105A2, 0x105A2, 0x105B2, 0x105B2, | |
10649 0x105BA, 0x105BA, 0x105BD, 0x105FF, 0x10737, 0x1073F, 0x10756, 0x1075F, | |
10650 0x10768, 0x1077F, 0x10786, 0x10786, 0x107B1, 0x107B1, 0x107BB, 0x107FF, | |
10651 0x10806, 0x10807, 0x10809, 0x10809, 0x10836, 0x10836, 0x10839, 0x1083B, | |
10652 0x1083D, 0x1083E, 0x10856, 0x10856, 0x1089F, 0x108A6, 0x108B0, 0x108DF, | |
10653 0x108F3, 0x108F3, 0x108F6, 0x108FA, 0x1091C, 0x1091E, 0x1093A, 0x1093E, | |
10654 0x10940, 0x1097F, 0x109B8, 0x109BB, 0x109D0, 0x109D1, 0x10A04, 0x10A04, | |
10655 0x10A07, 0x10A0B, 0x10A14, 0x10A14, 0x10A18, 0x10A18, 0x10A36, 0x10A37, | |
10656 0x10A3B, 0x10A3E, 0x10A49, 0x10A4F, 0x10A59, 0x10A5F, 0x10AA0, 0x10ABF, | |
10657 0x10AE7, 0x10AEA, 0x10AF7, 0x10AFF, 0x10B36, 0x10B38, 0x10B56, 0x10B57, | |
10658 0x10B73, 0x10B77, 0x10B92, 0x10B98, 0x10B9D, 0x10BA8, 0x10BB0, 0x10BFF, | |
10659 0x10C49, 0x10C7F, 0x10CB3, 0x10CBF, 0x10CF3, 0x10CF9, 0x10D28, 0x10D2F, | |
10660 0x10D3A, 0x10E5F, 0x10E7F, 0x10E7F, 0x10EAA, 0x10EAA, 0x10EAE, 0x10EAF, | |
10661 0x10EB2, 0x10EFC, 0x10F28, 0x10F2F, 0x10F5A, 0x10F6F, 0x10F8A, 0x10FAF, | |
10662 0x10FCC, 0x10FDF, 0x10FF7, 0x10FFF, 0x1104E, 0x11051, 0x11076, 0x1107E, | |
10663 0x110C3, 0x110CC, 0x110CE, 0x110CF, 0x110E9, 0x110EF, 0x110FA, 0x110FF, | |
10664 0x11135, 0x11135, 0x11148, 0x1114F, 0x11177, 0x1117F, 0x111E0, 0x111E0, | |
10665 0x111F5, 0x111FF, 0x11212, 0x11212, 0x11242, 0x1127F, 0x11287, 0x11287, | |
10666 0x11289, 0x11289, 0x1128E, 0x1128E, 0x1129E, 0x1129E, 0x112AA, 0x112AF, | |
10667 0x112EB, 0x112EF, 0x112FA, 0x112FF, 0x11304, 0x11304, 0x1130D, 0x1130E, | |
10668 0x11311, 0x11312, 0x11329, 0x11329, 0x11331, 0x11331, 0x11334, 0x11334, | |
10669 0x1133A, 0x1133A, 0x11345, 0x11346, 0x11349, 0x1134A, 0x1134E, 0x1134F, | |
10670 0x11351, 0x11356, 0x11358, 0x1135C, 0x11364, 0x11365, 0x1136D, 0x1136F, | |
10671 0x11375, 0x113FF, 0x1145C, 0x1145C, 0x11462, 0x1147F, 0x114C8, 0x114CF, | |
10672 0x114DA, 0x1157F, 0x115B6, 0x115B7, 0x115DE, 0x115FF, 0x11645, 0x1164F, | |
10673 0x1165A, 0x1165F, 0x1166D, 0x1167F, 0x116BA, 0x116BF, 0x116CA, 0x116FF, | |
10674 0x1171B, 0x1171C, 0x1172C, 0x1172F, 0x11747, 0x117FF, 0x1183C, 0x1189F, | |
10675 0x118F3, 0x118FE, 0x11907, 0x11908, 0x1190A, 0x1190B, 0x11914, 0x11914, | |
10676 0x11917, 0x11917, 0x11936, 0x11936, 0x11939, 0x1193A, 0x11947, 0x1194F, | |
10677 0x1195A, 0x1199F, 0x119A8, 0x119A9, 0x119D8, 0x119D9, 0x119E5, 0x119FF, | |
10678 0x11A48, 0x11A4F, 0x11AA3, 0x11AAF, 0x11AF9, 0x11AFF, 0x11B0A, 0x11BFF, | |
10679 0x11C09, 0x11C09, 0x11C37, 0x11C37, 0x11C46, 0x11C4F, 0x11C6D, 0x11C6F, | |
10680 0x11C90, 0x11C91, 0x11CA8, 0x11CA8, 0x11CB7, 0x11CFF, 0x11D07, 0x11D07, | |
10681 0x11D0A, 0x11D0A, 0x11D37, 0x11D39, 0x11D3B, 0x11D3B, 0x11D3E, 0x11D3E, | |
10682 0x11D48, 0x11D4F, 0x11D5A, 0x11D5F, 0x11D66, 0x11D66, 0x11D69, 0x11D69, | |
10683 0x11D8F, 0x11D8F, 0x11D92, 0x11D92, 0x11D99, 0x11D9F, 0x11DAA, 0x11EDF, | |
10684 0x11EF9, 0x11EFF, 0x11F11, 0x11F11, 0x11F3B, 0x11F3D, 0x11F5A, 0x11FAF, | |
10685 0x11FB1, 0x11FBF, 0x11FF2, 0x11FFE, 0x1239A, 0x123FF, 0x1246F, 0x1246F, | |
10686 0x12475, 0x1247F, 0x12544, 0x12F8F, 0x12FF3, 0x12FFF, 0x13456, 0x143FF, | |
10687 0x14647, 0x167FF, 0x16A39, 0x16A3F, 0x16A5F, 0x16A5F, 0x16A6A, 0x16A6D, | |
10688 0x16ABF, 0x16ABF, 0x16ACA, 0x16ACF, 0x16AEE, 0x16AEF, 0x16AF6, 0x16AFF, | |
10689 0x16B46, 0x16B4F, 0x16B5A, 0x16B5A, 0x16B62, 0x16B62, 0x16B78, 0x16B7C, | |
10690 0x16B90, 0x16E3F, 0x16E9B, 0x16EFF, 0x16F4B, 0x16F4E, 0x16F88, 0x16F8E, | |
10691 0x16FA0, 0x16FDF, 0x16FE5, 0x16FEF, 0x16FF2, 0x16FFF, 0x187F8, 0x187FF, | |
10692 0x18CD6, 0x18CFF, 0x18D09, 0x1AFEF, 0x1AFF4, 0x1AFF4, 0x1AFFC, 0x1AFFC, | |
10693 0x1AFFF, 0x1AFFF, 0x1B123, 0x1B131, 0x1B133, 0x1B14F, 0x1B153, 0x1B154, | |
10694 0x1B156, 0x1B163, 0x1B168, 0x1B16F, 0x1B2FC, 0x1BBFF, 0x1BC6B, 0x1BC6F, | |
10695 0x1BC7D, 0x1BC7F, 0x1BC89, 0x1BC8F, 0x1BC9A, 0x1BC9B, 0x1BCA4, 0x1CEFF, | |
10696 0x1CF2E, 0x1CF2F, 0x1CF47, 0x1CF4F, 0x1CFC4, 0x1CFFF, 0x1D0F6, 0x1D0FF, | |
10697 0x1D127, 0x1D128, 0x1D1EB, 0x1D1FF, 0x1D246, 0x1D2BF, 0x1D2D4, 0x1D2DF, | |
10698 0x1D2F4, 0x1D2FF, 0x1D357, 0x1D35F, 0x1D379, 0x1D3FF, 0x1D455, 0x1D455, | |
10699 0x1D49D, 0x1D49D, 0x1D4A0, 0x1D4A1, 0x1D4A3, 0x1D4A4, 0x1D4A7, 0x1D4A8, | |
10700 0x1D4AD, 0x1D4AD, 0x1D4BA, 0x1D4BA, 0x1D4BC, 0x1D4BC, 0x1D4C4, 0x1D4C4, | |
10701 0x1D506, 0x1D506, 0x1D50B, 0x1D50C, 0x1D515, 0x1D515, 0x1D51D, 0x1D51D, | |
10702 0x1D53A, 0x1D53A, 0x1D53F, 0x1D53F, 0x1D545, 0x1D545, 0x1D547, 0x1D549, | |
10703 0x1D551, 0x1D551, 0x1D6A6, 0x1D6A7, 0x1D7CC, 0x1D7CD, 0x1DA8C, 0x1DA9A, | |
10704 0x1DAA0, 0x1DAA0, 0x1DAB0, 0x1DEFF, 0x1DF1F, 0x1DF24, 0x1DF2B, 0x1DFFF, | |
10705 0x1E007, 0x1E007, 0x1E019, 0x1E01A, 0x1E022, 0x1E022, 0x1E025, 0x1E025, | |
10706 0x1E02B, 0x1E02F, 0x1E06E, 0x1E08E, 0x1E090, 0x1E0FF, 0x1E12D, 0x1E12F, | |
10707 0x1E13E, 0x1E13F, 0x1E14A, 0x1E14D, 0x1E150, 0x1E28F, 0x1E2AF, 0x1E2BF, | |
10708 0x1E2FA, 0x1E2FE, 0x1E300, 0x1E4CF, 0x1E4FA, 0x1E7DF, 0x1E7E7, 0x1E7E7, | |
10709 0x1E7EC, 0x1E7EC, 0x1E7EF, 0x1E7EF, 0x1E7FF, 0x1E7FF, 0x1E8C5, 0x1E8C6, | |
10710 0x1E8D7, 0x1E8FF, 0x1E94C, 0x1E94F, 0x1E95A, 0x1E95D, 0x1E960, 0x1EC70, | |
10711 0x1ECB5, 0x1ED00, 0x1ED3E, 0x1EDFF, 0x1EE04, 0x1EE04, 0x1EE20, 0x1EE20, | |
10712 0x1EE23, 0x1EE23, 0x1EE25, 0x1EE26, 0x1EE28, 0x1EE28, 0x1EE33, 0x1EE33, | |
10713 0x1EE38, 0x1EE38, 0x1EE3A, 0x1EE3A, 0x1EE3C, 0x1EE41, 0x1EE43, 0x1EE46, | |
10714 0x1EE48, 0x1EE48, 0x1EE4A, 0x1EE4A, 0x1EE4C, 0x1EE4C, 0x1EE50, 0x1EE50, | |
10715 0x1EE53, 0x1EE53, 0x1EE55, 0x1EE56, 0x1EE58, 0x1EE58, 0x1EE5A, 0x1EE5A, | |
10716 0x1EE5C, 0x1EE5C, 0x1EE5E, 0x1EE5E, 0x1EE60, 0x1EE60, 0x1EE63, 0x1EE63, | |
10717 0x1EE65, 0x1EE66, 0x1EE6B, 0x1EE6B, 0x1EE73, 0x1EE73, 0x1EE78, 0x1EE78, | |
10718 0x1EE7D, 0x1EE7D, 0x1EE7F, 0x1EE7F, 0x1EE8A, 0x1EE8A, 0x1EE9C, 0x1EEA0, | |
10719 0x1EEA4, 0x1EEA4, 0x1EEAA, 0x1EEAA, 0x1EEBC, 0x1EEEF, 0x1EEF2, 0x1EFFF, | |
10720 0x1F02C, 0x1F02F, 0x1F094, 0x1F09F, 0x1F0AF, 0x1F0B0, 0x1F0C0, 0x1F0C0, | |
10721 0x1F0D0, 0x1F0D0, 0x1F0F6, 0x1F0FF, 0x1F1AE, 0x1F1E5, 0x1F203, 0x1F20F, | |
10722 0x1F23C, 0x1F23F, 0x1F249, 0x1F24F, 0x1F252, 0x1F25F, 0x1F266, 0x1F2FF, | |
10723 0x1F6D8, 0x1F6DB, 0x1F6ED, 0x1F6EF, 0x1F6FD, 0x1F6FF, 0x1F777, 0x1F77A, | |
10724 0x1F7DA, 0x1F7DF, 0x1F7EC, 0x1F7EF, 0x1F7F1, 0x1F7FF, 0x1F80C, 0x1F80F, | |
10725 0x1F848, 0x1F84F, 0x1F85A, 0x1F85F, 0x1F888, 0x1F88F, 0x1F8AE, 0x1F8AF, | |
10726 0x1F8B2, 0x1F8FF, 0x1FA54, 0x1FA5F, 0x1FA6E, 0x1FA6F, 0x1FA7D, 0x1FA7F, | |
10727 0x1FA89, 0x1FA8F, 0x1FABE, 0x1FABE, 0x1FAC6, 0x1FACD, 0x1FADC, 0x1FADF, | |
10728 0x1FAE9, 0x1FAEF, 0x1FAF9, 0x1FAFF, 0x1FB93, 0x1FB93, 0x1FBCB, 0x1FBEF, | |
10729 0x1FBFA, 0x1FFFF, 0x2A6E0, 0x2A6FF, 0x2B73A, 0x2B73F, 0x2B81E, 0x2B81F, | |
10730 0x2CEA2, 0x2CEAF, 0x2EBE1, 0x2EBEF, 0x2EE5E, 0x2F7FF, 0x2FA1E, 0x2FFFF, | |
10731 0x3134B, 0x3134F, 0x323B0, 0xE0000, 0xE0002, 0xE001F, 0xE0080, 0xE00FF, | |
10732 0xE01F0, 0x10FFFF, | |
10733 // #260 (17139+147): scx=Common:Zyyy | |
10734 0x0000, 0x0040, 0x005B, 0x0060, 0x007B, 0x00A9, 0x00AB, 0x00B9, | |
10735 0x00BB, 0x00BF, 0x00D7, 0x00D7, 0x00F7, 0x00F7, 0x02B9, 0x02DF, | |
10736 0x02E5, 0x02E9, 0x02EC, 0x02FF, 0x0374, 0x0374, 0x037E, 0x037E, | |
10737 0x0385, 0x0385, 0x0387, 0x0387, 0x0605, 0x0605, 0x06DD, 0x06DD, | |
10738 0x08E2, 0x08E2, 0x0E3F, 0x0E3F, 0x0FD5, 0x0FD8, 0x16EB, 0x16ED, | |
10739 0x2000, 0x200B, 0x200E, 0x202E, 0x2030, 0x2064, 0x2066, 0x2070, | |
10740 0x2074, 0x207E, 0x2080, 0x208E, 0x20A0, 0x20C0, 0x2100, 0x2125, | |
10741 0x2127, 0x2129, 0x212C, 0x2131, 0x2133, 0x214D, 0x214F, 0x215F, | |
10742 0x2189, 0x218B, 0x2190, 0x2426, 0x2440, 0x244A, 0x2460, 0x27FF, | |
10743 0x2900, 0x2B73, 0x2B76, 0x2B95, 0x2B97, 0x2BFF, 0x2E00, 0x2E42, | |
10744 0x2E44, 0x2E5D, 0x2FF0, 0x3000, 0x3004, 0x3004, 0x3012, 0x3012, | |
10745 0x3020, 0x3020, 0x3036, 0x3036, 0x31EF, 0x31EF, 0x3248, 0x325F, | |
10746 0x327F, 0x327F, 0x32B1, 0x32BF, 0x32CC, 0x32CF, 0x3371, 0x337A, | |
10747 0x3380, 0x33DF, 0x33FF, 0x33FF, 0x4DC0, 0x4DFF, 0xA708, 0xA721, | |
10748 0xA788, 0xA78A, 0xAB5B, 0xAB5B, 0xAB6A, 0xAB6B, 0xFE10, 0xFE19, | |
10749 0xFE30, 0xFE44, 0xFE47, 0xFE52, 0xFE54, 0xFE66, 0xFE68, 0xFE6B, | |
10750 0xFEFF, 0xFEFF, 0xFF01, 0xFF20, 0xFF3B, 0xFF40, 0xFF5B, 0xFF60, | |
10751 0xFFE0, 0xFFE6, 0xFFE8, 0xFFEE, 0xFFF9, 0xFFFD, 0x10190, 0x1019C, | |
10752 0x101D0, 0x101FC, 0x1CF50, 0x1CFC3, 0x1D000, 0x1D0F5, 0x1D100, 0x1D126, | |
10753 0x1D129, 0x1D166, 0x1D16A, 0x1D17A, 0x1D183, 0x1D184, 0x1D18C, 0x1D1A9, | |
10754 0x1D1AE, 0x1D1EA, 0x1D2C0, 0x1D2D3, 0x1D2E0, 0x1D2F3, 0x1D300, 0x1D356, | |
10755 0x1D372, 0x1D378, 0x1D400, 0x1D454, 0x1D456, 0x1D49C, 0x1D49E, 0x1D49F, | |
10756 0x1D4A2, 0x1D4A2, 0x1D4A5, 0x1D4A6, 0x1D4A9, 0x1D4AC, 0x1D4AE, 0x1D4B9, | |
10757 0x1D4BB, 0x1D4BB, 0x1D4BD, 0x1D4C3, 0x1D4C5, 0x1D505, 0x1D507, 0x1D50A, | |
10758 0x1D50D, 0x1D514, 0x1D516, 0x1D51C, 0x1D51E, 0x1D539, 0x1D53B, 0x1D53E, | |
10759 0x1D540, 0x1D544, 0x1D546, 0x1D546, 0x1D54A, 0x1D550, 0x1D552, 0x1D6A5, | |
10760 0x1D6A8, 0x1D7CB, 0x1D7CE, 0x1D7FF, 0x1EC71, 0x1ECB4, 0x1ED01, 0x1ED3D, | |
10761 0x1F000, 0x1F02B, 0x1F030, 0x1F093, 0x1F0A0, 0x1F0AE, 0x1F0B1, 0x1F0BF, | |
10762 0x1F0C1, 0x1F0CF, 0x1F0D1, 0x1F0F5, 0x1F100, 0x1F1AD, 0x1F1E6, 0x1F1FF, | |
10763 0x1F201, 0x1F202, 0x1F210, 0x1F23B, 0x1F240, 0x1F248, 0x1F260, 0x1F265, | |
10764 0x1F300, 0x1F6D7, 0x1F6DC, 0x1F6EC, 0x1F6F0, 0x1F6FC, 0x1F700, 0x1F776, | |
10765 0x1F77B, 0x1F7D9, 0x1F7E0, 0x1F7EB, 0x1F7F0, 0x1F7F0, 0x1F800, 0x1F80B, | |
10766 0x1F810, 0x1F847, 0x1F850, 0x1F859, 0x1F860, 0x1F887, 0x1F890, 0x1F8AD, | |
10767 0x1F8B0, 0x1F8B1, 0x1F900, 0x1FA53, 0x1FA60, 0x1FA6D, 0x1FA70, 0x1FA7C, | |
10768 0x1FA80, 0x1FA88, 0x1FA90, 0x1FABD, 0x1FABF, 0x1FAC5, 0x1FACE, 0x1FADB, | |
10769 0x1FAE0, 0x1FAE8, 0x1FAF0, 0x1FAF8, 0x1FB00, 0x1FB92, 0x1FB94, 0x1FBCA, | |
10770 0x1FBF0, 0x1FBF9, 0xE0001, 0xE0001, 0xE0020, 0xE007F, | |
10771 // #261 (17286+47): scx=Latin:Latn | |
10772 0x0041, 0x005A, 0x0061, 0x007A, 0x00AA, 0x00AA, 0x00BA, 0x00BA, | |
10773 0x00C0, 0x00D6, 0x00D8, 0x00F6, 0x00F8, 0x02B8, 0x02E0, 0x02E4, | |
10774 0x0363, 0x036F, 0x0485, 0x0486, 0x0951, 0x0952, 0x10FB, 0x10FB, | |
10775 0x1D00, 0x1D25, 0x1D2C, 0x1D5C, 0x1D62, 0x1D65, 0x1D6B, 0x1D77, | |
10776 0x1D79, 0x1DBE, 0x1E00, 0x1EFF, 0x202F, 0x202F, 0x2071, 0x2071, | |
10777 0x207F, 0x207F, 0x2090, 0x209C, 0x20F0, 0x20F0, 0x212A, 0x212B, | |
10778 0x2132, 0x2132, 0x214E, 0x214E, 0x2160, 0x2188, 0x2C60, 0x2C7F, | |
10779 0xA700, 0xA707, 0xA722, 0xA787, 0xA78B, 0xA7CA, 0xA7D0, 0xA7D1, | |
10780 0xA7D3, 0xA7D3, 0xA7D5, 0xA7D9, 0xA7F2, 0xA7FF, 0xA92E, 0xA92E, | |
10781 0xAB30, 0xAB5A, 0xAB5C, 0xAB64, 0xAB66, 0xAB69, 0xFB00, 0xFB06, | |
10782 0xFF21, 0xFF3A, 0xFF41, 0xFF5A, 0x10780, 0x10785, 0x10787, 0x107B0, | |
10783 0x107B2, 0x107BA, 0x1DF00, 0x1DF1E, 0x1DF25, 0x1DF2A, | |
10784 // #262 (17333+38): scx=Greek:Grek | |
10785 0x0342, 0x0342, 0x0345, 0x0345, 0x0370, 0x0373, 0x0375, 0x0377, | |
10786 0x037A, 0x037D, 0x037F, 0x037F, 0x0384, 0x0384, 0x0386, 0x0386, | |
10787 0x0388, 0x038A, 0x038C, 0x038C, 0x038E, 0x03A1, 0x03A3, 0x03E1, | |
10788 0x03F0, 0x03FF, 0x1D26, 0x1D2A, 0x1D5D, 0x1D61, 0x1D66, 0x1D6A, | |
10789 0x1DBF, 0x1DC1, 0x1F00, 0x1F15, 0x1F18, 0x1F1D, 0x1F20, 0x1F45, | |
10790 0x1F48, 0x1F4D, 0x1F50, 0x1F57, 0x1F59, 0x1F59, 0x1F5B, 0x1F5B, | |
10791 0x1F5D, 0x1F5D, 0x1F5F, 0x1F7D, 0x1F80, 0x1FB4, 0x1FB6, 0x1FC4, | |
10792 0x1FC6, 0x1FD3, 0x1FD6, 0x1FDB, 0x1FDD, 0x1FEF, 0x1FF2, 0x1FF4, | |
10793 0x1FF6, 0x1FFE, 0x2126, 0x2126, 0xAB65, 0xAB65, 0x10140, 0x1018E, | |
10794 0x101A0, 0x101A0, 0x1D200, 0x1D245, | |
10795 // #263 (17371+11): scx=Cyrillic:Cyrl | |
10796 0x0400, 0x052F, 0x1C80, 0x1C88, 0x1D2B, 0x1D2B, 0x1D78, 0x1D78, | |
10797 0x1DF8, 0x1DF8, 0x2DE0, 0x2DFF, 0x2E43, 0x2E43, 0xA640, 0xA69F, | |
10798 0xFE2E, 0xFE2F, 0x1E030, 0x1E06D, 0x1E08F, 0x1E08F, | |
10799 // #264 (17382+52): scx=Arabic:Arab | |
10800 0x0600, 0x0604, 0x0606, 0x06DC, 0x06DE, 0x06FF, 0x0750, 0x077F, | |
10801 0x0870, 0x088E, 0x0890, 0x0891, 0x0898, 0x08E1, 0x08E3, 0x08FF, | |
10802 0xFB50, 0xFBC2, 0xFBD3, 0xFD8F, 0xFD92, 0xFDC7, 0xFDCF, 0xFDCF, | |
10803 0xFDF0, 0xFDFF, 0xFE70, 0xFE74, 0xFE76, 0xFEFC, 0x102E0, 0x102FB, | |
10804 0x10E60, 0x10E7E, 0x10EFD, 0x10EFF, 0x1EE00, 0x1EE03, 0x1EE05, 0x1EE1F, | |
10805 0x1EE21, 0x1EE22, 0x1EE24, 0x1EE24, 0x1EE27, 0x1EE27, 0x1EE29, 0x1EE32, | |
10806 0x1EE34, 0x1EE37, 0x1EE39, 0x1EE39, 0x1EE3B, 0x1EE3B, 0x1EE42, 0x1EE42, | |
10807 0x1EE47, 0x1EE47, 0x1EE49, 0x1EE49, 0x1EE4B, 0x1EE4B, 0x1EE4D, 0x1EE4F, | |
10808 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE54, 0x1EE57, 0x1EE57, 0x1EE59, 0x1EE59, | |
10809 0x1EE5B, 0x1EE5B, 0x1EE5D, 0x1EE5D, 0x1EE5F, 0x1EE5F, 0x1EE61, 0x1EE62, | |
10810 0x1EE64, 0x1EE64, 0x1EE67, 0x1EE6A, 0x1EE6C, 0x1EE72, 0x1EE74, 0x1EE77, | |
10811 0x1EE79, 0x1EE7C, 0x1EE7E, 0x1EE7E, 0x1EE80, 0x1EE89, 0x1EE8B, 0x1EE9B, | |
10812 0x1EEA1, 0x1EEA3, 0x1EEA5, 0x1EEA9, 0x1EEAB, 0x1EEBB, 0x1EEF0, 0x1EEF1, | |
10813 // #265 (17434+12): scx=Syriac:Syrc | |
10814 0x060C, 0x060C, 0x061B, 0x061C, 0x061F, 0x061F, 0x0640, 0x0640, | |
10815 0x064B, 0x0655, 0x0670, 0x0670, 0x0700, 0x070D, 0x070F, 0x074A, | |
10816 0x074D, 0x074F, 0x0860, 0x086A, 0x1DF8, 0x1DF8, 0x1DFA, 0x1DFA, | |
10817 // #266 (17446+7): scx=Thaana:Thaa | |
10818 0x060C, 0x060C, 0x061B, 0x061C, 0x061F, 0x061F, 0x0660, 0x0669, | |
10819 0x0780, 0x07B1, 0xFDF2, 0xFDF2, 0xFDFD, 0xFDFD, | |
10820 // #267 (17453+8): scx=Devanagari:Deva | |
10821 0x0900, 0x0952, 0x0955, 0x097F, 0x1CD0, 0x1CF6, 0x1CF8, 0x1CF9, | |
10822 0x20F0, 0x20F0, 0xA830, 0xA839, 0xA8E0, 0xA8FF, 0x11B00, 0x11B09, | |
10823 // #268 (17461+26): scx=Bengali:Beng | |
10824 0x0951, 0x0952, 0x0964, 0x0965, 0x0980, 0x0983, 0x0985, 0x098C, | |
10825 0x098F, 0x0990, 0x0993, 0x09A8, 0x09AA, 0x09B0, 0x09B2, 0x09B2, | |
10826 0x09B6, 0x09B9, 0x09BC, 0x09C4, 0x09C7, 0x09C8, 0x09CB, 0x09CE, | |
10827 0x09D7, 0x09D7, 0x09DC, 0x09DD, 0x09DF, 0x09E3, 0x09E6, 0x09FE, | |
10828 0x1CD0, 0x1CD0, 0x1CD2, 0x1CD2, 0x1CD5, 0x1CD6, 0x1CD8, 0x1CD8, | |
10829 0x1CE1, 0x1CE1, 0x1CEA, 0x1CEA, 0x1CED, 0x1CED, 0x1CF2, 0x1CF2, | |
10830 0x1CF5, 0x1CF7, 0xA8F1, 0xA8F1, | |
10831 // #269 (17487+19): scx=Gurmukhi:Guru | |
10832 0x0951, 0x0952, 0x0964, 0x0965, 0x0A01, 0x0A03, 0x0A05, 0x0A0A, | |
10833 0x0A0F, 0x0A10, 0x0A13, 0x0A28, 0x0A2A, 0x0A30, 0x0A32, 0x0A33, | |
10834 0x0A35, 0x0A36, 0x0A38, 0x0A39, 0x0A3C, 0x0A3C, 0x0A3E, 0x0A42, | |
10835 0x0A47, 0x0A48, 0x0A4B, 0x0A4D, 0x0A51, 0x0A51, 0x0A59, 0x0A5C, | |
10836 0x0A5E, 0x0A5E, 0x0A66, 0x0A76, 0xA830, 0xA839, | |
10837 // #270 (17506+17): scx=Gujarati:Gujr | |
10838 0x0951, 0x0952, 0x0964, 0x0965, 0x0A81, 0x0A83, 0x0A85, 0x0A8D, | |
10839 0x0A8F, 0x0A91, 0x0A93, 0x0AA8, 0x0AAA, 0x0AB0, 0x0AB2, 0x0AB3, | |
10840 0x0AB5, 0x0AB9, 0x0ABC, 0x0AC5, 0x0AC7, 0x0AC9, 0x0ACB, 0x0ACD, | |
10841 0x0AD0, 0x0AD0, 0x0AE0, 0x0AE3, 0x0AE6, 0x0AF1, 0x0AF9, 0x0AFF, | |
10842 0xA830, 0xA839, | |
10843 // #271 (17523+18): scx=Oriya:Orya | |
10844 0x0951, 0x0952, 0x0964, 0x0965, 0x0B01, 0x0B03, 0x0B05, 0x0B0C, | |
10845 0x0B0F, 0x0B10, 0x0B13, 0x0B28, 0x0B2A, 0x0B30, 0x0B32, 0x0B33, | |
10846 0x0B35, 0x0B39, 0x0B3C, 0x0B44, 0x0B47, 0x0B48, 0x0B4B, 0x0B4D, | |
10847 0x0B55, 0x0B57, 0x0B5C, 0x0B5D, 0x0B5F, 0x0B63, 0x0B66, 0x0B77, | |
10848 0x1CDA, 0x1CDA, 0x1CF2, 0x1CF2, | |
10849 // #272 (17541+25): scx=Tamil:Taml | |
10850 0x0951, 0x0952, 0x0964, 0x0965, 0x0B82, 0x0B83, 0x0B85, 0x0B8A, | |
10851 0x0B8E, 0x0B90, 0x0B92, 0x0B95, 0x0B99, 0x0B9A, 0x0B9C, 0x0B9C, | |
10852 0x0B9E, 0x0B9F, 0x0BA3, 0x0BA4, 0x0BA8, 0x0BAA, 0x0BAE, 0x0BB9, | |
10853 0x0BBE, 0x0BC2, 0x0BC6, 0x0BC8, 0x0BCA, 0x0BCD, 0x0BD0, 0x0BD0, | |
10854 0x0BD7, 0x0BD7, 0x0BE6, 0x0BFA, 0x1CDA, 0x1CDA, 0xA8F3, 0xA8F3, | |
10855 0x11301, 0x11301, 0x11303, 0x11303, 0x1133B, 0x1133C, 0x11FC0, 0x11FF1, | |
10856 0x11FFF, 0x11FFF, | |
10857 // #273 (17566+17): scx=Telugu:Telu | |
10858 0x0951, 0x0952, 0x0964, 0x0965, 0x0C00, 0x0C0C, 0x0C0E, 0x0C10, | |
10859 0x0C12, 0x0C28, 0x0C2A, 0x0C39, 0x0C3C, 0x0C44, 0x0C46, 0x0C48, | |
10860 0x0C4A, 0x0C4D, 0x0C55, 0x0C56, 0x0C58, 0x0C5A, 0x0C5D, 0x0C5D, | |
10861 0x0C60, 0x0C63, 0x0C66, 0x0C6F, 0x0C77, 0x0C7F, 0x1CDA, 0x1CDA, | |
10862 0x1CF2, 0x1CF2, | |
10863 // #274 (17583+21): scx=Kannada:Knda | |
10864 0x0951, 0x0952, 0x0964, 0x0965, 0x0C80, 0x0C8C, 0x0C8E, 0x0C90, | |
10865 0x0C92, 0x0CA8, 0x0CAA, 0x0CB3, 0x0CB5, 0x0CB9, 0x0CBC, 0x0CC4, | |
10866 0x0CC6, 0x0CC8, 0x0CCA, 0x0CCD, 0x0CD5, 0x0CD6, 0x0CDD, 0x0CDE, | |
10867 0x0CE0, 0x0CE3, 0x0CE6, 0x0CEF, 0x0CF1, 0x0CF3, 0x1CD0, 0x1CD0, | |
10868 0x1CD2, 0x1CD2, 0x1CDA, 0x1CDA, 0x1CF2, 0x1CF2, 0x1CF4, 0x1CF4, | |
10869 0xA830, 0xA835, | |
10870 // #275 (17604+12): scx=Malayalam:Mlym | |
10871 0x0951, 0x0952, 0x0964, 0x0965, 0x0D00, 0x0D0C, 0x0D0E, 0x0D10, | |
10872 0x0D12, 0x0D44, 0x0D46, 0x0D48, 0x0D4A, 0x0D4F, 0x0D54, 0x0D63, | |
10873 0x0D66, 0x0D7F, 0x1CDA, 0x1CDA, 0x1CF2, 0x1CF2, 0xA830, 0xA832, | |
10874 // #276 (17616+15): scx=Sinhala:Sinh | |
10875 0x0964, 0x0965, 0x0D81, 0x0D83, 0x0D85, 0x0D96, 0x0D9A, 0x0DB1, | |
10876 0x0DB3, 0x0DBB, 0x0DBD, 0x0DBD, 0x0DC0, 0x0DC6, 0x0DCA, 0x0DCA, | |
10877 0x0DCF, 0x0DD4, 0x0DD6, 0x0DD6, 0x0DD8, 0x0DDF, 0x0DE6, 0x0DEF, | |
10878 0x0DF2, 0x0DF4, 0x1CF2, 0x1CF2, 0x111E1, 0x111F4, | |
10879 // #277 (17631+4): scx=Myanmar:Mymr | |
10880 0x1000, 0x109F, 0xA92E, 0xA92E, 0xA9E0, 0xA9FE, 0xAA60, 0xAA7F, | |
10881 // #278 (17635+9): scx=Georgian:Geor | |
10882 0x10A0, 0x10C5, 0x10C7, 0x10C7, 0x10CD, 0x10CD, 0x10D0, 0x10FF, | |
10883 0x1C90, 0x1CBA, 0x1CBD, 0x1CBF, 0x2D00, 0x2D25, 0x2D27, 0x2D27, | |
10884 0x2D2D, 0x2D2D, | |
10885 // #279 (17644+21): scx=Hangul:Hang | |
10886 0x1100, 0x11FF, 0x3001, 0x3003, 0x3008, 0x3011, 0x3013, 0x301F, | |
10887 0x302E, 0x3030, 0x3037, 0x3037, 0x30FB, 0x30FB, 0x3131, 0x318E, | |
10888 0x3200, 0x321E, 0x3260, 0x327E, 0xA960, 0xA97C, 0xAC00, 0xD7A3, | |
10889 0xD7B0, 0xD7C6, 0xD7CB, 0xD7FB, 0xFE45, 0xFE46, 0xFF61, 0xFF65, | |
10890 0xFFA0, 0xFFBE, 0xFFC2, 0xFFC7, 0xFFCA, 0xFFCF, 0xFFD2, 0xFFD7, | |
10891 0xFFDA, 0xFFDC, | |
10892 // #280 (17665+5): scx=Mongolian:Mong | |
10893 0x1800, 0x1819, 0x1820, 0x1878, 0x1880, 0x18AA, 0x202F, 0x202F, | |
10894 0x11660, 0x1166C, | |
10895 // #281 (17670+17): scx=Hiragana:Hira | |
10896 0x3001, 0x3003, 0x3008, 0x3011, 0x3013, 0x301F, 0x3030, 0x3035, | |
10897 0x3037, 0x3037, 0x303C, 0x303D, 0x3041, 0x3096, 0x3099, 0x30A0, | |
10898 0x30FB, 0x30FC, 0xFE45, 0xFE46, 0xFF61, 0xFF65, 0xFF70, 0xFF70, | |
10899 0xFF9E, 0xFF9F, 0x1B001, 0x1B11F, 0x1B132, 0x1B132, 0x1B150, 0x1B152, | |
10900 0x1F200, 0x1F200, | |
10901 // #282 (17687+20): scx=Katakana:Kana | |
10902 0x3001, 0x3003, 0x3008, 0x3011, 0x3013, 0x301F, 0x3030, 0x3035, | |
10903 0x3037, 0x3037, 0x303C, 0x303D, 0x3099, 0x309C, 0x30A0, 0x30FF, | |
10904 0x31F0, 0x31FF, 0x32D0, 0x32FE, 0x3300, 0x3357, 0xFE45, 0xFE46, | |
10905 0xFF61, 0xFF9F, 0x1AFF0, 0x1AFF3, 0x1AFF5, 0x1AFFB, 0x1AFFD, 0x1AFFE, | |
10906 0x1B000, 0x1B000, 0x1B120, 0x1B122, 0x1B155, 0x1B155, 0x1B164, 0x1B167, | |
10907 // #283 (17707+12): scx=Bopomofo:Bopo | |
10908 0x02EA, 0x02EB, 0x3001, 0x3003, 0x3008, 0x3011, 0x3013, 0x301F, | |
10909 0x302A, 0x302D, 0x3030, 0x3030, 0x3037, 0x3037, 0x30FB, 0x30FB, | |
10910 0x3105, 0x312F, 0x31A0, 0x31BF, 0xFE45, 0xFE46, 0xFF61, 0xFF65, | |
10911 // #284 (17719+39): scx=Han:Hani | |
10912 0x2E80, 0x2E99, 0x2E9B, 0x2EF3, 0x2F00, 0x2FD5, 0x3001, 0x3003, | |
10913 0x3005, 0x3011, 0x3013, 0x301F, 0x3021, 0x302D, 0x3030, 0x3030, | |
10914 0x3037, 0x303F, 0x30FB, 0x30FB, 0x3190, 0x319F, 0x31C0, 0x31E3, | |
10915 0x3220, 0x3247, 0x3280, 0x32B0, 0x32C0, 0x32CB, 0x32FF, 0x32FF, | |
10916 0x3358, 0x3370, 0x337B, 0x337F, 0x33E0, 0x33FE, 0x3400, 0x4DBF, | |
10917 0x4E00, 0x9FFF, 0xA700, 0xA707, 0xF900, 0xFA6D, 0xFA70, 0xFAD9, | |
10918 0xFE45, 0xFE46, 0xFF61, 0xFF65, 0x16FE2, 0x16FE3, 0x16FF0, 0x16FF1, | |
10919 0x1D360, 0x1D371, 0x1F250, 0x1F251, 0x20000, 0x2A6DF, 0x2A700, 0x2B739, | |
10920 0x2B740, 0x2B81D, 0x2B820, 0x2CEA1, 0x2CEB0, 0x2EBE0, 0x2EBF0, 0x2EE5D, | |
10921 0x2F800, 0x2FA1D, 0x30000, 0x3134A, 0x31350, 0x323AF, | |
10922 // #285 (17758+7): scx=Yi:Yiii | |
10923 0x3001, 0x3002, 0x3008, 0x3011, 0x3014, 0x301B, 0x30FB, 0x30FB, | |
10924 0xA000, 0xA48C, 0xA490, 0xA4C6, 0xFF61, 0xFF65, | |
10925 // #286 (17765+20): scx=Inherited:Zinh:Qaai | |
10926 0x0300, 0x0341, 0x0343, 0x0344, 0x0346, 0x0362, 0x0953, 0x0954, | |
10927 0x1AB0, 0x1ACE, 0x1DC2, 0x1DF7, 0x1DF9, 0x1DF9, 0x1DFB, 0x1DFF, | |
10928 0x200C, 0x200D, 0x20D0, 0x20EF, 0xFE00, 0xFE0F, 0xFE20, 0xFE2D, | |
10929 0x101FD, 0x101FD, 0x1CF00, 0x1CF2D, 0x1CF30, 0x1CF46, 0x1D167, 0x1D169, | |
10930 0x1D17B, 0x1D182, 0x1D185, 0x1D18B, 0x1D1AA, 0x1D1AD, 0xE0100, 0xE01EF, | |
10931 // #287 (17785+3): scx=Tagalog:Tglg | |
10932 0x1700, 0x1715, 0x171F, 0x171F, 0x1735, 0x1736, | |
10933 // #288 (17788+1): scx=Hanunoo:Hano | |
10934 0x1720, 0x1736, | |
10935 // #289 (17789+2): scx=Buhid:Buhd | |
10936 0x1735, 0x1736, 0x1740, 0x1753, | |
10937 // #290 (17791+4): scx=Tagbanwa:Tagb | |
10938 0x1735, 0x1736, 0x1760, 0x176C, 0x176E, 0x1770, 0x1772, 0x1773, | |
10939 // #291 (17795+6): scx=Limbu:Limb | |
10940 0x0965, 0x0965, 0x1900, 0x191E, 0x1920, 0x192B, 0x1930, 0x193B, | |
10941 0x1940, 0x1940, 0x1944, 0x194F, | |
10942 // #292 (17801+3): scx=Tai_Le:Tale | |
10943 0x1040, 0x1049, 0x1950, 0x196D, 0x1970, 0x1974, | |
10944 // #293 (17804+10): scx=Linear_B:Linb | |
10945 0x10000, 0x1000B, 0x1000D, 0x10026, 0x10028, 0x1003A, 0x1003C, 0x1003D, | |
10946 0x1003F, 0x1004D, 0x10050, 0x1005D, 0x10080, 0x100FA, 0x10100, 0x10102, | |
10947 0x10107, 0x10133, 0x10137, 0x1013F, | |
10948 // #294 (17814+9): scx=Cypriot:Cprt | |
10949 0x10100, 0x10102, 0x10107, 0x10133, 0x10137, 0x1013F, 0x10800, 0x10805, | |
10950 0x10808, 0x10808, 0x1080A, 0x10835, 0x10837, 0x10838, 0x1083C, 0x1083C, | |
10951 0x1083F, 0x1083F, | |
10952 // #295 (17823+3): scx=Buginese:Bugi | |
10953 0x1A00, 0x1A1B, 0x1A1E, 0x1A1F, 0xA9CF, 0xA9CF, | |
10954 // #296 (17826+4): scx=Coptic:Copt:Qaac | |
10955 0x03E2, 0x03EF, 0x2C80, 0x2CF3, 0x2CF9, 0x2CFF, 0x102E0, 0x102FB, | |
10956 // #297 (17830+10): scx=Glagolitic:Glag | |
10957 0x0484, 0x0484, 0x0487, 0x0487, 0x2C00, 0x2C5F, 0x2E43, 0x2E43, | |
10958 0xA66F, 0xA66F, 0x1E000, 0x1E006, 0x1E008, 0x1E018, 0x1E01B, 0x1E021, | |
10959 0x1E023, 0x1E024, 0x1E026, 0x1E02A, | |
10960 // #298 (17840+3): scx=Syloti_Nagri:Sylo | |
10961 0x0964, 0x0965, 0x09E6, 0x09EF, 0xA800, 0xA82C, | |
10962 // #299 (17843+3): scx=Phags_Pa:Phag | |
10963 0x1802, 0x1803, 0x1805, 0x1805, 0xA840, 0xA877, | |
10964 // #300 (17846+6): scx=Nko:Nkoo | |
10965 0x060C, 0x060C, 0x061B, 0x061B, 0x061F, 0x061F, 0x07C0, 0x07FA, | |
10966 0x07FD, 0x07FF, 0xFD3E, 0xFD3F, | |
10967 // #301 (17852+1): scx=Kayah_Li:Kali | |
10968 0xA900, 0xA92F, | |
10969 // #302 (17853+3): scx=Javanese:Java | |
10970 0xA980, 0xA9CD, 0xA9CF, 0xA9D9, 0xA9DE, 0xA9DF, | |
10971 // #303 (17856+4): scx=Kaithi:Kthi | |
10972 0x0966, 0x096F, 0xA830, 0xA839, 0x11080, 0x110C2, 0x110CD, 0x110CD, | |
10973 // #304 (17860+3): scx=Mandaic:Mand | |
10974 0x0640, 0x0640, 0x0840, 0x085B, 0x085E, 0x085E, | |
10975 // #305 (17863+4): scx=Chakma:Cakm | |
10976 0x09E6, 0x09EF, 0x1040, 0x1049, 0x11100, 0x11134, 0x11136, 0x11147, | |
10977 // #306 (17867+8): scx=Sharada:Shrd | |
10978 0x0951, 0x0951, 0x1CD7, 0x1CD7, 0x1CD9, 0x1CD9, 0x1CDC, 0x1CDD, | |
10979 0x1CE0, 0x1CE0, 0xA830, 0xA835, 0xA838, 0xA838, 0x11180, 0x111DF, | |
10980 // #307 (17875+4): scx=Takri:Takr | |
10981 0x0964, 0x0965, 0xA830, 0xA839, 0x11680, 0x116B9, 0x116C0, 0x116C9, | |
10982 // #308 (17879+5): scx=Duployan:Dupl | |
10983 0x1BC00, 0x1BC6A, 0x1BC70, 0x1BC7C, 0x1BC80, 0x1BC88, 0x1BC90, 0x1BC99, | |
10984 0x1BC9C, 0x1BCA3, | |
10985 // #309 (17884+25): scx=Grantha:Gran | |
10986 0x0951, 0x0952, 0x0964, 0x0965, 0x0BE6, 0x0BF3, 0x1CD0, 0x1CD0, | |
10987 0x1CD2, 0x1CD3, 0x1CF2, 0x1CF4, 0x1CF8, 0x1CF9, 0x20F0, 0x20F0, | |
10988 0x11300, 0x11303, 0x11305, 0x1130C, 0x1130F, 0x11310, 0x11313, 0x11328, | |
10989 0x1132A, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133B, 0x11344, | |
10990 0x11347, 0x11348, 0x1134B, 0x1134D, 0x11350, 0x11350, 0x11357, 0x11357, | |
10991 0x1135D, 0x11363, 0x11366, 0x1136C, 0x11370, 0x11374, 0x11FD0, 0x11FD1, | |
10992 0x11FD3, 0x11FD3, | |
10993 // #310 (17909+4): scx=Khojki:Khoj | |
10994 0x0AE6, 0x0AEF, 0xA830, 0xA839, 0x11200, 0x11211, 0x11213, 0x11241, | |
10995 // #311 (17913+4): scx=Linear_A:Lina | |
10996 0x10107, 0x10133, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, | |
10997 // #312 (17917+3): scx=Mahajani:Mahj | |
10998 0x0964, 0x096F, 0xA830, 0xA839, 0x11150, 0x11176, | |
10999 // #313 (17920+3): scx=Manichaean:Mani | |
11000 0x0640, 0x0640, 0x10AC0, 0x10AE6, 0x10AEB, 0x10AF6, | |
11001 // #314 (17923+3): scx=Modi | |
11002 0xA830, 0xA839, 0x11600, 0x11644, 0x11650, 0x11659, | |
11003 // #315 (17926+2): scx=Old_Permic:Perm | |
11004 0x0483, 0x0483, 0x10350, 0x1037A, | |
11005 // #316 (17928+4): scx=Psalter_Pahlavi:Phlp | |
11006 0x0640, 0x0640, 0x10B80, 0x10B91, 0x10B99, 0x10B9C, 0x10BA9, 0x10BAF, | |
11007 // #317 (17932+4): scx=Khudawadi:Sind | |
11008 0x0964, 0x0965, 0xA830, 0xA839, 0x112B0, 0x112EA, 0x112F0, 0x112F9, | |
11009 // #318 (17936+6): scx=Tirhuta:Tirh | |
11010 0x0951, 0x0952, 0x0964, 0x0965, 0x1CF2, 0x1CF2, 0xA830, 0xA839, | |
11011 0x11480, 0x114C7, 0x114D0, 0x114D9, | |
11012 // #319 (17942+6): scx=Multani:Mult | |
11013 0x0A66, 0x0A6F, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128A, 0x1128D, | |
11014 0x1128F, 0x1129D, 0x1129F, 0x112A9, | |
11015 // #320 (17948+5): scx=Adlam:Adlm | |
11016 0x061F, 0x061F, 0x0640, 0x0640, 0x1E900, 0x1E94B, 0x1E950, 0x1E959, | |
11017 0x1E95E, 0x1E95F, | |
11018 // #321 (17953+8): scx=Masaram_Gondi:Gonm | |
11019 0x0964, 0x0965, 0x11D00, 0x11D06, 0x11D08, 0x11D09, 0x11D0B, 0x11D36, | |
11020 0x11D3A, 0x11D3A, 0x11D3C, 0x11D3D, 0x11D3F, 0x11D47, 0x11D50, 0x11D59, | |
11021 // #322 (17961+3): scx=Dogra:Dogr | |
11022 0x0964, 0x096F, 0xA830, 0xA839, 0x11800, 0x1183B, | |
11023 // #323 (17964+7): scx=Gunjala_Gondi:Gong | |
11024 0x0964, 0x0965, 0x11D60, 0x11D65, 0x11D67, 0x11D68, 0x11D6A, 0x11D8E, | |
11025 0x11D90, 0x11D91, 0x11D93, 0x11D98, 0x11DA0, 0x11DA9, | |
11026 // #324 (17971+7): scx=Hanifi_Rohingya:Rohg | |
11027 0x060C, 0x060C, 0x061B, 0x061B, 0x061F, 0x061F, 0x0640, 0x0640, | |
11028 0x06D4, 0x06D4, 0x10D00, 0x10D27, 0x10D30, 0x10D39, | |
11029 // #325 (17978+2): scx=Sogdian:Sogd | |
11030 0x0640, 0x0640, 0x10F30, 0x10F59, | |
11031 // #326 (17980+9): scx=Nandinagari:Nand | |
11032 0x0964, 0x0965, 0x0CE6, 0x0CEF, 0x1CE9, 0x1CE9, 0x1CF2, 0x1CF2, | |
11033 0x1CFA, 0x1CFA, 0xA830, 0xA835, 0x119A0, 0x119A7, 0x119AA, 0x119D7, | |
11034 0x119DA, 0x119E4, | |
11035 // #327 (17989+7): scx=Yezidi:Yezi | |
11036 0x060C, 0x060C, 0x061B, 0x061B, 0x061F, 0x061F, 0x0660, 0x0669, | |
11037 0x10E80, 0x10EA9, 0x10EAB, 0x10EAD, 0x10EB0, 0x10EB1, | |
11038 // #328 (17996+2): scx=Cypro_Minoan:Cpmn | |
11039 0x10100, 0x10101, 0x12F90, 0x12FF2, | |
11040 // #329 (17998+3): scx=Old_Uyghur:Ougr | |
11041 0x0640, 0x0640, 0x10AF2, 0x10AF2, 0x10F70, 0x10F89 | |
11042 #if !defined(SRELL_NO_UNICODE_POS) | |
11043 , | |
11044 // #330 (18001+13532/2): bp=RGI_Emoji | |
11045 // 1338/2 + 48/2 + 1966/2 + 774/2 + 24/2 + 9382/2 | |
11046 // #331 (18001+1338/2): bp=Basic_Emoji | |
11047 1, 0x231A, 0x231B, | |
11048 1, 0x23E9, 0x23EC, | |
11049 2, 0x23F0, | |
11050 2, 0x23F3, | |
11051 1, 0x25FD, 0x25FE, | |
11052 1, 0x2614, 0x2615, | |
11053 1, 0x2648, 0x2653, | |
11054 2, 0x267F, | |
11055 2, 0x2693, | |
11056 2, 0x26A1, | |
11057 1, 0x26AA, 0x26AB, | |
11058 1, 0x26BD, 0x26BE, | |
11059 1, 0x26C4, 0x26C5, | |
11060 2, 0x26CE, | |
11061 2, 0x26D4, | |
11062 2, 0x26EA, | |
11063 1, 0x26F2, 0x26F3, | |
11064 2, 0x26F5, | |
11065 2, 0x26FA, | |
11066 2, 0x26FD, | |
11067 2, 0x2705, | |
11068 1, 0x270A, 0x270B, | |
11069 2, 0x2728, | |
11070 2, 0x274C, | |
11071 2, 0x274E, | |
11072 1, 0x2753, 0x2755, | |
11073 2, 0x2757, | |
11074 1, 0x2795, 0x2797, | |
11075 2, 0x27B0, | |
11076 2, 0x27BF, | |
11077 1, 0x2B1B, 0x2B1C, | |
11078 2, 0x2B50, | |
11079 2, 0x2B55, | |
11080 2, 0x1F004, | |
11081 2, 0x1F0CF, | |
11082 2, 0x1F18E, | |
11083 1, 0x1F191, 0x1F19A, | |
11084 2, 0x1F201, | |
11085 2, 0x1F21A, | |
11086 2, 0x1F22F, | |
11087 1, 0x1F232, 0x1F236, | |
11088 1, 0x1F238, 0x1F23A, | |
11089 1, 0x1F250, 0x1F251, | |
11090 1, 0x1F300, 0x1F30C, | |
11091 1, 0x1F30D, 0x1F30E, | |
11092 2, 0x1F30F, | |
11093 2, 0x1F310, | |
11094 2, 0x1F311, | |
11095 2, 0x1F312, | |
11096 1, 0x1F313, 0x1F315, | |
11097 1, 0x1F316, 0x1F318, | |
11098 2, 0x1F319, | |
11099 2, 0x1F31A, | |
11100 2, 0x1F31B, | |
11101 2, 0x1F31C, | |
11102 1, 0x1F31D, 0x1F31E, | |
11103 1, 0x1F31F, 0x1F320, | |
11104 1, 0x1F32D, 0x1F32F, | |
11105 1, 0x1F330, 0x1F331, | |
11106 1, 0x1F332, 0x1F333, | |
11107 1, 0x1F334, 0x1F335, | |
11108 1, 0x1F337, 0x1F34A, | |
11109 2, 0x1F34B, | |
11110 1, 0x1F34C, 0x1F34F, | |
11111 2, 0x1F350, | |
11112 1, 0x1F351, 0x1F37B, | |
11113 2, 0x1F37C, | |
11114 1, 0x1F37E, 0x1F37F, | |
11115 1, 0x1F380, 0x1F393, | |
11116 1, 0x1F3A0, 0x1F3C4, | |
11117 2, 0x1F3C5, | |
11118 2, 0x1F3C6, | |
11119 2, 0x1F3C7, | |
11120 2, 0x1F3C8, | |
11121 2, 0x1F3C9, | |
11122 2, 0x1F3CA, | |
11123 1, 0x1F3CF, 0x1F3D3, | |
11124 1, 0x1F3E0, 0x1F3E3, | |
11125 2, 0x1F3E4, | |
11126 1, 0x1F3E5, 0x1F3F0, | |
11127 2, 0x1F3F4, | |
11128 1, 0x1F3F8, 0x1F407, | |
11129 2, 0x1F408, | |
11130 1, 0x1F409, 0x1F40B, | |
11131 1, 0x1F40C, 0x1F40E, | |
11132 1, 0x1F40F, 0x1F410, | |
11133 1, 0x1F411, 0x1F412, | |
11134 2, 0x1F413, | |
11135 2, 0x1F414, | |
11136 2, 0x1F415, | |
11137 2, 0x1F416, | |
11138 1, 0x1F417, 0x1F429, | |
11139 2, 0x1F42A, | |
11140 1, 0x1F42B, 0x1F43E, | |
11141 2, 0x1F440, | |
11142 1, 0x1F442, 0x1F464, | |
11143 2, 0x1F465, | |
11144 1, 0x1F466, 0x1F46B, | |
11145 1, 0x1F46C, 0x1F46D, | |
11146 1, 0x1F46E, 0x1F4AC, | |
11147 2, 0x1F4AD, | |
11148 1, 0x1F4AE, 0x1F4B5, | |
11149 1, 0x1F4B6, 0x1F4B7, | |
11150 1, 0x1F4B8, 0x1F4EB, | |
11151 1, 0x1F4EC, 0x1F4ED, | |
11152 2, 0x1F4EE, | |
11153 2, 0x1F4EF, | |
11154 1, 0x1F4F0, 0x1F4F4, | |
11155 2, 0x1F4F5, | |
11156 1, 0x1F4F6, 0x1F4F7, | |
11157 2, 0x1F4F8, | |
11158 1, 0x1F4F9, 0x1F4FC, | |
11159 1, 0x1F4FF, 0x1F502, | |
11160 2, 0x1F503, | |
11161 1, 0x1F504, 0x1F507, | |
11162 2, 0x1F508, | |
11163 2, 0x1F509, | |
11164 1, 0x1F50A, 0x1F514, | |
11165 2, 0x1F515, | |
11166 1, 0x1F516, 0x1F52B, | |
11167 1, 0x1F52C, 0x1F52D, | |
11168 1, 0x1F52E, 0x1F53D, | |
11169 1, 0x1F54B, 0x1F54E, | |
11170 1, 0x1F550, 0x1F55B, | |
11171 1, 0x1F55C, 0x1F567, | |
11172 2, 0x1F57A, | |
11173 1, 0x1F595, 0x1F596, | |
11174 2, 0x1F5A4, | |
11175 1, 0x1F5FB, 0x1F5FF, | |
11176 2, 0x1F600, | |
11177 1, 0x1F601, 0x1F606, | |
11178 1, 0x1F607, 0x1F608, | |
11179 1, 0x1F609, 0x1F60D, | |
11180 2, 0x1F60E, | |
11181 2, 0x1F60F, | |
11182 2, 0x1F610, | |
11183 2, 0x1F611, | |
11184 1, 0x1F612, 0x1F614, | |
11185 2, 0x1F615, | |
11186 2, 0x1F616, | |
11187 2, 0x1F617, | |
11188 2, 0x1F618, | |
11189 2, 0x1F619, | |
11190 2, 0x1F61A, | |
11191 2, 0x1F61B, | |
11192 1, 0x1F61C, 0x1F61E, | |
11193 2, 0x1F61F, | |
11194 1, 0x1F620, 0x1F625, | |
11195 1, 0x1F626, 0x1F627, | |
11196 1, 0x1F628, 0x1F62B, | |
11197 2, 0x1F62C, | |
11198 2, 0x1F62D, | |
11199 1, 0x1F62E, 0x1F62F, | |
11200 1, 0x1F630, 0x1F633, | |
11201 2, 0x1F634, | |
11202 2, 0x1F635, | |
11203 2, 0x1F636, | |
11204 1, 0x1F637, 0x1F640, | |
11205 1, 0x1F641, 0x1F644, | |
11206 1, 0x1F645, 0x1F64F, | |
11207 2, 0x1F680, | |
11208 1, 0x1F681, 0x1F682, | |
11209 1, 0x1F683, 0x1F685, | |
11210 2, 0x1F686, | |
11211 2, 0x1F687, | |
11212 2, 0x1F688, | |
11213 2, 0x1F689, | |
11214 1, 0x1F68A, 0x1F68B, | |
11215 2, 0x1F68C, | |
11216 2, 0x1F68D, | |
11217 2, 0x1F68E, | |
11218 2, 0x1F68F, | |
11219 2, 0x1F690, | |
11220 1, 0x1F691, 0x1F693, | |
11221 2, 0x1F694, | |
11222 2, 0x1F695, | |
11223 2, 0x1F696, | |
11224 2, 0x1F697, | |
11225 2, 0x1F698, | |
11226 1, 0x1F699, 0x1F69A, | |
11227 1, 0x1F69B, 0x1F6A1, | |
11228 2, 0x1F6A2, | |
11229 2, 0x1F6A3, | |
11230 1, 0x1F6A4, 0x1F6A5, | |
11231 2, 0x1F6A6, | |
11232 1, 0x1F6A7, 0x1F6AD, | |
11233 1, 0x1F6AE, 0x1F6B1, | |
11234 2, 0x1F6B2, | |
11235 1, 0x1F6B3, 0x1F6B5, | |
11236 2, 0x1F6B6, | |
11237 1, 0x1F6B7, 0x1F6B8, | |
11238 1, 0x1F6B9, 0x1F6BE, | |
11239 2, 0x1F6BF, | |
11240 2, 0x1F6C0, | |
11241 1, 0x1F6C1, 0x1F6C5, | |
11242 2, 0x1F6CC, | |
11243 2, 0x1F6D0, | |
11244 1, 0x1F6D1, 0x1F6D2, | |
11245 2, 0x1F6D5, | |
11246 1, 0x1F6D6, 0x1F6D7, | |
11247 2, 0x1F6DC, | |
11248 1, 0x1F6DD, 0x1F6DF, | |
11249 1, 0x1F6EB, 0x1F6EC, | |
11250 1, 0x1F6F4, 0x1F6F6, | |
11251 1, 0x1F6F7, 0x1F6F8, | |
11252 2, 0x1F6F9, | |
11253 2, 0x1F6FA, | |
11254 1, 0x1F6FB, 0x1F6FC, | |
11255 1, 0x1F7E0, 0x1F7EB, | |
11256 2, 0x1F7F0, | |
11257 2, 0x1F90C, | |
11258 1, 0x1F90D, 0x1F90F, | |
11259 1, 0x1F910, 0x1F918, | |
11260 1, 0x1F919, 0x1F91E, | |
11261 2, 0x1F91F, | |
11262 1, 0x1F920, 0x1F927, | |
11263 1, 0x1F928, 0x1F92F, | |
11264 2, 0x1F930, | |
11265 1, 0x1F931, 0x1F932, | |
11266 1, 0x1F933, 0x1F93A, | |
11267 1, 0x1F93C, 0x1F93E, | |
11268 2, 0x1F93F, | |
11269 1, 0x1F940, 0x1F945, | |
11270 1, 0x1F947, 0x1F94B, | |
11271 2, 0x1F94C, | |
11272 1, 0x1F94D, 0x1F94F, | |
11273 1, 0x1F950, 0x1F95E, | |
11274 1, 0x1F95F, 0x1F96B, | |
11275 1, 0x1F96C, 0x1F970, | |
11276 2, 0x1F971, | |
11277 2, 0x1F972, | |
11278 1, 0x1F973, 0x1F976, | |
11279 1, 0x1F977, 0x1F978, | |
11280 2, 0x1F979, | |
11281 2, 0x1F97A, | |
11282 2, 0x1F97B, | |
11283 1, 0x1F97C, 0x1F97F, | |
11284 1, 0x1F980, 0x1F984, | |
11285 1, 0x1F985, 0x1F991, | |
11286 1, 0x1F992, 0x1F997, | |
11287 1, 0x1F998, 0x1F9A2, | |
11288 1, 0x1F9A3, 0x1F9A4, | |
11289 1, 0x1F9A5, 0x1F9AA, | |
11290 1, 0x1F9AB, 0x1F9AD, | |
11291 1, 0x1F9AE, 0x1F9AF, | |
11292 1, 0x1F9B0, 0x1F9B9, | |
11293 1, 0x1F9BA, 0x1F9BF, | |
11294 2, 0x1F9C0, | |
11295 1, 0x1F9C1, 0x1F9C2, | |
11296 1, 0x1F9C3, 0x1F9CA, | |
11297 2, 0x1F9CB, | |
11298 2, 0x1F9CC, | |
11299 1, 0x1F9CD, 0x1F9CF, | |
11300 1, 0x1F9D0, 0x1F9E6, | |
11301 1, 0x1F9E7, 0x1F9FF, | |
11302 1, 0x1FA70, 0x1FA73, | |
11303 2, 0x1FA74, | |
11304 1, 0x1FA75, 0x1FA77, | |
11305 1, 0x1FA78, 0x1FA7A, | |
11306 1, 0x1FA7B, 0x1FA7C, | |
11307 1, 0x1FA80, 0x1FA82, | |
11308 1, 0x1FA83, 0x1FA86, | |
11309 1, 0x1FA87, 0x1FA88, | |
11310 1, 0x1FA90, 0x1FA95, | |
11311 1, 0x1FA96, 0x1FAA8, | |
11312 1, 0x1FAA9, 0x1FAAC, | |
11313 1, 0x1FAAD, 0x1FAAF, | |
11314 1, 0x1FAB0, 0x1FAB6, | |
11315 1, 0x1FAB7, 0x1FABA, | |
11316 1, 0x1FABB, 0x1FABD, | |
11317 2, 0x1FABF, | |
11318 1, 0x1FAC0, 0x1FAC2, | |
11319 1, 0x1FAC3, 0x1FAC5, | |
11320 1, 0x1FACE, 0x1FACF, | |
11321 1, 0x1FAD0, 0x1FAD6, | |
11322 1, 0x1FAD7, 0x1FAD9, | |
11323 1, 0x1FADA, 0x1FADB, | |
11324 1, 0x1FAE0, 0x1FAE7, | |
11325 2, 0x1FAE8, | |
11326 1, 0x1FAF0, 0x1FAF6, | |
11327 1, 0x1FAF7, 0x1FAF8, | |
11328 3, 0x00A9, 0xFE0F, | |
11329 3, 0x00AE, 0xFE0F, | |
11330 3, 0x203C, 0xFE0F, | |
11331 3, 0x2049, 0xFE0F, | |
11332 3, 0x2122, 0xFE0F, | |
11333 3, 0x2139, 0xFE0F, | |
11334 3, 0x2194, 0xFE0F, | |
11335 3, 0x2195, 0xFE0F, | |
11336 3, 0x2196, 0xFE0F, | |
11337 3, 0x2197, 0xFE0F, | |
11338 3, 0x2198, 0xFE0F, | |
11339 3, 0x2199, 0xFE0F, | |
11340 3, 0x21A9, 0xFE0F, | |
11341 3, 0x21AA, 0xFE0F, | |
11342 3, 0x2328, 0xFE0F, | |
11343 3, 0x23CF, 0xFE0F, | |
11344 3, 0x23ED, 0xFE0F, | |
11345 3, 0x23EE, 0xFE0F, | |
11346 3, 0x23EF, 0xFE0F, | |
11347 3, 0x23F1, 0xFE0F, | |
11348 3, 0x23F2, 0xFE0F, | |
11349 3, 0x23F8, 0xFE0F, | |
11350 3, 0x23F9, 0xFE0F, | |
11351 3, 0x23FA, 0xFE0F, | |
11352 3, 0x24C2, 0xFE0F, | |
11353 3, 0x25AA, 0xFE0F, | |
11354 3, 0x25AB, 0xFE0F, | |
11355 3, 0x25B6, 0xFE0F, | |
11356 3, 0x25C0, 0xFE0F, | |
11357 3, 0x25FB, 0xFE0F, | |
11358 3, 0x25FC, 0xFE0F, | |
11359 3, 0x2600, 0xFE0F, | |
11360 3, 0x2601, 0xFE0F, | |
11361 3, 0x2602, 0xFE0F, | |
11362 3, 0x2603, 0xFE0F, | |
11363 3, 0x2604, 0xFE0F, | |
11364 3, 0x260E, 0xFE0F, | |
11365 3, 0x2611, 0xFE0F, | |
11366 3, 0x2618, 0xFE0F, | |
11367 3, 0x261D, 0xFE0F, | |
11368 3, 0x2620, 0xFE0F, | |
11369 3, 0x2622, 0xFE0F, | |
11370 3, 0x2623, 0xFE0F, | |
11371 3, 0x2626, 0xFE0F, | |
11372 3, 0x262A, 0xFE0F, | |
11373 3, 0x262E, 0xFE0F, | |
11374 3, 0x262F, 0xFE0F, | |
11375 3, 0x2638, 0xFE0F, | |
11376 3, 0x2639, 0xFE0F, | |
11377 3, 0x263A, 0xFE0F, | |
11378 3, 0x2640, 0xFE0F, | |
11379 3, 0x2642, 0xFE0F, | |
11380 3, 0x265F, 0xFE0F, | |
11381 3, 0x2660, 0xFE0F, | |
11382 3, 0x2663, 0xFE0F, | |
11383 3, 0x2665, 0xFE0F, | |
11384 3, 0x2666, 0xFE0F, | |
11385 3, 0x2668, 0xFE0F, | |
11386 3, 0x267B, 0xFE0F, | |
11387 3, 0x267E, 0xFE0F, | |
11388 3, 0x2692, 0xFE0F, | |
11389 3, 0x2694, 0xFE0F, | |
11390 3, 0x2695, 0xFE0F, | |
11391 3, 0x2696, 0xFE0F, | |
11392 3, 0x2697, 0xFE0F, | |
11393 3, 0x2699, 0xFE0F, | |
11394 3, 0x269B, 0xFE0F, | |
11395 3, 0x269C, 0xFE0F, | |
11396 3, 0x26A0, 0xFE0F, | |
11397 3, 0x26A7, 0xFE0F, | |
11398 3, 0x26B0, 0xFE0F, | |
11399 3, 0x26B1, 0xFE0F, | |
11400 3, 0x26C8, 0xFE0F, | |
11401 3, 0x26CF, 0xFE0F, | |
11402 3, 0x26D1, 0xFE0F, | |
11403 3, 0x26D3, 0xFE0F, | |
11404 3, 0x26E9, 0xFE0F, | |
11405 3, 0x26F0, 0xFE0F, | |
11406 3, 0x26F1, 0xFE0F, | |
11407 3, 0x26F4, 0xFE0F, | |
11408 3, 0x26F7, 0xFE0F, | |
11409 3, 0x26F8, 0xFE0F, | |
11410 3, 0x26F9, 0xFE0F, | |
11411 3, 0x2702, 0xFE0F, | |
11412 3, 0x2708, 0xFE0F, | |
11413 3, 0x2709, 0xFE0F, | |
11414 3, 0x270C, 0xFE0F, | |
11415 3, 0x270D, 0xFE0F, | |
11416 3, 0x270F, 0xFE0F, | |
11417 3, 0x2712, 0xFE0F, | |
11418 3, 0x2714, 0xFE0F, | |
11419 3, 0x2716, 0xFE0F, | |
11420 3, 0x271D, 0xFE0F, | |
11421 3, 0x2721, 0xFE0F, | |
11422 3, 0x2733, 0xFE0F, | |
11423 3, 0x2734, 0xFE0F, | |
11424 3, 0x2744, 0xFE0F, | |
11425 3, 0x2747, 0xFE0F, | |
11426 3, 0x2763, 0xFE0F, | |
11427 3, 0x2764, 0xFE0F, | |
11428 3, 0x27A1, 0xFE0F, | |
11429 3, 0x2934, 0xFE0F, | |
11430 3, 0x2935, 0xFE0F, | |
11431 3, 0x2B05, 0xFE0F, | |
11432 3, 0x2B06, 0xFE0F, | |
11433 3, 0x2B07, 0xFE0F, | |
11434 3, 0x3030, 0xFE0F, | |
11435 3, 0x303D, 0xFE0F, | |
11436 3, 0x3297, 0xFE0F, | |
11437 3, 0x3299, 0xFE0F, | |
11438 3, 0x1F170, 0xFE0F, | |
11439 3, 0x1F171, 0xFE0F, | |
11440 3, 0x1F17E, 0xFE0F, | |
11441 3, 0x1F17F, 0xFE0F, | |
11442 3, 0x1F202, 0xFE0F, | |
11443 3, 0x1F237, 0xFE0F, | |
11444 3, 0x1F321, 0xFE0F, | |
11445 3, 0x1F324, 0xFE0F, | |
11446 3, 0x1F325, 0xFE0F, | |
11447 3, 0x1F326, 0xFE0F, | |
11448 3, 0x1F327, 0xFE0F, | |
11449 3, 0x1F328, 0xFE0F, | |
11450 3, 0x1F329, 0xFE0F, | |
11451 3, 0x1F32A, 0xFE0F, | |
11452 3, 0x1F32B, 0xFE0F, | |
11453 3, 0x1F32C, 0xFE0F, | |
11454 3, 0x1F336, 0xFE0F, | |
11455 3, 0x1F37D, 0xFE0F, | |
11456 3, 0x1F396, 0xFE0F, | |
11457 3, 0x1F397, 0xFE0F, | |
11458 3, 0x1F399, 0xFE0F, | |
11459 3, 0x1F39A, 0xFE0F, | |
11460 3, 0x1F39B, 0xFE0F, | |
11461 3, 0x1F39E, 0xFE0F, | |
11462 3, 0x1F39F, 0xFE0F, | |
11463 3, 0x1F3CB, 0xFE0F, | |
11464 3, 0x1F3CC, 0xFE0F, | |
11465 3, 0x1F3CD, 0xFE0F, | |
11466 3, 0x1F3CE, 0xFE0F, | |
11467 3, 0x1F3D4, 0xFE0F, | |
11468 3, 0x1F3D5, 0xFE0F, | |
11469 3, 0x1F3D6, 0xFE0F, | |
11470 3, 0x1F3D7, 0xFE0F, | |
11471 3, 0x1F3D8, 0xFE0F, | |
11472 3, 0x1F3D9, 0xFE0F, | |
11473 3, 0x1F3DA, 0xFE0F, | |
11474 3, 0x1F3DB, 0xFE0F, | |
11475 3, 0x1F3DC, 0xFE0F, | |
11476 3, 0x1F3DD, 0xFE0F, | |
11477 3, 0x1F3DE, 0xFE0F, | |
11478 3, 0x1F3DF, 0xFE0F, | |
11479 3, 0x1F3F3, 0xFE0F, | |
11480 3, 0x1F3F5, 0xFE0F, | |
11481 3, 0x1F3F7, 0xFE0F, | |
11482 3, 0x1F43F, 0xFE0F, | |
11483 3, 0x1F441, 0xFE0F, | |
11484 3, 0x1F4FD, 0xFE0F, | |
11485 3, 0x1F549, 0xFE0F, | |
11486 3, 0x1F54A, 0xFE0F, | |
11487 3, 0x1F56F, 0xFE0F, | |
11488 3, 0x1F570, 0xFE0F, | |
11489 3, 0x1F573, 0xFE0F, | |
11490 3, 0x1F574, 0xFE0F, | |
11491 3, 0x1F575, 0xFE0F, | |
11492 3, 0x1F576, 0xFE0F, | |
11493 3, 0x1F577, 0xFE0F, | |
11494 3, 0x1F578, 0xFE0F, | |
11495 3, 0x1F579, 0xFE0F, | |
11496 3, 0x1F587, 0xFE0F, | |
11497 3, 0x1F58A, 0xFE0F, | |
11498 3, 0x1F58B, 0xFE0F, | |
11499 3, 0x1F58C, 0xFE0F, | |
11500 3, 0x1F58D, 0xFE0F, | |
11501 3, 0x1F590, 0xFE0F, | |
11502 3, 0x1F5A5, 0xFE0F, | |
11503 3, 0x1F5A8, 0xFE0F, | |
11504 3, 0x1F5B1, 0xFE0F, | |
11505 3, 0x1F5B2, 0xFE0F, | |
11506 3, 0x1F5BC, 0xFE0F, | |
11507 3, 0x1F5C2, 0xFE0F, | |
11508 3, 0x1F5C3, 0xFE0F, | |
11509 3, 0x1F5C4, 0xFE0F, | |
11510 3, 0x1F5D1, 0xFE0F, | |
11511 3, 0x1F5D2, 0xFE0F, | |
11512 3, 0x1F5D3, 0xFE0F, | |
11513 3, 0x1F5DC, 0xFE0F, | |
11514 3, 0x1F5DD, 0xFE0F, | |
11515 3, 0x1F5DE, 0xFE0F, | |
11516 3, 0x1F5E1, 0xFE0F, | |
11517 3, 0x1F5E3, 0xFE0F, | |
11518 3, 0x1F5E8, 0xFE0F, | |
11519 3, 0x1F5EF, 0xFE0F, | |
11520 3, 0x1F5F3, 0xFE0F, | |
11521 3, 0x1F5FA, 0xFE0F, | |
11522 3, 0x1F6CB, 0xFE0F, | |
11523 3, 0x1F6CD, 0xFE0F, | |
11524 3, 0x1F6CE, 0xFE0F, | |
11525 3, 0x1F6CF, 0xFE0F, | |
11526 3, 0x1F6E0, 0xFE0F, | |
11527 3, 0x1F6E1, 0xFE0F, | |
11528 3, 0x1F6E2, 0xFE0F, | |
11529 3, 0x1F6E3, 0xFE0F, | |
11530 3, 0x1F6E4, 0xFE0F, | |
11531 3, 0x1F6E5, 0xFE0F, | |
11532 3, 0x1F6E9, 0xFE0F, | |
11533 3, 0x1F6F0, 0xFE0F, | |
11534 3, 0x1F6F3, 0xFE0F, | |
11535 0, // Padding. | |
11536 // #332 (18670+48/2): bp=Emoji_Keycap_Sequence | |
11537 4, 0x0023, 0xFE0F, 0x20E3, | |
11538 4, 0x002A, 0xFE0F, 0x20E3, | |
11539 4, 0x0030, 0xFE0F, 0x20E3, | |
11540 4, 0x0031, 0xFE0F, 0x20E3, | |
11541 4, 0x0032, 0xFE0F, 0x20E3, | |
11542 4, 0x0033, 0xFE0F, 0x20E3, | |
11543 4, 0x0034, 0xFE0F, 0x20E3, | |
11544 4, 0x0035, 0xFE0F, 0x20E3, | |
11545 4, 0x0036, 0xFE0F, 0x20E3, | |
11546 4, 0x0037, 0xFE0F, 0x20E3, | |
11547 4, 0x0038, 0xFE0F, 0x20E3, | |
11548 4, 0x0039, 0xFE0F, 0x20E3, | |
11549 // #333 (18694+1966/2): bp=RGI_Emoji_Modifier_Sequence | |
11550 3, 0x261D, 0x1F3FB, | |
11551 3, 0x261D, 0x1F3FC, | |
11552 3, 0x261D, 0x1F3FD, | |
11553 3, 0x261D, 0x1F3FE, | |
11554 3, 0x261D, 0x1F3FF, | |
11555 3, 0x26F9, 0x1F3FB, | |
11556 3, 0x26F9, 0x1F3FC, | |
11557 3, 0x26F9, 0x1F3FD, | |
11558 3, 0x26F9, 0x1F3FE, | |
11559 3, 0x26F9, 0x1F3FF, | |
11560 3, 0x270A, 0x1F3FB, | |
11561 3, 0x270A, 0x1F3FC, | |
11562 3, 0x270A, 0x1F3FD, | |
11563 3, 0x270A, 0x1F3FE, | |
11564 3, 0x270A, 0x1F3FF, | |
11565 3, 0x270B, 0x1F3FB, | |
11566 3, 0x270B, 0x1F3FC, | |
11567 3, 0x270B, 0x1F3FD, | |
11568 3, 0x270B, 0x1F3FE, | |
11569 3, 0x270B, 0x1F3FF, | |
11570 3, 0x270C, 0x1F3FB, | |
11571 3, 0x270C, 0x1F3FC, | |
11572 3, 0x270C, 0x1F3FD, | |
11573 3, 0x270C, 0x1F3FE, | |
11574 3, 0x270C, 0x1F3FF, | |
11575 3, 0x270D, 0x1F3FB, | |
11576 3, 0x270D, 0x1F3FC, | |
11577 3, 0x270D, 0x1F3FD, | |
11578 3, 0x270D, 0x1F3FE, | |
11579 3, 0x270D, 0x1F3FF, | |
11580 3, 0x1F385, 0x1F3FB, | |
11581 3, 0x1F385, 0x1F3FC, | |
11582 3, 0x1F385, 0x1F3FD, | |
11583 3, 0x1F385, 0x1F3FE, | |
11584 3, 0x1F385, 0x1F3FF, | |
11585 3, 0x1F3C2, 0x1F3FB, | |
11586 3, 0x1F3C2, 0x1F3FC, | |
11587 3, 0x1F3C2, 0x1F3FD, | |
11588 3, 0x1F3C2, 0x1F3FE, | |
11589 3, 0x1F3C2, 0x1F3FF, | |
11590 3, 0x1F3C3, 0x1F3FB, | |
11591 3, 0x1F3C3, 0x1F3FC, | |
11592 3, 0x1F3C3, 0x1F3FD, | |
11593 3, 0x1F3C3, 0x1F3FE, | |
11594 3, 0x1F3C3, 0x1F3FF, | |
11595 3, 0x1F3C4, 0x1F3FB, | |
11596 3, 0x1F3C4, 0x1F3FC, | |
11597 3, 0x1F3C4, 0x1F3FD, | |
11598 3, 0x1F3C4, 0x1F3FE, | |
11599 3, 0x1F3C4, 0x1F3FF, | |
11600 3, 0x1F3C7, 0x1F3FB, | |
11601 3, 0x1F3C7, 0x1F3FC, | |
11602 3, 0x1F3C7, 0x1F3FD, | |
11603 3, 0x1F3C7, 0x1F3FE, | |
11604 3, 0x1F3C7, 0x1F3FF, | |
11605 3, 0x1F3CA, 0x1F3FB, | |
11606 3, 0x1F3CA, 0x1F3FC, | |
11607 3, 0x1F3CA, 0x1F3FD, | |
11608 3, 0x1F3CA, 0x1F3FE, | |
11609 3, 0x1F3CA, 0x1F3FF, | |
11610 3, 0x1F3CB, 0x1F3FB, | |
11611 3, 0x1F3CB, 0x1F3FC, | |
11612 3, 0x1F3CB, 0x1F3FD, | |
11613 3, 0x1F3CB, 0x1F3FE, | |
11614 3, 0x1F3CB, 0x1F3FF, | |
11615 3, 0x1F3CC, 0x1F3FB, | |
11616 3, 0x1F3CC, 0x1F3FC, | |
11617 3, 0x1F3CC, 0x1F3FD, | |
11618 3, 0x1F3CC, 0x1F3FE, | |
11619 3, 0x1F3CC, 0x1F3FF, | |
11620 3, 0x1F442, 0x1F3FB, | |
11621 3, 0x1F442, 0x1F3FC, | |
11622 3, 0x1F442, 0x1F3FD, | |
11623 3, 0x1F442, 0x1F3FE, | |
11624 3, 0x1F442, 0x1F3FF, | |
11625 3, 0x1F443, 0x1F3FB, | |
11626 3, 0x1F443, 0x1F3FC, | |
11627 3, 0x1F443, 0x1F3FD, | |
11628 3, 0x1F443, 0x1F3FE, | |
11629 3, 0x1F443, 0x1F3FF, | |
11630 3, 0x1F446, 0x1F3FB, | |
11631 3, 0x1F446, 0x1F3FC, | |
11632 3, 0x1F446, 0x1F3FD, | |
11633 3, 0x1F446, 0x1F3FE, | |
11634 3, 0x1F446, 0x1F3FF, | |
11635 3, 0x1F447, 0x1F3FB, | |
11636 3, 0x1F447, 0x1F3FC, | |
11637 3, 0x1F447, 0x1F3FD, | |
11638 3, 0x1F447, 0x1F3FE, | |
11639 3, 0x1F447, 0x1F3FF, | |
11640 3, 0x1F448, 0x1F3FB, | |
11641 3, 0x1F448, 0x1F3FC, | |
11642 3, 0x1F448, 0x1F3FD, | |
11643 3, 0x1F448, 0x1F3FE, | |
11644 3, 0x1F448, 0x1F3FF, | |
11645 3, 0x1F449, 0x1F3FB, | |
11646 3, 0x1F449, 0x1F3FC, | |
11647 3, 0x1F449, 0x1F3FD, | |
11648 3, 0x1F449, 0x1F3FE, | |
11649 3, 0x1F449, 0x1F3FF, | |
11650 3, 0x1F44A, 0x1F3FB, | |
11651 3, 0x1F44A, 0x1F3FC, | |
11652 3, 0x1F44A, 0x1F3FD, | |
11653 3, 0x1F44A, 0x1F3FE, | |
11654 3, 0x1F44A, 0x1F3FF, | |
11655 3, 0x1F44B, 0x1F3FB, | |
11656 3, 0x1F44B, 0x1F3FC, | |
11657 3, 0x1F44B, 0x1F3FD, | |
11658 3, 0x1F44B, 0x1F3FE, | |
11659 3, 0x1F44B, 0x1F3FF, | |
11660 3, 0x1F44C, 0x1F3FB, | |
11661 3, 0x1F44C, 0x1F3FC, | |
11662 3, 0x1F44C, 0x1F3FD, | |
11663 3, 0x1F44C, 0x1F3FE, | |
11664 3, 0x1F44C, 0x1F3FF, | |
11665 3, 0x1F44D, 0x1F3FB, | |
11666 3, 0x1F44D, 0x1F3FC, | |
11667 3, 0x1F44D, 0x1F3FD, | |
11668 3, 0x1F44D, 0x1F3FE, | |
11669 3, 0x1F44D, 0x1F3FF, | |
11670 3, 0x1F44E, 0x1F3FB, | |
11671 3, 0x1F44E, 0x1F3FC, | |
11672 3, 0x1F44E, 0x1F3FD, | |
11673 3, 0x1F44E, 0x1F3FE, | |
11674 3, 0x1F44E, 0x1F3FF, | |
11675 3, 0x1F44F, 0x1F3FB, | |
11676 3, 0x1F44F, 0x1F3FC, | |
11677 3, 0x1F44F, 0x1F3FD, | |
11678 3, 0x1F44F, 0x1F3FE, | |
11679 3, 0x1F44F, 0x1F3FF, | |
11680 3, 0x1F450, 0x1F3FB, | |
11681 3, 0x1F450, 0x1F3FC, | |
11682 3, 0x1F450, 0x1F3FD, | |
11683 3, 0x1F450, 0x1F3FE, | |
11684 3, 0x1F450, 0x1F3FF, | |
11685 3, 0x1F466, 0x1F3FB, | |
11686 3, 0x1F466, 0x1F3FC, | |
11687 3, 0x1F466, 0x1F3FD, | |
11688 3, 0x1F466, 0x1F3FE, | |
11689 3, 0x1F466, 0x1F3FF, | |
11690 3, 0x1F467, 0x1F3FB, | |
11691 3, 0x1F467, 0x1F3FC, | |
11692 3, 0x1F467, 0x1F3FD, | |
11693 3, 0x1F467, 0x1F3FE, | |
11694 3, 0x1F467, 0x1F3FF, | |
11695 3, 0x1F468, 0x1F3FB, | |
11696 3, 0x1F468, 0x1F3FC, | |
11697 3, 0x1F468, 0x1F3FD, | |
11698 3, 0x1F468, 0x1F3FE, | |
11699 3, 0x1F468, 0x1F3FF, | |
11700 3, 0x1F469, 0x1F3FB, | |
11701 3, 0x1F469, 0x1F3FC, | |
11702 3, 0x1F469, 0x1F3FD, | |
11703 3, 0x1F469, 0x1F3FE, | |
11704 3, 0x1F469, 0x1F3FF, | |
11705 3, 0x1F46B, 0x1F3FB, | |
11706 3, 0x1F46B, 0x1F3FC, | |
11707 3, 0x1F46B, 0x1F3FD, | |
11708 3, 0x1F46B, 0x1F3FE, | |
11709 3, 0x1F46B, 0x1F3FF, | |
11710 3, 0x1F46C, 0x1F3FB, | |
11711 3, 0x1F46C, 0x1F3FC, | |
11712 3, 0x1F46C, 0x1F3FD, | |
11713 3, 0x1F46C, 0x1F3FE, | |
11714 3, 0x1F46C, 0x1F3FF, | |
11715 3, 0x1F46D, 0x1F3FB, | |
11716 3, 0x1F46D, 0x1F3FC, | |
11717 3, 0x1F46D, 0x1F3FD, | |
11718 3, 0x1F46D, 0x1F3FE, | |
11719 3, 0x1F46D, 0x1F3FF, | |
11720 3, 0x1F46E, 0x1F3FB, | |
11721 3, 0x1F46E, 0x1F3FC, | |
11722 3, 0x1F46E, 0x1F3FD, | |
11723 3, 0x1F46E, 0x1F3FE, | |
11724 3, 0x1F46E, 0x1F3FF, | |
11725 3, 0x1F470, 0x1F3FB, | |
11726 3, 0x1F470, 0x1F3FC, | |
11727 3, 0x1F470, 0x1F3FD, | |
11728 3, 0x1F470, 0x1F3FE, | |
11729 3, 0x1F470, 0x1F3FF, | |
11730 3, 0x1F471, 0x1F3FB, | |
11731 3, 0x1F471, 0x1F3FC, | |
11732 3, 0x1F471, 0x1F3FD, | |
11733 3, 0x1F471, 0x1F3FE, | |
11734 3, 0x1F471, 0x1F3FF, | |
11735 3, 0x1F472, 0x1F3FB, | |
11736 3, 0x1F472, 0x1F3FC, | |
11737 3, 0x1F472, 0x1F3FD, | |
11738 3, 0x1F472, 0x1F3FE, | |
11739 3, 0x1F472, 0x1F3FF, | |
11740 3, 0x1F473, 0x1F3FB, | |
11741 3, 0x1F473, 0x1F3FC, | |
11742 3, 0x1F473, 0x1F3FD, | |
11743 3, 0x1F473, 0x1F3FE, | |
11744 3, 0x1F473, 0x1F3FF, | |
11745 3, 0x1F474, 0x1F3FB, | |
11746 3, 0x1F474, 0x1F3FC, | |
11747 3, 0x1F474, 0x1F3FD, | |
11748 3, 0x1F474, 0x1F3FE, | |
11749 3, 0x1F474, 0x1F3FF, | |
11750 3, 0x1F475, 0x1F3FB, | |
11751 3, 0x1F475, 0x1F3FC, | |
11752 3, 0x1F475, 0x1F3FD, | |
11753 3, 0x1F475, 0x1F3FE, | |
11754 3, 0x1F475, 0x1F3FF, | |
11755 3, 0x1F476, 0x1F3FB, | |
11756 3, 0x1F476, 0x1F3FC, | |
11757 3, 0x1F476, 0x1F3FD, | |
11758 3, 0x1F476, 0x1F3FE, | |
11759 3, 0x1F476, 0x1F3FF, | |
11760 3, 0x1F477, 0x1F3FB, | |
11761 3, 0x1F477, 0x1F3FC, | |
11762 3, 0x1F477, 0x1F3FD, | |
11763 3, 0x1F477, 0x1F3FE, | |
11764 3, 0x1F477, 0x1F3FF, | |
11765 3, 0x1F478, 0x1F3FB, | |
11766 3, 0x1F478, 0x1F3FC, | |
11767 3, 0x1F478, 0x1F3FD, | |
11768 3, 0x1F478, 0x1F3FE, | |
11769 3, 0x1F478, 0x1F3FF, | |
11770 3, 0x1F47C, 0x1F3FB, | |
11771 3, 0x1F47C, 0x1F3FC, | |
11772 3, 0x1F47C, 0x1F3FD, | |
11773 3, 0x1F47C, 0x1F3FE, | |
11774 3, 0x1F47C, 0x1F3FF, | |
11775 3, 0x1F481, 0x1F3FB, | |
11776 3, 0x1F481, 0x1F3FC, | |
11777 3, 0x1F481, 0x1F3FD, | |
11778 3, 0x1F481, 0x1F3FE, | |
11779 3, 0x1F481, 0x1F3FF, | |
11780 3, 0x1F482, 0x1F3FB, | |
11781 3, 0x1F482, 0x1F3FC, | |
11782 3, 0x1F482, 0x1F3FD, | |
11783 3, 0x1F482, 0x1F3FE, | |
11784 3, 0x1F482, 0x1F3FF, | |
11785 3, 0x1F483, 0x1F3FB, | |
11786 3, 0x1F483, 0x1F3FC, | |
11787 3, 0x1F483, 0x1F3FD, | |
11788 3, 0x1F483, 0x1F3FE, | |
11789 3, 0x1F483, 0x1F3FF, | |
11790 3, 0x1F485, 0x1F3FB, | |
11791 3, 0x1F485, 0x1F3FC, | |
11792 3, 0x1F485, 0x1F3FD, | |
11793 3, 0x1F485, 0x1F3FE, | |
11794 3, 0x1F485, 0x1F3FF, | |
11795 3, 0x1F486, 0x1F3FB, | |
11796 3, 0x1F486, 0x1F3FC, | |
11797 3, 0x1F486, 0x1F3FD, | |
11798 3, 0x1F486, 0x1F3FE, | |
11799 3, 0x1F486, 0x1F3FF, | |
11800 3, 0x1F487, 0x1F3FB, | |
11801 3, 0x1F487, 0x1F3FC, | |
11802 3, 0x1F487, 0x1F3FD, | |
11803 3, 0x1F487, 0x1F3FE, | |
11804 3, 0x1F487, 0x1F3FF, | |
11805 3, 0x1F48F, 0x1F3FB, | |
11806 3, 0x1F48F, 0x1F3FC, | |
11807 3, 0x1F48F, 0x1F3FD, | |
11808 3, 0x1F48F, 0x1F3FE, | |
11809 3, 0x1F48F, 0x1F3FF, | |
11810 3, 0x1F491, 0x1F3FB, | |
11811 3, 0x1F491, 0x1F3FC, | |
11812 3, 0x1F491, 0x1F3FD, | |
11813 3, 0x1F491, 0x1F3FE, | |
11814 3, 0x1F491, 0x1F3FF, | |
11815 3, 0x1F4AA, 0x1F3FB, | |
11816 3, 0x1F4AA, 0x1F3FC, | |
11817 3, 0x1F4AA, 0x1F3FD, | |
11818 3, 0x1F4AA, 0x1F3FE, | |
11819 3, 0x1F4AA, 0x1F3FF, | |
11820 3, 0x1F574, 0x1F3FB, | |
11821 3, 0x1F574, 0x1F3FC, | |
11822 3, 0x1F574, 0x1F3FD, | |
11823 3, 0x1F574, 0x1F3FE, | |
11824 3, 0x1F574, 0x1F3FF, | |
11825 3, 0x1F575, 0x1F3FB, | |
11826 3, 0x1F575, 0x1F3FC, | |
11827 3, 0x1F575, 0x1F3FD, | |
11828 3, 0x1F575, 0x1F3FE, | |
11829 3, 0x1F575, 0x1F3FF, | |
11830 3, 0x1F57A, 0x1F3FB, | |
11831 3, 0x1F57A, 0x1F3FC, | |
11832 3, 0x1F57A, 0x1F3FD, | |
11833 3, 0x1F57A, 0x1F3FE, | |
11834 3, 0x1F57A, 0x1F3FF, | |
11835 3, 0x1F590, 0x1F3FB, | |
11836 3, 0x1F590, 0x1F3FC, | |
11837 3, 0x1F590, 0x1F3FD, | |
11838 3, 0x1F590, 0x1F3FE, | |
11839 3, 0x1F590, 0x1F3FF, | |
11840 3, 0x1F595, 0x1F3FB, | |
11841 3, 0x1F595, 0x1F3FC, | |
11842 3, 0x1F595, 0x1F3FD, | |
11843 3, 0x1F595, 0x1F3FE, | |
11844 3, 0x1F595, 0x1F3FF, | |
11845 3, 0x1F596, 0x1F3FB, | |
11846 3, 0x1F596, 0x1F3FC, | |
11847 3, 0x1F596, 0x1F3FD, | |
11848 3, 0x1F596, 0x1F3FE, | |
11849 3, 0x1F596, 0x1F3FF, | |
11850 3, 0x1F645, 0x1F3FB, | |
11851 3, 0x1F645, 0x1F3FC, | |
11852 3, 0x1F645, 0x1F3FD, | |
11853 3, 0x1F645, 0x1F3FE, | |
11854 3, 0x1F645, 0x1F3FF, | |
11855 3, 0x1F646, 0x1F3FB, | |
11856 3, 0x1F646, 0x1F3FC, | |
11857 3, 0x1F646, 0x1F3FD, | |
11858 3, 0x1F646, 0x1F3FE, | |
11859 3, 0x1F646, 0x1F3FF, | |
11860 3, 0x1F647, 0x1F3FB, | |
11861 3, 0x1F647, 0x1F3FC, | |
11862 3, 0x1F647, 0x1F3FD, | |
11863 3, 0x1F647, 0x1F3FE, | |
11864 3, 0x1F647, 0x1F3FF, | |
11865 3, 0x1F64B, 0x1F3FB, | |
11866 3, 0x1F64B, 0x1F3FC, | |
11867 3, 0x1F64B, 0x1F3FD, | |
11868 3, 0x1F64B, 0x1F3FE, | |
11869 3, 0x1F64B, 0x1F3FF, | |
11870 3, 0x1F64C, 0x1F3FB, | |
11871 3, 0x1F64C, 0x1F3FC, | |
11872 3, 0x1F64C, 0x1F3FD, | |
11873 3, 0x1F64C, 0x1F3FE, | |
11874 3, 0x1F64C, 0x1F3FF, | |
11875 3, 0x1F64D, 0x1F3FB, | |
11876 3, 0x1F64D, 0x1F3FC, | |
11877 3, 0x1F64D, 0x1F3FD, | |
11878 3, 0x1F64D, 0x1F3FE, | |
11879 3, 0x1F64D, 0x1F3FF, | |
11880 3, 0x1F64E, 0x1F3FB, | |
11881 3, 0x1F64E, 0x1F3FC, | |
11882 3, 0x1F64E, 0x1F3FD, | |
11883 3, 0x1F64E, 0x1F3FE, | |
11884 3, 0x1F64E, 0x1F3FF, | |
11885 3, 0x1F64F, 0x1F3FB, | |
11886 3, 0x1F64F, 0x1F3FC, | |
11887 3, 0x1F64F, 0x1F3FD, | |
11888 3, 0x1F64F, 0x1F3FE, | |
11889 3, 0x1F64F, 0x1F3FF, | |
11890 3, 0x1F6A3, 0x1F3FB, | |
11891 3, 0x1F6A3, 0x1F3FC, | |
11892 3, 0x1F6A3, 0x1F3FD, | |
11893 3, 0x1F6A3, 0x1F3FE, | |
11894 3, 0x1F6A3, 0x1F3FF, | |
11895 3, 0x1F6B4, 0x1F3FB, | |
11896 3, 0x1F6B4, 0x1F3FC, | |
11897 3, 0x1F6B4, 0x1F3FD, | |
11898 3, 0x1F6B4, 0x1F3FE, | |
11899 3, 0x1F6B4, 0x1F3FF, | |
11900 3, 0x1F6B5, 0x1F3FB, | |
11901 3, 0x1F6B5, 0x1F3FC, | |
11902 3, 0x1F6B5, 0x1F3FD, | |
11903 3, 0x1F6B5, 0x1F3FE, | |
11904 3, 0x1F6B5, 0x1F3FF, | |
11905 3, 0x1F6B6, 0x1F3FB, | |
11906 3, 0x1F6B6, 0x1F3FC, | |
11907 3, 0x1F6B6, 0x1F3FD, | |
11908 3, 0x1F6B6, 0x1F3FE, | |
11909 3, 0x1F6B6, 0x1F3FF, | |
11910 3, 0x1F6C0, 0x1F3FB, | |
11911 3, 0x1F6C0, 0x1F3FC, | |
11912 3, 0x1F6C0, 0x1F3FD, | |
11913 3, 0x1F6C0, 0x1F3FE, | |
11914 3, 0x1F6C0, 0x1F3FF, | |
11915 3, 0x1F6CC, 0x1F3FB, | |
11916 3, 0x1F6CC, 0x1F3FC, | |
11917 3, 0x1F6CC, 0x1F3FD, | |
11918 3, 0x1F6CC, 0x1F3FE, | |
11919 3, 0x1F6CC, 0x1F3FF, | |
11920 3, 0x1F90C, 0x1F3FB, | |
11921 3, 0x1F90C, 0x1F3FC, | |
11922 3, 0x1F90C, 0x1F3FD, | |
11923 3, 0x1F90C, 0x1F3FE, | |
11924 3, 0x1F90C, 0x1F3FF, | |
11925 3, 0x1F90F, 0x1F3FB, | |
11926 3, 0x1F90F, 0x1F3FC, | |
11927 3, 0x1F90F, 0x1F3FD, | |
11928 3, 0x1F90F, 0x1F3FE, | |
11929 3, 0x1F90F, 0x1F3FF, | |
11930 3, 0x1F918, 0x1F3FB, | |
11931 3, 0x1F918, 0x1F3FC, | |
11932 3, 0x1F918, 0x1F3FD, | |
11933 3, 0x1F918, 0x1F3FE, | |
11934 3, 0x1F918, 0x1F3FF, | |
11935 3, 0x1F919, 0x1F3FB, | |
11936 3, 0x1F919, 0x1F3FC, | |
11937 3, 0x1F919, 0x1F3FD, | |
11938 3, 0x1F919, 0x1F3FE, | |
11939 3, 0x1F919, 0x1F3FF, | |
11940 3, 0x1F91A, 0x1F3FB, | |
11941 3, 0x1F91A, 0x1F3FC, | |
11942 3, 0x1F91A, 0x1F3FD, | |
11943 3, 0x1F91A, 0x1F3FE, | |
11944 3, 0x1F91A, 0x1F3FF, | |
11945 3, 0x1F91B, 0x1F3FB, | |
11946 3, 0x1F91B, 0x1F3FC, | |
11947 3, 0x1F91B, 0x1F3FD, | |
11948 3, 0x1F91B, 0x1F3FE, | |
11949 3, 0x1F91B, 0x1F3FF, | |
11950 3, 0x1F91C, 0x1F3FB, | |
11951 3, 0x1F91C, 0x1F3FC, | |
11952 3, 0x1F91C, 0x1F3FD, | |
11953 3, 0x1F91C, 0x1F3FE, | |
11954 3, 0x1F91C, 0x1F3FF, | |
11955 3, 0x1F91D, 0x1F3FB, | |
11956 3, 0x1F91D, 0x1F3FC, | |
11957 3, 0x1F91D, 0x1F3FD, | |
11958 3, 0x1F91D, 0x1F3FE, | |
11959 3, 0x1F91D, 0x1F3FF, | |
11960 3, 0x1F91E, 0x1F3FB, | |
11961 3, 0x1F91E, 0x1F3FC, | |
11962 3, 0x1F91E, 0x1F3FD, | |
11963 3, 0x1F91E, 0x1F3FE, | |
11964 3, 0x1F91E, 0x1F3FF, | |
11965 3, 0x1F91F, 0x1F3FB, | |
11966 3, 0x1F91F, 0x1F3FC, | |
11967 3, 0x1F91F, 0x1F3FD, | |
11968 3, 0x1F91F, 0x1F3FE, | |
11969 3, 0x1F91F, 0x1F3FF, | |
11970 3, 0x1F926, 0x1F3FB, | |
11971 3, 0x1F926, 0x1F3FC, | |
11972 3, 0x1F926, 0x1F3FD, | |
11973 3, 0x1F926, 0x1F3FE, | |
11974 3, 0x1F926, 0x1F3FF, | |
11975 3, 0x1F930, 0x1F3FB, | |
11976 3, 0x1F930, 0x1F3FC, | |
11977 3, 0x1F930, 0x1F3FD, | |
11978 3, 0x1F930, 0x1F3FE, | |
11979 3, 0x1F930, 0x1F3FF, | |
11980 3, 0x1F931, 0x1F3FB, | |
11981 3, 0x1F931, 0x1F3FC, | |
11982 3, 0x1F931, 0x1F3FD, | |
11983 3, 0x1F931, 0x1F3FE, | |
11984 3, 0x1F931, 0x1F3FF, | |
11985 3, 0x1F932, 0x1F3FB, | |
11986 3, 0x1F932, 0x1F3FC, | |
11987 3, 0x1F932, 0x1F3FD, | |
11988 3, 0x1F932, 0x1F3FE, | |
11989 3, 0x1F932, 0x1F3FF, | |
11990 3, 0x1F933, 0x1F3FB, | |
11991 3, 0x1F933, 0x1F3FC, | |
11992 3, 0x1F933, 0x1F3FD, | |
11993 3, 0x1F933, 0x1F3FE, | |
11994 3, 0x1F933, 0x1F3FF, | |
11995 3, 0x1F934, 0x1F3FB, | |
11996 3, 0x1F934, 0x1F3FC, | |
11997 3, 0x1F934, 0x1F3FD, | |
11998 3, 0x1F934, 0x1F3FE, | |
11999 3, 0x1F934, 0x1F3FF, | |
12000 3, 0x1F935, 0x1F3FB, | |
12001 3, 0x1F935, 0x1F3FC, | |
12002 3, 0x1F935, 0x1F3FD, | |
12003 3, 0x1F935, 0x1F3FE, | |
12004 3, 0x1F935, 0x1F3FF, | |
12005 3, 0x1F936, 0x1F3FB, | |
12006 3, 0x1F936, 0x1F3FC, | |
12007 3, 0x1F936, 0x1F3FD, | |
12008 3, 0x1F936, 0x1F3FE, | |
12009 3, 0x1F936, 0x1F3FF, | |
12010 3, 0x1F937, 0x1F3FB, | |
12011 3, 0x1F937, 0x1F3FC, | |
12012 3, 0x1F937, 0x1F3FD, | |
12013 3, 0x1F937, 0x1F3FE, | |
12014 3, 0x1F937, 0x1F3FF, | |
12015 3, 0x1F938, 0x1F3FB, | |
12016 3, 0x1F938, 0x1F3FC, | |
12017 3, 0x1F938, 0x1F3FD, | |
12018 3, 0x1F938, 0x1F3FE, | |
12019 3, 0x1F938, 0x1F3FF, | |
12020 3, 0x1F939, 0x1F3FB, | |
12021 3, 0x1F939, 0x1F3FC, | |
12022 3, 0x1F939, 0x1F3FD, | |
12023 3, 0x1F939, 0x1F3FE, | |
12024 3, 0x1F939, 0x1F3FF, | |
12025 3, 0x1F93D, 0x1F3FB, | |
12026 3, 0x1F93D, 0x1F3FC, | |
12027 3, 0x1F93D, 0x1F3FD, | |
12028 3, 0x1F93D, 0x1F3FE, | |
12029 3, 0x1F93D, 0x1F3FF, | |
12030 3, 0x1F93E, 0x1F3FB, | |
12031 3, 0x1F93E, 0x1F3FC, | |
12032 3, 0x1F93E, 0x1F3FD, | |
12033 3, 0x1F93E, 0x1F3FE, | |
12034 3, 0x1F93E, 0x1F3FF, | |
12035 3, 0x1F977, 0x1F3FB, | |
12036 3, 0x1F977, 0x1F3FC, | |
12037 3, 0x1F977, 0x1F3FD, | |
12038 3, 0x1F977, 0x1F3FE, | |
12039 3, 0x1F977, 0x1F3FF, | |
12040 3, 0x1F9B5, 0x1F3FB, | |
12041 3, 0x1F9B5, 0x1F3FC, | |
12042 3, 0x1F9B5, 0x1F3FD, | |
12043 3, 0x1F9B5, 0x1F3FE, | |
12044 3, 0x1F9B5, 0x1F3FF, | |
12045 3, 0x1F9B6, 0x1F3FB, | |
12046 3, 0x1F9B6, 0x1F3FC, | |
12047 3, 0x1F9B6, 0x1F3FD, | |
12048 3, 0x1F9B6, 0x1F3FE, | |
12049 3, 0x1F9B6, 0x1F3FF, | |
12050 3, 0x1F9B8, 0x1F3FB, | |
12051 3, 0x1F9B8, 0x1F3FC, | |
12052 3, 0x1F9B8, 0x1F3FD, | |
12053 3, 0x1F9B8, 0x1F3FE, | |
12054 3, 0x1F9B8, 0x1F3FF, | |
12055 3, 0x1F9B9, 0x1F3FB, | |
12056 3, 0x1F9B9, 0x1F3FC, | |
12057 3, 0x1F9B9, 0x1F3FD, | |
12058 3, 0x1F9B9, 0x1F3FE, | |
12059 3, 0x1F9B9, 0x1F3FF, | |
12060 3, 0x1F9BB, 0x1F3FB, | |
12061 3, 0x1F9BB, 0x1F3FC, | |
12062 3, 0x1F9BB, 0x1F3FD, | |
12063 3, 0x1F9BB, 0x1F3FE, | |
12064 3, 0x1F9BB, 0x1F3FF, | |
12065 3, 0x1F9CD, 0x1F3FB, | |
12066 3, 0x1F9CD, 0x1F3FC, | |
12067 3, 0x1F9CD, 0x1F3FD, | |
12068 3, 0x1F9CD, 0x1F3FE, | |
12069 3, 0x1F9CD, 0x1F3FF, | |
12070 3, 0x1F9CE, 0x1F3FB, | |
12071 3, 0x1F9CE, 0x1F3FC, | |
12072 3, 0x1F9CE, 0x1F3FD, | |
12073 3, 0x1F9CE, 0x1F3FE, | |
12074 3, 0x1F9CE, 0x1F3FF, | |
12075 3, 0x1F9CF, 0x1F3FB, | |
12076 3, 0x1F9CF, 0x1F3FC, | |
12077 3, 0x1F9CF, 0x1F3FD, | |
12078 3, 0x1F9CF, 0x1F3FE, | |
12079 3, 0x1F9CF, 0x1F3FF, | |
12080 3, 0x1F9D1, 0x1F3FB, | |
12081 3, 0x1F9D1, 0x1F3FC, | |
12082 3, 0x1F9D1, 0x1F3FD, | |
12083 3, 0x1F9D1, 0x1F3FE, | |
12084 3, 0x1F9D1, 0x1F3FF, | |
12085 3, 0x1F9D2, 0x1F3FB, | |
12086 3, 0x1F9D2, 0x1F3FC, | |
12087 3, 0x1F9D2, 0x1F3FD, | |
12088 3, 0x1F9D2, 0x1F3FE, | |
12089 3, 0x1F9D2, 0x1F3FF, | |
12090 3, 0x1F9D3, 0x1F3FB, | |
12091 3, 0x1F9D3, 0x1F3FC, | |
12092 3, 0x1F9D3, 0x1F3FD, | |
12093 3, 0x1F9D3, 0x1F3FE, | |
12094 3, 0x1F9D3, 0x1F3FF, | |
12095 3, 0x1F9D4, 0x1F3FB, | |
12096 3, 0x1F9D4, 0x1F3FC, | |
12097 3, 0x1F9D4, 0x1F3FD, | |
12098 3, 0x1F9D4, 0x1F3FE, | |
12099 3, 0x1F9D4, 0x1F3FF, | |
12100 3, 0x1F9D5, 0x1F3FB, | |
12101 3, 0x1F9D5, 0x1F3FC, | |
12102 3, 0x1F9D5, 0x1F3FD, | |
12103 3, 0x1F9D5, 0x1F3FE, | |
12104 3, 0x1F9D5, 0x1F3FF, | |
12105 3, 0x1F9D6, 0x1F3FB, | |
12106 3, 0x1F9D6, 0x1F3FC, | |
12107 3, 0x1F9D6, 0x1F3FD, | |
12108 3, 0x1F9D6, 0x1F3FE, | |
12109 3, 0x1F9D6, 0x1F3FF, | |
12110 3, 0x1F9D7, 0x1F3FB, | |
12111 3, 0x1F9D7, 0x1F3FC, | |
12112 3, 0x1F9D7, 0x1F3FD, | |
12113 3, 0x1F9D7, 0x1F3FE, | |
12114 3, 0x1F9D7, 0x1F3FF, | |
12115 3, 0x1F9D8, 0x1F3FB, | |
12116 3, 0x1F9D8, 0x1F3FC, | |
12117 3, 0x1F9D8, 0x1F3FD, | |
12118 3, 0x1F9D8, 0x1F3FE, | |
12119 3, 0x1F9D8, 0x1F3FF, | |
12120 3, 0x1F9D9, 0x1F3FB, | |
12121 3, 0x1F9D9, 0x1F3FC, | |
12122 3, 0x1F9D9, 0x1F3FD, | |
12123 3, 0x1F9D9, 0x1F3FE, | |
12124 3, 0x1F9D9, 0x1F3FF, | |
12125 3, 0x1F9DA, 0x1F3FB, | |
12126 3, 0x1F9DA, 0x1F3FC, | |
12127 3, 0x1F9DA, 0x1F3FD, | |
12128 3, 0x1F9DA, 0x1F3FE, | |
12129 3, 0x1F9DA, 0x1F3FF, | |
12130 3, 0x1F9DB, 0x1F3FB, | |
12131 3, 0x1F9DB, 0x1F3FC, | |
12132 3, 0x1F9DB, 0x1F3FD, | |
12133 3, 0x1F9DB, 0x1F3FE, | |
12134 3, 0x1F9DB, 0x1F3FF, | |
12135 3, 0x1F9DC, 0x1F3FB, | |
12136 3, 0x1F9DC, 0x1F3FC, | |
12137 3, 0x1F9DC, 0x1F3FD, | |
12138 3, 0x1F9DC, 0x1F3FE, | |
12139 3, 0x1F9DC, 0x1F3FF, | |
12140 3, 0x1F9DD, 0x1F3FB, | |
12141 3, 0x1F9DD, 0x1F3FC, | |
12142 3, 0x1F9DD, 0x1F3FD, | |
12143 3, 0x1F9DD, 0x1F3FE, | |
12144 3, 0x1F9DD, 0x1F3FF, | |
12145 3, 0x1FAC3, 0x1F3FB, | |
12146 3, 0x1FAC3, 0x1F3FC, | |
12147 3, 0x1FAC3, 0x1F3FD, | |
12148 3, 0x1FAC3, 0x1F3FE, | |
12149 3, 0x1FAC3, 0x1F3FF, | |
12150 3, 0x1FAC4, 0x1F3FB, | |
12151 3, 0x1FAC4, 0x1F3FC, | |
12152 3, 0x1FAC4, 0x1F3FD, | |
12153 3, 0x1FAC4, 0x1F3FE, | |
12154 3, 0x1FAC4, 0x1F3FF, | |
12155 3, 0x1FAC5, 0x1F3FB, | |
12156 3, 0x1FAC5, 0x1F3FC, | |
12157 3, 0x1FAC5, 0x1F3FD, | |
12158 3, 0x1FAC5, 0x1F3FE, | |
12159 3, 0x1FAC5, 0x1F3FF, | |
12160 3, 0x1FAF0, 0x1F3FB, | |
12161 3, 0x1FAF0, 0x1F3FC, | |
12162 3, 0x1FAF0, 0x1F3FD, | |
12163 3, 0x1FAF0, 0x1F3FE, | |
12164 3, 0x1FAF0, 0x1F3FF, | |
12165 3, 0x1FAF1, 0x1F3FB, | |
12166 3, 0x1FAF1, 0x1F3FC, | |
12167 3, 0x1FAF1, 0x1F3FD, | |
12168 3, 0x1FAF1, 0x1F3FE, | |
12169 3, 0x1FAF1, 0x1F3FF, | |
12170 3, 0x1FAF2, 0x1F3FB, | |
12171 3, 0x1FAF2, 0x1F3FC, | |
12172 3, 0x1FAF2, 0x1F3FD, | |
12173 3, 0x1FAF2, 0x1F3FE, | |
12174 3, 0x1FAF2, 0x1F3FF, | |
12175 3, 0x1FAF3, 0x1F3FB, | |
12176 3, 0x1FAF3, 0x1F3FC, | |
12177 3, 0x1FAF3, 0x1F3FD, | |
12178 3, 0x1FAF3, 0x1F3FE, | |
12179 3, 0x1FAF3, 0x1F3FF, | |
12180 3, 0x1FAF4, 0x1F3FB, | |
12181 3, 0x1FAF4, 0x1F3FC, | |
12182 3, 0x1FAF4, 0x1F3FD, | |
12183 3, 0x1FAF4, 0x1F3FE, | |
12184 3, 0x1FAF4, 0x1F3FF, | |
12185 3, 0x1FAF5, 0x1F3FB, | |
12186 3, 0x1FAF5, 0x1F3FC, | |
12187 3, 0x1FAF5, 0x1F3FD, | |
12188 3, 0x1FAF5, 0x1F3FE, | |
12189 3, 0x1FAF5, 0x1F3FF, | |
12190 3, 0x1FAF6, 0x1F3FB, | |
12191 3, 0x1FAF6, 0x1F3FC, | |
12192 3, 0x1FAF6, 0x1F3FD, | |
12193 3, 0x1FAF6, 0x1F3FE, | |
12194 3, 0x1FAF6, 0x1F3FF, | |
12195 3, 0x1FAF7, 0x1F3FB, | |
12196 3, 0x1FAF7, 0x1F3FC, | |
12197 3, 0x1FAF7, 0x1F3FD, | |
12198 3, 0x1FAF7, 0x1F3FE, | |
12199 3, 0x1FAF7, 0x1F3FF, | |
12200 3, 0x1FAF8, 0x1F3FB, | |
12201 3, 0x1FAF8, 0x1F3FC, | |
12202 3, 0x1FAF8, 0x1F3FD, | |
12203 3, 0x1FAF8, 0x1F3FE, | |
12204 3, 0x1FAF8, 0x1F3FF, | |
12205 0, // Padding. | |
12206 // #334 (19677+774/2): bp=RGI_Emoji_Flag_Sequence | |
12207 3, 0x1F1E6, 0x1F1E8, | |
12208 3, 0x1F1E6, 0x1F1E9, | |
12209 3, 0x1F1E6, 0x1F1EA, | |
12210 3, 0x1F1E6, 0x1F1EB, | |
12211 3, 0x1F1E6, 0x1F1EC, | |
12212 3, 0x1F1E6, 0x1F1EE, | |
12213 3, 0x1F1E6, 0x1F1F1, | |
12214 3, 0x1F1E6, 0x1F1F2, | |
12215 3, 0x1F1E6, 0x1F1F4, | |
12216 3, 0x1F1E6, 0x1F1F6, | |
12217 3, 0x1F1E6, 0x1F1F7, | |
12218 3, 0x1F1E6, 0x1F1F8, | |
12219 3, 0x1F1E6, 0x1F1F9, | |
12220 3, 0x1F1E6, 0x1F1FA, | |
12221 3, 0x1F1E6, 0x1F1FC, | |
12222 3, 0x1F1E6, 0x1F1FD, | |
12223 3, 0x1F1E6, 0x1F1FF, | |
12224 3, 0x1F1E7, 0x1F1E6, | |
12225 3, 0x1F1E7, 0x1F1E7, | |
12226 3, 0x1F1E7, 0x1F1E9, | |
12227 3, 0x1F1E7, 0x1F1EA, | |
12228 3, 0x1F1E7, 0x1F1EB, | |
12229 3, 0x1F1E7, 0x1F1EC, | |
12230 3, 0x1F1E7, 0x1F1ED, | |
12231 3, 0x1F1E7, 0x1F1EE, | |
12232 3, 0x1F1E7, 0x1F1EF, | |
12233 3, 0x1F1E7, 0x1F1F1, | |
12234 3, 0x1F1E7, 0x1F1F2, | |
12235 3, 0x1F1E7, 0x1F1F3, | |
12236 3, 0x1F1E7, 0x1F1F4, | |
12237 3, 0x1F1E7, 0x1F1F6, | |
12238 3, 0x1F1E7, 0x1F1F7, | |
12239 3, 0x1F1E7, 0x1F1F8, | |
12240 3, 0x1F1E7, 0x1F1F9, | |
12241 3, 0x1F1E7, 0x1F1FB, | |
12242 3, 0x1F1E7, 0x1F1FC, | |
12243 3, 0x1F1E7, 0x1F1FE, | |
12244 3, 0x1F1E7, 0x1F1FF, | |
12245 3, 0x1F1E8, 0x1F1E6, | |
12246 3, 0x1F1E8, 0x1F1E8, | |
12247 3, 0x1F1E8, 0x1F1E9, | |
12248 3, 0x1F1E8, 0x1F1EB, | |
12249 3, 0x1F1E8, 0x1F1EC, | |
12250 3, 0x1F1E8, 0x1F1ED, | |
12251 3, 0x1F1E8, 0x1F1EE, | |
12252 3, 0x1F1E8, 0x1F1F0, | |
12253 3, 0x1F1E8, 0x1F1F1, | |
12254 3, 0x1F1E8, 0x1F1F2, | |
12255 3, 0x1F1E8, 0x1F1F3, | |
12256 3, 0x1F1E8, 0x1F1F4, | |
12257 3, 0x1F1E8, 0x1F1F5, | |
12258 3, 0x1F1E8, 0x1F1F7, | |
12259 3, 0x1F1E8, 0x1F1FA, | |
12260 3, 0x1F1E8, 0x1F1FB, | |
12261 3, 0x1F1E8, 0x1F1FC, | |
12262 3, 0x1F1E8, 0x1F1FD, | |
12263 3, 0x1F1E8, 0x1F1FE, | |
12264 3, 0x1F1E8, 0x1F1FF, | |
12265 3, 0x1F1E9, 0x1F1EA, | |
12266 3, 0x1F1E9, 0x1F1EC, | |
12267 3, 0x1F1E9, 0x1F1EF, | |
12268 3, 0x1F1E9, 0x1F1F0, | |
12269 3, 0x1F1E9, 0x1F1F2, | |
12270 3, 0x1F1E9, 0x1F1F4, | |
12271 3, 0x1F1E9, 0x1F1FF, | |
12272 3, 0x1F1EA, 0x1F1E6, | |
12273 3, 0x1F1EA, 0x1F1E8, | |
12274 3, 0x1F1EA, 0x1F1EA, | |
12275 3, 0x1F1EA, 0x1F1EC, | |
12276 3, 0x1F1EA, 0x1F1ED, | |
12277 3, 0x1F1EA, 0x1F1F7, | |
12278 3, 0x1F1EA, 0x1F1F8, | |
12279 3, 0x1F1EA, 0x1F1F9, | |
12280 3, 0x1F1EA, 0x1F1FA, | |
12281 3, 0x1F1EB, 0x1F1EE, | |
12282 3, 0x1F1EB, 0x1F1EF, | |
12283 3, 0x1F1EB, 0x1F1F0, | |
12284 3, 0x1F1EB, 0x1F1F2, | |
12285 3, 0x1F1EB, 0x1F1F4, | |
12286 3, 0x1F1EB, 0x1F1F7, | |
12287 3, 0x1F1EC, 0x1F1E6, | |
12288 3, 0x1F1EC, 0x1F1E7, | |
12289 3, 0x1F1EC, 0x1F1E9, | |
12290 3, 0x1F1EC, 0x1F1EA, | |
12291 3, 0x1F1EC, 0x1F1EB, | |
12292 3, 0x1F1EC, 0x1F1EC, | |
12293 3, 0x1F1EC, 0x1F1ED, | |
12294 3, 0x1F1EC, 0x1F1EE, | |
12295 3, 0x1F1EC, 0x1F1F1, | |
12296 3, 0x1F1EC, 0x1F1F2, | |
12297 3, 0x1F1EC, 0x1F1F3, | |
12298 3, 0x1F1EC, 0x1F1F5, | |
12299 3, 0x1F1EC, 0x1F1F6, | |
12300 3, 0x1F1EC, 0x1F1F7, | |
12301 3, 0x1F1EC, 0x1F1F8, | |
12302 3, 0x1F1EC, 0x1F1F9, | |
12303 3, 0x1F1EC, 0x1F1FA, | |
12304 3, 0x1F1EC, 0x1F1FC, | |
12305 3, 0x1F1EC, 0x1F1FE, | |
12306 3, 0x1F1ED, 0x1F1F0, | |
12307 3, 0x1F1ED, 0x1F1F2, | |
12308 3, 0x1F1ED, 0x1F1F3, | |
12309 3, 0x1F1ED, 0x1F1F7, | |
12310 3, 0x1F1ED, 0x1F1F9, | |
12311 3, 0x1F1ED, 0x1F1FA, | |
12312 3, 0x1F1EE, 0x1F1E8, | |
12313 3, 0x1F1EE, 0x1F1E9, | |
12314 3, 0x1F1EE, 0x1F1EA, | |
12315 3, 0x1F1EE, 0x1F1F1, | |
12316 3, 0x1F1EE, 0x1F1F2, | |
12317 3, 0x1F1EE, 0x1F1F3, | |
12318 3, 0x1F1EE, 0x1F1F4, | |
12319 3, 0x1F1EE, 0x1F1F6, | |
12320 3, 0x1F1EE, 0x1F1F7, | |
12321 3, 0x1F1EE, 0x1F1F8, | |
12322 3, 0x1F1EE, 0x1F1F9, | |
12323 3, 0x1F1EF, 0x1F1EA, | |
12324 3, 0x1F1EF, 0x1F1F2, | |
12325 3, 0x1F1EF, 0x1F1F4, | |
12326 3, 0x1F1EF, 0x1F1F5, | |
12327 3, 0x1F1F0, 0x1F1EA, | |
12328 3, 0x1F1F0, 0x1F1EC, | |
12329 3, 0x1F1F0, 0x1F1ED, | |
12330 3, 0x1F1F0, 0x1F1EE, | |
12331 3, 0x1F1F0, 0x1F1F2, | |
12332 3, 0x1F1F0, 0x1F1F3, | |
12333 3, 0x1F1F0, 0x1F1F5, | |
12334 3, 0x1F1F0, 0x1F1F7, | |
12335 3, 0x1F1F0, 0x1F1FC, | |
12336 3, 0x1F1F0, 0x1F1FE, | |
12337 3, 0x1F1F0, 0x1F1FF, | |
12338 3, 0x1F1F1, 0x1F1E6, | |
12339 3, 0x1F1F1, 0x1F1E7, | |
12340 3, 0x1F1F1, 0x1F1E8, | |
12341 3, 0x1F1F1, 0x1F1EE, | |
12342 3, 0x1F1F1, 0x1F1F0, | |
12343 3, 0x1F1F1, 0x1F1F7, | |
12344 3, 0x1F1F1, 0x1F1F8, | |
12345 3, 0x1F1F1, 0x1F1F9, | |
12346 3, 0x1F1F1, 0x1F1FA, | |
12347 3, 0x1F1F1, 0x1F1FB, | |
12348 3, 0x1F1F1, 0x1F1FE, | |
12349 3, 0x1F1F2, 0x1F1E6, | |
12350 3, 0x1F1F2, 0x1F1E8, | |
12351 3, 0x1F1F2, 0x1F1E9, | |
12352 3, 0x1F1F2, 0x1F1EA, | |
12353 3, 0x1F1F2, 0x1F1EB, | |
12354 3, 0x1F1F2, 0x1F1EC, | |
12355 3, 0x1F1F2, 0x1F1ED, | |
12356 3, 0x1F1F2, 0x1F1F0, | |
12357 3, 0x1F1F2, 0x1F1F1, | |
12358 3, 0x1F1F2, 0x1F1F2, | |
12359 3, 0x1F1F2, 0x1F1F3, | |
12360 3, 0x1F1F2, 0x1F1F4, | |
12361 3, 0x1F1F2, 0x1F1F5, | |
12362 3, 0x1F1F2, 0x1F1F6, | |
12363 3, 0x1F1F2, 0x1F1F7, | |
12364 3, 0x1F1F2, 0x1F1F8, | |
12365 3, 0x1F1F2, 0x1F1F9, | |
12366 3, 0x1F1F2, 0x1F1FA, | |
12367 3, 0x1F1F2, 0x1F1FB, | |
12368 3, 0x1F1F2, 0x1F1FC, | |
12369 3, 0x1F1F2, 0x1F1FD, | |
12370 3, 0x1F1F2, 0x1F1FE, | |
12371 3, 0x1F1F2, 0x1F1FF, | |
12372 3, 0x1F1F3, 0x1F1E6, | |
12373 3, 0x1F1F3, 0x1F1E8, | |
12374 3, 0x1F1F3, 0x1F1EA, | |
12375 3, 0x1F1F3, 0x1F1EB, | |
12376 3, 0x1F1F3, 0x1F1EC, | |
12377 3, 0x1F1F3, 0x1F1EE, | |
12378 3, 0x1F1F3, 0x1F1F1, | |
12379 3, 0x1F1F3, 0x1F1F4, | |
12380 3, 0x1F1F3, 0x1F1F5, | |
12381 3, 0x1F1F3, 0x1F1F7, | |
12382 3, 0x1F1F3, 0x1F1FA, | |
12383 3, 0x1F1F3, 0x1F1FF, | |
12384 3, 0x1F1F4, 0x1F1F2, | |
12385 3, 0x1F1F5, 0x1F1E6, | |
12386 3, 0x1F1F5, 0x1F1EA, | |
12387 3, 0x1F1F5, 0x1F1EB, | |
12388 3, 0x1F1F5, 0x1F1EC, | |
12389 3, 0x1F1F5, 0x1F1ED, | |
12390 3, 0x1F1F5, 0x1F1F0, | |
12391 3, 0x1F1F5, 0x1F1F1, | |
12392 3, 0x1F1F5, 0x1F1F2, | |
12393 3, 0x1F1F5, 0x1F1F3, | |
12394 3, 0x1F1F5, 0x1F1F7, | |
12395 3, 0x1F1F5, 0x1F1F8, | |
12396 3, 0x1F1F5, 0x1F1F9, | |
12397 3, 0x1F1F5, 0x1F1FC, | |
12398 3, 0x1F1F5, 0x1F1FE, | |
12399 3, 0x1F1F6, 0x1F1E6, | |
12400 3, 0x1F1F7, 0x1F1EA, | |
12401 3, 0x1F1F7, 0x1F1F4, | |
12402 3, 0x1F1F7, 0x1F1F8, | |
12403 3, 0x1F1F7, 0x1F1FA, | |
12404 3, 0x1F1F7, 0x1F1FC, | |
12405 3, 0x1F1F8, 0x1F1E6, | |
12406 3, 0x1F1F8, 0x1F1E7, | |
12407 3, 0x1F1F8, 0x1F1E8, | |
12408 3, 0x1F1F8, 0x1F1E9, | |
12409 3, 0x1F1F8, 0x1F1EA, | |
12410 3, 0x1F1F8, 0x1F1EC, | |
12411 3, 0x1F1F8, 0x1F1ED, | |
12412 3, 0x1F1F8, 0x1F1EE, | |
12413 3, 0x1F1F8, 0x1F1EF, | |
12414 3, 0x1F1F8, 0x1F1F0, | |
12415 3, 0x1F1F8, 0x1F1F1, | |
12416 3, 0x1F1F8, 0x1F1F2, | |
12417 3, 0x1F1F8, 0x1F1F3, | |
12418 3, 0x1F1F8, 0x1F1F4, | |
12419 3, 0x1F1F8, 0x1F1F7, | |
12420 3, 0x1F1F8, 0x1F1F8, | |
12421 3, 0x1F1F8, 0x1F1F9, | |
12422 3, 0x1F1F8, 0x1F1FB, | |
12423 3, 0x1F1F8, 0x1F1FD, | |
12424 3, 0x1F1F8, 0x1F1FE, | |
12425 3, 0x1F1F8, 0x1F1FF, | |
12426 3, 0x1F1F9, 0x1F1E6, | |
12427 3, 0x1F1F9, 0x1F1E8, | |
12428 3, 0x1F1F9, 0x1F1E9, | |
12429 3, 0x1F1F9, 0x1F1EB, | |
12430 3, 0x1F1F9, 0x1F1EC, | |
12431 3, 0x1F1F9, 0x1F1ED, | |
12432 3, 0x1F1F9, 0x1F1EF, | |
12433 3, 0x1F1F9, 0x1F1F0, | |
12434 3, 0x1F1F9, 0x1F1F1, | |
12435 3, 0x1F1F9, 0x1F1F2, | |
12436 3, 0x1F1F9, 0x1F1F3, | |
12437 3, 0x1F1F9, 0x1F1F4, | |
12438 3, 0x1F1F9, 0x1F1F7, | |
12439 3, 0x1F1F9, 0x1F1F9, | |
12440 3, 0x1F1F9, 0x1F1FB, | |
12441 3, 0x1F1F9, 0x1F1FC, | |
12442 3, 0x1F1F9, 0x1F1FF, | |
12443 3, 0x1F1FA, 0x1F1E6, | |
12444 3, 0x1F1FA, 0x1F1EC, | |
12445 3, 0x1F1FA, 0x1F1F2, | |
12446 3, 0x1F1FA, 0x1F1F3, | |
12447 3, 0x1F1FA, 0x1F1F8, | |
12448 3, 0x1F1FA, 0x1F1FE, | |
12449 3, 0x1F1FA, 0x1F1FF, | |
12450 3, 0x1F1FB, 0x1F1E6, | |
12451 3, 0x1F1FB, 0x1F1E8, | |
12452 3, 0x1F1FB, 0x1F1EA, | |
12453 3, 0x1F1FB, 0x1F1EC, | |
12454 3, 0x1F1FB, 0x1F1EE, | |
12455 3, 0x1F1FB, 0x1F1F3, | |
12456 3, 0x1F1FB, 0x1F1FA, | |
12457 3, 0x1F1FC, 0x1F1EB, | |
12458 3, 0x1F1FC, 0x1F1F8, | |
12459 3, 0x1F1FD, 0x1F1F0, | |
12460 3, 0x1F1FE, 0x1F1EA, | |
12461 3, 0x1F1FE, 0x1F1F9, | |
12462 3, 0x1F1FF, 0x1F1E6, | |
12463 3, 0x1F1FF, 0x1F1F2, | |
12464 3, 0x1F1FF, 0x1F1FC, | |
12465 // #335 (20064+24/2): bp=RGI_Emoji_Tag_Sequence | |
12466 8, 0x1F3F4, 0xE0067, 0xE0062, 0xE0065, 0xE006E, 0xE0067, 0xE007F, | |
12467 8, 0x1F3F4, 0xE0067, 0xE0062, 0xE0073, 0xE0063, 0xE0074, 0xE007F, | |
12468 8, 0x1F3F4, 0xE0067, 0xE0062, 0xE0077, 0xE006C, 0xE0073, 0xE007F, | |
12469 // #336 (20076+9382/2): bp=RGI_Emoji_ZWJ_Sequence | |
12470 7, 0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, | |
12471 9, 0x1F468, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, | |
12472 4, 0x1F468, 0x200D, 0x1F466, | |
12473 6, 0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466, | |
12474 4, 0x1F468, 0x200D, 0x1F467, | |
12475 6, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466, | |
12476 6, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467, | |
12477 6, 0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466, | |
12478 8, 0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466, | |
12479 6, 0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, | |
12480 8, 0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466, | |
12481 8, 0x1F468, 0x200D, 0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467, | |
12482 6, 0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466, | |
12483 8, 0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466, | |
12484 6, 0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, | |
12485 8, 0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466, | |
12486 8, 0x1F468, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467, | |
12487 9, 0x1F468, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FB, | |
12488 9, 0x1F468, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FC, | |
12489 9, 0x1F468, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FD, | |
12490 9, 0x1F468, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FE, | |
12491 9, 0x1F468, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FF, | |
12492 11, 0x1F468, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FB, | |
12493 11, 0x1F468, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FC, | |
12494 11, 0x1F468, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FD, | |
12495 11, 0x1F468, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FE, | |
12496 11, 0x1F468, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FF, | |
12497 8, 0x1F468, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC, | |
12498 8, 0x1F468, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD, | |
12499 8, 0x1F468, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE, | |
12500 8, 0x1F468, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF, | |
12501 9, 0x1F468, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FB, | |
12502 9, 0x1F468, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FC, | |
12503 9, 0x1F468, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FD, | |
12504 9, 0x1F468, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FE, | |
12505 9, 0x1F468, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FF, | |
12506 11, 0x1F468, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FB, | |
12507 11, 0x1F468, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FC, | |
12508 11, 0x1F468, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FD, | |
12509 11, 0x1F468, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FE, | |
12510 11, 0x1F468, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FF, | |
12511 8, 0x1F468, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB, | |
12512 8, 0x1F468, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD, | |
12513 8, 0x1F468, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE, | |
12514 8, 0x1F468, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF, | |
12515 9, 0x1F468, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FB, | |
12516 9, 0x1F468, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FC, | |
12517 9, 0x1F468, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FD, | |
12518 9, 0x1F468, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FE, | |
12519 9, 0x1F468, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FF, | |
12520 11, 0x1F468, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FB, | |
12521 11, 0x1F468, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FC, | |
12522 11, 0x1F468, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FD, | |
12523 11, 0x1F468, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FE, | |
12524 11, 0x1F468, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FF, | |
12525 8, 0x1F468, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB, | |
12526 8, 0x1F468, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC, | |
12527 8, 0x1F468, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE, | |
12528 8, 0x1F468, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF, | |
12529 9, 0x1F468, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FB, | |
12530 9, 0x1F468, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FC, | |
12531 9, 0x1F468, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FD, | |
12532 9, 0x1F468, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FE, | |
12533 9, 0x1F468, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FF, | |
12534 11, 0x1F468, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FB, | |
12535 11, 0x1F468, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FC, | |
12536 11, 0x1F468, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FD, | |
12537 11, 0x1F468, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FE, | |
12538 11, 0x1F468, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FF, | |
12539 8, 0x1F468, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB, | |
12540 8, 0x1F468, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC, | |
12541 8, 0x1F468, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD, | |
12542 8, 0x1F468, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF, | |
12543 9, 0x1F468, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FB, | |
12544 9, 0x1F468, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FC, | |
12545 9, 0x1F468, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FD, | |
12546 9, 0x1F468, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FE, | |
12547 9, 0x1F468, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FF, | |
12548 11, 0x1F468, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FB, | |
12549 11, 0x1F468, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FC, | |
12550 11, 0x1F468, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FD, | |
12551 11, 0x1F468, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FE, | |
12552 11, 0x1F468, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FF, | |
12553 8, 0x1F468, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB, | |
12554 8, 0x1F468, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC, | |
12555 8, 0x1F468, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD, | |
12556 8, 0x1F468, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE, | |
12557 7, 0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, | |
12558 7, 0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, | |
12559 9, 0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, | |
12560 9, 0x1F469, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, | |
12561 4, 0x1F469, 0x200D, 0x1F466, | |
12562 6, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466, | |
12563 4, 0x1F469, 0x200D, 0x1F467, | |
12564 6, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466, | |
12565 6, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467, | |
12566 6, 0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466, | |
12567 8, 0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466, | |
12568 6, 0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, | |
12569 8, 0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466, | |
12570 8, 0x1F469, 0x200D, 0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467, | |
12571 9, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FB, | |
12572 9, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FC, | |
12573 9, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FD, | |
12574 9, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FE, | |
12575 9, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FF, | |
12576 9, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FB, | |
12577 9, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FC, | |
12578 9, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FD, | |
12579 9, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FE, | |
12580 9, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FF, | |
12581 11, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FB, | |
12582 11, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FC, | |
12583 11, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FD, | |
12584 11, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FE, | |
12585 11, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FF, | |
12586 11, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FB, | |
12587 11, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FC, | |
12588 11, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FD, | |
12589 11, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FE, | |
12590 11, 0x1F469, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FF, | |
12591 8, 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC, | |
12592 8, 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD, | |
12593 8, 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE, | |
12594 8, 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF, | |
12595 8, 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FC, | |
12596 8, 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FD, | |
12597 8, 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FE, | |
12598 8, 0x1F469, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FF, | |
12599 9, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FB, | |
12600 9, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FC, | |
12601 9, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FD, | |
12602 9, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FE, | |
12603 9, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FF, | |
12604 9, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FB, | |
12605 9, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FC, | |
12606 9, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FD, | |
12607 9, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FE, | |
12608 9, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FF, | |
12609 11, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FB, | |
12610 11, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FC, | |
12611 11, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FD, | |
12612 11, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FE, | |
12613 11, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FF, | |
12614 11, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FB, | |
12615 11, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FC, | |
12616 11, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FD, | |
12617 11, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FE, | |
12618 11, 0x1F469, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FF, | |
12619 8, 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB, | |
12620 8, 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD, | |
12621 8, 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE, | |
12622 8, 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF, | |
12623 8, 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FB, | |
12624 8, 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FD, | |
12625 8, 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FE, | |
12626 8, 0x1F469, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FF, | |
12627 9, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FB, | |
12628 9, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FC, | |
12629 9, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FD, | |
12630 9, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FE, | |
12631 9, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FF, | |
12632 9, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FB, | |
12633 9, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FC, | |
12634 9, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FD, | |
12635 9, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FE, | |
12636 9, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FF, | |
12637 11, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FB, | |
12638 11, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FC, | |
12639 11, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FD, | |
12640 11, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FE, | |
12641 11, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FF, | |
12642 11, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FB, | |
12643 11, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FC, | |
12644 11, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FD, | |
12645 11, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FE, | |
12646 11, 0x1F469, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FF, | |
12647 8, 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB, | |
12648 8, 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC, | |
12649 8, 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE, | |
12650 8, 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF, | |
12651 8, 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FB, | |
12652 8, 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FC, | |
12653 8, 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FE, | |
12654 8, 0x1F469, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FF, | |
12655 9, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FB, | |
12656 9, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FC, | |
12657 9, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FD, | |
12658 9, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FE, | |
12659 9, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FF, | |
12660 9, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FB, | |
12661 9, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FC, | |
12662 9, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FD, | |
12663 9, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FE, | |
12664 9, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FF, | |
12665 11, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FB, | |
12666 11, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FC, | |
12667 11, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FD, | |
12668 11, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FE, | |
12669 11, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FF, | |
12670 11, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FB, | |
12671 11, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FC, | |
12672 11, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FD, | |
12673 11, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FE, | |
12674 11, 0x1F469, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FF, | |
12675 8, 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB, | |
12676 8, 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC, | |
12677 8, 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD, | |
12678 8, 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FF, | |
12679 8, 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FB, | |
12680 8, 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FC, | |
12681 8, 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FD, | |
12682 8, 0x1F469, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FF, | |
12683 9, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FB, | |
12684 9, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FC, | |
12685 9, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FD, | |
12686 9, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FE, | |
12687 9, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F468, 0x1F3FF, | |
12688 9, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FB, | |
12689 9, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FC, | |
12690 9, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FD, | |
12691 9, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FE, | |
12692 9, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F469, 0x1F3FF, | |
12693 11, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FB, | |
12694 11, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FC, | |
12695 11, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FD, | |
12696 11, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FE, | |
12697 11, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F468, 0x1F3FF, | |
12698 11, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FB, | |
12699 11, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FC, | |
12700 11, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FD, | |
12701 11, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FE, | |
12702 11, 0x1F469, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F469, 0x1F3FF, | |
12703 8, 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FB, | |
12704 8, 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FC, | |
12705 8, 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FD, | |
12706 8, 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F468, 0x1F3FE, | |
12707 8, 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FB, | |
12708 8, 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FC, | |
12709 8, 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FD, | |
12710 8, 0x1F469, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F469, 0x1F3FE, | |
12711 6, 0x1F9D1, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, | |
12712 6, 0x1F9D1, 0x200D, 0x1F9D1, 0x200D, 0x1F9D2, | |
12713 8, 0x1F9D1, 0x200D, 0x1F9D1, 0x200D, 0x1F9D2, 0x200D, 0x1F9D2, | |
12714 4, 0x1F9D1, 0x200D, 0x1F9D2, | |
12715 6, 0x1F9D1, 0x200D, 0x1F9D2, 0x200D, 0x1F9D2, | |
12716 11, 0x1F9D1, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FC, | |
12717 11, 0x1F9D1, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FD, | |
12718 11, 0x1F9D1, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FE, | |
12719 11, 0x1F9D1, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FF, | |
12720 9, 0x1F9D1, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FC, | |
12721 9, 0x1F9D1, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FD, | |
12722 9, 0x1F9D1, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FE, | |
12723 9, 0x1F9D1, 0x1F3FB, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FF, | |
12724 8, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FB, | |
12725 8, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FC, | |
12726 8, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FD, | |
12727 8, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FE, | |
12728 8, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FF, | |
12729 11, 0x1F9D1, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FB, | |
12730 11, 0x1F9D1, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FD, | |
12731 11, 0x1F9D1, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FE, | |
12732 11, 0x1F9D1, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FF, | |
12733 9, 0x1F9D1, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FB, | |
12734 9, 0x1F9D1, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FD, | |
12735 9, 0x1F9D1, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FE, | |
12736 9, 0x1F9D1, 0x1F3FC, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FF, | |
12737 8, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FB, | |
12738 8, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FC, | |
12739 8, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FD, | |
12740 8, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FE, | |
12741 8, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FF, | |
12742 11, 0x1F9D1, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FB, | |
12743 11, 0x1F9D1, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FC, | |
12744 11, 0x1F9D1, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FE, | |
12745 11, 0x1F9D1, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FF, | |
12746 9, 0x1F9D1, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FB, | |
12747 9, 0x1F9D1, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FC, | |
12748 9, 0x1F9D1, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FE, | |
12749 9, 0x1F9D1, 0x1F3FD, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FF, | |
12750 8, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FB, | |
12751 8, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FC, | |
12752 8, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FD, | |
12753 8, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FE, | |
12754 8, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FF, | |
12755 11, 0x1F9D1, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FB, | |
12756 11, 0x1F9D1, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FC, | |
12757 11, 0x1F9D1, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FD, | |
12758 11, 0x1F9D1, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FF, | |
12759 9, 0x1F9D1, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FB, | |
12760 9, 0x1F9D1, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FC, | |
12761 9, 0x1F9D1, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FD, | |
12762 9, 0x1F9D1, 0x1F3FE, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FF, | |
12763 8, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FB, | |
12764 8, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FC, | |
12765 8, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FD, | |
12766 8, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FE, | |
12767 8, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FF, | |
12768 11, 0x1F9D1, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FB, | |
12769 11, 0x1F9D1, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FC, | |
12770 11, 0x1F9D1, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FD, | |
12771 11, 0x1F9D1, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F48B, 0x200D, 0x1F9D1, 0x1F3FE, | |
12772 9, 0x1F9D1, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FB, | |
12773 9, 0x1F9D1, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FC, | |
12774 9, 0x1F9D1, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FD, | |
12775 9, 0x1F9D1, 0x1F3FF, 0x200D, 0x2764, 0xFE0F, 0x200D, 0x1F9D1, 0x1F3FE, | |
12776 8, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FB, | |
12777 8, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FC, | |
12778 8, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FD, | |
12779 8, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FE, | |
12780 8, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F91D, 0x200D, 0x1F9D1, 0x1F3FF, | |
12781 6, 0x1FAF1, 0x1F3FB, 0x200D, 0x1FAF2, 0x1F3FC, | |
12782 6, 0x1FAF1, 0x1F3FB, 0x200D, 0x1FAF2, 0x1F3FD, | |
12783 6, 0x1FAF1, 0x1F3FB, 0x200D, 0x1FAF2, 0x1F3FE, | |
12784 6, 0x1FAF1, 0x1F3FB, 0x200D, 0x1FAF2, 0x1F3FF, | |
12785 6, 0x1FAF1, 0x1F3FC, 0x200D, 0x1FAF2, 0x1F3FB, | |
12786 6, 0x1FAF1, 0x1F3FC, 0x200D, 0x1FAF2, 0x1F3FD, | |
12787 6, 0x1FAF1, 0x1F3FC, 0x200D, 0x1FAF2, 0x1F3FE, | |
12788 6, 0x1FAF1, 0x1F3FC, 0x200D, 0x1FAF2, 0x1F3FF, | |
12789 6, 0x1FAF1, 0x1F3FD, 0x200D, 0x1FAF2, 0x1F3FB, | |
12790 6, 0x1FAF1, 0x1F3FD, 0x200D, 0x1FAF2, 0x1F3FC, | |
12791 6, 0x1FAF1, 0x1F3FD, 0x200D, 0x1FAF2, 0x1F3FE, | |
12792 6, 0x1FAF1, 0x1F3FD, 0x200D, 0x1FAF2, 0x1F3FF, | |
12793 6, 0x1FAF1, 0x1F3FE, 0x200D, 0x1FAF2, 0x1F3FB, | |
12794 6, 0x1FAF1, 0x1F3FE, 0x200D, 0x1FAF2, 0x1F3FC, | |
12795 6, 0x1FAF1, 0x1F3FE, 0x200D, 0x1FAF2, 0x1F3FD, | |
12796 6, 0x1FAF1, 0x1F3FE, 0x200D, 0x1FAF2, 0x1F3FF, | |
12797 6, 0x1FAF1, 0x1F3FF, 0x200D, 0x1FAF2, 0x1F3FB, | |
12798 6, 0x1FAF1, 0x1F3FF, 0x200D, 0x1FAF2, 0x1F3FC, | |
12799 6, 0x1FAF1, 0x1F3FF, 0x200D, 0x1FAF2, 0x1F3FD, | |
12800 6, 0x1FAF1, 0x1F3FF, 0x200D, 0x1FAF2, 0x1F3FE, | |
12801 5, 0x1F3C3, 0x200D, 0x27A1, 0xFE0F, | |
12802 6, 0x1F3C3, 0x1F3FB, 0x200D, 0x27A1, 0xFE0F, | |
12803 6, 0x1F3C3, 0x1F3FC, 0x200D, 0x27A1, 0xFE0F, | |
12804 6, 0x1F3C3, 0x1F3FD, 0x200D, 0x27A1, 0xFE0F, | |
12805 6, 0x1F3C3, 0x1F3FE, 0x200D, 0x27A1, 0xFE0F, | |
12806 6, 0x1F3C3, 0x1F3FF, 0x200D, 0x27A1, 0xFE0F, | |
12807 5, 0x1F468, 0x200D, 0x2695, 0xFE0F, | |
12808 5, 0x1F468, 0x200D, 0x2696, 0xFE0F, | |
12809 5, 0x1F468, 0x200D, 0x2708, 0xFE0F, | |
12810 4, 0x1F468, 0x200D, 0x1F33E, | |
12811 4, 0x1F468, 0x200D, 0x1F373, | |
12812 4, 0x1F468, 0x200D, 0x1F37C, | |
12813 4, 0x1F468, 0x200D, 0x1F393, | |
12814 4, 0x1F468, 0x200D, 0x1F3A4, | |
12815 4, 0x1F468, 0x200D, 0x1F3A8, | |
12816 4, 0x1F468, 0x200D, 0x1F3EB, | |
12817 4, 0x1F468, 0x200D, 0x1F3ED, | |
12818 4, 0x1F468, 0x200D, 0x1F4BB, | |
12819 4, 0x1F468, 0x200D, 0x1F4BC, | |
12820 4, 0x1F468, 0x200D, 0x1F527, | |
12821 4, 0x1F468, 0x200D, 0x1F52C, | |
12822 4, 0x1F468, 0x200D, 0x1F680, | |
12823 4, 0x1F468, 0x200D, 0x1F692, | |
12824 4, 0x1F468, 0x200D, 0x1F9AF, | |
12825 7, 0x1F468, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
12826 4, 0x1F468, 0x200D, 0x1F9BC, | |
12827 7, 0x1F468, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
12828 4, 0x1F468, 0x200D, 0x1F9BD, | |
12829 7, 0x1F468, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
12830 6, 0x1F468, 0x1F3FB, 0x200D, 0x2695, 0xFE0F, | |
12831 6, 0x1F468, 0x1F3FB, 0x200D, 0x2696, 0xFE0F, | |
12832 6, 0x1F468, 0x1F3FB, 0x200D, 0x2708, 0xFE0F, | |
12833 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F33E, | |
12834 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F373, | |
12835 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F37C, | |
12836 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F393, | |
12837 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F3A4, | |
12838 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F3A8, | |
12839 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F3EB, | |
12840 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F3ED, | |
12841 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F4BB, | |
12842 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F4BC, | |
12843 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F527, | |
12844 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F52C, | |
12845 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F680, | |
12846 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F692, | |
12847 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F9AF, | |
12848 8, 0x1F468, 0x1F3FB, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
12849 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F9BC, | |
12850 8, 0x1F468, 0x1F3FB, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
12851 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F9BD, | |
12852 8, 0x1F468, 0x1F3FB, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
12853 6, 0x1F468, 0x1F3FC, 0x200D, 0x2695, 0xFE0F, | |
12854 6, 0x1F468, 0x1F3FC, 0x200D, 0x2696, 0xFE0F, | |
12855 6, 0x1F468, 0x1F3FC, 0x200D, 0x2708, 0xFE0F, | |
12856 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F33E, | |
12857 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F373, | |
12858 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F37C, | |
12859 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F393, | |
12860 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F3A4, | |
12861 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F3A8, | |
12862 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F3EB, | |
12863 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F3ED, | |
12864 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F4BB, | |
12865 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F4BC, | |
12866 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F527, | |
12867 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F52C, | |
12868 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F680, | |
12869 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F692, | |
12870 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F9AF, | |
12871 8, 0x1F468, 0x1F3FC, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
12872 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F9BC, | |
12873 8, 0x1F468, 0x1F3FC, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
12874 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F9BD, | |
12875 8, 0x1F468, 0x1F3FC, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
12876 6, 0x1F468, 0x1F3FD, 0x200D, 0x2695, 0xFE0F, | |
12877 6, 0x1F468, 0x1F3FD, 0x200D, 0x2696, 0xFE0F, | |
12878 6, 0x1F468, 0x1F3FD, 0x200D, 0x2708, 0xFE0F, | |
12879 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F33E, | |
12880 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F373, | |
12881 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F37C, | |
12882 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F393, | |
12883 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F3A4, | |
12884 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F3A8, | |
12885 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F3EB, | |
12886 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F3ED, | |
12887 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F4BB, | |
12888 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F4BC, | |
12889 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F527, | |
12890 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F52C, | |
12891 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F680, | |
12892 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F692, | |
12893 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F9AF, | |
12894 8, 0x1F468, 0x1F3FD, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
12895 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F9BC, | |
12896 8, 0x1F468, 0x1F3FD, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
12897 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F9BD, | |
12898 8, 0x1F468, 0x1F3FD, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
12899 6, 0x1F468, 0x1F3FE, 0x200D, 0x2695, 0xFE0F, | |
12900 6, 0x1F468, 0x1F3FE, 0x200D, 0x2696, 0xFE0F, | |
12901 6, 0x1F468, 0x1F3FE, 0x200D, 0x2708, 0xFE0F, | |
12902 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F33E, | |
12903 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F373, | |
12904 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F37C, | |
12905 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F393, | |
12906 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F3A4, | |
12907 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F3A8, | |
12908 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F3EB, | |
12909 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F3ED, | |
12910 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F4BB, | |
12911 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F4BC, | |
12912 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F527, | |
12913 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F52C, | |
12914 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F680, | |
12915 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F692, | |
12916 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F9AF, | |
12917 8, 0x1F468, 0x1F3FE, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
12918 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F9BC, | |
12919 8, 0x1F468, 0x1F3FE, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
12920 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F9BD, | |
12921 8, 0x1F468, 0x1F3FE, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
12922 6, 0x1F468, 0x1F3FF, 0x200D, 0x2695, 0xFE0F, | |
12923 6, 0x1F468, 0x1F3FF, 0x200D, 0x2696, 0xFE0F, | |
12924 6, 0x1F468, 0x1F3FF, 0x200D, 0x2708, 0xFE0F, | |
12925 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F33E, | |
12926 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F373, | |
12927 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F37C, | |
12928 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F393, | |
12929 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F3A4, | |
12930 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F3A8, | |
12931 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F3EB, | |
12932 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F3ED, | |
12933 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F4BB, | |
12934 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F4BC, | |
12935 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F527, | |
12936 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F52C, | |
12937 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F680, | |
12938 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F692, | |
12939 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F9AF, | |
12940 8, 0x1F468, 0x1F3FF, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
12941 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F9BC, | |
12942 8, 0x1F468, 0x1F3FF, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
12943 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F9BD, | |
12944 8, 0x1F468, 0x1F3FF, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
12945 5, 0x1F469, 0x200D, 0x2695, 0xFE0F, | |
12946 5, 0x1F469, 0x200D, 0x2696, 0xFE0F, | |
12947 5, 0x1F469, 0x200D, 0x2708, 0xFE0F, | |
12948 4, 0x1F469, 0x200D, 0x1F33E, | |
12949 4, 0x1F469, 0x200D, 0x1F373, | |
12950 4, 0x1F469, 0x200D, 0x1F37C, | |
12951 4, 0x1F469, 0x200D, 0x1F393, | |
12952 4, 0x1F469, 0x200D, 0x1F3A4, | |
12953 4, 0x1F469, 0x200D, 0x1F3A8, | |
12954 4, 0x1F469, 0x200D, 0x1F3EB, | |
12955 4, 0x1F469, 0x200D, 0x1F3ED, | |
12956 4, 0x1F469, 0x200D, 0x1F4BB, | |
12957 4, 0x1F469, 0x200D, 0x1F4BC, | |
12958 4, 0x1F469, 0x200D, 0x1F527, | |
12959 4, 0x1F469, 0x200D, 0x1F52C, | |
12960 4, 0x1F469, 0x200D, 0x1F680, | |
12961 4, 0x1F469, 0x200D, 0x1F692, | |
12962 4, 0x1F469, 0x200D, 0x1F9AF, | |
12963 7, 0x1F469, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
12964 4, 0x1F469, 0x200D, 0x1F9BC, | |
12965 7, 0x1F469, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
12966 4, 0x1F469, 0x200D, 0x1F9BD, | |
12967 7, 0x1F469, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
12968 6, 0x1F469, 0x1F3FB, 0x200D, 0x2695, 0xFE0F, | |
12969 6, 0x1F469, 0x1F3FB, 0x200D, 0x2696, 0xFE0F, | |
12970 6, 0x1F469, 0x1F3FB, 0x200D, 0x2708, 0xFE0F, | |
12971 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F33E, | |
12972 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F373, | |
12973 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F37C, | |
12974 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F393, | |
12975 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F3A4, | |
12976 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F3A8, | |
12977 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F3EB, | |
12978 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F3ED, | |
12979 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F4BB, | |
12980 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F4BC, | |
12981 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F527, | |
12982 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F52C, | |
12983 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F680, | |
12984 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F692, | |
12985 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F9AF, | |
12986 8, 0x1F469, 0x1F3FB, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
12987 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F9BC, | |
12988 8, 0x1F469, 0x1F3FB, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
12989 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F9BD, | |
12990 8, 0x1F469, 0x1F3FB, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
12991 6, 0x1F469, 0x1F3FC, 0x200D, 0x2695, 0xFE0F, | |
12992 6, 0x1F469, 0x1F3FC, 0x200D, 0x2696, 0xFE0F, | |
12993 6, 0x1F469, 0x1F3FC, 0x200D, 0x2708, 0xFE0F, | |
12994 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F33E, | |
12995 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F373, | |
12996 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F37C, | |
12997 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F393, | |
12998 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F3A4, | |
12999 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F3A8, | |
13000 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F3EB, | |
13001 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F3ED, | |
13002 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F4BB, | |
13003 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F4BC, | |
13004 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F527, | |
13005 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F52C, | |
13006 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F680, | |
13007 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F692, | |
13008 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F9AF, | |
13009 8, 0x1F469, 0x1F3FC, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
13010 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F9BC, | |
13011 8, 0x1F469, 0x1F3FC, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
13012 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F9BD, | |
13013 8, 0x1F469, 0x1F3FC, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
13014 6, 0x1F469, 0x1F3FD, 0x200D, 0x2695, 0xFE0F, | |
13015 6, 0x1F469, 0x1F3FD, 0x200D, 0x2696, 0xFE0F, | |
13016 6, 0x1F469, 0x1F3FD, 0x200D, 0x2708, 0xFE0F, | |
13017 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F33E, | |
13018 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F373, | |
13019 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F37C, | |
13020 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F393, | |
13021 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F3A4, | |
13022 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F3A8, | |
13023 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F3EB, | |
13024 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F3ED, | |
13025 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F4BB, | |
13026 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F4BC, | |
13027 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F527, | |
13028 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F52C, | |
13029 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F680, | |
13030 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F692, | |
13031 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F9AF, | |
13032 8, 0x1F469, 0x1F3FD, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
13033 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F9BC, | |
13034 8, 0x1F469, 0x1F3FD, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
13035 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F9BD, | |
13036 8, 0x1F469, 0x1F3FD, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
13037 6, 0x1F469, 0x1F3FE, 0x200D, 0x2695, 0xFE0F, | |
13038 6, 0x1F469, 0x1F3FE, 0x200D, 0x2696, 0xFE0F, | |
13039 6, 0x1F469, 0x1F3FE, 0x200D, 0x2708, 0xFE0F, | |
13040 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F33E, | |
13041 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F373, | |
13042 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F37C, | |
13043 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F393, | |
13044 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F3A4, | |
13045 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F3A8, | |
13046 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F3EB, | |
13047 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F3ED, | |
13048 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F4BB, | |
13049 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F4BC, | |
13050 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F527, | |
13051 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F52C, | |
13052 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F680, | |
13053 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F692, | |
13054 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F9AF, | |
13055 8, 0x1F469, 0x1F3FE, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
13056 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F9BC, | |
13057 8, 0x1F469, 0x1F3FE, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
13058 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F9BD, | |
13059 8, 0x1F469, 0x1F3FE, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
13060 6, 0x1F469, 0x1F3FF, 0x200D, 0x2695, 0xFE0F, | |
13061 6, 0x1F469, 0x1F3FF, 0x200D, 0x2696, 0xFE0F, | |
13062 6, 0x1F469, 0x1F3FF, 0x200D, 0x2708, 0xFE0F, | |
13063 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F33E, | |
13064 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F373, | |
13065 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F37C, | |
13066 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F393, | |
13067 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F3A4, | |
13068 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F3A8, | |
13069 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F3EB, | |
13070 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F3ED, | |
13071 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F4BB, | |
13072 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F4BC, | |
13073 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F527, | |
13074 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F52C, | |
13075 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F680, | |
13076 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F692, | |
13077 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F9AF, | |
13078 8, 0x1F469, 0x1F3FF, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
13079 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F9BC, | |
13080 8, 0x1F469, 0x1F3FF, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
13081 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F9BD, | |
13082 8, 0x1F469, 0x1F3FF, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
13083 5, 0x1F6B6, 0x200D, 0x27A1, 0xFE0F, | |
13084 6, 0x1F6B6, 0x1F3FB, 0x200D, 0x27A1, 0xFE0F, | |
13085 6, 0x1F6B6, 0x1F3FC, 0x200D, 0x27A1, 0xFE0F, | |
13086 6, 0x1F6B6, 0x1F3FD, 0x200D, 0x27A1, 0xFE0F, | |
13087 6, 0x1F6B6, 0x1F3FE, 0x200D, 0x27A1, 0xFE0F, | |
13088 6, 0x1F6B6, 0x1F3FF, 0x200D, 0x27A1, 0xFE0F, | |
13089 5, 0x1F9CE, 0x200D, 0x27A1, 0xFE0F, | |
13090 6, 0x1F9CE, 0x1F3FB, 0x200D, 0x27A1, 0xFE0F, | |
13091 6, 0x1F9CE, 0x1F3FC, 0x200D, 0x27A1, 0xFE0F, | |
13092 6, 0x1F9CE, 0x1F3FD, 0x200D, 0x27A1, 0xFE0F, | |
13093 6, 0x1F9CE, 0x1F3FE, 0x200D, 0x27A1, 0xFE0F, | |
13094 6, 0x1F9CE, 0x1F3FF, 0x200D, 0x27A1, 0xFE0F, | |
13095 5, 0x1F9D1, 0x200D, 0x2695, 0xFE0F, | |
13096 5, 0x1F9D1, 0x200D, 0x2696, 0xFE0F, | |
13097 5, 0x1F9D1, 0x200D, 0x2708, 0xFE0F, | |
13098 4, 0x1F9D1, 0x200D, 0x1F33E, | |
13099 4, 0x1F9D1, 0x200D, 0x1F373, | |
13100 4, 0x1F9D1, 0x200D, 0x1F37C, | |
13101 4, 0x1F9D1, 0x200D, 0x1F384, | |
13102 4, 0x1F9D1, 0x200D, 0x1F393, | |
13103 4, 0x1F9D1, 0x200D, 0x1F3A4, | |
13104 4, 0x1F9D1, 0x200D, 0x1F3A8, | |
13105 4, 0x1F9D1, 0x200D, 0x1F3EB, | |
13106 4, 0x1F9D1, 0x200D, 0x1F3ED, | |
13107 4, 0x1F9D1, 0x200D, 0x1F4BB, | |
13108 4, 0x1F9D1, 0x200D, 0x1F4BC, | |
13109 4, 0x1F9D1, 0x200D, 0x1F527, | |
13110 4, 0x1F9D1, 0x200D, 0x1F52C, | |
13111 4, 0x1F9D1, 0x200D, 0x1F680, | |
13112 4, 0x1F9D1, 0x200D, 0x1F692, | |
13113 4, 0x1F9D1, 0x200D, 0x1F9AF, | |
13114 7, 0x1F9D1, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
13115 4, 0x1F9D1, 0x200D, 0x1F9BC, | |
13116 7, 0x1F9D1, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
13117 4, 0x1F9D1, 0x200D, 0x1F9BD, | |
13118 7, 0x1F9D1, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
13119 6, 0x1F9D1, 0x1F3FB, 0x200D, 0x2695, 0xFE0F, | |
13120 6, 0x1F9D1, 0x1F3FB, 0x200D, 0x2696, 0xFE0F, | |
13121 6, 0x1F9D1, 0x1F3FB, 0x200D, 0x2708, 0xFE0F, | |
13122 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F33E, | |
13123 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F373, | |
13124 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F37C, | |
13125 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F384, | |
13126 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F393, | |
13127 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F3A4, | |
13128 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F3A8, | |
13129 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F3EB, | |
13130 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F3ED, | |
13131 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F4BB, | |
13132 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F4BC, | |
13133 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F527, | |
13134 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F52C, | |
13135 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F680, | |
13136 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F692, | |
13137 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F9AF, | |
13138 8, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
13139 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F9BC, | |
13140 8, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
13141 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F9BD, | |
13142 8, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
13143 6, 0x1F9D1, 0x1F3FC, 0x200D, 0x2695, 0xFE0F, | |
13144 6, 0x1F9D1, 0x1F3FC, 0x200D, 0x2696, 0xFE0F, | |
13145 6, 0x1F9D1, 0x1F3FC, 0x200D, 0x2708, 0xFE0F, | |
13146 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F33E, | |
13147 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F373, | |
13148 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F37C, | |
13149 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F384, | |
13150 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F393, | |
13151 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F3A4, | |
13152 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F3A8, | |
13153 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F3EB, | |
13154 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F3ED, | |
13155 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F4BB, | |
13156 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F4BC, | |
13157 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F527, | |
13158 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F52C, | |
13159 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F680, | |
13160 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F692, | |
13161 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F9AF, | |
13162 8, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
13163 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F9BC, | |
13164 8, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
13165 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F9BD, | |
13166 8, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
13167 6, 0x1F9D1, 0x1F3FD, 0x200D, 0x2695, 0xFE0F, | |
13168 6, 0x1F9D1, 0x1F3FD, 0x200D, 0x2696, 0xFE0F, | |
13169 6, 0x1F9D1, 0x1F3FD, 0x200D, 0x2708, 0xFE0F, | |
13170 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F33E, | |
13171 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F373, | |
13172 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F37C, | |
13173 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F384, | |
13174 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F393, | |
13175 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F3A4, | |
13176 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F3A8, | |
13177 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F3EB, | |
13178 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F3ED, | |
13179 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F4BB, | |
13180 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F4BC, | |
13181 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F527, | |
13182 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F52C, | |
13183 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F680, | |
13184 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F692, | |
13185 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F9AF, | |
13186 8, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
13187 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F9BC, | |
13188 8, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
13189 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F9BD, | |
13190 8, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
13191 6, 0x1F9D1, 0x1F3FE, 0x200D, 0x2695, 0xFE0F, | |
13192 6, 0x1F9D1, 0x1F3FE, 0x200D, 0x2696, 0xFE0F, | |
13193 6, 0x1F9D1, 0x1F3FE, 0x200D, 0x2708, 0xFE0F, | |
13194 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F33E, | |
13195 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F373, | |
13196 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F37C, | |
13197 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F384, | |
13198 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F393, | |
13199 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F3A4, | |
13200 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F3A8, | |
13201 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F3EB, | |
13202 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F3ED, | |
13203 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F4BB, | |
13204 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F4BC, | |
13205 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F527, | |
13206 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F52C, | |
13207 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F680, | |
13208 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F692, | |
13209 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F9AF, | |
13210 8, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
13211 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F9BC, | |
13212 8, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
13213 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F9BD, | |
13214 8, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
13215 6, 0x1F9D1, 0x1F3FF, 0x200D, 0x2695, 0xFE0F, | |
13216 6, 0x1F9D1, 0x1F3FF, 0x200D, 0x2696, 0xFE0F, | |
13217 6, 0x1F9D1, 0x1F3FF, 0x200D, 0x2708, 0xFE0F, | |
13218 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F33E, | |
13219 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F373, | |
13220 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F37C, | |
13221 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F384, | |
13222 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F393, | |
13223 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F3A4, | |
13224 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F3A8, | |
13225 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F3EB, | |
13226 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F3ED, | |
13227 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F4BB, | |
13228 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F4BC, | |
13229 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F527, | |
13230 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F52C, | |
13231 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F680, | |
13232 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F692, | |
13233 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F9AF, | |
13234 8, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F9AF, 0x200D, 0x27A1, 0xFE0F, | |
13235 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F9BC, | |
13236 8, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F9BC, 0x200D, 0x27A1, 0xFE0F, | |
13237 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F9BD, | |
13238 8, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F9BD, 0x200D, 0x27A1, 0xFE0F, | |
13239 6, 0x26F9, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13240 6, 0x26F9, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13241 6, 0x26F9, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13242 6, 0x26F9, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13243 6, 0x26F9, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13244 6, 0x26F9, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13245 6, 0x26F9, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13246 6, 0x26F9, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13247 6, 0x26F9, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13248 6, 0x26F9, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13249 6, 0x26F9, 0xFE0F, 0x200D, 0x2640, 0xFE0F, | |
13250 6, 0x26F9, 0xFE0F, 0x200D, 0x2642, 0xFE0F, | |
13251 5, 0x1F3C3, 0x200D, 0x2640, 0xFE0F, | |
13252 8, 0x1F3C3, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13253 5, 0x1F3C3, 0x200D, 0x2642, 0xFE0F, | |
13254 8, 0x1F3C3, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13255 6, 0x1F3C3, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13256 9, 0x1F3C3, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13257 6, 0x1F3C3, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13258 9, 0x1F3C3, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13259 6, 0x1F3C3, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13260 9, 0x1F3C3, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13261 6, 0x1F3C3, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13262 9, 0x1F3C3, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13263 6, 0x1F3C3, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13264 9, 0x1F3C3, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13265 6, 0x1F3C3, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13266 9, 0x1F3C3, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13267 6, 0x1F3C3, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13268 9, 0x1F3C3, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13269 6, 0x1F3C3, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13270 9, 0x1F3C3, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13271 6, 0x1F3C3, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13272 9, 0x1F3C3, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13273 6, 0x1F3C3, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13274 9, 0x1F3C3, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13275 5, 0x1F3C4, 0x200D, 0x2640, 0xFE0F, | |
13276 5, 0x1F3C4, 0x200D, 0x2642, 0xFE0F, | |
13277 6, 0x1F3C4, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13278 6, 0x1F3C4, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13279 6, 0x1F3C4, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13280 6, 0x1F3C4, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13281 6, 0x1F3C4, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13282 6, 0x1F3C4, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13283 6, 0x1F3C4, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13284 6, 0x1F3C4, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13285 6, 0x1F3C4, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13286 6, 0x1F3C4, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13287 5, 0x1F3CA, 0x200D, 0x2640, 0xFE0F, | |
13288 5, 0x1F3CA, 0x200D, 0x2642, 0xFE0F, | |
13289 6, 0x1F3CA, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13290 6, 0x1F3CA, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13291 6, 0x1F3CA, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13292 6, 0x1F3CA, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13293 6, 0x1F3CA, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13294 6, 0x1F3CA, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13295 6, 0x1F3CA, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13296 6, 0x1F3CA, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13297 6, 0x1F3CA, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13298 6, 0x1F3CA, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13299 6, 0x1F3CB, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13300 6, 0x1F3CB, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13301 6, 0x1F3CB, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13302 6, 0x1F3CB, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13303 6, 0x1F3CB, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13304 6, 0x1F3CB, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13305 6, 0x1F3CB, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13306 6, 0x1F3CB, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13307 6, 0x1F3CB, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13308 6, 0x1F3CB, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13309 6, 0x1F3CB, 0xFE0F, 0x200D, 0x2640, 0xFE0F, | |
13310 6, 0x1F3CB, 0xFE0F, 0x200D, 0x2642, 0xFE0F, | |
13311 6, 0x1F3CC, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13312 6, 0x1F3CC, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13313 6, 0x1F3CC, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13314 6, 0x1F3CC, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13315 6, 0x1F3CC, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13316 6, 0x1F3CC, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13317 6, 0x1F3CC, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13318 6, 0x1F3CC, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13319 6, 0x1F3CC, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13320 6, 0x1F3CC, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13321 6, 0x1F3CC, 0xFE0F, 0x200D, 0x2640, 0xFE0F, | |
13322 6, 0x1F3CC, 0xFE0F, 0x200D, 0x2642, 0xFE0F, | |
13323 5, 0x1F46E, 0x200D, 0x2640, 0xFE0F, | |
13324 5, 0x1F46E, 0x200D, 0x2642, 0xFE0F, | |
13325 6, 0x1F46E, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13326 6, 0x1F46E, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13327 6, 0x1F46E, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13328 6, 0x1F46E, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13329 6, 0x1F46E, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13330 6, 0x1F46E, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13331 6, 0x1F46E, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13332 6, 0x1F46E, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13333 6, 0x1F46E, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13334 6, 0x1F46E, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13335 5, 0x1F46F, 0x200D, 0x2640, 0xFE0F, | |
13336 5, 0x1F46F, 0x200D, 0x2642, 0xFE0F, | |
13337 5, 0x1F470, 0x200D, 0x2640, 0xFE0F, | |
13338 5, 0x1F470, 0x200D, 0x2642, 0xFE0F, | |
13339 6, 0x1F470, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13340 6, 0x1F470, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13341 6, 0x1F470, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13342 6, 0x1F470, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13343 6, 0x1F470, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13344 6, 0x1F470, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13345 6, 0x1F470, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13346 6, 0x1F470, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13347 6, 0x1F470, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13348 6, 0x1F470, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13349 5, 0x1F471, 0x200D, 0x2640, 0xFE0F, | |
13350 5, 0x1F471, 0x200D, 0x2642, 0xFE0F, | |
13351 6, 0x1F471, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13352 6, 0x1F471, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13353 6, 0x1F471, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13354 6, 0x1F471, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13355 6, 0x1F471, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13356 6, 0x1F471, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13357 6, 0x1F471, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13358 6, 0x1F471, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13359 6, 0x1F471, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13360 6, 0x1F471, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13361 5, 0x1F473, 0x200D, 0x2640, 0xFE0F, | |
13362 5, 0x1F473, 0x200D, 0x2642, 0xFE0F, | |
13363 6, 0x1F473, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13364 6, 0x1F473, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13365 6, 0x1F473, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13366 6, 0x1F473, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13367 6, 0x1F473, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13368 6, 0x1F473, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13369 6, 0x1F473, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13370 6, 0x1F473, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13371 6, 0x1F473, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13372 6, 0x1F473, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13373 5, 0x1F477, 0x200D, 0x2640, 0xFE0F, | |
13374 5, 0x1F477, 0x200D, 0x2642, 0xFE0F, | |
13375 6, 0x1F477, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13376 6, 0x1F477, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13377 6, 0x1F477, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13378 6, 0x1F477, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13379 6, 0x1F477, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13380 6, 0x1F477, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13381 6, 0x1F477, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13382 6, 0x1F477, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13383 6, 0x1F477, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13384 6, 0x1F477, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13385 5, 0x1F481, 0x200D, 0x2640, 0xFE0F, | |
13386 5, 0x1F481, 0x200D, 0x2642, 0xFE0F, | |
13387 6, 0x1F481, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13388 6, 0x1F481, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13389 6, 0x1F481, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13390 6, 0x1F481, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13391 6, 0x1F481, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13392 6, 0x1F481, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13393 6, 0x1F481, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13394 6, 0x1F481, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13395 6, 0x1F481, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13396 6, 0x1F481, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13397 5, 0x1F482, 0x200D, 0x2640, 0xFE0F, | |
13398 5, 0x1F482, 0x200D, 0x2642, 0xFE0F, | |
13399 6, 0x1F482, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13400 6, 0x1F482, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13401 6, 0x1F482, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13402 6, 0x1F482, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13403 6, 0x1F482, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13404 6, 0x1F482, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13405 6, 0x1F482, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13406 6, 0x1F482, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13407 6, 0x1F482, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13408 6, 0x1F482, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13409 5, 0x1F486, 0x200D, 0x2640, 0xFE0F, | |
13410 5, 0x1F486, 0x200D, 0x2642, 0xFE0F, | |
13411 6, 0x1F486, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13412 6, 0x1F486, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13413 6, 0x1F486, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13414 6, 0x1F486, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13415 6, 0x1F486, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13416 6, 0x1F486, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13417 6, 0x1F486, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13418 6, 0x1F486, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13419 6, 0x1F486, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13420 6, 0x1F486, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13421 5, 0x1F487, 0x200D, 0x2640, 0xFE0F, | |
13422 5, 0x1F487, 0x200D, 0x2642, 0xFE0F, | |
13423 6, 0x1F487, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13424 6, 0x1F487, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13425 6, 0x1F487, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13426 6, 0x1F487, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13427 6, 0x1F487, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13428 6, 0x1F487, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13429 6, 0x1F487, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13430 6, 0x1F487, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13431 6, 0x1F487, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13432 6, 0x1F487, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13433 6, 0x1F575, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13434 6, 0x1F575, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13435 6, 0x1F575, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13436 6, 0x1F575, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13437 6, 0x1F575, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13438 6, 0x1F575, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13439 6, 0x1F575, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13440 6, 0x1F575, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13441 6, 0x1F575, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13442 6, 0x1F575, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13443 6, 0x1F575, 0xFE0F, 0x200D, 0x2640, 0xFE0F, | |
13444 6, 0x1F575, 0xFE0F, 0x200D, 0x2642, 0xFE0F, | |
13445 5, 0x1F645, 0x200D, 0x2640, 0xFE0F, | |
13446 5, 0x1F645, 0x200D, 0x2642, 0xFE0F, | |
13447 6, 0x1F645, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13448 6, 0x1F645, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13449 6, 0x1F645, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13450 6, 0x1F645, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13451 6, 0x1F645, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13452 6, 0x1F645, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13453 6, 0x1F645, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13454 6, 0x1F645, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13455 6, 0x1F645, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13456 6, 0x1F645, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13457 5, 0x1F646, 0x200D, 0x2640, 0xFE0F, | |
13458 5, 0x1F646, 0x200D, 0x2642, 0xFE0F, | |
13459 6, 0x1F646, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13460 6, 0x1F646, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13461 6, 0x1F646, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13462 6, 0x1F646, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13463 6, 0x1F646, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13464 6, 0x1F646, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13465 6, 0x1F646, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13466 6, 0x1F646, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13467 6, 0x1F646, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13468 6, 0x1F646, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13469 5, 0x1F647, 0x200D, 0x2640, 0xFE0F, | |
13470 5, 0x1F647, 0x200D, 0x2642, 0xFE0F, | |
13471 6, 0x1F647, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13472 6, 0x1F647, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13473 6, 0x1F647, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13474 6, 0x1F647, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13475 6, 0x1F647, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13476 6, 0x1F647, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13477 6, 0x1F647, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13478 6, 0x1F647, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13479 6, 0x1F647, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13480 6, 0x1F647, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13481 5, 0x1F64B, 0x200D, 0x2640, 0xFE0F, | |
13482 5, 0x1F64B, 0x200D, 0x2642, 0xFE0F, | |
13483 6, 0x1F64B, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13484 6, 0x1F64B, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13485 6, 0x1F64B, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13486 6, 0x1F64B, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13487 6, 0x1F64B, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13488 6, 0x1F64B, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13489 6, 0x1F64B, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13490 6, 0x1F64B, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13491 6, 0x1F64B, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13492 6, 0x1F64B, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13493 5, 0x1F64D, 0x200D, 0x2640, 0xFE0F, | |
13494 5, 0x1F64D, 0x200D, 0x2642, 0xFE0F, | |
13495 6, 0x1F64D, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13496 6, 0x1F64D, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13497 6, 0x1F64D, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13498 6, 0x1F64D, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13499 6, 0x1F64D, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13500 6, 0x1F64D, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13501 6, 0x1F64D, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13502 6, 0x1F64D, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13503 6, 0x1F64D, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13504 6, 0x1F64D, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13505 5, 0x1F64E, 0x200D, 0x2640, 0xFE0F, | |
13506 5, 0x1F64E, 0x200D, 0x2642, 0xFE0F, | |
13507 6, 0x1F64E, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13508 6, 0x1F64E, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13509 6, 0x1F64E, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13510 6, 0x1F64E, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13511 6, 0x1F64E, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13512 6, 0x1F64E, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13513 6, 0x1F64E, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13514 6, 0x1F64E, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13515 6, 0x1F64E, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13516 6, 0x1F64E, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13517 5, 0x1F6A3, 0x200D, 0x2640, 0xFE0F, | |
13518 5, 0x1F6A3, 0x200D, 0x2642, 0xFE0F, | |
13519 6, 0x1F6A3, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13520 6, 0x1F6A3, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13521 6, 0x1F6A3, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13522 6, 0x1F6A3, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13523 6, 0x1F6A3, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13524 6, 0x1F6A3, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13525 6, 0x1F6A3, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13526 6, 0x1F6A3, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13527 6, 0x1F6A3, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13528 6, 0x1F6A3, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13529 5, 0x1F6B4, 0x200D, 0x2640, 0xFE0F, | |
13530 5, 0x1F6B4, 0x200D, 0x2642, 0xFE0F, | |
13531 6, 0x1F6B4, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13532 6, 0x1F6B4, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13533 6, 0x1F6B4, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13534 6, 0x1F6B4, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13535 6, 0x1F6B4, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13536 6, 0x1F6B4, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13537 6, 0x1F6B4, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13538 6, 0x1F6B4, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13539 6, 0x1F6B4, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13540 6, 0x1F6B4, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13541 5, 0x1F6B5, 0x200D, 0x2640, 0xFE0F, | |
13542 5, 0x1F6B5, 0x200D, 0x2642, 0xFE0F, | |
13543 6, 0x1F6B5, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13544 6, 0x1F6B5, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13545 6, 0x1F6B5, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13546 6, 0x1F6B5, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13547 6, 0x1F6B5, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13548 6, 0x1F6B5, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13549 6, 0x1F6B5, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13550 6, 0x1F6B5, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13551 6, 0x1F6B5, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13552 6, 0x1F6B5, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13553 5, 0x1F6B6, 0x200D, 0x2640, 0xFE0F, | |
13554 8, 0x1F6B6, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13555 5, 0x1F6B6, 0x200D, 0x2642, 0xFE0F, | |
13556 8, 0x1F6B6, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13557 6, 0x1F6B6, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13558 9, 0x1F6B6, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13559 6, 0x1F6B6, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13560 9, 0x1F6B6, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13561 6, 0x1F6B6, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13562 9, 0x1F6B6, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13563 6, 0x1F6B6, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13564 9, 0x1F6B6, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13565 6, 0x1F6B6, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13566 9, 0x1F6B6, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13567 6, 0x1F6B6, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13568 9, 0x1F6B6, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13569 6, 0x1F6B6, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13570 9, 0x1F6B6, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13571 6, 0x1F6B6, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13572 9, 0x1F6B6, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13573 6, 0x1F6B6, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13574 9, 0x1F6B6, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13575 6, 0x1F6B6, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13576 9, 0x1F6B6, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13577 5, 0x1F926, 0x200D, 0x2640, 0xFE0F, | |
13578 5, 0x1F926, 0x200D, 0x2642, 0xFE0F, | |
13579 6, 0x1F926, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13580 6, 0x1F926, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13581 6, 0x1F926, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13582 6, 0x1F926, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13583 6, 0x1F926, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13584 6, 0x1F926, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13585 6, 0x1F926, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13586 6, 0x1F926, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13587 6, 0x1F926, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13588 6, 0x1F926, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13589 5, 0x1F935, 0x200D, 0x2640, 0xFE0F, | |
13590 5, 0x1F935, 0x200D, 0x2642, 0xFE0F, | |
13591 6, 0x1F935, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13592 6, 0x1F935, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13593 6, 0x1F935, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13594 6, 0x1F935, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13595 6, 0x1F935, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13596 6, 0x1F935, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13597 6, 0x1F935, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13598 6, 0x1F935, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13599 6, 0x1F935, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13600 6, 0x1F935, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13601 5, 0x1F937, 0x200D, 0x2640, 0xFE0F, | |
13602 5, 0x1F937, 0x200D, 0x2642, 0xFE0F, | |
13603 6, 0x1F937, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13604 6, 0x1F937, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13605 6, 0x1F937, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13606 6, 0x1F937, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13607 6, 0x1F937, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13608 6, 0x1F937, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13609 6, 0x1F937, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13610 6, 0x1F937, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13611 6, 0x1F937, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13612 6, 0x1F937, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13613 5, 0x1F938, 0x200D, 0x2640, 0xFE0F, | |
13614 5, 0x1F938, 0x200D, 0x2642, 0xFE0F, | |
13615 6, 0x1F938, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13616 6, 0x1F938, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13617 6, 0x1F938, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13618 6, 0x1F938, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13619 6, 0x1F938, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13620 6, 0x1F938, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13621 6, 0x1F938, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13622 6, 0x1F938, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13623 6, 0x1F938, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13624 6, 0x1F938, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13625 5, 0x1F939, 0x200D, 0x2640, 0xFE0F, | |
13626 5, 0x1F939, 0x200D, 0x2642, 0xFE0F, | |
13627 6, 0x1F939, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13628 6, 0x1F939, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13629 6, 0x1F939, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13630 6, 0x1F939, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13631 6, 0x1F939, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13632 6, 0x1F939, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13633 6, 0x1F939, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13634 6, 0x1F939, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13635 6, 0x1F939, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13636 6, 0x1F939, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13637 5, 0x1F93C, 0x200D, 0x2640, 0xFE0F, | |
13638 5, 0x1F93C, 0x200D, 0x2642, 0xFE0F, | |
13639 5, 0x1F93D, 0x200D, 0x2640, 0xFE0F, | |
13640 5, 0x1F93D, 0x200D, 0x2642, 0xFE0F, | |
13641 6, 0x1F93D, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13642 6, 0x1F93D, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13643 6, 0x1F93D, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13644 6, 0x1F93D, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13645 6, 0x1F93D, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13646 6, 0x1F93D, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13647 6, 0x1F93D, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13648 6, 0x1F93D, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13649 6, 0x1F93D, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13650 6, 0x1F93D, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13651 5, 0x1F93E, 0x200D, 0x2640, 0xFE0F, | |
13652 5, 0x1F93E, 0x200D, 0x2642, 0xFE0F, | |
13653 6, 0x1F93E, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13654 6, 0x1F93E, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13655 6, 0x1F93E, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13656 6, 0x1F93E, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13657 6, 0x1F93E, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13658 6, 0x1F93E, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13659 6, 0x1F93E, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13660 6, 0x1F93E, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13661 6, 0x1F93E, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13662 6, 0x1F93E, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13663 5, 0x1F9B8, 0x200D, 0x2640, 0xFE0F, | |
13664 5, 0x1F9B8, 0x200D, 0x2642, 0xFE0F, | |
13665 6, 0x1F9B8, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13666 6, 0x1F9B8, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13667 6, 0x1F9B8, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13668 6, 0x1F9B8, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13669 6, 0x1F9B8, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13670 6, 0x1F9B8, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13671 6, 0x1F9B8, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13672 6, 0x1F9B8, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13673 6, 0x1F9B8, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13674 6, 0x1F9B8, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13675 5, 0x1F9B9, 0x200D, 0x2640, 0xFE0F, | |
13676 5, 0x1F9B9, 0x200D, 0x2642, 0xFE0F, | |
13677 6, 0x1F9B9, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13678 6, 0x1F9B9, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13679 6, 0x1F9B9, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13680 6, 0x1F9B9, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13681 6, 0x1F9B9, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13682 6, 0x1F9B9, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13683 6, 0x1F9B9, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13684 6, 0x1F9B9, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13685 6, 0x1F9B9, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13686 6, 0x1F9B9, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13687 5, 0x1F9CD, 0x200D, 0x2640, 0xFE0F, | |
13688 5, 0x1F9CD, 0x200D, 0x2642, 0xFE0F, | |
13689 6, 0x1F9CD, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13690 6, 0x1F9CD, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13691 6, 0x1F9CD, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13692 6, 0x1F9CD, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13693 6, 0x1F9CD, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13694 6, 0x1F9CD, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13695 6, 0x1F9CD, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13696 6, 0x1F9CD, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13697 6, 0x1F9CD, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13698 6, 0x1F9CD, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13699 5, 0x1F9CE, 0x200D, 0x2640, 0xFE0F, | |
13700 8, 0x1F9CE, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13701 5, 0x1F9CE, 0x200D, 0x2642, 0xFE0F, | |
13702 8, 0x1F9CE, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13703 6, 0x1F9CE, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13704 9, 0x1F9CE, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13705 6, 0x1F9CE, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13706 9, 0x1F9CE, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13707 6, 0x1F9CE, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13708 9, 0x1F9CE, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13709 6, 0x1F9CE, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13710 9, 0x1F9CE, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13711 6, 0x1F9CE, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13712 9, 0x1F9CE, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13713 6, 0x1F9CE, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13714 9, 0x1F9CE, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13715 6, 0x1F9CE, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13716 9, 0x1F9CE, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13717 6, 0x1F9CE, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13718 9, 0x1F9CE, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13719 6, 0x1F9CE, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13720 9, 0x1F9CE, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13721 6, 0x1F9CE, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13722 9, 0x1F9CE, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, 0x200D, 0x27A1, 0xFE0F, | |
13723 5, 0x1F9CF, 0x200D, 0x2640, 0xFE0F, | |
13724 5, 0x1F9CF, 0x200D, 0x2642, 0xFE0F, | |
13725 6, 0x1F9CF, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13726 6, 0x1F9CF, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13727 6, 0x1F9CF, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13728 6, 0x1F9CF, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13729 6, 0x1F9CF, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13730 6, 0x1F9CF, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13731 6, 0x1F9CF, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13732 6, 0x1F9CF, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13733 6, 0x1F9CF, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13734 6, 0x1F9CF, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13735 5, 0x1F9D4, 0x200D, 0x2640, 0xFE0F, | |
13736 5, 0x1F9D4, 0x200D, 0x2642, 0xFE0F, | |
13737 6, 0x1F9D4, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13738 6, 0x1F9D4, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13739 6, 0x1F9D4, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13740 6, 0x1F9D4, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13741 6, 0x1F9D4, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13742 6, 0x1F9D4, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13743 6, 0x1F9D4, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13744 6, 0x1F9D4, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13745 6, 0x1F9D4, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13746 6, 0x1F9D4, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13747 5, 0x1F9D6, 0x200D, 0x2640, 0xFE0F, | |
13748 5, 0x1F9D6, 0x200D, 0x2642, 0xFE0F, | |
13749 6, 0x1F9D6, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13750 6, 0x1F9D6, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13751 6, 0x1F9D6, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13752 6, 0x1F9D6, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13753 6, 0x1F9D6, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13754 6, 0x1F9D6, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13755 6, 0x1F9D6, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13756 6, 0x1F9D6, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13757 6, 0x1F9D6, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13758 6, 0x1F9D6, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13759 5, 0x1F9D7, 0x200D, 0x2640, 0xFE0F, | |
13760 5, 0x1F9D7, 0x200D, 0x2642, 0xFE0F, | |
13761 6, 0x1F9D7, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13762 6, 0x1F9D7, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13763 6, 0x1F9D7, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13764 6, 0x1F9D7, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13765 6, 0x1F9D7, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13766 6, 0x1F9D7, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13767 6, 0x1F9D7, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13768 6, 0x1F9D7, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13769 6, 0x1F9D7, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13770 6, 0x1F9D7, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13771 5, 0x1F9D8, 0x200D, 0x2640, 0xFE0F, | |
13772 5, 0x1F9D8, 0x200D, 0x2642, 0xFE0F, | |
13773 6, 0x1F9D8, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13774 6, 0x1F9D8, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13775 6, 0x1F9D8, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13776 6, 0x1F9D8, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13777 6, 0x1F9D8, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13778 6, 0x1F9D8, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13779 6, 0x1F9D8, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13780 6, 0x1F9D8, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13781 6, 0x1F9D8, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13782 6, 0x1F9D8, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13783 5, 0x1F9D9, 0x200D, 0x2640, 0xFE0F, | |
13784 5, 0x1F9D9, 0x200D, 0x2642, 0xFE0F, | |
13785 6, 0x1F9D9, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13786 6, 0x1F9D9, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13787 6, 0x1F9D9, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13788 6, 0x1F9D9, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13789 6, 0x1F9D9, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13790 6, 0x1F9D9, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13791 6, 0x1F9D9, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13792 6, 0x1F9D9, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13793 6, 0x1F9D9, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13794 6, 0x1F9D9, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13795 5, 0x1F9DA, 0x200D, 0x2640, 0xFE0F, | |
13796 5, 0x1F9DA, 0x200D, 0x2642, 0xFE0F, | |
13797 6, 0x1F9DA, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13798 6, 0x1F9DA, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13799 6, 0x1F9DA, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13800 6, 0x1F9DA, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13801 6, 0x1F9DA, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13802 6, 0x1F9DA, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13803 6, 0x1F9DA, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13804 6, 0x1F9DA, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13805 6, 0x1F9DA, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13806 6, 0x1F9DA, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13807 5, 0x1F9DB, 0x200D, 0x2640, 0xFE0F, | |
13808 5, 0x1F9DB, 0x200D, 0x2642, 0xFE0F, | |
13809 6, 0x1F9DB, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13810 6, 0x1F9DB, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13811 6, 0x1F9DB, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13812 6, 0x1F9DB, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13813 6, 0x1F9DB, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13814 6, 0x1F9DB, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13815 6, 0x1F9DB, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13816 6, 0x1F9DB, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13817 6, 0x1F9DB, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13818 6, 0x1F9DB, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13819 5, 0x1F9DC, 0x200D, 0x2640, 0xFE0F, | |
13820 5, 0x1F9DC, 0x200D, 0x2642, 0xFE0F, | |
13821 6, 0x1F9DC, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13822 6, 0x1F9DC, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13823 6, 0x1F9DC, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13824 6, 0x1F9DC, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13825 6, 0x1F9DC, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13826 6, 0x1F9DC, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13827 6, 0x1F9DC, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13828 6, 0x1F9DC, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13829 6, 0x1F9DC, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13830 6, 0x1F9DC, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13831 5, 0x1F9DD, 0x200D, 0x2640, 0xFE0F, | |
13832 5, 0x1F9DD, 0x200D, 0x2642, 0xFE0F, | |
13833 6, 0x1F9DD, 0x1F3FB, 0x200D, 0x2640, 0xFE0F, | |
13834 6, 0x1F9DD, 0x1F3FB, 0x200D, 0x2642, 0xFE0F, | |
13835 6, 0x1F9DD, 0x1F3FC, 0x200D, 0x2640, 0xFE0F, | |
13836 6, 0x1F9DD, 0x1F3FC, 0x200D, 0x2642, 0xFE0F, | |
13837 6, 0x1F9DD, 0x1F3FD, 0x200D, 0x2640, 0xFE0F, | |
13838 6, 0x1F9DD, 0x1F3FD, 0x200D, 0x2642, 0xFE0F, | |
13839 6, 0x1F9DD, 0x1F3FE, 0x200D, 0x2640, 0xFE0F, | |
13840 6, 0x1F9DD, 0x1F3FE, 0x200D, 0x2642, 0xFE0F, | |
13841 6, 0x1F9DD, 0x1F3FF, 0x200D, 0x2640, 0xFE0F, | |
13842 6, 0x1F9DD, 0x1F3FF, 0x200D, 0x2642, 0xFE0F, | |
13843 5, 0x1F9DE, 0x200D, 0x2640, 0xFE0F, | |
13844 5, 0x1F9DE, 0x200D, 0x2642, 0xFE0F, | |
13845 5, 0x1F9DF, 0x200D, 0x2640, 0xFE0F, | |
13846 5, 0x1F9DF, 0x200D, 0x2642, 0xFE0F, | |
13847 4, 0x1F468, 0x200D, 0x1F9B0, | |
13848 4, 0x1F468, 0x200D, 0x1F9B1, | |
13849 4, 0x1F468, 0x200D, 0x1F9B2, | |
13850 4, 0x1F468, 0x200D, 0x1F9B3, | |
13851 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F9B0, | |
13852 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F9B1, | |
13853 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F9B2, | |
13854 5, 0x1F468, 0x1F3FB, 0x200D, 0x1F9B3, | |
13855 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F9B0, | |
13856 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F9B1, | |
13857 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F9B2, | |
13858 5, 0x1F468, 0x1F3FC, 0x200D, 0x1F9B3, | |
13859 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F9B0, | |
13860 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F9B1, | |
13861 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F9B2, | |
13862 5, 0x1F468, 0x1F3FD, 0x200D, 0x1F9B3, | |
13863 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F9B0, | |
13864 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F9B1, | |
13865 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F9B2, | |
13866 5, 0x1F468, 0x1F3FE, 0x200D, 0x1F9B3, | |
13867 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F9B0, | |
13868 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F9B1, | |
13869 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F9B2, | |
13870 5, 0x1F468, 0x1F3FF, 0x200D, 0x1F9B3, | |
13871 4, 0x1F469, 0x200D, 0x1F9B0, | |
13872 4, 0x1F469, 0x200D, 0x1F9B1, | |
13873 4, 0x1F469, 0x200D, 0x1F9B2, | |
13874 4, 0x1F469, 0x200D, 0x1F9B3, | |
13875 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F9B0, | |
13876 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F9B1, | |
13877 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F9B2, | |
13878 5, 0x1F469, 0x1F3FB, 0x200D, 0x1F9B3, | |
13879 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F9B0, | |
13880 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F9B1, | |
13881 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F9B2, | |
13882 5, 0x1F469, 0x1F3FC, 0x200D, 0x1F9B3, | |
13883 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F9B0, | |
13884 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F9B1, | |
13885 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F9B2, | |
13886 5, 0x1F469, 0x1F3FD, 0x200D, 0x1F9B3, | |
13887 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F9B0, | |
13888 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F9B1, | |
13889 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F9B2, | |
13890 5, 0x1F469, 0x1F3FE, 0x200D, 0x1F9B3, | |
13891 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F9B0, | |
13892 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F9B1, | |
13893 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F9B2, | |
13894 5, 0x1F469, 0x1F3FF, 0x200D, 0x1F9B3, | |
13895 4, 0x1F9D1, 0x200D, 0x1F9B0, | |
13896 4, 0x1F9D1, 0x200D, 0x1F9B1, | |
13897 4, 0x1F9D1, 0x200D, 0x1F9B2, | |
13898 4, 0x1F9D1, 0x200D, 0x1F9B3, | |
13899 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F9B0, | |
13900 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F9B1, | |
13901 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F9B2, | |
13902 5, 0x1F9D1, 0x1F3FB, 0x200D, 0x1F9B3, | |
13903 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F9B0, | |
13904 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F9B1, | |
13905 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F9B2, | |
13906 5, 0x1F9D1, 0x1F3FC, 0x200D, 0x1F9B3, | |
13907 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F9B0, | |
13908 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F9B1, | |
13909 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F9B2, | |
13910 5, 0x1F9D1, 0x1F3FD, 0x200D, 0x1F9B3, | |
13911 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F9B0, | |
13912 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F9B1, | |
13913 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F9B2, | |
13914 5, 0x1F9D1, 0x1F3FE, 0x200D, 0x1F9B3, | |
13915 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F9B0, | |
13916 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F9B1, | |
13917 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F9B2, | |
13918 5, 0x1F9D1, 0x1F3FF, 0x200D, 0x1F9B3, | |
13919 5, 0x26D3, 0xFE0F, 0x200D, 0x1F4A5, | |
13920 5, 0x2764, 0xFE0F, 0x200D, 0x1F525, | |
13921 5, 0x2764, 0xFE0F, 0x200D, 0x1FA79, | |
13922 4, 0x1F344, 0x200D, 0x1F7EB, | |
13923 4, 0x1F34B, 0x200D, 0x1F7E9, | |
13924 6, 0x1F3F3, 0xFE0F, 0x200D, 0x26A7, 0xFE0F, | |
13925 5, 0x1F3F3, 0xFE0F, 0x200D, 0x1F308, | |
13926 5, 0x1F3F4, 0x200D, 0x2620, 0xFE0F, | |
13927 4, 0x1F408, 0x200D, 0x2B1B, | |
13928 4, 0x1F415, 0x200D, 0x1F9BA, | |
13929 4, 0x1F426, 0x200D, 0x2B1B, | |
13930 4, 0x1F426, 0x200D, 0x1F525, | |
13931 5, 0x1F43B, 0x200D, 0x2744, 0xFE0F, | |
13932 6, 0x1F441, 0xFE0F, 0x200D, 0x1F5E8, 0xFE0F, | |
13933 4, 0x1F62E, 0x200D, 0x1F4A8, | |
13934 4, 0x1F635, 0x200D, 0x1F4AB, | |
13935 5, 0x1F636, 0x200D, 0x1F32B, 0xFE0F, | |
13936 5, 0x1F642, 0x200D, 0x2194, 0xFE0F, | |
13937 5, 0x1F642, 0x200D, 0x2195, 0xFE0F | |
13938 #endif // !defined(SRELL_NO_UNICODE_POS) | |
13939 }; | |
13940 #define SRELL_UPDATA_VERSION 301 | |
13941 // ... "srell_updata3.h"] | |
13942 | |
13943 static const ui_l32 error_property = static_cast<ui_l32>(-1); | |
13944 } // namespace up_constants | |
13945 | |
13946 namespace up_internal | |
13947 { | |
13948 typedef int up_type; | |
13949 typedef const char *pname_type; | |
13950 | |
13951 struct pnameno_map_type | |
13952 { | |
13953 pname_type name; | |
13954 up_type pno; | |
13955 }; | |
13956 | |
13957 struct posinfo | |
13958 { | |
13959 ui_l32 offset; | |
13960 ui_l32 numofpairs; | |
13961 }; | |
13962 | |
13963 typedef up_constants::unicode_property_data< | |
13964 pnameno_map_type, | |
13965 posinfo, | |
13966 ui_l32 | |
13967 > updata; | |
13968 | |
13969 } // namespace up_internal | |
13970 | |
13971 //template <typename PairType> | |
13972 class unicode_property | |
13973 { | |
13974 public: | |
13975 | |
13976 typedef simple_array<char> pstring; | |
13977 | |
13978 unicode_property() | |
13979 { | |
13980 } | |
13981 | |
13982 unicode_property &operator=(const unicode_property &) | |
13983 { | |
13984 return *this; | |
13985 } | |
13986 | |
13987 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
13988 unicode_property &operator=(unicode_property &&) SRELL_NOEXCEPT | |
13989 { | |
13990 return *this; | |
13991 } | |
13992 #endif | |
13993 | |
13994 static ui_l32 lookup_property(const pstring &name, const pstring &value) | |
13995 { | |
13996 up_type ptype = name.size() > 1 ? lookup_property_name(name) : up_constants::uptype_gc; | |
13997 const posinfo *pos = &updata::positiontable[ptype]; | |
13998 ui_l32 pno = lookup_property_value(value, pos->offset, pos->numofpairs); | |
13999 | |
14000 if (pno == upid_error && name.size() < 2) | |
14001 { | |
14002 ptype = up_constants::uptype_bp; | |
14003 pos = &updata::positiontable[ptype]; | |
14004 pno = lookup_property_value(value, pos->offset, pos->numofpairs); | |
14005 } | |
14006 | |
14007 return pno != upid_error ? pno : up_constants::error_property; | |
14008 } | |
14009 | |
14010 static ui_l32 ranges_offset(const ui_l32 property_number) | |
14011 { | |
14012 return updata::positiontable[property_number].offset; | |
14013 } | |
14014 | |
14015 static ui_l32 number_of_ranges(const ui_l32 property_number) | |
14016 { | |
14017 return updata::positiontable[property_number].numofpairs; | |
14018 } | |
14019 | |
14020 static const ui_l32 *ranges_address(const ui_l32 pno) | |
14021 { | |
14022 return &updata::rangetable[ranges_offset(pno) << 1]; | |
14023 } | |
14024 | |
14025 static bool is_valid_pno(const ui_l32 pno) | |
14026 { | |
14027 return pno != up_constants::error_property && pno <= max_property_number; | |
14028 } | |
14029 | |
14030 static bool is_pos(const ui_l32 pno) | |
14031 { | |
14032 return pno > max_property_number && pno <= max_pos_number; | |
14033 } | |
14034 | |
14035 private: | |
14036 | |
14037 typedef up_internal::up_type up_type; | |
14038 typedef up_internal::pname_type pname_type; | |
14039 typedef up_internal::pnameno_map_type pnameno_map_type; | |
14040 typedef up_internal::posinfo posinfo; | |
14041 typedef up_internal::updata updata; | |
14042 | |
14043 static up_type lookup_property_name(const pstring &name) | |
14044 { | |
14045 return lookup_property_value(name, 1, updata::propertynumbertable[0].pno); | |
14046 } | |
14047 | |
14048 static ui_l32 lookup_property_value(const pstring &value, const ui_l32 offset, ui_l32 count) | |
14049 { | |
14050 const pnameno_map_type *base = &updata::propertynumbertable[offset]; | |
14051 | |
14052 while (count) | |
14053 { | |
14054 ui_l32 mid = count >> 1; | |
14055 const pnameno_map_type &map = base[mid]; | |
14056 const int cmp = compare(value, map.name); | |
14057 | |
14058 if (cmp < 0) | |
14059 { | |
14060 count = mid; | |
14061 } | |
14062 else if (cmp > 0) | |
14063 { | |
14064 ++mid; | |
14065 count -= mid; | |
14066 base += mid; | |
14067 } | |
14068 else //if (cmp == 0) | |
14069 return static_cast<ui_l32>(map.pno); | |
14070 } | |
14071 return upid_error; | |
14072 } | |
14073 | |
14074 static int compare(const pstring &value, pname_type pname) | |
14075 { | |
14076 for (pstring::size_type i = 0;; ++i, ++pname) | |
14077 { | |
14078 if (value[i] == 0) | |
14079 return (*pname == 0) ? 0 : (value[i] < *pname ? -1 : 1); | |
14080 | |
14081 if (value[i] != *pname) | |
14082 return value[i] < *pname ? -1 : 1; | |
14083 } | |
14084 } | |
14085 | |
14086 private: | |
14087 | |
14088 static const ui_l32 max_property_number = static_cast<ui_l32>(up_constants::upid_max_property_number); | |
14089 static const ui_l32 max_pos_number = static_cast<ui_l32>(up_constants::upid_max_pos_number); | |
14090 #if (SRELL_UPDATA_VERSION > 300) | |
14091 static const ui_l32 upid_error = static_cast<ui_l32>(up_constants::upid_error); | |
14092 #else | |
14093 static const ui_l32 upid_error = static_cast<ui_l32>(up_constants::upid_unknown); | |
14094 #endif | |
14095 }; | |
14096 // unicode_property | |
14097 | |
14098 #endif // !defined(SRELL_NO_UNICODE_PROPERTY) | |
14099 } // namespace re_detail | |
14100 | |
14101 // ... "rei_up.hpp"] | |
14102 // ["rei_range_pair.hpp" ... | |
14103 | |
14104 namespace re_detail | |
14105 { | |
14106 | |
14107 struct range_pair // , public std::pair<charT, charT> | |
14108 { | |
14109 ui_l32 second; | |
14110 ui_l32 first; | |
14111 | |
14112 void set(const ui_l32 min, const ui_l32 max) | |
14113 { | |
14114 this->first = min; | |
14115 this->second = max; | |
14116 } | |
14117 | |
14118 void set(const ui_l32 minmax) | |
14119 { | |
14120 this->first = minmax; | |
14121 this->second = minmax; | |
14122 } | |
14123 | |
14124 bool is_range_valid() const | |
14125 { | |
14126 return first <= second; | |
14127 } | |
14128 | |
14129 bool operator==(const range_pair &right) const | |
14130 { | |
14131 return this->first == right.first && this->second == right.second; | |
14132 } | |
14133 | |
14134 bool operator<(const range_pair &right) const | |
14135 { | |
14136 return this->second < right.first; // This assumes that optimise() has been called. | |
14137 } | |
14138 | |
14139 void swap(range_pair &right) | |
14140 { | |
14141 const range_pair tmp = *this; | |
14142 *this = right; | |
14143 right = tmp; | |
14144 } | |
14145 }; | |
14146 // range_pair | |
14147 | |
14148 struct range_pair_helper : public range_pair | |
14149 { | |
14150 range_pair_helper(const ui_l32 min, const ui_l32 max) | |
14151 { | |
14152 this->first = min; | |
14153 this->second = max; | |
14154 } | |
14155 | |
14156 range_pair_helper(const ui_l32 minmax) | |
14157 { | |
14158 this->first = minmax; | |
14159 this->second = minmax; | |
14160 } | |
14161 }; | |
14162 // range_pair_helper | |
14163 | |
14164 struct range_pairs // : public simple_array<range_pair> | |
14165 { | |
14166 public: | |
14167 | |
14168 typedef simple_array<range_pair> array_type; | |
14169 typedef array_type::size_type size_type; | |
14170 | |
14171 range_pairs() | |
14172 { | |
14173 } | |
14174 | |
14175 range_pairs(const range_pairs &rp) : rparray_(rp.rparray_) | |
14176 { | |
14177 } | |
14178 | |
14179 range_pairs &operator=(const range_pairs &rp) | |
14180 { | |
14181 rparray_.operator=(rp.rparray_); | |
14182 return *this; | |
14183 } | |
14184 | |
14185 range_pairs(const size_type initsize) : rparray_(initsize) | |
14186 { | |
14187 } | |
14188 | |
14189 range_pairs(const range_pairs &right, size_type pos, size_type size) | |
14190 : rparray_(right.rparray_, pos, size) | |
14191 { | |
14192 } | |
14193 | |
14194 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
14195 range_pairs(range_pairs &&rp) SRELL_NOEXCEPT | |
14196 : rparray_(std::move(rp.rparray_)) | |
14197 { | |
14198 } | |
14199 | |
14200 range_pairs &operator=(range_pairs &&rp) SRELL_NOEXCEPT | |
14201 { | |
14202 rparray_.operator=(std::move(rp.rparray_)); | |
14203 return *this; | |
14204 } | |
14205 #endif | |
14206 | |
14207 void clear() | |
14208 { | |
14209 rparray_.clear(); | |
14210 } | |
14211 | |
14212 size_type size() const | |
14213 { | |
14214 return rparray_.size(); | |
14215 } | |
14216 | |
14217 const range_pair &operator[](const size_type pos) const | |
14218 { | |
14219 return rparray_[pos]; | |
14220 } | |
14221 range_pair &operator[](const size_type pos) | |
14222 { | |
14223 return rparray_[pos]; | |
14224 } | |
14225 | |
14226 void resize(const size_type size) | |
14227 { | |
14228 rparray_.resize(size); | |
14229 } | |
14230 | |
14231 void swap(range_pairs &right) | |
14232 { | |
14233 rparray_.swap(right.rparray_); | |
14234 } | |
14235 | |
14236 void set_solerange(const range_pair &right) | |
14237 { | |
14238 rparray_.clear(); | |
14239 rparray_.push_back(right); | |
14240 } | |
14241 | |
14242 void append_newclass(const range_pairs &right) | |
14243 { | |
14244 rparray_.append(right.rparray_); | |
14245 } | |
14246 | |
14247 void append_newpair(const range_pair &right) | |
14248 { | |
14249 rparray_.push_back(right); | |
14250 } | |
14251 | |
14252 void join(const range_pair &right) | |
14253 { | |
14254 range_pair *base = &rparray_[0]; | |
14255 size_type count = rparray_.size(); | |
14256 | |
14257 while (count) | |
14258 { | |
14259 size_type mid = count / 2; | |
14260 range_pair *cp = &base[mid]; | |
14261 | |
14262 if (cp->first && (right.second < cp->first - 1)) | |
14263 { | |
14264 count = mid; | |
14265 } | |
14266 else if (right.first && (cp->second < right.first - 1)) | |
14267 { | |
14268 ++mid; | |
14269 base += mid; | |
14270 count -= mid; | |
14271 } | |
14272 else | |
14273 { | |
14274 if (cp->first > right.first) | |
14275 cp->first = right.first; | |
14276 | |
14277 if (cp->second < right.second) | |
14278 cp->second = right.second; | |
14279 | |
14280 range_pair *lw = cp; | |
14281 | |
14282 if (cp->first > 0u) | |
14283 { | |
14284 for (--cp->first; lw != &rparray_[0];) | |
14285 { | |
14286 if ((--lw)->second < cp->first) | |
14287 { | |
14288 ++lw; | |
14289 break; | |
14290 } | |
14291 } | |
14292 ++cp->first; | |
14293 } | |
14294 else | |
14295 lw = &rparray_[0]; | |
14296 | |
14297 if (lw != cp) | |
14298 { | |
14299 if (cp->first > lw->first) | |
14300 cp->first = lw->first; | |
14301 | |
14302 rparray_.erase(lw - &rparray_[0], cp - lw); | |
14303 cp = lw; | |
14304 } | |
14305 | |
14306 range_pair *const rend = &rparray_[0] + rparray_.size(); | |
14307 range_pair *rw = cp; | |
14308 | |
14309 if (++cp->second > 0u) | |
14310 { | |
14311 for (; ++rw != rend;) | |
14312 { | |
14313 if (cp->second < rw->first) | |
14314 break; | |
14315 } | |
14316 --rw; | |
14317 } | |
14318 else | |
14319 rw = rend - 1; | |
14320 | |
14321 --cp->second; | |
14322 | |
14323 if (rw != cp) | |
14324 { | |
14325 if (rw->second < cp->second) | |
14326 rw->second = cp->second; | |
14327 | |
14328 rw->first = cp->first; | |
14329 rparray_.erase(cp - &rparray_[0], rw - cp); | |
14330 } | |
14331 return; | |
14332 } | |
14333 } | |
14334 rparray_.insert(base - &rparray_[0], right); | |
14335 } | |
14336 | |
14337 void merge(const range_pairs &right) | |
14338 { | |
14339 for (size_type i = 0; i < right.size(); ++i) | |
14340 join(right[i]); | |
14341 } | |
14342 | |
14343 bool same(ui_l32 pos, const ui_l32 count, const range_pairs &right) const | |
14344 { | |
14345 if (count == right.size()) | |
14346 { | |
14347 for (ui_l32 i = 0; i < count; ++i, ++pos) | |
14348 if (!(rparray_[pos] == right[i])) | |
14349 return false; | |
14350 | |
14351 return true; | |
14352 } | |
14353 return false; | |
14354 } | |
14355 | |
14356 int relationship(const range_pairs &right) const | |
14357 { | |
14358 if (rparray_.size() == right.rparray_.size()) | |
14359 { | |
14360 for (size_type i = 0; i < rparray_.size(); ++i) | |
14361 { | |
14362 if (!(this->rparray_[i] == right.rparray_[i])) | |
14363 { | |
14364 if (i == 0) | |
14365 goto check_overlap; | |
14366 | |
14367 return 1; // Overlapped. | |
14368 } | |
14369 } | |
14370 return 0; // Same. | |
14371 } | |
14372 check_overlap: | |
14373 return is_overlap(right) ? 1 : 2; // Overlapped or exclusive. | |
14374 } | |
14375 | |
14376 void negation() | |
14377 { | |
14378 ui_l32 begin = 0; | |
14379 range_pairs newpairs; | |
14380 | |
14381 for (size_type i = 0; i < rparray_.size(); ++i) | |
14382 { | |
14383 const range_pair &range = rparray_[i]; | |
14384 | |
14385 if (begin < range.first) | |
14386 newpairs.join(range_pair_helper(begin, range.first - 1)); | |
14387 | |
14388 begin = range.second + 1; | |
14389 } | |
14390 | |
14391 if (begin <= constants::unicode_max_codepoint) | |
14392 newpairs.join(range_pair_helper(begin, constants::unicode_max_codepoint)); | |
14393 | |
14394 *this = newpairs; | |
14395 } | |
14396 | |
14397 bool is_overlap(const range_pairs &right) const | |
14398 { | |
14399 for (size_type i = 0; i < rparray_.size(); ++i) | |
14400 { | |
14401 const range_pair &leftrange = rparray_[i]; | |
14402 | |
14403 for (size_type j = 0; j < right.size(); ++j) | |
14404 { | |
14405 const range_pair &rightrange = right[j]; | |
14406 | |
14407 if (rightrange.first <= leftrange.second) // Excludes l1 l2 < r1 r2. | |
14408 if (leftrange.first <= rightrange.second) // Excludes r1 r2 < l1 l2. | |
14409 return true; | |
14410 } | |
14411 } | |
14412 return false; | |
14413 } | |
14414 | |
14415 void load_from_memory(const ui_l32 *array, ui_l32 number_of_pairs) | |
14416 { | |
14417 for (; number_of_pairs; --number_of_pairs, array += 2) | |
14418 join(range_pair_helper(array[0], array[1])); | |
14419 } | |
14420 | |
14421 void make_caseunfoldedcharset() | |
14422 { | |
14423 ui_l32 table[ucf_constants::rev_maxset] = {}; | |
14424 range_pairs newranges; | |
14425 | |
14426 for (size_type i = 0; i < rparray_.size(); ++i) | |
14427 { | |
14428 const range_pair &range = rparray_[i]; | |
14429 | |
14430 for (ui_l32 ucp = range.first; ucp <= range.second && ucp <= ucf_constants::rev_maxcp; ++ucp) | |
14431 { | |
14432 const ui_l32 setnum = unicode_case_folding::do_caseunfolding(table, ucp); | |
14433 | |
14434 for (ui_l32 j = 0; j < setnum; ++j) | |
14435 { | |
14436 if (table[j] != ucp) | |
14437 newranges.join(range_pair_helper(table[j])); | |
14438 } | |
14439 } | |
14440 } | |
14441 merge(newranges); | |
14442 } | |
14443 | |
14444 // For updataout.hpp. | |
14445 void remove_range(const range_pair &right) | |
14446 { | |
14447 for (size_type pos = 0; pos < rparray_.size();) | |
14448 { | |
14449 range_pair &left = rparray_[pos]; | |
14450 | |
14451 if (right.first <= left.first) // r1 <= l1 | |
14452 { | |
14453 if (left.first <= right.second) // r1 <= l1 <= r2. | |
14454 { | |
14455 if (right.second < left.second) // r1 <= l1 <= r2 < l2. | |
14456 { | |
14457 left.first = right.second + 1; | |
14458 return; | |
14459 } | |
14460 else // r1 <= l1 <= l2 <= r2. | |
14461 rparray_.erase(pos); | |
14462 } | |
14463 else // r1 <= r2 < l1 | |
14464 return; | |
14465 } | |
14466 //else // l1 < r1 | |
14467 else if (right.first <= left.second) // l1 < r1 <= l2. | |
14468 { | |
14469 if (left.second <= right.second) // l1 < r1 <= l2 <= r2. | |
14470 { | |
14471 left.second = right.first - 1; | |
14472 ++pos; | |
14473 } | |
14474 else // l1 < r1 <= r2 < l2 | |
14475 { | |
14476 range_pair newrange(left); | |
14477 | |
14478 left.second = right.first - 1; | |
14479 newrange.first = right.second + 1; | |
14480 rparray_.insert(++pos, newrange); | |
14481 return; | |
14482 } | |
14483 } | |
14484 else // l1 <= l2 < r1 | |
14485 ++pos; | |
14486 } | |
14487 } | |
14488 | |
14489 ui_l32 consists_of_one_character(const bool icase) const | |
14490 { | |
14491 if (rparray_.size() >= 1) | |
14492 { | |
14493 ui_l32 (*const casefolding_func)(const ui_l32) = !icase ? do_nothing : unicode_case_folding::do_casefolding; | |
14494 const ui_l32 ucp1st = casefolding_func(rparray_[0].first); | |
14495 | |
14496 for (size_type no = 0; no < rparray_.size(); ++no) | |
14497 { | |
14498 const range_pair &cr = rparray_[no]; | |
14499 | |
14500 for (ui_l32 ucp = cr.first;; ++ucp) | |
14501 { | |
14502 if (ucp1st != casefolding_func(ucp)) | |
14503 return constants::invalid_u32value; | |
14504 | |
14505 if (ucp == cr.second) | |
14506 break; | |
14507 } | |
14508 } | |
14509 return ucp1st; | |
14510 } | |
14511 return constants::invalid_u32value; | |
14512 } | |
14513 | |
14514 void split_ranges(range_pairs &kept, range_pairs &removed, const range_pairs &rightranges) const | |
14515 { | |
14516 size_type prevolj = 0; | |
14517 range_pair newpair; | |
14518 | |
14519 kept.rparray_ = this->rparray_; // Subtraction set. | |
14520 removed.clear(); // Intersection set. | |
14521 | |
14522 for (size_type i = 0;; ++i) | |
14523 { | |
14524 RETRY_SAMEINDEXNO: | |
14525 if (i >= kept.rparray_.size()) | |
14526 break; | |
14527 | |
14528 range_pair &left = kept.rparray_[i]; | |
14529 | |
14530 for (size_type j = prevolj; j < rightranges.rparray_.size(); ++j) | |
14531 { | |
14532 const range_pair &right = rightranges.rparray_[j]; | |
14533 | |
14534 if (left.second < right.first) // Excludes l1 l2 < r1 r2. | |
14535 break; | |
14536 | |
14537 if (left.first <= right.second) // Excludes r1 r2 < l1 l2. | |
14538 { | |
14539 prevolj = j; | |
14540 | |
14541 if (left.first < right.first) // l1 < r1 <= r2. | |
14542 { | |
14543 if (right.second < left.second) // l1 < r1 <= r2 < l2. | |
14544 { | |
14545 removed.join(range_pair_helper(right.first, right.second)); | |
14546 | |
14547 newpair.set(right.second + 1, left.second); | |
14548 left.second = right.first - 1; | |
14549 kept.rparray_.insert(i + 1, newpair); | |
14550 } | |
14551 else // l1 < r1 <= l2 <= r2. | |
14552 { | |
14553 removed.join(range_pair_helper(right.first, left.second)); | |
14554 left.second = right.first - 1; | |
14555 } | |
14556 } | |
14557 //else // r1 <= l1. | |
14558 else if (right.second < left.second) // r1 <= l1 <= r2 < l2. | |
14559 { | |
14560 removed.join(range_pair_helper(left.first, right.second)); | |
14561 left.first = right.second + 1; | |
14562 } | |
14563 else // r1 <= l1 <= l2 <= r2. | |
14564 { | |
14565 removed.join(range_pair_helper(left.first, left.second)); | |
14566 kept.rparray_.erase(i); | |
14567 goto RETRY_SAMEINDEXNO; | |
14568 } | |
14569 } | |
14570 } | |
14571 } | |
14572 } | |
14573 | |
14574 #if defined(SRELLDBG_NO_BITSET) | |
14575 bool is_included(const ui_l32 ch) const | |
14576 { | |
14577 const range_pair *const end = rparray_.data() + rparray_.size(); | |
14578 | |
14579 for (const range_pair *cur = rparray_.data(); cur != end; ++cur) | |
14580 { | |
14581 if (ch <= cur->second) | |
14582 return ch >= cur->first; | |
14583 } | |
14584 return false; | |
14585 } | |
14586 #endif // defined(SRELLDBG_NO_BITSET) | |
14587 | |
14588 // For multiple_range_pairs functions. | |
14589 | |
14590 bool is_included_ls(const ui_l32 pos, ui_l32 count, const ui_l32 c) const | |
14591 { | |
14592 const range_pair *cur = &rparray_[pos]; | |
14593 | |
14594 for (; count; ++cur, --count) | |
14595 { | |
14596 if (c <= cur->second) | |
14597 return c >= cur->first; | |
14598 } | |
14599 return false; | |
14600 } | |
14601 | |
14602 bool is_included(const ui_l32 pos, ui_l32 count, const ui_l32 c) const | |
14603 { | |
14604 const range_pair *base = &rparray_[pos]; | |
14605 | |
14606 while (count) | |
14607 { | |
14608 ui_l32 mid = count >> 1; | |
14609 const range_pair &rp = base[mid]; | |
14610 | |
14611 if (c <= rp.second) | |
14612 { | |
14613 if (c >= rp.first) | |
14614 return true; | |
14615 | |
14616 count = mid; | |
14617 } | |
14618 else | |
14619 { | |
14620 ++mid; | |
14621 count -= mid; | |
14622 base += mid; | |
14623 } | |
14624 } | |
14625 return false; | |
14626 } | |
14627 | |
14628 void replace(const size_type pos, const size_type count, const range_pairs &right) | |
14629 { | |
14630 rparray_.replace(pos, count, right.rparray_); | |
14631 } | |
14632 | |
14633 #if !defined(SRELLDBG_NO_CCPOS) | |
14634 | |
14635 // For Eytzinger layout functions. | |
14636 | |
14637 bool is_included_el(ui_l32 pos, const ui_l32 len, const ui_l32 c) const | |
14638 { | |
14639 const range_pair *const base = &rparray_[pos]; | |
14640 | |
14641 #if defined(__GNUC__) | |
14642 __builtin_prefetch(base); | |
14643 #endif | |
14644 for (pos = 0; pos < len;) | |
14645 { | |
14646 const range_pair &rp = base[pos]; | |
14647 | |
14648 if (c <= rp.second) | |
14649 { | |
14650 if (c >= rp.first) | |
14651 return true; | |
14652 | |
14653 pos = (pos << 1) + 1; | |
14654 } | |
14655 else | |
14656 { | |
14657 pos = (pos << 1) + 2; | |
14658 } | |
14659 } | |
14660 return false; | |
14661 } | |
14662 | |
14663 ui_l32 create_el(const range_pair *srcbase, const ui_l32 srcsize) | |
14664 { | |
14665 const ui_l32 basepos = static_cast<ui_l32>(rparray_.size()); | |
14666 | |
14667 rparray_.resize(basepos + srcsize); | |
14668 set_eytzinger_layout(0, srcbase, srcsize, &rparray_[basepos], 0); | |
14669 | |
14670 return srcsize; | |
14671 } | |
14672 | |
14673 #endif // !defined(SRELLDBG_NO_CCPOS) | |
14674 | |
14675 ui_l32 total_codepoints() const | |
14676 { | |
14677 ui_l32 num = 0; | |
14678 | |
14679 for (size_type no = 0; no < rparray_.size(); ++no) | |
14680 { | |
14681 const range_pair &cr = rparray_[no]; | |
14682 | |
14683 num += cr.second - cr.first + 1; | |
14684 } | |
14685 return num; | |
14686 } | |
14687 | |
14688 private: | |
14689 | |
14690 #if !defined(SRELLDBG_NO_CCPOS) | |
14691 | |
14692 ui_l32 set_eytzinger_layout(ui_l32 srcpos, const range_pair *const srcbase, const ui_l32 srclen, | |
14693 range_pair *const destbase, const ui_l32 destpos) | |
14694 { | |
14695 if (destpos < srclen) | |
14696 { | |
14697 const ui_l32 nextpos = (destpos << 1) + 1; | |
14698 | |
14699 srcpos = set_eytzinger_layout(srcpos, srcbase, srclen, destbase, nextpos); | |
14700 destbase[destpos] = srcbase[srcpos++]; | |
14701 srcpos = set_eytzinger_layout(srcpos, srcbase, srclen, destbase, nextpos + 1); | |
14702 } | |
14703 return srcpos; | |
14704 } | |
14705 | |
14706 #endif // !defined(SRELLDBG_NO_CCPOS) | |
14707 | |
14708 static ui_l32 do_nothing(const ui_l32 cp) | |
14709 { | |
14710 return cp; | |
14711 } | |
14712 | |
14713 array_type rparray_; | |
14714 | |
14715 public: // For debug. | |
14716 | |
14717 void print_pairs(const int, const char *const = NULL, const char *const = NULL) const; | |
14718 }; | |
14719 // range_pairs | |
14720 | |
14721 } // namespace re_detail | |
14722 | |
14723 // ... "rei_range_pair.hpp"] | |
14724 // ["rei_char_class.hpp" ... | |
14725 | |
14726 namespace re_detail | |
14727 { | |
14728 | |
14729 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
14730 | |
14731 // For RegExpIdentifierStart and RegExpIdentifierPart | |
14732 struct identifier_charclass | |
14733 { | |
14734 public: | |
14735 | |
14736 void clear() | |
14737 { | |
14738 char_class_.clear(); | |
14739 char_class_pos_.clear(); | |
14740 } | |
14741 | |
14742 void setup() | |
14743 { | |
14744 if (char_class_pos_.size() == 0) | |
14745 { | |
14746 static const ui_l32 additions[] = { | |
14747 // reg_exp_identifier_start, reg_exp_identifier_part. | |
14748 0x24, 0x24, 0x5f, 0x5f, 0x200c, 0x200d // '$' '_' <ZWNJ>-<ZWJ> | |
14749 }; | |
14750 range_pairs ranges; | |
14751 | |
14752 // For reg_exp_identifier_start. | |
14753 { | |
14754 const ui_l32 *const IDs_address = unicode_property::ranges_address(upid_bp_ID_Start); | |
14755 const ui_l32 IDs_number = unicode_property::number_of_ranges(upid_bp_ID_Start); | |
14756 ranges.load_from_memory(IDs_address, IDs_number); | |
14757 } | |
14758 ranges.load_from_memory(&additions[0], 2); | |
14759 append_charclass(ranges); | |
14760 | |
14761 // For reg_exp_identifier_part. | |
14762 ranges.clear(); | |
14763 { | |
14764 const ui_l32 *const IDc_address = unicode_property::ranges_address(upid_bp_ID_Continue); | |
14765 const ui_l32 IDc_number = unicode_property::number_of_ranges(upid_bp_ID_Continue); | |
14766 ranges.load_from_memory(IDc_address, IDc_number); | |
14767 } | |
14768 ranges.load_from_memory(&additions[0], 3); | |
14769 append_charclass(ranges); | |
14770 } | |
14771 } | |
14772 | |
14773 bool is_identifier(const ui_l32 ch, const bool part) const | |
14774 { | |
14775 const range_pair &rp = char_class_pos_[part ? 1 : 0]; | |
14776 | |
14777 return char_class_.is_included(rp.first, rp.second, ch); | |
14778 } | |
14779 | |
14780 private: | |
14781 | |
14782 void append_charclass(const range_pairs &rps) | |
14783 { | |
14784 char_class_pos_.push_back(range_pair_helper(static_cast<ui_l32>(char_class_.size()), static_cast<ui_l32>(rps.size()))); | |
14785 char_class_.append_newclass(rps); | |
14786 } | |
14787 | |
14788 range_pairs char_class_; | |
14789 range_pairs::array_type char_class_pos_; | |
14790 | |
14791 // UnicodeIDStart:: | |
14792 // any Unicode code point with the Unicode property "ID_Start" | |
14793 // UnicodeIDContinue:: | |
14794 // any Unicode code point with the Unicode property "ID_Continue" | |
14795 static const ui_l32 upid_bp_ID_Start = static_cast<ui_l32>(up_constants::bp_ID_Start); | |
14796 static const ui_l32 upid_bp_ID_Continue = static_cast<ui_l32>(up_constants::bp_ID_Continue); | |
14797 }; | |
14798 // identifier_charclass | |
14799 #endif // !defined(SRELL_NO_UNICODE_PROPERTY) | |
14800 | |
14801 class re_character_class | |
14802 { | |
14803 public: | |
14804 | |
14805 enum | |
14806 { // 0 1 2 3 4 5 | |
14807 newline, dotall, space, digit, word, icase_word, | |
14808 // 6 | |
14809 number_of_predefcls | |
14810 }; | |
14811 | |
14812 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
14813 typedef unicode_property::pstring pstring; | |
14814 #endif | |
14815 | |
14816 re_character_class() | |
14817 { | |
14818 setup_predefinedclass(); | |
14819 } | |
14820 | |
14821 re_character_class &operator=(const re_character_class &that) | |
14822 { | |
14823 if (this != &that) | |
14824 { | |
14825 this->char_class_ = that.char_class_; | |
14826 this->char_class_pos_ = that.char_class_pos_; | |
14827 #if !defined(SRELLDBG_NO_CCPOS) | |
14828 this->char_class_el_ = that.char_class_el_; | |
14829 this->char_class_pos_el_ = that.char_class_pos_el_; | |
14830 #endif | |
14831 } | |
14832 return *this; | |
14833 } | |
14834 | |
14835 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
14836 re_character_class &operator=(re_character_class &&that) SRELL_NOEXCEPT | |
14837 { | |
14838 if (this != &that) | |
14839 { | |
14840 this->char_class_ = std::move(that.char_class_); | |
14841 this->char_class_pos_ = std::move(that.char_class_pos_); | |
14842 #if !defined(SRELLDBG_NO_CCPOS) | |
14843 this->char_class_el_ = std::move(that.char_class_el_); | |
14844 this->char_class_pos_el_ = std::move(that.char_class_pos_el_); | |
14845 #endif | |
14846 } | |
14847 return *this; | |
14848 } | |
14849 #endif | |
14850 | |
14851 bool is_included(const ui_l32 class_number, const ui_l32 c) const | |
14852 { | |
14853 // return char_class_.is_included(char_class_pos_[class_number], c); | |
14854 const range_pair &rp = char_class_pos_[class_number]; | |
14855 | |
14856 return char_class_.is_included(rp.first, rp.second, c); | |
14857 } | |
14858 | |
14859 #if !defined(SRELLDBG_NO_CCPOS) | |
14860 bool is_included(const ui_l32 pos, const ui_l32 len, const ui_l32 c) const | |
14861 { | |
14862 return char_class_el_.is_included_el(pos, len, c); | |
14863 } | |
14864 #endif | |
14865 | |
14866 void setup_icase_word() | |
14867 { | |
14868 range_pair &icase_pos = char_class_pos_[icase_word]; | |
14869 | |
14870 if (icase_pos.second == char_class_pos_[word].second) | |
14871 { | |
14872 range_pairs icasewordclass(char_class_, icase_pos.first, icase_pos.second); | |
14873 | |
14874 icasewordclass.make_caseunfoldedcharset(); | |
14875 // Includes 017f and 212a so that they and their case-folded | |
14876 // characters 's' and 'k' will be excluded from the character | |
14877 // set that /[\W]/i matches. | |
14878 | |
14879 char_class_.replace(icase_pos.first, icase_pos.second, icasewordclass); | |
14880 | |
14881 if (icase_pos.second < static_cast<ui_l32>(icasewordclass.size())) | |
14882 { | |
14883 const ui_l32 delta = static_cast<ui_l32>(icasewordclass.size() - icase_pos.second); | |
14884 | |
14885 for (int i = number_of_predefcls; i < static_cast<int>(char_class_pos_.size()); ++i) | |
14886 char_class_pos_[i].first += delta; | |
14887 } | |
14888 icase_pos.second = static_cast<ui_l32>(icasewordclass.size()); | |
14889 } | |
14890 } | |
14891 | |
14892 void clear() | |
14893 { | |
14894 char_class_pos_.resize(number_of_predefcls); | |
14895 | |
14896 ui_l32 basesize = 0; | |
14897 for (int i = 0; i < number_of_predefcls; ++i) | |
14898 basesize += char_class_pos_[i].second; | |
14899 | |
14900 char_class_.resize(basesize); | |
14901 | |
14902 #if !defined(SRELLDBG_NO_CCPOS) | |
14903 char_class_el_.clear(); | |
14904 char_class_pos_el_.clear(); | |
14905 #endif | |
14906 } | |
14907 | |
14908 ui_l32 register_newclass(const range_pairs &rps) | |
14909 { | |
14910 for (range_pairs::size_type no = 0; no < char_class_pos_.size(); ++no) | |
14911 { | |
14912 const range_pair &rp = char_class_pos_[no]; | |
14913 | |
14914 if (char_class_.same(rp.first, rp.second, rps)) | |
14915 return static_cast<ui_l32>(no); | |
14916 } | |
14917 | |
14918 append_charclass(rps); | |
14919 return static_cast<ui_l32>(char_class_pos_.size() - 1); | |
14920 } | |
14921 | |
14922 range_pairs operator[](const ui_l32 no) const | |
14923 { | |
14924 const range_pair &ccpos = char_class_pos_[no]; | |
14925 range_pairs rp(ccpos.second); | |
14926 | |
14927 for (ui_l32 i = 0; i < ccpos.second; ++i) | |
14928 rp[i] = char_class_[ccpos.first + i]; | |
14929 | |
14930 return rp; | |
14931 } | |
14932 | |
14933 #if !defined(SRELLDBG_NO_CCPOS) | |
14934 | |
14935 const range_pair &charclasspos(const ui_l32 no) // const | |
14936 { | |
14937 range_pair &elpos = char_class_pos_el_[no]; | |
14938 | |
14939 if (elpos.second == 0) | |
14940 { | |
14941 const range_pair &posinfo = char_class_pos_[no]; | |
14942 | |
14943 if (posinfo.second > 0) | |
14944 { | |
14945 elpos.first = static_cast<ui_l32>(char_class_el_.size()); | |
14946 elpos.second = char_class_el_.create_el(&char_class_[posinfo.first], posinfo.second); | |
14947 } | |
14948 } | |
14949 return elpos; | |
14950 } | |
14951 | |
14952 void finalise() | |
14953 { | |
14954 char_class_el_.clear(); | |
14955 char_class_pos_el_.resize(char_class_pos_.size()); | |
14956 std::memset(&char_class_pos_el_[0], 0, char_class_pos_el_.size() * sizeof (range_pairs::array_type::value_type)); | |
14957 } | |
14958 | |
14959 #endif // #if !defined(SRELLDBG_NO_CCPOS) | |
14960 | |
14961 void optimise() | |
14962 { | |
14963 } | |
14964 | |
14965 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
14966 | |
14967 ui_l32 get_propertynumber(const pstring &pname, const pstring &pvalue) const | |
14968 { | |
14969 const ui_l32 pno = static_cast<ui_l32>(unicode_property::lookup_property(pname, pvalue)); | |
14970 | |
14971 return (pno != up_constants::error_property) ? pno : up_constants::error_property; | |
14972 } | |
14973 | |
14974 bool load_upranges(range_pairs &newranges, const ui_l32 property_number) const | |
14975 { | |
14976 newranges.clear(); | |
14977 | |
14978 if (unicode_property::is_valid_pno(property_number)) | |
14979 { | |
14980 if (property_number == upid_bp_Assigned) | |
14981 { | |
14982 load_updata(newranges, upid_gc_Cn); | |
14983 newranges.negation(); | |
14984 } | |
14985 else | |
14986 load_updata(newranges, property_number); | |
14987 | |
14988 return true; | |
14989 } | |
14990 return false; | |
14991 } | |
14992 | |
14993 // Properties of strings. | |
14994 bool is_pos(const ui_l32 pno) const | |
14995 { | |
14996 return unicode_property::is_pos(pno); | |
14997 } | |
14998 | |
14999 bool get_prawdata(simple_array<ui_l32> &seq, ui_l32 property_number) | |
15000 { | |
15001 if (property_number != up_constants::error_property) | |
15002 { | |
15003 if (property_number == upid_bp_Assigned) | |
15004 property_number = upid_gc_Cn; | |
15005 | |
15006 const ui_l32 *const address = unicode_property::ranges_address(property_number); | |
15007 // const ui_l32 offset = unicode_property::ranges_offset(property_number); | |
15008 const ui_l32 number = unicode_property::number_of_ranges(property_number) * 2; | |
15009 | |
15010 seq.resize(number); | |
15011 for (ui_l32 i = 0; i < number; ++i) | |
15012 seq[i] = address[i]; | |
15013 | |
15014 return true; | |
15015 } | |
15016 seq.clear(); | |
15017 return false; | |
15018 } | |
15019 | |
15020 #endif // !defined(SRELL_NO_UNICODE_PROPERTY) | |
15021 | |
15022 void swap(re_character_class &right) | |
15023 { | |
15024 if (this != &right) | |
15025 { | |
15026 this->char_class_.swap(right.char_class_); | |
15027 this->char_class_pos_.swap(right.char_class_pos_); | |
15028 #if !defined(SRELLDBG_NO_CCPOS) | |
15029 this->char_class_el_.swap(right.char_class_el_); | |
15030 this->char_class_pos_el_.swap(right.char_class_pos_el_); | |
15031 #endif | |
15032 } | |
15033 } | |
15034 | |
15035 private: | |
15036 | |
15037 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
15038 | |
15039 void load_updata(range_pairs &newranges, const ui_l32 property_number) const | |
15040 { | |
15041 const ui_l32 *const address = unicode_property::ranges_address(property_number); | |
15042 // const ui_l32 offset = unicode_property::ranges_offset(property_number); | |
15043 const ui_l32 number = unicode_property::number_of_ranges(property_number); | |
15044 | |
15045 newranges.load_from_memory(address, number); | |
15046 } | |
15047 | |
15048 #endif // !defined(SRELL_NO_UNICODE_PROPERTY) | |
15049 | |
15050 void append_charclass(const range_pairs &rps) | |
15051 { | |
15052 char_class_pos_.push_back(range_pair_helper(static_cast<ui_l32>(char_class_.size()), static_cast<ui_l32>(rps.size()))); | |
15053 char_class_.append_newclass(rps); | |
15054 } | |
15055 | |
15056 // The production CharacterClassEscape::s evaluates as follows: | |
15057 // Return the set of characters containing the characters that are on the right-hand side of the WhiteSpace or LineTerminator productions. | |
15058 // WhiteSpace::<TAB> <VT> <FF> <SP> <NBSP> <ZWNBSP> <USP> | |
15059 // 0009 000B 000C 0020 00A0 FEFF Zs | |
15060 // LineTerminator::<LF> <CR> <LS> <PS> | |
15061 // 000A 000D 2028 2029 | |
15062 | |
15063 void setup_predefinedclass() | |
15064 { | |
15065 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
15066 const ui_l32 *const Zs_address = unicode_property::ranges_address(upid_gc_Zs); | |
15067 // const ui_l32 Zs_offset = unicode_property::ranges_offset(upid_gc_Zs); | |
15068 const ui_l32 Zs_number = unicode_property::number_of_ranges(upid_gc_Zs); | |
15069 #else | |
15070 static const ui_l32 Zs[] = { | |
15071 0x1680, 0x1680, 0x2000, 0x200a, // 0x2028, 0x2029, | |
15072 0x202f, 0x202f, 0x205f, 0x205f, 0x3000, 0x3000 | |
15073 }; | |
15074 #endif // defined(SRELL_NO_UNICODE_PROPERTY) | |
15075 static const ui_l32 allranges[] = { | |
15076 // dotall. | |
15077 0x0000, 0x10ffff, | |
15078 // newline. | |
15079 0x0a, 0x0a, 0x0d, 0x0d, // \n \r | |
15080 // newline, space. | |
15081 0x2028, 0x2029, | |
15082 // space. | |
15083 0x09, 0x0d, // \t \n \v \f \r | |
15084 0x20, 0x20, // ' ' | |
15085 0xa0, 0xa0, // <NBSP> | |
15086 0xfeff, 0xfeff, // <BOM> | |
15087 // digit, word. | |
15088 0x30, 0x39, // '0'-'9' | |
15089 0x41, 0x5a, 0x5f, 0x5f, 0x61, 0x7a // 'A'-'Z' '_' 'a'-'z' | |
15090 }; | |
15091 range_pairs ranges; | |
15092 | |
15093 // newline. | |
15094 ranges.load_from_memory(&allranges[2], 3); | |
15095 append_charclass(ranges); | |
15096 | |
15097 // dotall. | |
15098 ranges.clear(); | |
15099 ranges.load_from_memory(&allranges[0], 1); | |
15100 append_charclass(ranges); | |
15101 | |
15102 // space. | |
15103 ranges.clear(); | |
15104 ranges.load_from_memory(&allranges[6], 5); | |
15105 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
15106 ranges.load_from_memory(Zs_address, Zs_number); | |
15107 #else | |
15108 ranges.load_from_memory(Zs, 5); | |
15109 #endif | |
15110 append_charclass(ranges); | |
15111 | |
15112 // digit. | |
15113 ranges.clear(); | |
15114 ranges.load_from_memory(&allranges[16], 1); | |
15115 append_charclass(ranges); | |
15116 | |
15117 // word. | |
15118 ranges.clear(); | |
15119 ranges.load_from_memory(&allranges[16], 4); | |
15120 append_charclass(ranges); | |
15121 | |
15122 // Reservation for icase_word. | |
15123 append_charclass(ranges); | |
15124 } | |
15125 | |
15126 private: | |
15127 | |
15128 range_pairs char_class_; | |
15129 range_pairs::array_type char_class_pos_; | |
15130 | |
15131 #if !defined(SRELLDBG_NO_CCPOS) | |
15132 range_pairs char_class_el_; | |
15133 range_pairs::array_type char_class_pos_el_; | |
15134 | |
15135 #endif | |
15136 | |
15137 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
15138 static const ui_l32 upid_gc_Zs = static_cast<ui_l32>(up_constants::gc_Space_Separator); | |
15139 static const ui_l32 upid_gc_Cn = static_cast<ui_l32>(up_constants::gc_Unassigned); | |
15140 static const ui_l32 upid_bp_Assigned = static_cast<ui_l32>(up_constants::bp_Assigned); | |
15141 | |
15142 #endif | |
15143 | |
15144 public: // For debug. | |
15145 | |
15146 void print_classes(const int) const; | |
15147 }; | |
15148 // re_character_class | |
15149 | |
15150 } // namespace re_detail | |
15151 | |
15152 // ... "rei_char_class.hpp"] | |
15153 // ["rei_groupname_mapper.hpp" ... | |
15154 | |
15155 namespace re_detail | |
15156 { | |
15157 | |
15158 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
15159 | |
15160 template <typename charT> | |
15161 class groupname_mapper | |
15162 { | |
15163 public: | |
15164 | |
15165 typedef simple_array<charT> gname_string; | |
15166 typedef std::size_t size_type; | |
15167 static const ui_l32 notfound = 0u; | |
15168 | |
15169 groupname_mapper() | |
15170 { | |
15171 } | |
15172 | |
15173 groupname_mapper(const groupname_mapper &right) | |
15174 : names_(right.names_), keysize_classno_(right.keysize_classno_) | |
15175 { | |
15176 } | |
15177 | |
15178 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
15179 groupname_mapper(groupname_mapper &&right) SRELL_NOEXCEPT | |
15180 : names_(std::move(right.names_)), keysize_classno_(std::move(right.keysize_classno_)) | |
15181 { | |
15182 } | |
15183 #endif | |
15184 | |
15185 groupname_mapper &operator=(const groupname_mapper &right) | |
15186 { | |
15187 if (this != &right) | |
15188 { | |
15189 names_ = right.names_; | |
15190 keysize_classno_ = right.keysize_classno_; | |
15191 } | |
15192 return *this; | |
15193 } | |
15194 | |
15195 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
15196 groupname_mapper &operator=(groupname_mapper &&right) SRELL_NOEXCEPT | |
15197 { | |
15198 if (this != &right) | |
15199 { | |
15200 names_ = std::move(right.names_); | |
15201 keysize_classno_ = std::move(right.keysize_classno_); | |
15202 } | |
15203 return *this; | |
15204 } | |
15205 #endif | |
15206 | |
15207 void clear() | |
15208 { | |
15209 names_.clear(); | |
15210 keysize_classno_.clear(); | |
15211 } | |
15212 | |
15213 const ui_l32 *operator[](const gname_string &gname) const | |
15214 { | |
15215 ui_l32 pos = 0; | |
15216 for (std::size_t i = 1; i < static_cast<std::size_t>(keysize_classno_.size());) | |
15217 { | |
15218 const ui_l32 keysize = keysize_classno_[i]; | |
15219 const ui_l32 keynum = keysize_classno_[++i]; | |
15220 | |
15221 if (keysize == static_cast<ui_l32>(gname.size()) && sameseq_(pos, gname)) | |
15222 return &keysize_classno_[i]; | |
15223 | |
15224 pos += keysize; | |
15225 i += keynum + 1; | |
15226 } | |
15227 return NULL; | |
15228 } | |
15229 | |
15230 gname_string operator[](const ui_l32 indexno) const | |
15231 { | |
15232 ui_l32 pos = 0; | |
15233 for (std::size_t i = 1; i < static_cast<std::size_t>(keysize_classno_.size()); ++i) | |
15234 { | |
15235 const ui_l32 keysize = keysize_classno_[i]; | |
15236 | |
15237 for (ui_l32 keynum = keysize_classno_[++i]; keynum; --keynum) | |
15238 { | |
15239 if (keysize_classno_[++i] == indexno) | |
15240 return gname_string(names_, pos, keysize); | |
15241 } | |
15242 pos += keysize; | |
15243 } | |
15244 return gname_string(); | |
15245 } | |
15246 | |
15247 size_type size() const | |
15248 { | |
15249 return keysize_classno_.size() ? keysize_classno_[0] : 0; | |
15250 } | |
15251 | |
15252 bool push_back(const gname_string &gname, const ui_l32 gno, const simple_array<ui_l32> &dupranges) | |
15253 { | |
15254 const ui_l32 *list = operator[](gname); | |
15255 | |
15256 if (list == NULL) | |
15257 { | |
15258 names_.append(gname); | |
15259 if (keysize_classno_.size()) | |
15260 ++keysize_classno_[0]; | |
15261 else | |
15262 keysize_classno_.append(1, 1); | |
15263 keysize_classno_.append(1, static_cast<ui_l32>(gname.size())); | |
15264 keysize_classno_.append(1, 1); | |
15265 keysize_classno_.append(1, gno); | |
15266 return true; | |
15267 } | |
15268 | |
15269 const size_type offset = list - keysize_classno_.data(); | |
15270 const size_type keynum = list[0]; | |
15271 | |
15272 for (size_type i = 1; i <= keynum; ++i) | |
15273 { | |
15274 const ui_l32 no = list[i]; | |
15275 | |
15276 for (typename simple_array<ui_l32>::size_type j = 0;; ++j) | |
15277 { | |
15278 if (j >= dupranges.size()) | |
15279 return false; | |
15280 | |
15281 if (no < dupranges[j]) | |
15282 { | |
15283 if (j & 1) | |
15284 break; | |
15285 | |
15286 return false; | |
15287 } | |
15288 } | |
15289 } | |
15290 | |
15291 const size_type newkeynum = ++keysize_classno_[offset];; | |
15292 keysize_classno_.insert(offset + newkeynum, gno); | |
15293 | |
15294 return true; | |
15295 } | |
15296 | |
15297 ui_l32 assign_number(const gname_string &gname, const ui_l32 gno) | |
15298 { | |
15299 const ui_l32 *list = operator[](gname); | |
15300 | |
15301 if (list == NULL) | |
15302 { | |
15303 names_.append(gname); | |
15304 if (keysize_classno_.size()) | |
15305 ++keysize_classno_[0]; | |
15306 else | |
15307 keysize_classno_.append(1, 1); | |
15308 keysize_classno_.append(1, static_cast<ui_l32>(gname.size())); | |
15309 keysize_classno_.append(1, 1); | |
15310 keysize_classno_.append(1, gno); | |
15311 return gno; | |
15312 } | |
15313 return list[1]; | |
15314 } | |
15315 | |
15316 void swap(groupname_mapper &right) | |
15317 { | |
15318 this->names_.swap(right.names_); | |
15319 keysize_classno_.swap(right.keysize_classno_); | |
15320 } | |
15321 | |
15322 private: | |
15323 | |
15324 bool sameseq_(size_type pos, const gname_string &gname) const | |
15325 { | |
15326 for (size_type i = 0; i < gname.size(); ++i, ++pos) | |
15327 if (pos >= names_.size() || names_[pos] != gname[i]) | |
15328 return false; | |
15329 | |
15330 return true; | |
15331 } | |
15332 | |
15333 gname_string names_; | |
15334 simple_array<ui_l32> keysize_classno_; | |
15335 | |
15336 public: // For debug. | |
15337 | |
15338 void print_mappings(const int) const; | |
15339 }; | |
15340 template <typename charT> | |
15341 const ui_l32 groupname_mapper<charT>::notfound; | |
15342 // groupname_mapper | |
15343 | |
15344 #endif // !defined(SRELL_NO_NAMEDCAPTURE) | |
15345 | |
15346 } // namespace re_detail | |
15347 | |
15348 // ... "rei_groupname_mapper.hpp"] | |
15349 // ["rei_state.hpp" ... | |
15350 | |
15351 namespace re_detail | |
15352 { | |
15353 | |
15354 struct re_quantifier | |
15355 { | |
15356 // atleast and atmost: for check_counter. | |
15357 // (Special case 1) in charcter_class, bol, eol, boundary, represents the offset and length | |
15358 // of the range in the array of character classes. | |
15359 // (Special case 2) in roundbracket_open and roundbracket_pop atleast and atmost represent | |
15360 // the minimum and maximum bracket numbers respectively inside the brackets itself. | |
15361 // (Special case 3) in repeat_in_push and repeat_in_pop atleast and atmost represent the | |
15362 // minimum and maximum bracket numbers respectively inside the repetition. | |
15363 // (Special case 4) in lookaround_open and lookaround_pop atleast and atmost represent the | |
15364 // minimum and maximum bracket numbers respectively inside the lookaround. | |
15365 | |
15366 ui_l32 atleast; | |
15367 | |
15368 ui_l32 atmost; | |
15369 | |
15370 ui_l32 is_greedy; | |
15371 // (Special case 1: v1) in lookaround_open represents the number of characters to be rewound. | |
15372 // (Special case 2: v2) in lookaround_open represents: 0=lookaheads, 1=lookbehinds, | |
15373 // 2=matchpointrewinder, 3=rewinder+rerun. | |
15374 | |
15375 void reset(const ui_l32 len = 1) | |
15376 { | |
15377 atleast = atmost = len; | |
15378 is_greedy = 1; | |
15379 } | |
15380 | |
15381 void set(const ui_l32 min, const ui_l32 max) | |
15382 { | |
15383 atleast = min; | |
15384 atmost = max; | |
15385 } | |
15386 | |
15387 void set(const ui_l32 min, const ui_l32 max, const ui_l32 greedy) | |
15388 { | |
15389 atleast = min; | |
15390 atmost = max; | |
15391 is_greedy = greedy; | |
15392 } | |
15393 | |
15394 bool is_valid() const | |
15395 { | |
15396 return atleast <= atmost; | |
15397 } | |
15398 | |
15399 void set_infinity() | |
15400 { | |
15401 atmost = constants::infinity; | |
15402 } | |
15403 | |
15404 bool is_infinity() const | |
15405 { | |
15406 return atmost == constants::infinity; | |
15407 } | |
15408 | |
15409 bool is_same() const | |
15410 { | |
15411 return atleast == atmost; | |
15412 } | |
15413 | |
15414 bool is_default() const | |
15415 { | |
15416 return atleast == 1 && atmost == 1; | |
15417 } | |
15418 | |
15419 bool is_asterisk() const | |
15420 { | |
15421 return atleast == 0 && atmost == constants::infinity; | |
15422 } | |
15423 bool is_plus() const | |
15424 { | |
15425 return atleast == 1 && atmost == constants::infinity; | |
15426 } | |
15427 bool is_asterisk_or_plus() const | |
15428 { | |
15429 return atleast <= 1 && atmost == constants::infinity; | |
15430 } | |
15431 | |
15432 bool has_simple_equivalence() const | |
15433 { | |
15434 return (atleast <= 1 && atmost <= 3) || (atleast == 2 && atmost <= 4) || (atleast == atmost && atmost <= 6); | |
15435 } | |
15436 | |
15437 void multiply(const re_quantifier &q) | |
15438 { | |
15439 if (atleast != constants::infinity) | |
15440 { | |
15441 if (q.atleast != constants::infinity) | |
15442 atleast *= q.atleast; | |
15443 else | |
15444 atleast = constants::infinity; | |
15445 } | |
15446 | |
15447 if (atmost != constants::infinity) | |
15448 { | |
15449 if (q.atmost != constants::infinity) | |
15450 atmost *= q.atmost; | |
15451 else | |
15452 atmost = constants::infinity; | |
15453 } | |
15454 } | |
15455 | |
15456 void add(const re_quantifier &q) | |
15457 { | |
15458 if (atleast != constants::infinity) | |
15459 { | |
15460 if (q.atleast != constants::infinity && (atleast + q.atleast) >= atleast) | |
15461 atleast += q.atleast; | |
15462 else | |
15463 atleast = constants::infinity; | |
15464 } | |
15465 | |
15466 if (atmost != constants::infinity) | |
15467 { | |
15468 if (q.atmost != constants::infinity && (atmost + q.atmost) >= atmost) | |
15469 atmost += q.atmost; | |
15470 else | |
15471 atmost = constants::infinity; | |
15472 } | |
15473 } | |
15474 }; | |
15475 // re_quantifier | |
15476 | |
15477 struct re_state | |
15478 { | |
15479 ui_l32 char_num; | |
15480 // character: for character. | |
15481 // number: for character_class, brackets, counter, repeat, backreference. | |
15482 // (Special case) in [0] represents a code unit for finding an entry point if | |
15483 // the firstchar class consists of a single code unit; otherwise invalid_u32value. | |
15484 | |
15485 re_state_type type; | |
15486 | |
15487 union | |
15488 { | |
15489 std::ptrdiff_t next1; | |
15490 re_state *next_state1; | |
15491 // (Special case 1) in lookaround_open points to the next of lookaround_close. | |
15492 // (Special case 2) in lookaround_pop points to the content of brackets instead of lookaround_open. | |
15493 }; | |
15494 union | |
15495 { | |
15496 std::ptrdiff_t next2; | |
15497 re_state *next_state2; | |
15498 // character and character_class: points to another possibility, non-backtracking. | |
15499 // epsilon: points to another possibility, backtracking. | |
15500 // save_and_reset_counter, roundbracket_open, and repeat_in_push: points to a | |
15501 // restore state, backtracking. | |
15502 // check_counter: complementary to next1 based on quantifier.is_greedy. | |
15503 // (Special case 1) roundbracket_close, check_0_width_repeat, and backreference: | |
15504 // points to the next state as an exit after 0 width match. | |
15505 // (Special case 2) in NFA_states[0] holds the entry point for match_continuous/regex_match. | |
15506 // (Special case 3) in lookaround_open points to the contents of brackets. | |
15507 }; | |
15508 | |
15509 re_quantifier quantifier; // For check_counter, roundbrackets, repeasts, (?<=...) and (?<!...), | |
15510 // and character_class. | |
15511 | |
15512 ui_l32 flags; | |
15513 // Bit | |
15514 // 0: is_not; for \B, (?!...) and (?<!...). | |
15515 // icase; for [0], backreference. | |
15516 // multiline; for bol, eol. | |
15517 // (Only bit used across compiler and algorithm). | |
15518 // 1: backrefno_unresolved. Used only in compiler. | |
15519 // 2: hooking. Used only in compiler. | |
15520 // 3: hookedlast. Used only in compiler. | |
15521 // 4: byn2. Used only in compiler. | |
15522 | |
15523 void reset(const re_state_type t = st_character, const ui_l32 c = char_ctrl::cc_nul) | |
15524 { | |
15525 type = t; | |
15526 char_num = c; | |
15527 next1 = 1; | |
15528 next2 = 0; | |
15529 flags = 0u; | |
15530 quantifier.reset(); | |
15531 } | |
15532 | |
15533 bool is_character_or_class() const | |
15534 { | |
15535 return type == st_character || type == st_character_class; | |
15536 } | |
15537 | |
15538 bool has_quantifier() const | |
15539 { | |
15540 // 1. character: size == 1 && type == character, | |
15541 // 2. [...]: size == 1 && type == character_class, | |
15542 // 3. (...): size == ? && type == roundbracket_open, | |
15543 // 4. (?:...): size == ? && type == epsilon && character == ':', | |
15544 // 5. backref: size == ? && type == backreference, | |
15545 // -- assertions boundary -- | |
15546 // 6. lookaround: size == ? && type == lookaround_open, | |
15547 // 7. assertion: size == 0 && type == one of assertions (^, $, \b and \B). | |
15548 #if !defined(SRELL_ENABLE_GT) | |
15549 return type < st_zero_width_boundary; | |
15550 #else | |
15551 // 5.5. independent: size == ? && type == lookaround && char_num == '>', | |
15552 return type < st_zero_width_boundary || (type == st_lookaround_open && char_num == meta_char::mc_gt); | |
15553 #endif | |
15554 } | |
15555 | |
15556 bool is_noncapturinggroup() const | |
15557 { | |
15558 return type == st_epsilon && char_num == epsilon_type::et_ncgopen; | |
15559 } | |
15560 | |
15561 bool is_noncapturinggroup_begin_or_end() const | |
15562 { | |
15563 return type == st_epsilon && next2 == 0 && (char_num == epsilon_type::et_ncgopen || char_num == epsilon_type::et_ncgclose); | |
15564 } | |
15565 | |
15566 bool is_branch() const | |
15567 { | |
15568 return type == st_epsilon && next2 != 0 && char_num == epsilon_type::et_alt; // '|' | |
15569 } | |
15570 | |
15571 bool is_question_or_asterisk_before_corcc() const | |
15572 { | |
15573 return type == st_epsilon && char_num == epsilon_type::et_ccastrsk; | |
15574 } | |
15575 | |
15576 bool is_asterisk_or_plus_for_onelen_atom() const | |
15577 { | |
15578 return type == st_epsilon && ((next1 == 1 && next2 == 2) || (next1 == 2 && next2 == 1)) && quantifier.is_asterisk_or_plus(); | |
15579 } | |
15580 | |
15581 bool is_same_character_or_charclass(const re_state &right) const | |
15582 { | |
15583 return type == right.type && char_num == right.char_num | |
15584 && (type != st_character || !((flags ^ right.flags) & regex_constants::icase)); | |
15585 } | |
15586 | |
15587 std::ptrdiff_t nearnext() const | |
15588 { | |
15589 return quantifier.is_greedy ? next1 : next2; | |
15590 } | |
15591 | |
15592 std::ptrdiff_t farnext() const | |
15593 { | |
15594 return quantifier.is_greedy ? next2 : next1; | |
15595 } | |
15596 }; | |
15597 // re_state | |
15598 | |
15599 template <typename charT> | |
15600 struct re_compiler_state | |
15601 { | |
15602 const ui_l32 *begin; | |
15603 regex_constants::syntax_option_type soflags; | |
15604 | |
15605 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
15606 groupname_mapper<charT> unresolved_gnames; | |
15607 simple_array<ui_l32> dupranges; | |
15608 #endif | |
15609 | |
15610 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
15611 identifier_charclass idchecker; | |
15612 #endif | |
15613 | |
15614 void reset(const regex_constants::syntax_option_type f, const ui_l32 *const b) | |
15615 { | |
15616 begin = b; | |
15617 soflags = f; | |
15618 | |
15619 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
15620 unresolved_gnames.clear(); | |
15621 dupranges.clear(); | |
15622 #endif | |
15623 | |
15624 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
15625 // idchecker.clear(); // Keeps data once created. | |
15626 #endif | |
15627 } | |
15628 | |
15629 bool is_back() const | |
15630 { | |
15631 return (soflags & regex_constants::back_) ? true : false; | |
15632 } | |
15633 | |
15634 bool is_icase() const | |
15635 { | |
15636 return (soflags & regex_constants::icase) ? true : false; | |
15637 } | |
15638 | |
15639 bool is_multiline() const | |
15640 { | |
15641 return (soflags & regex_constants::multiline) ? true : false; | |
15642 } | |
15643 | |
15644 bool is_dotall() const | |
15645 { | |
15646 return (soflags & regex_constants::dotall) ? true : false; | |
15647 } | |
15648 }; | |
15649 // re_compiler_state | |
15650 | |
15651 } // namespace re_detail | |
15652 | |
15653 // ... "rei_state.hpp"] | |
15654 // ["rei_search_state.hpp" ... | |
15655 | |
15656 namespace re_detail | |
15657 { | |
15658 | |
15659 template </* typename charT, */typename BidirectionalIterator> | |
15660 struct re_search_state_core | |
15661 { | |
15662 const re_state/* <charT> */ *state; | |
15663 BidirectionalIterator iter; | |
15664 }; | |
15665 | |
15666 template <typename BidirectionalIterator> | |
15667 struct re_submatch_core | |
15668 { | |
15669 BidirectionalIterator open_at; | |
15670 BidirectionalIterator close_at; | |
15671 }; | |
15672 | |
15673 template <typename BidirectionalIterator> | |
15674 struct re_submatch_type | |
15675 { | |
15676 re_submatch_core<BidirectionalIterator> core; | |
15677 union | |
15678 { | |
15679 ui_l32 counter; | |
15680 void *padding_; | |
15681 }; | |
15682 | |
15683 void init(const BidirectionalIterator b) | |
15684 { | |
15685 core.open_at = core.close_at = b; | |
15686 counter = 0u; | |
15687 } | |
15688 }; | |
15689 | |
15690 #if defined(SRELL_HAS_TYPE_TRAITS) | |
15691 template <typename BidirectionalIterator, const bool> | |
15692 #else | |
15693 template </*typename charT, */typename BidirectionalIterator> | |
15694 #endif | |
15695 struct re_search_state_types | |
15696 { | |
15697 typedef re_submatch_core<BidirectionalIterator> submatch_core; | |
15698 typedef re_submatch_type<BidirectionalIterator> submatch_type; | |
15699 typedef ui_l32 counter_type; | |
15700 typedef BidirectionalIterator position_type; | |
15701 | |
15702 typedef std::vector<submatch_type> submatch_array; | |
15703 | |
15704 typedef re_search_state_core</*charT, */BidirectionalIterator> search_state_core; | |
15705 | |
15706 typedef std::vector<search_state_core> backtracking_array; | |
15707 typedef std::vector<submatch_core> capture_array; | |
15708 typedef simple_array<counter_type> counter_array; | |
15709 typedef std::vector<position_type> repeat_array; | |
15710 | |
15711 typedef typename backtracking_array::size_type btstack_size_type; | |
15712 | |
15713 private: | |
15714 | |
15715 backtracking_array bt_stack; | |
15716 capture_array capture_stack; | |
15717 counter_array counter_stack; | |
15718 repeat_array repeat_stack; | |
15719 | |
15720 public: | |
15721 | |
15722 void clear_stacks() | |
15723 { | |
15724 bt_stack.clear(); | |
15725 capture_stack.clear(); | |
15726 repeat_stack.clear(); | |
15727 counter_stack.clear(); | |
15728 } | |
15729 | |
15730 btstack_size_type bt_size() const | |
15731 { | |
15732 return bt_stack.size(); | |
15733 } | |
15734 void bt_resize(const btstack_size_type s) | |
15735 { | |
15736 bt_stack.resize(s); | |
15737 } | |
15738 | |
15739 void push_bt(const search_state_core &ssc) | |
15740 { | |
15741 bt_stack.push_back(ssc); | |
15742 } | |
15743 void push_sm(const submatch_core &smc) | |
15744 { | |
15745 capture_stack.push_back(smc); | |
15746 } | |
15747 void push_c(const counter_type c) | |
15748 { | |
15749 counter_stack.push_back(c); | |
15750 } | |
15751 void push_rp(const position_type p) | |
15752 { | |
15753 repeat_stack.push_back(p); | |
15754 } | |
15755 | |
15756 void pop_bt(search_state_core &ssc) | |
15757 { | |
15758 ssc = bt_stack.back(); | |
15759 bt_stack.pop_back(); | |
15760 } | |
15761 void pop_sm(submatch_core &smc) | |
15762 { | |
15763 smc = capture_stack.back(); | |
15764 capture_stack.pop_back(); | |
15765 } | |
15766 void pop_c(counter_type &c) | |
15767 { | |
15768 c = counter_stack.back(); | |
15769 counter_stack.pop_back(); | |
15770 } | |
15771 void pop_rp(position_type &p) | |
15772 { | |
15773 p = repeat_stack.back(); | |
15774 repeat_stack.pop_back(); | |
15775 } | |
15776 | |
15777 public: | |
15778 | |
15779 struct bottom_state | |
15780 { | |
15781 btstack_size_type btstack_size; | |
15782 typename capture_array::size_type capturestack_size; | |
15783 typename counter_array::size_type counterstack_size; | |
15784 typename repeat_array::size_type repeatstack_size; | |
15785 | |
15786 bottom_state(const btstack_size_type bt, const re_search_state_types &ss) | |
15787 : btstack_size(bt) | |
15788 , capturestack_size(ss.capture_stack.size()) | |
15789 , counterstack_size(ss.counter_stack.size()) | |
15790 , repeatstack_size(ss.repeat_stack.size()) | |
15791 { | |
15792 } | |
15793 void restore(btstack_size_type &bt, re_search_state_types &ss) const | |
15794 { | |
15795 bt = btstack_size; | |
15796 ss.capture_stack.resize(capturestack_size); | |
15797 ss.counter_stack.resize(counterstack_size); | |
15798 ss.repeat_stack.resize(repeatstack_size); | |
15799 } | |
15800 }; | |
15801 }; | |
15802 | |
15803 #if !defined(SRELL_NO_UNISTACK) | |
15804 #if defined(SRELL_HAS_TYPE_TRAITS) | |
15805 template <typename BidirectionalIterator> | |
15806 struct re_search_state_types<BidirectionalIterator, true> | |
15807 { | |
15808 #else | |
15809 template </*typename charT1, */typename charT2> | |
15810 struct re_search_state_types</*charT1, */const charT2 *> | |
15811 { | |
15812 typedef const charT2 * BidirectionalIterator; | |
15813 #endif | |
15814 typedef re_submatch_core<BidirectionalIterator> submatch_core; | |
15815 typedef re_submatch_type<BidirectionalIterator> submatch_type; | |
15816 typedef ui_l32 counter_type; | |
15817 typedef BidirectionalIterator position_type; | |
15818 | |
15819 typedef simple_array<submatch_type> submatch_array; | |
15820 | |
15821 typedef re_search_state_core</*charT, */BidirectionalIterator> search_state_core; | |
15822 | |
15823 typedef simple_stack backtracking_array; | |
15824 typedef simple_array<counter_type> counter_array; | |
15825 typedef simple_array<position_type> repeat_array; | |
15826 | |
15827 typedef typename backtracking_array::size_type btstack_size_type; | |
15828 | |
15829 private: | |
15830 | |
15831 backtracking_array bt_stack; | |
15832 | |
15833 public: | |
15834 | |
15835 void clear_stacks() | |
15836 { | |
15837 bt_stack.clear(); | |
15838 } | |
15839 void bt_resize(const btstack_size_type s) | |
15840 { | |
15841 bt_stack.resize(s); | |
15842 } | |
15843 | |
15844 btstack_size_type bt_size() const | |
15845 { | |
15846 return bt_stack.size(); | |
15847 } | |
15848 | |
15849 void push_bt(const search_state_core &ssc) | |
15850 { | |
15851 bt_stack.push_back_t<search_state_core>(ssc); | |
15852 } | |
15853 void push_sm(const submatch_core &smc) | |
15854 { | |
15855 bt_stack.push_back_t<submatch_core>(smc); | |
15856 } | |
15857 void push_c(const counter_type c) | |
15858 { | |
15859 bt_stack.push_back_t<counter_type>(c); | |
15860 } | |
15861 void push_rp(const position_type p) | |
15862 { | |
15863 bt_stack.push_back_t<position_type>(p); | |
15864 } | |
15865 | |
15866 void pop_bt(search_state_core &ssc) | |
15867 { | |
15868 ssc = bt_stack.pop_back_t<search_state_core>(); | |
15869 } | |
15870 void pop_sm(submatch_core &smc) | |
15871 { | |
15872 smc = bt_stack.pop_back_t<submatch_core>(); | |
15873 } | |
15874 void pop_c(counter_type &c) | |
15875 { | |
15876 c = bt_stack.pop_back_t<counter_type>(); | |
15877 } | |
15878 void pop_rp(position_type &p) | |
15879 { | |
15880 p = bt_stack.pop_back_t<position_type>(); | |
15881 } | |
15882 | |
15883 public: | |
15884 | |
15885 struct bottom_state | |
15886 { | |
15887 btstack_size_type btstack_size; | |
15888 | |
15889 bottom_state(const btstack_size_type bt, const re_search_state_types &) | |
15890 : btstack_size(bt) | |
15891 { | |
15892 } | |
15893 void restore(btstack_size_type &bt, re_search_state_types &) const | |
15894 { | |
15895 bt = btstack_size; | |
15896 } | |
15897 }; | |
15898 }; | |
15899 #endif // !defined(SRELL_NO_UNISTACK) | |
15900 // re_search_state_types | |
15901 | |
15902 template </*typename charT, */typename BidirectionalIterator> | |
15903 #if defined(SRELL_HAS_TYPE_TRAITS) | |
15904 class re_search_state : public re_search_state_types<BidirectionalIterator, std::is_trivially_copyable<BidirectionalIterator>::value> | |
15905 { | |
15906 private: | |
15907 typedef re_search_state_types<BidirectionalIterator, std::is_trivially_copyable<BidirectionalIterator>::value> base_type; | |
15908 #else | |
15909 class re_search_state : public re_search_state_types</*charT, */BidirectionalIterator> | |
15910 { | |
15911 private: | |
15912 typedef re_search_state_types</*charT, */BidirectionalIterator> base_type; | |
15913 #endif | |
15914 | |
15915 public: | |
15916 | |
15917 typedef typename base_type::submatch_core submatchcore_type; | |
15918 typedef typename base_type::submatch_type submatch_type; | |
15919 typedef typename base_type::counter_type counter_type; | |
15920 typedef typename base_type::position_type position_type; | |
15921 | |
15922 typedef typename base_type::submatch_array submatch_array; | |
15923 | |
15924 typedef typename base_type::search_state_core search_state_core; | |
15925 | |
15926 typedef typename base_type::backtracking_array backtracking_array; | |
15927 typedef typename base_type::counter_array counter_array; | |
15928 typedef typename base_type::repeat_array repeat_array; | |
15929 | |
15930 typedef typename backtracking_array::size_type btstack_size_type; | |
15931 | |
15932 typedef typename base_type::bottom_state bottom_state; | |
15933 | |
15934 public: | |
15935 | |
15936 search_state_core ssc; | |
15937 | |
15938 submatch_array bracket; | |
15939 counter_array counter; | |
15940 repeat_array repeat; | |
15941 | |
15942 btstack_size_type btstack_size; | |
15943 | |
15944 #if !defined(SRELL_NO_LIMIT_COUNTER) | |
15945 std::size_t failure_counter; | |
15946 #endif | |
15947 | |
15948 BidirectionalIterator reallblim; | |
15949 BidirectionalIterator srchbegin; | |
15950 BidirectionalIterator lblim; | |
15951 BidirectionalIterator nextpos; | |
15952 BidirectionalIterator srchend; | |
15953 | |
15954 const re_state/* <charT> */ *entry_state; | |
15955 regex_constants::match_flag_type flags; | |
15956 | |
15957 public: | |
15958 | |
15959 void init | |
15960 ( | |
15961 const BidirectionalIterator begin, | |
15962 const BidirectionalIterator end, | |
15963 const BidirectionalIterator lookbehindlimit, | |
15964 const regex_constants::match_flag_type f | |
15965 ) | |
15966 { | |
15967 reallblim = lblim = lookbehindlimit; | |
15968 nextpos = srchbegin = begin; | |
15969 srchend = end; | |
15970 flags = f; | |
15971 } | |
15972 | |
15973 void init_for_automaton | |
15974 ( | |
15975 ui_l32 num_of_submatches, | |
15976 const ui_l32 num_of_counters, | |
15977 const ui_l32 num_of_repeats | |
15978 ) | |
15979 { | |
15980 | |
15981 bracket.resize(num_of_submatches); | |
15982 counter.resize(num_of_counters); | |
15983 repeat.resize(num_of_repeats); | |
15984 | |
15985 while (num_of_submatches > 1) | |
15986 bracket[--num_of_submatches].init(this->srchend); | |
15987 // 15.10.2.9; AtomEscape: | |
15988 // If the regular expression has n or more capturing parentheses | |
15989 // but the nth one is undefined because it hasn't captured anything, | |
15990 // then the backreference always succeeds. | |
15991 | |
15992 // C.f., table 27 and 28 on TR1, table 142 and 143 on C++11. | |
15993 | |
15994 clear_stacks(); | |
15995 } | |
15996 | |
15997 #if defined(SRELL_NO_LIMIT_COUNTER) | |
15998 void reset(/* const BidirectionalIterator start */) | |
15999 #else | |
16000 void reset(/* const BidirectionalIterator start, */ const std::size_t limit) | |
16001 #endif | |
16002 { | |
16003 ssc.state = this->entry_state; | |
16004 | |
16005 bracket[0].core.open_at = ssc.iter; | |
16006 | |
16007 #if !defined(SRELL_NO_LIMIT_COUNTER) | |
16008 failure_counter = limit; | |
16009 #endif | |
16010 } | |
16011 | |
16012 bool set_bracket0(const BidirectionalIterator begin, const BidirectionalIterator end) | |
16013 { | |
16014 ssc.iter = begin; | |
16015 nextpos = end; | |
16016 return true; | |
16017 } | |
16018 | |
16019 void clear_stacks() | |
16020 { | |
16021 btstack_size = 0; | |
16022 base_type::clear_stacks(); | |
16023 } | |
16024 }; | |
16025 // re_search_state | |
16026 | |
16027 } // namespace re_detail | |
16028 | |
16029 // ... "rei_search_state.hpp"] | |
16030 // ["rei_bmh.hpp" ... | |
16031 | |
16032 namespace re_detail | |
16033 { | |
16034 | |
16035 #if !defined(SRELLDBG_NO_BMH) | |
16036 | |
16037 template <typename charT, typename utf_traits> | |
16038 class re_bmh | |
16039 { | |
16040 public: | |
16041 | |
16042 re_bmh() | |
16043 { | |
16044 } | |
16045 | |
16046 re_bmh(const re_bmh &right) | |
16047 { | |
16048 operator=(right); | |
16049 } | |
16050 | |
16051 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
16052 re_bmh(re_bmh &&right) SRELL_NOEXCEPT | |
16053 { | |
16054 operator=(std::move(right)); | |
16055 } | |
16056 #endif | |
16057 | |
16058 re_bmh &operator=(const re_bmh &that) | |
16059 { | |
16060 if (this != &that) | |
16061 { | |
16062 this->u32string_ = that.u32string_; | |
16063 | |
16064 this->bmtable_ = that.bmtable_; | |
16065 this->repseq_ = that.repseq_; | |
16066 } | |
16067 return *this; | |
16068 } | |
16069 | |
16070 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
16071 re_bmh &operator=(re_bmh &&that) SRELL_NOEXCEPT | |
16072 { | |
16073 if (this != &that) | |
16074 { | |
16075 this->u32string_ = std::move(that.u32string_); | |
16076 | |
16077 this->bmtable_ = std::move(that.bmtable_); | |
16078 this->repseq_ = std::move(that.repseq_); | |
16079 } | |
16080 return *this; | |
16081 } | |
16082 #endif | |
16083 | |
16084 void clear() | |
16085 { | |
16086 u32string_.clear(); | |
16087 | |
16088 bmtable_.clear(); | |
16089 repseq_.clear(); | |
16090 } | |
16091 | |
16092 void setup(const simple_array<ui_l32> &u32s, const bool icase) | |
16093 { | |
16094 u32string_ = u32s; | |
16095 setup_(); | |
16096 | |
16097 if (!icase) | |
16098 setup_for_casesensitive(); | |
16099 else | |
16100 setup_for_icase(); | |
16101 } | |
16102 | |
16103 template <typename RandomAccessIterator> | |
16104 bool do_casesensitivesearch(re_search_state<RandomAccessIterator> &sstate, const std::random_access_iterator_tag) const | |
16105 { | |
16106 RandomAccessIterator begin = sstate.srchbegin; | |
16107 const RandomAccessIterator end = sstate.srchend; | |
16108 std::size_t offset = static_cast<std::size_t>(repseq_.size() - 1); | |
16109 const charT *const relastchar = &repseq_[offset]; | |
16110 | |
16111 for (; static_cast<std::size_t>(end - begin) > offset;) | |
16112 { | |
16113 begin += offset; | |
16114 | |
16115 if (*begin == *relastchar) | |
16116 { | |
16117 const charT *re = relastchar; | |
16118 RandomAccessIterator tail = begin; | |
16119 | |
16120 for (; *--re == *--tail;) | |
16121 { | |
16122 if (re == repseq_.data()) | |
16123 return sstate.set_bracket0(tail, ++begin); | |
16124 } | |
16125 } | |
16126 offset = bmtable_[*begin & 0xff]; | |
16127 } | |
16128 return false; | |
16129 } | |
16130 | |
16131 template <typename BidirectionalIterator> | |
16132 bool do_casesensitivesearch(re_search_state<BidirectionalIterator> &sstate, const std::bidirectional_iterator_tag) const | |
16133 { | |
16134 BidirectionalIterator begin = sstate.srchbegin; | |
16135 const BidirectionalIterator end = sstate.srchend; | |
16136 std::size_t offset = static_cast<std::size_t>(repseq_.size() - 1); | |
16137 const charT *const relastchar = &repseq_[offset]; | |
16138 | |
16139 for (;;) | |
16140 { | |
16141 for (; offset; --offset, ++begin) | |
16142 if (begin == end) | |
16143 return false; | |
16144 | |
16145 if (*begin == *relastchar) | |
16146 { | |
16147 const charT *re = relastchar; | |
16148 BidirectionalIterator tail = begin; | |
16149 | |
16150 for (; *--re == *--tail;) | |
16151 { | |
16152 if (re == repseq_.data()) | |
16153 return sstate.set_bracket0(tail, ++begin); | |
16154 } | |
16155 } | |
16156 offset = bmtable_[*begin & 0xff]; | |
16157 } | |
16158 } | |
16159 | |
16160 template <typename RandomAccessIterator> | |
16161 bool do_icasesearch(re_search_state<RandomAccessIterator> &sstate, const std::random_access_iterator_tag) const | |
16162 { | |
16163 const RandomAccessIterator begin = sstate.srchbegin; | |
16164 const RandomAccessIterator end = sstate.srchend; | |
16165 std::size_t offset = bmtable_[256]; | |
16166 const ui_l32 entrychar = u32string_[u32string_.size() - 1]; | |
16167 const ui_l32 *const re2ndlastchar = &u32string_[u32string_.size() - 2]; | |
16168 RandomAccessIterator curpos = begin; | |
16169 | |
16170 for (; static_cast<std::size_t>(end - curpos) > offset;) | |
16171 { | |
16172 curpos += offset; | |
16173 | |
16174 for (; utf_traits::is_trailing(*curpos);) | |
16175 if (++curpos == end) | |
16176 return false; | |
16177 | |
16178 const ui_l32 txtlastchar = utf_traits::codepoint(curpos, end); | |
16179 | |
16180 if (txtlastchar == entrychar || unicode_case_folding::do_casefolding(txtlastchar) == entrychar) | |
16181 { | |
16182 const ui_l32 *re = re2ndlastchar; | |
16183 RandomAccessIterator tail = curpos; | |
16184 | |
16185 for (; *re == unicode_case_folding::do_casefolding(utf_traits::dec_codepoint(tail, begin)); --re) | |
16186 { | |
16187 if (re == u32string_.data()) | |
16188 { | |
16189 utf_traits::codepoint_inc(curpos, end); | |
16190 return sstate.set_bracket0(tail, curpos); | |
16191 } | |
16192 if (tail == begin) | |
16193 break; | |
16194 } | |
16195 } | |
16196 offset = bmtable_[txtlastchar & 0xff]; | |
16197 } | |
16198 return false; | |
16199 } | |
16200 | |
16201 template <typename BidirectionalIterator> | |
16202 bool do_icasesearch(re_search_state<BidirectionalIterator> &sstate, const std::bidirectional_iterator_tag) const | |
16203 { | |
16204 const BidirectionalIterator begin = sstate.srchbegin; | |
16205 const BidirectionalIterator end = sstate.srchend; | |
16206 | |
16207 if (begin != end) | |
16208 { | |
16209 std::size_t offset = bmtable_[256]; | |
16210 const ui_l32 entrychar = u32string_[offset]; | |
16211 const ui_l32 *const re2ndlastchar = &u32string_[offset - 1]; | |
16212 BidirectionalIterator curpos = begin; | |
16213 | |
16214 for (;;) | |
16215 { | |
16216 for (;;) | |
16217 { | |
16218 if (++curpos == end) | |
16219 return false; | |
16220 if (!utf_traits::is_trailing(*curpos)) | |
16221 if (--offset == 0) | |
16222 break; | |
16223 } | |
16224 const ui_l32 txtlastchar = utf_traits::codepoint(curpos, end); | |
16225 | |
16226 if (txtlastchar == entrychar || unicode_case_folding::do_casefolding(txtlastchar) == entrychar) | |
16227 { | |
16228 const ui_l32 *re = re2ndlastchar; | |
16229 BidirectionalIterator tail = curpos; | |
16230 | |
16231 for (; *re == unicode_case_folding::do_casefolding(utf_traits::dec_codepoint(tail, begin)); --re) | |
16232 { | |
16233 if (re == u32string_.data()) | |
16234 { | |
16235 utf_traits::codepoint_inc(curpos, end); | |
16236 return sstate.set_bracket0(tail, curpos); | |
16237 } | |
16238 if (tail == begin) | |
16239 break; | |
16240 } | |
16241 } | |
16242 offset = bmtable_[txtlastchar & 0xff]; | |
16243 } | |
16244 } | |
16245 return false; | |
16246 } | |
16247 | |
16248 private: | |
16249 | |
16250 void setup_() | |
16251 { | |
16252 bmtable_.resize(257); | |
16253 } | |
16254 | |
16255 void setup_for_casesensitive() | |
16256 { | |
16257 charT mbstr[utf_traits::maxseqlen]; | |
16258 const std::size_t u32str_lastcharpos_ = static_cast<std::size_t>(u32string_.size() - 1); | |
16259 | |
16260 repseq_.clear(); | |
16261 | |
16262 for (std::size_t i = 0; i <= u32str_lastcharpos_; ++i) | |
16263 { | |
16264 const ui_l32 seqlen = utf_traits::to_codeunits(mbstr, u32string_[i]); | |
16265 | |
16266 for (ui_l32 j = 0; j < seqlen; ++j) | |
16267 repseq_.push_back(mbstr[j]); | |
16268 } | |
16269 | |
16270 for (ui_l32 i = 0; i < 256; ++i) | |
16271 bmtable_[i] = static_cast<std::size_t>(repseq_.size()); | |
16272 | |
16273 const std::size_t repseq_lastcharpos_ = static_cast<std::size_t>(repseq_.size() - 1); | |
16274 | |
16275 for (std::size_t i = 0; i < repseq_lastcharpos_; ++i) | |
16276 bmtable_[repseq_[i] & 0xff] = repseq_lastcharpos_ - i; | |
16277 } | |
16278 | |
16279 void setup_for_icase() | |
16280 { | |
16281 charT mbstr[utf_traits::maxseqlen]; | |
16282 ui_l32 u32table[ucf_constants::rev_maxset]; | |
16283 const std::size_t u32str_lastcharpos = static_cast<std::size_t>(u32string_.size() - 1); | |
16284 simple_array<std::size_t> minlen(u32string_.size()); | |
16285 std::size_t cu_repseq_lastcharpos = 0; | |
16286 | |
16287 for (std::size_t i = 0; i <= u32str_lastcharpos; ++i) | |
16288 { | |
16289 const ui_l32 setnum = unicode_case_folding::do_caseunfolding(u32table, u32string_[i]); | |
16290 ui_l32 u32c = u32table[0]; | |
16291 | |
16292 for (ui_l32 j = 1; j < setnum; ++j) | |
16293 if (u32c > u32table[j]) | |
16294 u32c = u32table[j]; | |
16295 | |
16296 if (i < u32str_lastcharpos) | |
16297 cu_repseq_lastcharpos += minlen[i] = utf_traits::to_codeunits(mbstr, u32c); | |
16298 } | |
16299 | |
16300 ++cu_repseq_lastcharpos; | |
16301 | |
16302 for (std::size_t i = 0; i < 256; ++i) | |
16303 bmtable_[i] = cu_repseq_lastcharpos; | |
16304 | |
16305 bmtable_[256] = --cu_repseq_lastcharpos; | |
16306 | |
16307 for (std::size_t i = 0; i < u32str_lastcharpos; ++i) | |
16308 { | |
16309 const ui_l32 setnum = unicode_case_folding::do_caseunfolding(u32table, u32string_[i]); | |
16310 | |
16311 for (ui_l32 j = 0; j < setnum; ++j) | |
16312 bmtable_[u32table[j] & 0xff] = cu_repseq_lastcharpos; | |
16313 | |
16314 cu_repseq_lastcharpos -= minlen[i]; | |
16315 } | |
16316 } | |
16317 | |
16318 public: // For debug. | |
16319 | |
16320 void print_table() const; | |
16321 void print_seq() const; | |
16322 | |
16323 private: | |
16324 | |
16325 simple_array<ui_l32> u32string_; | |
16326 // std::size_t bmtable_[256]; | |
16327 simple_array<std::size_t> bmtable_; | |
16328 simple_array<charT> repseq_; | |
16329 }; | |
16330 // re_bmh | |
16331 | |
16332 #endif // !defined(SRELLDBG_NO_BMH) | |
16333 } // namespace re_detail | |
16334 | |
16335 // ... "rei_bmh.hpp"] | |
16336 // ["rei_upos.hpp" ... | |
16337 | |
16338 namespace re_detail | |
16339 { | |
16340 | |
16341 struct posdata_holder | |
16342 { | |
16343 simple_array<ui_l32> indices; | |
16344 simple_array<ui_l32> seqs; | |
16345 range_pairs ranges; | |
16346 range_pair length; | |
16347 | |
16348 void clear() | |
16349 { | |
16350 indices.clear(); | |
16351 seqs.clear(); | |
16352 ranges.clear(); | |
16353 length.set(1); | |
16354 } | |
16355 | |
16356 bool has_empty() const | |
16357 { | |
16358 return (indices.size() >= 2 && indices[0] != indices[1]) ? true : false; | |
16359 } | |
16360 | |
16361 bool has_data() const | |
16362 { | |
16363 return ranges.size() > 0 || indices.size() > 0; | |
16364 } | |
16365 | |
16366 bool may_contain_strings() const | |
16367 { | |
16368 return indices.size() > 0; // >= 2; | |
16369 } | |
16370 | |
16371 void swap(posdata_holder &right) | |
16372 { | |
16373 indices.swap(right.indices); | |
16374 seqs.swap(right.seqs); | |
16375 ranges.swap(right.ranges); | |
16376 length.swap(right.length); | |
16377 } | |
16378 | |
16379 void do_union(const posdata_holder &right) | |
16380 { | |
16381 simple_array<ui_l32> curseq; | |
16382 | |
16383 ranges.merge(right.ranges); | |
16384 | |
16385 if (right.has_empty() && !has_empty()) | |
16386 register_emptystring(); | |
16387 | |
16388 for (ui_l32 seqlen = 2; seqlen < static_cast<ui_l32>(right.indices.size()); ++seqlen) | |
16389 { | |
16390 const ui_l32 end = right.indices[seqlen - 1]; | |
16391 ui_l32 begin = right.indices[seqlen]; | |
16392 | |
16393 if (begin != end) | |
16394 { | |
16395 const std::size_t complen = seqlen * sizeof (ui_l32); | |
16396 | |
16397 ensure_length(seqlen); | |
16398 curseq.resize(seqlen); | |
16399 | |
16400 for (; begin < end;) | |
16401 { | |
16402 const ui_l32 inspos = find_seq(&right.seqs[begin], seqlen, complen); | |
16403 | |
16404 if (inspos == indices[seqlen - 1]) | |
16405 { | |
16406 for (ui_l32 i = 0; i < seqlen; ++i, ++begin) | |
16407 curseq[i] = right.seqs[begin]; | |
16408 | |
16409 seqs.insert(inspos, curseq); | |
16410 for (ui_l32 i = 0; i < seqlen; ++i) | |
16411 indices[i] += seqlen; | |
16412 } | |
16413 else | |
16414 begin += seqlen; | |
16415 } | |
16416 } | |
16417 } | |
16418 check_lengths(); | |
16419 } | |
16420 | |
16421 void do_subtract(const posdata_holder &right) | |
16422 { | |
16423 const ui_l32 maxlen = static_cast<ui_l32>(indices.size() <= right.indices.size() ? indices.size() : right.indices.size()); | |
16424 | |
16425 { | |
16426 range_pairs kept; | |
16427 range_pairs removed; | |
16428 | |
16429 ranges.split_ranges(kept, removed, right.ranges); | |
16430 ranges.swap(kept); | |
16431 } | |
16432 | |
16433 if (right.has_empty() && has_empty()) | |
16434 unregister_emptystring(); | |
16435 | |
16436 for (ui_l32 seqlen = 2; seqlen < maxlen; ++seqlen) | |
16437 { | |
16438 const ui_l32 end = right.indices[seqlen - 1]; | |
16439 ui_l32 begin = right.indices[seqlen]; | |
16440 | |
16441 if (begin != end) | |
16442 { | |
16443 const std::size_t complen = seqlen * sizeof (ui_l32); | |
16444 | |
16445 for (; begin < end;) | |
16446 { | |
16447 const ui_l32 delpos = find_seq(&right.seqs[begin], seqlen, complen); | |
16448 | |
16449 if (delpos < indices[seqlen - 1]) | |
16450 { | |
16451 seqs.erase(delpos, seqlen); | |
16452 | |
16453 for (ui_l32 i = 0; i < seqlen; ++i) | |
16454 indices[i] -= seqlen; | |
16455 } | |
16456 else | |
16457 begin += seqlen; | |
16458 } | |
16459 } | |
16460 } | |
16461 check_lengths(); | |
16462 } | |
16463 | |
16464 void do_and(const posdata_holder &right) | |
16465 { | |
16466 const ui_l32 maxlen = static_cast<ui_l32>(indices.size() <= right.indices.size() ? indices.size() : right.indices.size()); | |
16467 posdata_holder newpos; | |
16468 simple_array<ui_l32> curseq; | |
16469 | |
16470 { | |
16471 range_pairs kept; | |
16472 | |
16473 ranges.split_ranges(kept, newpos.ranges, right.ranges); | |
16474 ranges.swap(newpos.ranges); | |
16475 } | |
16476 | |
16477 if (has_empty() && right.has_empty()) | |
16478 newpos.register_emptystring(); | |
16479 else if (may_contain_strings() || right.may_contain_strings()) | |
16480 ensure_length(1); | |
16481 | |
16482 for (ui_l32 seqlen = 2; seqlen < maxlen; ++seqlen) | |
16483 { | |
16484 const ui_l32 end = right.indices[seqlen - 1]; | |
16485 ui_l32 begin = right.indices[seqlen]; | |
16486 | |
16487 if (begin != end) | |
16488 { | |
16489 const std::size_t complen = seqlen * sizeof (ui_l32); | |
16490 const ui_l32 myend = indices[seqlen - 1]; | |
16491 | |
16492 curseq.resize(seqlen); | |
16493 | |
16494 for (; begin < end; begin += seqlen) | |
16495 { | |
16496 const ui_l32 srcpos = find_seq(&right.seqs[begin], seqlen, complen); | |
16497 | |
16498 if (srcpos < myend) | |
16499 { | |
16500 newpos.ensure_length(seqlen); | |
16501 | |
16502 const ui_l32 inspos = newpos.find_seq(&right.seqs[begin], seqlen, complen); | |
16503 | |
16504 if (inspos == newpos.indices[seqlen - 1]) | |
16505 { | |
16506 for (ui_l32 i = 0; i < seqlen; ++i) | |
16507 curseq[i] = right.seqs[begin + i]; | |
16508 | |
16509 newpos.seqs.insert(inspos, curseq); | |
16510 for (ui_l32 i = 0; i < seqlen; ++i) | |
16511 newpos.indices[i] += seqlen; | |
16512 } | |
16513 } | |
16514 } | |
16515 } | |
16516 } | |
16517 this->indices.swap(newpos.indices); | |
16518 this->seqs.swap(newpos.seqs); | |
16519 check_lengths(); | |
16520 } | |
16521 | |
16522 void split_seqs_and_ranges(const simple_array<ui_l32> &inseqs, const bool icase, const bool back) | |
16523 { | |
16524 const ui_l32 max = static_cast<ui_l32>(inseqs.size()); | |
16525 simple_array<ui_l32> curseq; | |
16526 | |
16527 clear(); | |
16528 | |
16529 for (ui_l32 indx = 0; indx < max;) | |
16530 { | |
16531 const ui_l32 elen = inseqs[indx++]; | |
16532 | |
16533 if (elen == 1) // Range. | |
16534 { | |
16535 ranges.join(range_pair_helper(inseqs[indx], inseqs[indx + 1])); | |
16536 indx += 2; | |
16537 } | |
16538 else if (elen == 2) | |
16539 { | |
16540 const ui_l32 ucpval = inseqs[indx++]; | |
16541 | |
16542 if (ucpval != constants::ccstr_empty) | |
16543 ranges.join(range_pair_helper(ucpval)); | |
16544 else | |
16545 register_emptystring(); | |
16546 } | |
16547 else if (elen >= 3) | |
16548 { | |
16549 const ui_l32 seqlen = elen - 1; | |
16550 | |
16551 ensure_length(seqlen); | |
16552 | |
16553 const ui_l32 inspos = indices[seqlen - 1]; | |
16554 | |
16555 curseq.resize(seqlen); | |
16556 if (!back) | |
16557 { | |
16558 for (ui_l32 j = 0; j < seqlen; ++j, ++indx) | |
16559 curseq[j] = inseqs[indx]; | |
16560 } | |
16561 else | |
16562 { | |
16563 for (ui_l32 j = seqlen; j; ++indx) | |
16564 curseq[--j] = inseqs[indx]; | |
16565 } | |
16566 | |
16567 if (icase) | |
16568 { | |
16569 for (simple_array<ui_l32>::size_type i = 0; i < curseq.size(); ++i) | |
16570 { | |
16571 const ui_l32 cf = unicode_case_folding::try_casefolding(curseq[i]); | |
16572 | |
16573 if (cf != constants::invalid_u32value) | |
16574 curseq[i] = cf | masks::pos_cf; | |
16575 } | |
16576 } | |
16577 | |
16578 const std::size_t complen = seqlen * sizeof (ui_l32); | |
16579 | |
16580 for (ui_l32 i = indices[seqlen];; i += seqlen) | |
16581 { | |
16582 if (i == inspos) | |
16583 { | |
16584 seqs.insert(inspos, curseq); | |
16585 for (ui_l32 j = 0; j < seqlen; ++j) | |
16586 indices[j] += seqlen; | |
16587 break; | |
16588 } | |
16589 | |
16590 if (std::memcmp(&seqs[i], curseq.data(), complen) == 0) | |
16591 break; | |
16592 } | |
16593 | |
16594 } | |
16595 //elen == 0: Padding. | |
16596 } | |
16597 | |
16598 // if (this->is_icase()) | |
16599 if (icase) | |
16600 ranges.make_caseunfoldedcharset(); | |
16601 | |
16602 check_lengths(); | |
16603 | |
16604 } | |
16605 | |
16606 private: | |
16607 | |
16608 void register_emptystring() | |
16609 { | |
16610 if (indices.size() < 2) | |
16611 { | |
16612 indices.resize(2); | |
16613 indices[1] = 0; | |
16614 indices[0] = 1; | |
16615 } | |
16616 else if (indices[0] == indices[1]) | |
16617 { | |
16618 ++indices[0]; | |
16619 } | |
16620 length.first = 0; | |
16621 } | |
16622 | |
16623 void unregister_emptystring() | |
16624 { | |
16625 if (indices.size() >= 2 && indices[0] != indices[1]) | |
16626 indices[0] = indices[1]; | |
16627 } | |
16628 | |
16629 void ensure_length(const ui_l32 seqlen) | |
16630 { | |
16631 ui_l32 curlen = static_cast<ui_l32>(indices.size()); | |
16632 | |
16633 if (seqlen >= curlen) | |
16634 { | |
16635 indices.resize(seqlen + 1); | |
16636 for (; curlen <= seqlen; ++curlen) | |
16637 indices[curlen] = 0; | |
16638 } | |
16639 } | |
16640 | |
16641 ui_l32 find_seq(const ui_l32 *const seqbegin, const ui_l32 seqlen, const std::size_t complen) const | |
16642 { | |
16643 const ui_l32 end = indices[seqlen - 1]; | |
16644 | |
16645 for (ui_l32 begin = indices[seqlen]; begin < end; begin += seqlen) | |
16646 { | |
16647 if (std::memcmp(seqbegin, &seqs[begin], complen) == 0) | |
16648 return begin; | |
16649 } | |
16650 return end; | |
16651 } | |
16652 | |
16653 void check_lengths() | |
16654 { | |
16655 length.set(constants::max_u32value, 0); | |
16656 | |
16657 for (ui_l32 i = 2; i < static_cast<ui_l32>(indices.size()); ++i) | |
16658 { | |
16659 if (indices[i] != indices[i - 1]) | |
16660 { | |
16661 if (length.first > i) | |
16662 length.first = i; | |
16663 if (length.second < i) | |
16664 length.second = i; | |
16665 } | |
16666 } | |
16667 | |
16668 if (ranges.size()) | |
16669 { | |
16670 if (length.first > 1) | |
16671 length.first = 1; | |
16672 if (length.second < 1) | |
16673 length.second = 1; | |
16674 } | |
16675 | |
16676 if (has_empty()) | |
16677 length.first = 0; | |
16678 | |
16679 if (length.second == 0) | |
16680 length.first = 0; | |
16681 } | |
16682 }; | |
16683 // posdata_holder | |
16684 | |
16685 } // namespace re_detail | |
16686 | |
16687 // ... "rei_upos.hpp"] | |
16688 // ["rei_compiler.hpp" ... | |
16689 | |
16690 namespace re_detail | |
16691 { | |
16692 | |
16693 template <typename charT, typename traits> | |
16694 struct re_object_core | |
16695 { | |
16696 protected: | |
16697 | |
16698 typedef re_state/*<charT>*/ state_type; | |
16699 typedef simple_array<state_type> state_array; | |
16700 | |
16701 state_array NFA_states; | |
16702 re_character_class character_class; | |
16703 | |
16704 #if !defined(SRELLDBG_NO_1STCHRCLS) | |
16705 #if !defined(SRELLDBG_NO_BITSET) | |
16706 bitset<traits::utf_traits::bitsetsize> firstchar_class_bs; | |
16707 #else | |
16708 range_pairs firstchar_class; | |
16709 #endif | |
16710 #endif | |
16711 | |
16712 #if !defined(SRELL_NO_LIMIT_COUNTER) | |
16713 public: | |
16714 | |
16715 std::size_t limit_counter; | |
16716 | |
16717 protected: | |
16718 #endif | |
16719 | |
16720 typedef typename traits::utf_traits utf_traits; | |
16721 | |
16722 ui_l32 number_of_brackets; | |
16723 ui_l32 number_of_counters; | |
16724 ui_l32 number_of_repeats; | |
16725 regex_constants::syntax_option_type soflags; | |
16726 | |
16727 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
16728 groupname_mapper<charT> namedcaptures; | |
16729 typedef typename groupname_mapper<charT>::gname_string gname_string; | |
16730 #endif | |
16731 | |
16732 #if !defined(SRELLDBG_NO_BMH) | |
16733 re_bmh<charT, utf_traits> *bmdata; | |
16734 #endif | |
16735 | |
16736 #if !defined(SRELL_NO_LIMIT_COUNTER) | |
16737 private: | |
16738 | |
16739 static const std::size_t lcounter_defnum_ = 16777216; | |
16740 | |
16741 #endif | |
16742 | |
16743 protected: | |
16744 | |
16745 re_object_core() : | |
16746 #if !defined(SRELL_NO_LIMIT_COUNTER) | |
16747 limit_counter(lcounter_defnum_), | |
16748 #endif | |
16749 number_of_repeats(0u) | |
16750 #if !defined(SRELLDBG_NO_BMH) | |
16751 , bmdata(NULL) | |
16752 #endif | |
16753 { | |
16754 } | |
16755 | |
16756 re_object_core(const re_object_core &right) | |
16757 #if !defined(SRELLDBG_NO_BMH) | |
16758 : bmdata(NULL) | |
16759 #endif | |
16760 { | |
16761 operator=(right); | |
16762 } | |
16763 | |
16764 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
16765 re_object_core(re_object_core &&right) SRELL_NOEXCEPT | |
16766 #if !defined(SRELLDBG_NO_BMH) | |
16767 : bmdata(NULL) | |
16768 #endif | |
16769 { | |
16770 operator=(std::move(right)); | |
16771 } | |
16772 #endif | |
16773 | |
16774 #if !defined(SRELLDBG_NO_BMH) | |
16775 ~re_object_core() | |
16776 { | |
16777 if (bmdata) | |
16778 delete bmdata; | |
16779 } | |
16780 #endif | |
16781 | |
16782 void reset(const regex_constants::syntax_option_type flags) | |
16783 { | |
16784 NFA_states.clear(); | |
16785 character_class.clear(); | |
16786 | |
16787 #if !defined(SRELLDBG_NO_1STCHRCLS) | |
16788 #if !defined(SRELLDBG_NO_BITSET) | |
16789 firstchar_class_bs.reset(); | |
16790 #else | |
16791 firstchar_class.clear(); | |
16792 #endif | |
16793 #endif | |
16794 | |
16795 #if !defined(SRELL_NO_LIMIT_COUNTER) | |
16796 limit_counter = lcounter_defnum_; | |
16797 #endif | |
16798 | |
16799 number_of_brackets = 1; | |
16800 number_of_counters = 0; | |
16801 number_of_repeats = 0; | |
16802 soflags = flags; // regex_constants::ECMAScript; | |
16803 | |
16804 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
16805 namedcaptures.clear(); | |
16806 #endif | |
16807 | |
16808 #if !defined(SRELLDBG_NO_BMH) | |
16809 if (bmdata) | |
16810 delete bmdata; | |
16811 bmdata = NULL; | |
16812 #endif | |
16813 } | |
16814 | |
16815 re_object_core &operator=(const re_object_core &that) | |
16816 { | |
16817 if (this != &that) | |
16818 { | |
16819 this->NFA_states = that.NFA_states; | |
16820 this->character_class = that.character_class; | |
16821 | |
16822 #if !defined(SRELLDBG_NO_1STCHRCLS) | |
16823 #if !defined(SRELLDBG_NO_BITSET) | |
16824 this->firstchar_class_bs = that.firstchar_class_bs; | |
16825 #else | |
16826 this->firstchar_class = that.firstchar_class; | |
16827 #endif | |
16828 #endif | |
16829 | |
16830 #if !defined(SRELL_NO_LIMIT_COUNTER) | |
16831 this->limit_counter = that.limit_counter; | |
16832 #endif | |
16833 | |
16834 this->number_of_brackets = that.number_of_brackets; | |
16835 this->number_of_counters = that.number_of_counters; | |
16836 this->number_of_repeats = that.number_of_repeats; | |
16837 this->soflags = that.soflags; | |
16838 | |
16839 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
16840 this->namedcaptures = that.namedcaptures; | |
16841 #endif | |
16842 | |
16843 #if !defined(SRELLDBG_NO_BMH) | |
16844 if (that.bmdata) | |
16845 { | |
16846 if (this->bmdata) | |
16847 *this->bmdata = *that.bmdata; | |
16848 else | |
16849 this->bmdata = new re_bmh<charT, utf_traits>(*that.bmdata); | |
16850 } | |
16851 else if (this->bmdata) | |
16852 { | |
16853 delete this->bmdata; | |
16854 this->bmdata = NULL; | |
16855 } | |
16856 #endif | |
16857 | |
16858 if (that.NFA_states.size()) | |
16859 repair_nextstates(&that.NFA_states[0]); | |
16860 } | |
16861 return *this; | |
16862 } | |
16863 | |
16864 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
16865 re_object_core &operator=(re_object_core &&that) SRELL_NOEXCEPT | |
16866 { | |
16867 if (this != &that) | |
16868 { | |
16869 this->NFA_states = std::move(that.NFA_states); | |
16870 this->character_class = std::move(that.character_class); | |
16871 | |
16872 #if !defined(SRELLDBG_NO_1STCHRCLS) | |
16873 #if !defined(SRELLDBG_NO_BITSET) | |
16874 this->firstchar_class_bs = std::move(that.firstchar_class_bs); | |
16875 #else | |
16876 this->firstchar_class = std::move(that.firstchar_class); | |
16877 #endif | |
16878 #endif | |
16879 | |
16880 #if !defined(SRELL_NO_LIMIT_COUNTER) | |
16881 this->limit_counter = that.limit_counter; | |
16882 #endif | |
16883 | |
16884 this->number_of_brackets = that.number_of_brackets; | |
16885 this->number_of_counters = that.number_of_counters; | |
16886 this->number_of_repeats = that.number_of_repeats; | |
16887 this->soflags = that.soflags; | |
16888 | |
16889 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
16890 this->namedcaptures = std::move(that.namedcaptures); | |
16891 #endif | |
16892 | |
16893 #if !defined(SRELLDBG_NO_BMH) | |
16894 if (this->bmdata) | |
16895 delete this->bmdata; | |
16896 this->bmdata = that.bmdata; | |
16897 that.bmdata = NULL; | |
16898 #endif | |
16899 } | |
16900 return *this; | |
16901 } | |
16902 #endif // defined(SRELL_CPP11_MOVE_ENABLED) | |
16903 | |
16904 void swap(re_object_core &right) | |
16905 { | |
16906 if (this != &right) | |
16907 { | |
16908 this->NFA_states.swap(right.NFA_states); | |
16909 this->character_class.swap(right.character_class); | |
16910 | |
16911 #if !defined(SRELLDBG_NO_1STCHRCLS) | |
16912 #if !defined(SRELLDBG_NO_BITSET) | |
16913 this->firstchar_class_bs.swap(right.firstchar_class_bs); | |
16914 #else | |
16915 this->firstchar_class.swap(right.firstchar_class); | |
16916 #endif | |
16917 #endif | |
16918 | |
16919 #if !defined(SRELL_NO_LIMIT_COUNTER) | |
16920 { | |
16921 const std::size_t tmp_limit_counter = this->limit_counter; | |
16922 this->limit_counter = right.limit_counter; | |
16923 right.limit_counter = tmp_limit_counter; | |
16924 } | |
16925 #endif | |
16926 | |
16927 { | |
16928 const ui_l32 tmp_numof_brackets = this->number_of_brackets; | |
16929 this->number_of_brackets = right.number_of_brackets; | |
16930 right.number_of_brackets = tmp_numof_brackets; | |
16931 } | |
16932 { | |
16933 const ui_l32 tmp_numof_counters = this->number_of_counters; | |
16934 this->number_of_counters = right.number_of_counters; | |
16935 right.number_of_counters = tmp_numof_counters; | |
16936 } | |
16937 { | |
16938 const ui_l32 tmp_numof_repeats = this->number_of_repeats; | |
16939 this->number_of_repeats = right.number_of_repeats; | |
16940 right.number_of_repeats = tmp_numof_repeats; | |
16941 } | |
16942 { | |
16943 const regex_constants::syntax_option_type tmp_soflags = this->soflags; | |
16944 this->soflags = right.soflags; | |
16945 right.soflags = tmp_soflags; | |
16946 } | |
16947 | |
16948 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
16949 this->namedcaptures.swap(right.namedcaptures); | |
16950 #endif | |
16951 | |
16952 #if !defined(SRELLDBG_NO_BMH) | |
16953 { | |
16954 re_bmh<charT, utf_traits> *const tmp_bmdata = this->bmdata; | |
16955 this->bmdata = right.bmdata; | |
16956 right.bmdata = tmp_bmdata; | |
16957 } | |
16958 #endif | |
16959 } | |
16960 } | |
16961 | |
16962 bool set_error(const regex_constants::error_type e) | |
16963 { | |
16964 // reset(); | |
16965 NFA_states.clear(); | |
16966 number_of_repeats = static_cast<ui_l32>(e); | |
16967 return false; | |
16968 } | |
16969 | |
16970 regex_constants::error_type ecode() const | |
16971 { | |
16972 return NFA_states.size() ? 0 : static_cast<regex_constants::error_type>(number_of_repeats); | |
16973 } | |
16974 | |
16975 private: | |
16976 | |
16977 void repair_nextstates(const state_type *const oldbase) | |
16978 { | |
16979 state_type *const newbase = &this->NFA_states[0]; | |
16980 | |
16981 for (typename state_array::size_type i = 0; i < this->NFA_states.size(); ++i) | |
16982 { | |
16983 state_type &state = this->NFA_states[i]; | |
16984 | |
16985 if (state.next_state1) | |
16986 state.next_state1 = state.next_state1 - oldbase + newbase; | |
16987 | |
16988 if (state.next_state2) | |
16989 state.next_state2 = state.next_state2 - oldbase + newbase; | |
16990 } | |
16991 } | |
16992 }; | |
16993 // re_object_core | |
16994 | |
16995 template <typename charT, typename traits> | |
16996 class re_compiler : public re_object_core<charT, traits> | |
16997 { | |
16998 protected: | |
16999 | |
17000 template <typename ForwardIterator> | |
17001 bool compile(ForwardIterator begin, const ForwardIterator end, const regex_constants::syntax_option_type flags /* = regex_constants::ECMAScript */) | |
17002 { | |
17003 simple_array<ui_l32> u32; | |
17004 | |
17005 while (begin != end) | |
17006 { | |
17007 const ui_l32 u32c = utf_traits::codepoint_inc(begin, end); | |
17008 | |
17009 if (u32c > constants::unicode_max_codepoint) | |
17010 { | |
17011 this->set_error(regex_constants::error_utf8); | |
17012 goto COMPILING_FAILURE; | |
17013 } | |
17014 u32.push_backncr(u32c); | |
17015 } | |
17016 | |
17017 if (!compile_core(u32.data(), u32.data() + u32.size(), flags & regex_constants::pflagsmask_)) | |
17018 { | |
17019 COMPILING_FAILURE: | |
17020 #if !defined(SRELLDBG_NO_BMH) | |
17021 if (this->bmdata) | |
17022 delete this->bmdata; | |
17023 this->bmdata = NULL; | |
17024 #endif | |
17025 #if !defined(SRELL_NO_THROW) | |
17026 throw regex_error(this->number_of_repeats); | |
17027 #else | |
17028 return false; | |
17029 #endif | |
17030 } | |
17031 return true; | |
17032 } | |
17033 | |
17034 bool is_ricase() const | |
17035 { | |
17036 #if !defined(SRELL_NO_ICASE) | |
17037 return /* this->NFA_states.size() && */ this->NFA_states[0].flags ? true : false; // icase. | |
17038 #else | |
17039 return false; | |
17040 #endif | |
17041 } | |
17042 | |
17043 bool is_vmode() const | |
17044 { | |
17045 #if !defined(SRELL_NO_VMODE) && !defined(SRELL_NO_UNICODE_PROPERTY) | |
17046 return (this->soflags & regex_constants::unicodesets) ? true : false; | |
17047 #else | |
17048 return false; | |
17049 #endif | |
17050 | |
17051 } | |
17052 | |
17053 bool is_optimize() const | |
17054 { | |
17055 return (this->soflags & regex_constants::optimize) ? true : false; | |
17056 } | |
17057 | |
17058 private: | |
17059 | |
17060 typedef re_object_core<charT, traits> base_type; | |
17061 typedef typename base_type::utf_traits utf_traits; | |
17062 typedef typename base_type::state_type state_type; | |
17063 typedef typename base_type::state_array state_array; | |
17064 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
17065 typedef typename base_type::gname_string gname_string; | |
17066 #endif | |
17067 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
17068 typedef typename re_character_class::pstring pstring; | |
17069 #endif | |
17070 typedef typename state_array::size_type state_size_type; | |
17071 | |
17072 typedef simple_array<ui_l32> u32array; | |
17073 typedef typename u32array::size_type u32array_size_type; | |
17074 | |
17075 typedef re_compiler_state<charT> cvars_type; | |
17076 | |
17077 bool compile_core(const ui_l32 *begin, const ui_l32 *const end, const regex_constants::syntax_option_type flags) | |
17078 { | |
17079 re_quantifier piecesize; | |
17080 cvars_type cvars; | |
17081 state_type flstate; | |
17082 | |
17083 this->reset(flags); | |
17084 // this->soflags = flags; | |
17085 cvars.reset(flags, begin); | |
17086 | |
17087 flstate.reset(st_epsilon); | |
17088 flstate.next2 = 1; | |
17089 this->NFA_states.push_back(flstate); | |
17090 | |
17091 if (!make_nfa_states(this->NFA_states, piecesize, begin, end, cvars)) | |
17092 { | |
17093 return false; | |
17094 } | |
17095 | |
17096 this->NFA_states[0].quantifier = piecesize; | |
17097 | |
17098 if (begin != end) | |
17099 return this->set_error(regex_constants::error_paren); // ')'s are too many. | |
17100 | |
17101 #if !defined(SRELLDBG_NO_BMH) | |
17102 setup_bmhdata(); | |
17103 #endif | |
17104 | |
17105 flstate.type = st_success; | |
17106 flstate.next1 = 0; | |
17107 flstate.next2 = 0; | |
17108 this->NFA_states.push_back(flstate); | |
17109 | |
17110 if (!check_backreferences(cvars)) | |
17111 return this->set_error(regex_constants::error_backref); | |
17112 | |
17113 optimise(); | |
17114 relativejump_to_absolutejump(); | |
17115 | |
17116 return true; | |
17117 } | |
17118 | |
17119 bool make_nfa_states(state_array &piece, re_quantifier &piecesize, const ui_l32 *&curpos, const ui_l32 *const end, cvars_type &cvars) | |
17120 { | |
17121 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
17122 const ui_l32 gno_at_groupbegin = this->number_of_brackets; | |
17123 bool already_pushed = false; | |
17124 #endif | |
17125 state_size_type prevbranch_end = 0; | |
17126 state_type bstate; | |
17127 state_array branch; | |
17128 re_quantifier branchsize; | |
17129 | |
17130 piecesize.set(constants::infinity, 0u); | |
17131 | |
17132 bstate.reset(st_epsilon, epsilon_type::et_alt); | |
17133 | |
17134 for (;;) | |
17135 { | |
17136 branch.clear(); | |
17137 | |
17138 if (!make_branch(branch, branchsize, curpos, end, cvars)) | |
17139 return false; | |
17140 | |
17141 if (!piecesize.is_valid() || piecesize.atleast > branchsize.atleast) | |
17142 piecesize.atleast = branchsize.atleast; | |
17143 | |
17144 if (piecesize.atmost < branchsize.atmost) | |
17145 piecesize.atmost = branchsize.atmost; | |
17146 | |
17147 if (curpos != end && *curpos == meta_char::mc_bar) | |
17148 { | |
17149 bstate.next2 = static_cast<std::ptrdiff_t>(branch.size()) + 2; | |
17150 branch.insert(0, bstate); | |
17151 | |
17152 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
17153 if (gno_at_groupbegin != this->number_of_brackets) | |
17154 { | |
17155 if (!already_pushed) | |
17156 { | |
17157 cvars.dupranges.push_back(gno_at_groupbegin); | |
17158 cvars.dupranges.push_back(this->number_of_brackets); | |
17159 already_pushed = true; | |
17160 } | |
17161 else | |
17162 cvars.dupranges.back() = this->number_of_brackets; | |
17163 } | |
17164 #endif | |
17165 } | |
17166 | |
17167 if (prevbranch_end) | |
17168 { | |
17169 state_type &pbend = piece[prevbranch_end]; | |
17170 | |
17171 pbend.next1 = static_cast<std::ptrdiff_t>(branch.size()) + 1; | |
17172 pbend.char_num = epsilon_type::et_brnchend; // '/' | |
17173 } | |
17174 | |
17175 piece += branch; | |
17176 | |
17177 if (curpos == end || *curpos == meta_char::mc_rbracl) | |
17178 break; | |
17179 | |
17180 // *curpos == '|' | |
17181 | |
17182 prevbranch_end = piece.size(); | |
17183 bstate.next2 = 0; | |
17184 piece.push_back(bstate); | |
17185 | |
17186 ++curpos; | |
17187 } | |
17188 return true; | |
17189 } | |
17190 | |
17191 bool make_branch(state_array &branch, re_quantifier &branchsize, const ui_l32 *&curpos, const ui_l32 *const end, cvars_type &cvars) | |
17192 { | |
17193 state_array piece; | |
17194 state_array piece_with_quantifier; | |
17195 re_quantifier quantifier; | |
17196 re_quantifier piecesize; | |
17197 range_pairs tmpcc; | |
17198 state_type astate; | |
17199 #if !defined(SRELL_NO_VMODE) && !defined(SRELL_NO_UNICODE_PROPERTY) | |
17200 posdata_holder pos; | |
17201 #endif | |
17202 | |
17203 branchsize.reset(0); | |
17204 | |
17205 for (;;) | |
17206 { | |
17207 if (curpos == end || *curpos == meta_char::mc_bar || *curpos == meta_char::mc_rbracl /* || *curpos == char_ctrl::cc_nul */) // '|', ')', '\0'. | |
17208 return true; | |
17209 | |
17210 piece.clear(); | |
17211 piece_with_quantifier.clear(); | |
17212 | |
17213 astate.reset(st_character, *curpos++); | |
17214 | |
17215 switch (astate.char_num) | |
17216 { | |
17217 case meta_char::mc_rbraop: // '(': | |
17218 if (!parse_group(piece, piecesize, curpos, end, cvars)) | |
17219 return false; | |
17220 goto AFTER_PIECE_SET; | |
17221 | |
17222 case meta_char::mc_sbraop: // '[': | |
17223 #if !defined(SRELL_NO_VMODE) && !defined(SRELL_NO_UNICODE_PROPERTY) | |
17224 if (this->is_vmode()) | |
17225 { | |
17226 pos.clear(); | |
17227 | |
17228 if (!parse_unicharset(pos, curpos, end, cvars)) | |
17229 return false; | |
17230 | |
17231 if (pos.may_contain_strings()) | |
17232 { | |
17233 transform_seqdata(piece, pos, cvars); | |
17234 piecesize.set(pos.length.first, pos.length.second); | |
17235 goto AFTER_PIECE_SET; | |
17236 } | |
17237 tmpcc.swap(pos.ranges); | |
17238 } | |
17239 else // U-mode. | |
17240 #endif | |
17241 if (!register_character_class(tmpcc, astate, curpos, end, cvars)) | |
17242 return false; | |
17243 | |
17244 astate.char_num = tmpcc.consists_of_one_character((regex_constants::icase & this->soflags & cvars.soflags) ? true : false); | |
17245 | |
17246 if (astate.char_num != constants::invalid_u32value) | |
17247 { | |
17248 const ui_l32 cf = unicode_case_folding::try_casefolding(astate.char_num); | |
17249 | |
17250 if ((this->soflags ^ cvars.soflags) & regex_constants::icase) | |
17251 { | |
17252 if (cf != constants::invalid_u32value) | |
17253 goto REGISTER_CC; | |
17254 } | |
17255 else if (cvars.is_icase() && cf != constants::invalid_u32value) | |
17256 this->NFA_states[0].flags |= astate.flags = sflags::icase; | |
17257 } | |
17258 else | |
17259 { | |
17260 REGISTER_CC: | |
17261 astate.type = st_character_class; | |
17262 astate.char_num = this->character_class.register_newclass(tmpcc); | |
17263 } | |
17264 | |
17265 goto SKIP_ICASE_CHECK_FOR_CHAR; | |
17266 | |
17267 case meta_char::mc_escape: // '\\': | |
17268 if (curpos == end) | |
17269 return this->set_error(regex_constants::error_escape); | |
17270 | |
17271 astate.char_num = *curpos; | |
17272 | |
17273 #if !defined(SRELL_NO_VMODE) && !defined(SRELL_NO_UNICODE_PROPERTY) | |
17274 if (this->is_vmode() && ((astate.char_num | masks::asc_icase) == char_alnum::ch_p)) | |
17275 { | |
17276 pos.clear(); | |
17277 | |
17278 if (!parse_escape_p_vmode(pos, astate, ++curpos, end, cvars)) | |
17279 return false; | |
17280 | |
17281 if (astate.type != st_character_class) | |
17282 { | |
17283 transform_seqdata(piece, pos, cvars); | |
17284 piecesize.set(astate.quantifier.atleast, astate.quantifier.atmost); | |
17285 goto AFTER_PIECE_SET; | |
17286 } | |
17287 | |
17288 astate.char_num = this->character_class.register_newclass(pos.ranges); | |
17289 break; | |
17290 } | |
17291 #endif | |
17292 | |
17293 switch (astate.char_num) | |
17294 { | |
17295 case char_alnum::ch_B: // 'B': | |
17296 astate.flags = sflags::is_not; | |
17297 //@fallthrough@ | |
17298 | |
17299 case char_alnum::ch_b: // 'b': | |
17300 astate.type = st_boundary; // \b, \B. | |
17301 astate.quantifier.reset(0); | |
17302 if (cvars.is_icase()) | |
17303 { | |
17304 this->character_class.setup_icase_word(); | |
17305 astate.char_num = static_cast<ui_l32>(re_character_class::icase_word); | |
17306 } | |
17307 else | |
17308 astate.char_num = static_cast<ui_l32>(re_character_class::word); // \w, \W. | |
17309 break; | |
17310 | |
17311 // case char_alnum::ch_A: // 'A': | |
17312 // astate.type = st_bol; // '\A' | |
17313 // case char_alnum::ch_Z: // 'Z': | |
17314 // astate.type = st_eol; // '\Z' | |
17315 // case char_alnum::ch_z: // 'z': | |
17316 // astate.type = st_eol; // '\z' | |
17317 // case char_alnum::ch_R: // 'R': | |
17318 // (?>\r\n?|[\x0A-\x0C\x85\u{2028}\u{2029}]) | |
17319 | |
17320 // Backreferences. | |
17321 | |
17322 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
17323 // Prepared for named captures. | |
17324 case char_alnum::ch_k: // 'k': | |
17325 if (++curpos == end || *curpos != meta_char::mc_lt) | |
17326 return this->set_error(regex_constants::error_escape); | |
17327 else | |
17328 { | |
17329 const gname_string groupname = get_groupname(++curpos, end, cvars); | |
17330 | |
17331 if (groupname.size() == 0) | |
17332 return this->set_error(regex_constants::error_escape); | |
17333 { | |
17334 astate.flags = sflags::backrefno_unresolved; | |
17335 astate.char_num = static_cast<ui_l32>(cvars.unresolved_gnames.size() + 1); | |
17336 astate.char_num = cvars.unresolved_gnames.assign_number(groupname, astate.char_num); | |
17337 } | |
17338 goto BACKREF_POSTPROCESS; | |
17339 } | |
17340 #endif | |
17341 default: | |
17342 | |
17343 if (astate.char_num >= char_alnum::ch_1 && astate.char_num <= char_alnum::ch_9) // \1, \9. | |
17344 { | |
17345 astate.char_num = translate_numbers(curpos, end, 10, 0, 0, 0xfffffffe); | |
17346 // 22.2.1.1 Static Semantics: Early Errors: | |
17347 // It is a Syntax Error if NcapturingParens >= 23^2 - 1. | |
17348 | |
17349 if (astate.char_num == constants::invalid_u32value) | |
17350 return this->set_error(regex_constants::error_escape); | |
17351 | |
17352 astate.flags = 0u; | |
17353 | |
17354 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
17355 BACKREF_POSTPROCESS: | |
17356 #endif | |
17357 astate.next2 = 1; | |
17358 astate.type = st_backreference; | |
17359 astate.quantifier.atleast = 0; | |
17360 | |
17361 if (cvars.is_icase()) | |
17362 astate.flags |= sflags::icase; | |
17363 | |
17364 goto AFTER_INCREMENT; | |
17365 } | |
17366 | |
17367 ++curpos; | |
17368 if (!translate_escape(NULL, astate, curpos, end, false, false, cvars)) | |
17369 return false; | |
17370 goto AFTER_INCREMENT; | |
17371 } | |
17372 | |
17373 ++curpos; | |
17374 AFTER_INCREMENT: | |
17375 | |
17376 break; | |
17377 | |
17378 case meta_char::mc_period: // '.': | |
17379 astate.type = st_character_class; | |
17380 #if !defined(SRELL_NO_SINGLELINE) | |
17381 if (cvars.is_dotall()) | |
17382 { | |
17383 astate.char_num = static_cast<ui_l32>(re_character_class::dotall); | |
17384 } | |
17385 else | |
17386 #endif | |
17387 { | |
17388 tmpcc = this->character_class[static_cast<ui_l32>(re_character_class::newline)]; | |
17389 | |
17390 tmpcc.negation(); | |
17391 astate.char_num = this->character_class.register_newclass(tmpcc); | |
17392 } | |
17393 break; | |
17394 | |
17395 case meta_char::mc_caret: // '^': | |
17396 astate.type = st_bol; | |
17397 astate.char_num = static_cast<ui_l32>(re_character_class::newline); | |
17398 astate.quantifier.reset(0); | |
17399 // if (current_flags.m) | |
17400 if (cvars.is_multiline()) | |
17401 astate.flags = sflags::multiline; | |
17402 break; | |
17403 | |
17404 case meta_char::mc_dollar: // '$': | |
17405 astate.type = st_eol; | |
17406 astate.char_num = static_cast<ui_l32>(re_character_class::newline); | |
17407 astate.quantifier.reset(0); | |
17408 // if (current_flags.m) | |
17409 if (cvars.is_multiline()) | |
17410 astate.flags = sflags::multiline; | |
17411 break; | |
17412 | |
17413 case meta_char::mc_astrsk: // '*': | |
17414 case meta_char::mc_plus: // '+': | |
17415 case meta_char::mc_query: // '?': | |
17416 case meta_char::mc_cbraop: // '{' | |
17417 return this->set_error(regex_constants::error_badrepeat); | |
17418 | |
17419 default:; | |
17420 } | |
17421 | |
17422 if (astate.type == st_character && ((this->soflags | cvars.soflags) & regex_constants::icase)) | |
17423 { | |
17424 const ui_l32 cf = unicode_case_folding::try_casefolding(astate.char_num); | |
17425 | |
17426 if (cf != constants::invalid_u32value) | |
17427 { | |
17428 if ((this->soflags ^ cvars.soflags) & regex_constants::icase) | |
17429 { | |
17430 tmpcc.set_solerange(range_pair_helper(astate.char_num)); | |
17431 if (cvars.is_icase()) | |
17432 tmpcc.make_caseunfoldedcharset(); | |
17433 astate.char_num = this->character_class.register_newclass(tmpcc); | |
17434 astate.type = st_character_class; | |
17435 } | |
17436 else | |
17437 { | |
17438 astate.char_num = cf; | |
17439 this->NFA_states[0].flags |= astate.flags = sflags::icase; | |
17440 } | |
17441 } | |
17442 } | |
17443 SKIP_ICASE_CHECK_FOR_CHAR: | |
17444 | |
17445 piece.push_back(astate); | |
17446 piecesize = astate.quantifier; | |
17447 AFTER_PIECE_SET: | |
17448 | |
17449 if (piece.size()) | |
17450 { | |
17451 const state_type &firststate = piece[0]; | |
17452 | |
17453 quantifier.reset(); // quantifier.atleast = quantifier.atmost = 1; | |
17454 | |
17455 if (firststate.has_quantifier() && curpos != end) | |
17456 { | |
17457 switch (*curpos) | |
17458 { | |
17459 case meta_char::mc_astrsk: // '*': | |
17460 --quantifier.atleast; | |
17461 //@fallthrough@ | |
17462 | |
17463 case meta_char::mc_plus: // '+': | |
17464 quantifier.set_infinity(); | |
17465 break; | |
17466 | |
17467 case meta_char::mc_query: // '?': | |
17468 --quantifier.atleast; | |
17469 break; | |
17470 | |
17471 case meta_char::mc_cbraop: // '{': | |
17472 ++curpos; | |
17473 quantifier.atleast = translate_numbers(curpos, end, 10, 1, 0, constants::max_u32value); | |
17474 | |
17475 if (quantifier.atleast == constants::invalid_u32value) | |
17476 return this->set_error(regex_constants::error_brace); | |
17477 | |
17478 if (curpos == end) | |
17479 return this->set_error(regex_constants::error_brace); | |
17480 | |
17481 if (*curpos == meta_char::mc_comma) // ',' | |
17482 { | |
17483 ++curpos; | |
17484 quantifier.atmost = translate_numbers(curpos, end, 10, 1, 0, constants::max_u32value); | |
17485 | |
17486 if (quantifier.atmost == constants::invalid_u32value) | |
17487 quantifier.set_infinity(); | |
17488 | |
17489 if (!quantifier.is_valid()) | |
17490 return this->set_error(regex_constants::error_badbrace); | |
17491 } | |
17492 else | |
17493 quantifier.atmost = quantifier.atleast; | |
17494 | |
17495 if (curpos == end || *curpos != meta_char::mc_cbracl) // '}' | |
17496 return this->set_error(regex_constants::error_brace); | |
17497 | |
17498 // *curpos == '}' | |
17499 break; | |
17500 | |
17501 default: | |
17502 goto AFTER_GREEDINESS_CHECK; | |
17503 } | |
17504 | |
17505 if (++curpos != end && *curpos == meta_char::mc_query) // '?' | |
17506 { | |
17507 quantifier.is_greedy = 0u; | |
17508 ++curpos; | |
17509 } | |
17510 AFTER_GREEDINESS_CHECK:; | |
17511 } | |
17512 | |
17513 if (piece.size() == 2 && firststate.is_noncapturinggroup()) | |
17514 { | |
17515 // (?:) alone or followed by a quantifier. | |
17516 // piece_with_quantifier += piece; | |
17517 ; // Does nothing. | |
17518 } | |
17519 else | |
17520 combine_piece_with_quantifier(piece_with_quantifier, piece, quantifier, piecesize); | |
17521 | |
17522 piecesize.multiply(quantifier); | |
17523 branchsize.add(piecesize); | |
17524 | |
17525 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) | |
17526 | |
17527 if (!cvars.is_back()) | |
17528 branch += piece_with_quantifier; | |
17529 else | |
17530 branch.insert(0, piece_with_quantifier); | |
17531 #else | |
17532 branch += piece_with_quantifier; | |
17533 #endif | |
17534 } | |
17535 } | |
17536 } | |
17537 | |
17538 // '('. | |
17539 | |
17540 bool parse_group(state_array &piece, re_quantifier &piecesize, const ui_l32 *&curpos, const ui_l32 *const end, cvars_type &cvars) | |
17541 { | |
17542 const regex_constants::syntax_option_type originalflags(cvars.soflags); | |
17543 state_type rbstate; | |
17544 | |
17545 if (curpos == end) | |
17546 return this->set_error(regex_constants::error_paren); | |
17547 | |
17548 rbstate.reset(st_roundbracket_open); | |
17549 | |
17550 if (*curpos == meta_char::mc_query) // '?' | |
17551 { | |
17552 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) | |
17553 bool lookbehind = false; | |
17554 #endif | |
17555 | |
17556 if (++curpos == end) | |
17557 return this->set_error(regex_constants::error_paren); | |
17558 | |
17559 rbstate.char_num = *curpos; | |
17560 | |
17561 if (rbstate.char_num == meta_char::mc_lt) // '<' | |
17562 { | |
17563 if (++curpos == end) | |
17564 return this->set_error(regex_constants::error_paren); | |
17565 | |
17566 rbstate.char_num = *curpos; | |
17567 | |
17568 if (rbstate.char_num != meta_char::mc_eq && rbstate.char_num != meta_char::mc_exclam) | |
17569 { | |
17570 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
17571 const gname_string groupname = get_groupname(curpos, end, cvars); | |
17572 | |
17573 if (groupname.size() == 0) | |
17574 return this->set_error(regex_constants::error_escape); | |
17575 | |
17576 if (!this->namedcaptures.push_back(groupname, this->number_of_brackets, cvars.dupranges)) | |
17577 return this->set_error(regex_constants::error_backref); | |
17578 | |
17579 goto AFTER_EXTRB; | |
17580 #else | |
17581 return this->set_error(regex_constants::error_paren); | |
17582 #endif // !defined(SRELL_NO_NAMEDCAPTURE) | |
17583 } | |
17584 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) | |
17585 lookbehind = true; | |
17586 #endif | |
17587 } | |
17588 else | |
17589 rbstate.quantifier.is_greedy = 0; | |
17590 // Sets .is_greedy to 0 for other assertions than lookbehinds. The automaton | |
17591 // checks .is_greedy to know whether lookbehinds or other assertions. | |
17592 | |
17593 switch (rbstate.char_num) | |
17594 { | |
17595 case meta_char::mc_exclam: // '!': | |
17596 rbstate.flags = sflags::is_not; | |
17597 //@fallthrough@ | |
17598 | |
17599 case meta_char::mc_eq: // '=': | |
17600 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) | |
17601 cvars.soflags = lookbehind ? (cvars.soflags | regex_constants::back_) : (cvars.soflags & ~regex_constants::back_); | |
17602 #else | |
17603 // rbstate.reverse = lookbehind; | |
17604 #endif | |
17605 | |
17606 #if defined(SRELL_ENABLE_GT) | |
17607 //@fallthrough@ | |
17608 case meta_char::mc_gt: | |
17609 #endif | |
17610 rbstate.type = st_lookaround_open; | |
17611 rbstate.next2 = 1; | |
17612 rbstate.quantifier.atleast = this->number_of_brackets; | |
17613 piece.push_back(rbstate); | |
17614 rbstate.next1 = 1; | |
17615 rbstate.next2 = 0; | |
17616 rbstate.type = st_lookaround_pop; | |
17617 break; | |
17618 | |
17619 default: | |
17620 { | |
17621 const u32array_size_type boffset = curpos - cvars.begin; | |
17622 regex_constants::syntax_option_type modified = regex_constants::ECMAScript; | |
17623 regex_constants::syntax_option_type localflags = this->soflags; | |
17624 bool negate = false; | |
17625 bool flagerror = false; | |
17626 | |
17627 for (;;) | |
17628 { | |
17629 switch (rbstate.char_num) | |
17630 { | |
17631 #if defined(SRELL_ENABLE_MODIFIERS) | |
17632 case meta_char::mc_colon: // ':': | |
17633 // (?ims-ims:...) | |
17634 if (modified != regex_constants::ECMAScript) | |
17635 goto COLON_FOUND; | |
17636 | |
17637 flagerror = true; | |
17638 break; | |
17639 #endif | |
17640 #if !defined(SRELL_NO_UBMOD) | |
17641 case meta_char::mc_rbracl: // ')': | |
17642 if (boffset == 2 && modified != regex_constants::ECMAScript) | |
17643 { | |
17644 this->soflags = cvars.soflags = localflags; | |
17645 rbstate.type = st_roundbracket_close; | |
17646 ++curpos; | |
17647 return true; | |
17648 } | |
17649 flagerror = true; // "(?)" or "(?-)" | |
17650 break; | |
17651 #endif | |
17652 case meta_char::mc_minus: // '-': | |
17653 (negate ? flagerror : negate) = true; | |
17654 break; | |
17655 | |
17656 case char_alnum::ch_i: // 'i': | |
17657 if (modified & regex_constants::icase) | |
17658 flagerror = true; | |
17659 modified |= regex_constants::icase; | |
17660 if (!negate) | |
17661 localflags |= regex_constants::icase; | |
17662 else | |
17663 localflags &= ~regex_constants::icase; | |
17664 break; | |
17665 | |
17666 case char_alnum::ch_m: // 'm': | |
17667 if (modified & regex_constants::multiline) | |
17668 flagerror = true; | |
17669 modified |= regex_constants::multiline; | |
17670 if (!negate) | |
17671 localflags |= regex_constants::multiline; | |
17672 else | |
17673 localflags &= ~regex_constants::multiline; | |
17674 break; | |
17675 | |
17676 case char_alnum::ch_s: // 's': | |
17677 if (modified & regex_constants::dotall) | |
17678 flagerror = true; | |
17679 modified |= regex_constants::dotall; | |
17680 if (!negate) | |
17681 localflags |= regex_constants::dotall; | |
17682 else | |
17683 localflags &= ~regex_constants::dotall; | |
17684 break; | |
17685 | |
17686 #if 0 | |
17687 // Although ECMAScript does not support v-flag modification, SRELL can. | |
17688 #if !defined(SRELL_NO_VMODE) && !defined(SRELL_NO_UNICODE_PROPERTY) | |
17689 | |
17690 case char_alnum::ch_v: // 'v': | |
17691 if (modified & regex_constants::unicodesets) | |
17692 flagerror = true; | |
17693 modified |= regex_constants::unicodesets; | |
17694 if (!negate) | |
17695 localflags |= regex_constants::unicodesets; | |
17696 else | |
17697 localflags &= ~regex_constants::unicodesets; | |
17698 break; | |
17699 #endif | |
17700 #endif | |
17701 default: | |
17702 return this->set_error(regex_constants::error_paren); | |
17703 } | |
17704 | |
17705 if (flagerror) | |
17706 return this->set_error(regex_constants::error_modifier); | |
17707 | |
17708 if (++curpos == end) | |
17709 return this->set_error(regex_constants::error_paren); | |
17710 | |
17711 rbstate.char_num = *curpos; | |
17712 } | |
17713 #if defined(SRELL_ENABLE_MODIFIERS) | |
17714 COLON_FOUND:; | |
17715 cvars.soflags = localflags; | |
17716 #endif | |
17717 } | |
17718 //@fallthrough@ | |
17719 | |
17720 case meta_char::mc_colon: | |
17721 rbstate.type = st_epsilon; | |
17722 rbstate.char_num = epsilon_type::et_ncgopen; | |
17723 rbstate.quantifier.atleast = this->number_of_brackets; | |
17724 } | |
17725 | |
17726 ++curpos; | |
17727 piece.push_back(rbstate); | |
17728 } | |
17729 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
17730 AFTER_EXTRB: | |
17731 #endif | |
17732 | |
17733 if (rbstate.type == st_roundbracket_open) | |
17734 { | |
17735 rbstate.char_num = this->number_of_brackets; | |
17736 rbstate.next1 = 2; | |
17737 rbstate.next2 = 1; | |
17738 piece.push_back(rbstate); | |
17739 ++this->number_of_brackets; | |
17740 | |
17741 rbstate.type = st_roundbracket_pop; | |
17742 rbstate.next1 = 0; | |
17743 rbstate.next2 = 0; | |
17744 piece.push_back(rbstate); | |
17745 } | |
17746 | |
17747 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
17748 const typename simple_array<ui_l32>::size_type dzsize = cvars.dupranges.size(); | |
17749 #endif | |
17750 | |
17751 if (!make_nfa_states(piece, piecesize, curpos, end, cvars)) | |
17752 return false; | |
17753 | |
17754 // end or ')'? | |
17755 if (curpos == end) | |
17756 return this->set_error(regex_constants::error_paren); | |
17757 | |
17758 ++curpos; | |
17759 | |
17760 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
17761 cvars.dupranges.resize(dzsize); | |
17762 #endif | |
17763 cvars.soflags = originalflags; | |
17764 | |
17765 state_type &firststate = piece[0]; | |
17766 | |
17767 firststate.quantifier.atmost = this->number_of_brackets - 1; | |
17768 | |
17769 switch (rbstate.type) | |
17770 { | |
17771 case st_epsilon: | |
17772 if (piece.size() == 2) // ':' + something. | |
17773 { | |
17774 piece.erase(0); | |
17775 return true; | |
17776 } | |
17777 | |
17778 firststate.quantifier.is_greedy = piecesize.atleast != 0u; | |
17779 rbstate.char_num = epsilon_type::et_ncgclose; | |
17780 break; | |
17781 | |
17782 case st_lookaround_pop: | |
17783 #if defined(SRELL_FIXEDWIDTHLOOKBEHIND) | |
17784 if (firststate.quantifier.is_greedy) // > 0 means lookbehind. | |
17785 { | |
17786 if (!piecesize.is_same() || piecesize.is_infinity()) | |
17787 return this->set_error(regex_constants::error_lookbehind); | |
17788 | |
17789 firststate.quantifier.is_greedy = piecesize.atleast; | |
17790 } | |
17791 #endif | |
17792 | |
17793 #if defined(SRELL_ENABLE_GT) | |
17794 if (firststate.char_num != meta_char::mc_gt) | |
17795 #endif | |
17796 piecesize.reset(0); | |
17797 | |
17798 firststate.next1 = static_cast<std::ptrdiff_t>(piece.size()) + 1; | |
17799 piece[1].quantifier.atmost = firststate.quantifier.atmost; | |
17800 | |
17801 rbstate.type = st_lookaround_close; | |
17802 rbstate.next1 = 0; | |
17803 break; | |
17804 | |
17805 default: | |
17806 rbstate.type = st_roundbracket_close; | |
17807 rbstate.next1 = 1; | |
17808 rbstate.next2 = 1; | |
17809 | |
17810 { | |
17811 re_quantifier &rb_pop = piece[1].quantifier; | |
17812 | |
17813 rb_pop.atleast = firststate.quantifier.atleast = rbstate.char_num + 1; | |
17814 rb_pop.atmost = firststate.quantifier.atmost; | |
17815 } | |
17816 firststate.quantifier.is_greedy = piecesize.atleast != 0u; | |
17817 } | |
17818 | |
17819 piece.push_back(rbstate); | |
17820 return true; | |
17821 } | |
17822 | |
17823 void combine_piece_with_quantifier(state_array &piece_with_quantifier, state_array &piece, const re_quantifier &quantifier, const re_quantifier &piecesize) | |
17824 { | |
17825 if (quantifier.atmost == 0) | |
17826 return; | |
17827 | |
17828 state_type &firststate = piece[0]; | |
17829 state_type qstate; | |
17830 | |
17831 qstate.reset(st_epsilon, firststate.is_character_or_class() | |
17832 ? epsilon_type::et_ccastrsk | |
17833 : epsilon_type::et_dfastrsk); | |
17834 qstate.quantifier = quantifier; | |
17835 | |
17836 if (quantifier.atmost == 1) | |
17837 { | |
17838 if (quantifier.atleast == 0) | |
17839 { | |
17840 qstate.next2 = static_cast<std::ptrdiff_t>(piece.size()) + 1; | |
17841 if (!quantifier.is_greedy) | |
17842 { | |
17843 qstate.next1 = qstate.next2; | |
17844 qstate.next2 = 1; | |
17845 } | |
17846 | |
17847 piece[piece.size() - 1].quantifier = quantifier; | |
17848 piece_with_quantifier.push_back(qstate); | |
17849 } | |
17850 | |
17851 if (firststate.type == st_roundbracket_open) | |
17852 firststate.quantifier.atmost = piece[1].quantifier.atmost = 0; | |
17853 | |
17854 piece_with_quantifier += piece; | |
17855 return; | |
17856 } | |
17857 | |
17858 // atmost >= 2 | |
17859 | |
17860 #if !defined(SRELLDBG_NO_SIMPLEEQUIV) | |
17861 | |
17862 // A counter requires at least 6 states: save, restore, check, inc, dec, ATOM(s). | |
17863 // A character or charclass quantified by one of these has a simple equivalent representation: | |
17864 // a{0,2} 1.epsilon(2|5), 2.CHorCL(3), 3.epsilon(4|5), 4.CHorCL(5), [5]. | |
17865 // a{0,3} 1.epsilon(2|7), 2.CHorCL(3), 3.epsilon(4|7), 4.CHorCL(5), 5.epsilon(6|7), 6.CHorCL(7), [7]. | |
17866 // a{1,2} 1.CHorCL(2), 2.epsilon(3|4), 3.CHorCL(4), [4]. | |
17867 // a{1,3} 1.CHorCL(2), 2.epsilon(3|6), 3.CHorCL(4), 4.epsilon(5|6), 5.CHorCL(6), [6]. | |
17868 // a{2,3} 1.CHorCL(2), 2.CHorCL(3), 3.epsilon(4|5), 4.CHorCL(5), [5]. | |
17869 // a{2,4} 1.CHorCL(2), 2.CHorCL(3), 3.epsilon(4|7), 4.CHorCL(5), 5.epsilon(6|7), 6.CHorCL(7), [7]. | |
17870 if (qstate.char_num == epsilon_type::et_ccastrsk && quantifier.has_simple_equivalence()) | |
17871 { | |
17872 const state_size_type branchsize = piece.size() + 1; | |
17873 | |
17874 for (ui_l32 i = 0; i < quantifier.atleast; ++i) | |
17875 piece_with_quantifier += piece; | |
17876 | |
17877 firststate.quantifier.set(0, 1, quantifier.is_greedy); | |
17878 | |
17879 qstate.next2 = (quantifier.atmost - quantifier.atleast) * branchsize; | |
17880 if (!quantifier.is_greedy) | |
17881 { | |
17882 qstate.next1 = qstate.next2; | |
17883 qstate.next2 = 1; | |
17884 } | |
17885 | |
17886 for (ui_l32 i = quantifier.atleast; i < quantifier.atmost; ++i) | |
17887 { | |
17888 piece_with_quantifier.push_back(qstate); | |
17889 piece_with_quantifier += piece; | |
17890 quantifier.is_greedy ? (qstate.next2 -= branchsize) : (qstate.next1 -= branchsize); | |
17891 } | |
17892 return; | |
17893 } | |
17894 #endif // !defined(SRELLDBG_NO_SIMPLEEQUIV) | |
17895 | |
17896 if (firststate.type == st_backreference && (firststate.flags & sflags::backrefno_unresolved)) | |
17897 { | |
17898 firststate.quantifier = quantifier; | |
17899 qstate.quantifier.set(1, 0); | |
17900 goto ADD_CHECKER; | |
17901 } | |
17902 else if (firststate.is_noncapturinggroup() && (piecesize.atleast == 0 || firststate.quantifier.is_valid())) | |
17903 { | |
17904 qstate.quantifier = firststate.quantifier; | |
17905 ADD_CHECKER: | |
17906 qstate.char_num = this->number_of_repeats++; | |
17907 | |
17908 qstate.type = st_repeat_in_pop; | |
17909 qstate.next1 = 0; | |
17910 qstate.next2 = 0; | |
17911 piece.insert(0, qstate); | |
17912 | |
17913 qstate.type = st_repeat_in_push; | |
17914 qstate.next1 = 2; | |
17915 qstate.next2 = 1; | |
17916 piece.insert(0, qstate); | |
17917 | |
17918 qstate.quantifier = quantifier; | |
17919 qstate.type = st_check_0_width_repeat; | |
17920 qstate.next2 = 1; | |
17921 piece.push_back(qstate); | |
17922 | |
17923 if (piecesize.atleast == 0 && piece[2].type != st_backreference) | |
17924 goto USE_COUNTER; | |
17925 | |
17926 qstate.char_num = epsilon_type::et_dfastrsk; | |
17927 } | |
17928 | |
17929 qstate.type = st_epsilon; | |
17930 | |
17931 if (quantifier.is_asterisk()) // {0,} | |
17932 { | |
17933 // greedy: 1.epsilon(2|4), 2.piece, 3.LAorC0WR(1|0), 4.OutOfLoop. | |
17934 // !greedy: 1.epsilon(4|2), 2.piece, 3.LAorC0WR(1|0), 4.OutOfLoop. | |
17935 // LAorC0WR: LastAtomOfPiece or Check0WidthRepeat. | |
17936 } | |
17937 else if (quantifier.is_plus()) // {1,} | |
17938 { | |
17939 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
17940 | |
17941 if (qstate.char_num == epsilon_type::et_ccastrsk) | |
17942 { | |
17943 piece_with_quantifier += piece; | |
17944 --qstate.quantifier.atleast; // /.+/ -> /..*/. | |
17945 } | |
17946 else | |
17947 #endif | |
17948 { | |
17949 const ui_l32 backup = qstate.char_num; | |
17950 | |
17951 qstate.next1 = 2; | |
17952 qstate.next2 = 0; | |
17953 qstate.char_num = epsilon_type::et_jmpinlp; | |
17954 piece_with_quantifier.push_back(qstate); | |
17955 qstate.char_num = backup; | |
17956 // greedy: 1.epsilon(3), 2.epsilon(3|5), 3.piece, 4.LAorC0WR(2|0), 5.OutOfLoop. | |
17957 // !greedy: 1.epsilon(3), 2.epsilon(5|3), 3.piece, 4.LAorC0WR(2|0), 5.OutOfLoop. | |
17958 } | |
17959 } | |
17960 else | |
17961 { | |
17962 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
17963 if (qstate.char_num == epsilon_type::et_ccastrsk && quantifier.is_infinity()) | |
17964 { | |
17965 if (quantifier.atleast <= 6) | |
17966 { | |
17967 for (ui_l32 i = 0; i < quantifier.atleast; ++i) | |
17968 piece_with_quantifier += piece; | |
17969 qstate.quantifier.atleast = 0; | |
17970 goto APPEND_ATOM; | |
17971 } | |
17972 qstate.quantifier.atmost = qstate.quantifier.atleast; | |
17973 } | |
17974 #endif // !defined(SRELLDBG_NO_ASTERISK_OPT) | |
17975 | |
17976 USE_COUNTER: | |
17977 | |
17978 qstate.char_num = this->number_of_counters++; | |
17979 | |
17980 qstate.type = st_save_and_reset_counter; | |
17981 qstate.next1 = 2; | |
17982 qstate.next2 = 1; | |
17983 piece_with_quantifier.push_back(qstate); | |
17984 | |
17985 qstate.type = st_restore_counter; | |
17986 qstate.next1 = 0; | |
17987 qstate.next2 = 0; | |
17988 piece_with_quantifier.push_back(qstate); | |
17989 // 1.save_and_reset_counter(3|2), 2.restore_counter(0|0), | |
17990 | |
17991 qstate.next1 = 0; | |
17992 qstate.next2 = 0; | |
17993 qstate.type = st_decrement_counter; | |
17994 piece.insert(0, qstate); | |
17995 | |
17996 qstate.next1 = 2; | |
17997 qstate.next2 = piece[1].is_character_or_class() ? 0 : 1; | |
17998 qstate.type = st_increment_counter; | |
17999 piece.insert(0, qstate); | |
18000 | |
18001 qstate.type = st_check_counter; | |
18002 // greedy: 3.check_counter(4|6), 4.piece, 5.LAorC0WR(3|0), 6.OutOfLoop. | |
18003 // !greedy: 3.check_counter(6|4), 4.piece, 5.LAorC0WR(3|0), 6.OutOfLoop. | |
18004 // 4.piece = { 4a.increment_counter(4c|4b), 4b.decrement_counter(0|0), 4c.OriginalPiece }. | |
18005 } | |
18006 | |
18007 APPEND_ATOM: | |
18008 | |
18009 const std::ptrdiff_t piece_size = static_cast<std::ptrdiff_t>(piece.size()); | |
18010 state_type &laststate = piece[piece_size - 1]; | |
18011 | |
18012 laststate.quantifier = qstate.quantifier; | |
18013 laststate.next1 = 0 - piece_size; | |
18014 | |
18015 qstate.next1 = 1; | |
18016 qstate.next2 = piece_size + 1; | |
18017 if (!quantifier.is_greedy) | |
18018 { | |
18019 qstate.next1 = qstate.next2; | |
18020 qstate.next2 = 1; | |
18021 } | |
18022 piece_with_quantifier.push_back(qstate); | |
18023 piece_with_quantifier += piece; | |
18024 | |
18025 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
18026 | |
18027 if (qstate.quantifier.atmost != quantifier.atmost) | |
18028 { | |
18029 qstate.type = st_epsilon; | |
18030 qstate.char_num = epsilon_type::et_ccastrsk; | |
18031 qstate.quantifier.atleast = 0; | |
18032 qstate.quantifier.atmost = quantifier.atmost; | |
18033 piece.erase(0, piece_size - 1); | |
18034 goto APPEND_ATOM; | |
18035 } | |
18036 #endif // !defined(SRELLDBG_NO_ASTERISK_OPT) | |
18037 } | |
18038 | |
18039 // '['. | |
18040 | |
18041 bool register_character_class(range_pairs &ranges, state_type &castate, const ui_l32 *&curpos, const ui_l32 *const end, const cvars_type &cvars) | |
18042 { | |
18043 range_pair code_range; | |
18044 state_type rstate; | |
18045 range_pairs curranges; | |
18046 | |
18047 if (curpos == end) | |
18048 return this->set_error(regex_constants::error_brack); | |
18049 | |
18050 ranges.clear(); | |
18051 | |
18052 if (*curpos == meta_char::mc_caret) // '^' | |
18053 { | |
18054 castate.flags = sflags::is_not; | |
18055 ++curpos; | |
18056 } | |
18057 | |
18058 for (;;) | |
18059 { | |
18060 if (curpos == end) | |
18061 return this->set_error(regex_constants::error_brack); | |
18062 | |
18063 if (*curpos == meta_char::mc_sbracl) // ']' | |
18064 break; | |
18065 | |
18066 rstate.reset(); | |
18067 | |
18068 if (!get_character_in_class(curranges, rstate, curpos, end, cvars)) | |
18069 return false; | |
18070 | |
18071 if (rstate.type == st_character_class) | |
18072 { | |
18073 ranges.merge(curranges); | |
18074 | |
18075 if (curpos != end && *curpos == meta_char::mc_minus) // '-' | |
18076 { | |
18077 if (++curpos == end) | |
18078 return this->set_error(regex_constants::error_brack); | |
18079 | |
18080 if (*curpos == meta_char::mc_sbracl) | |
18081 break; // OK. | |
18082 | |
18083 return this->set_error(regex_constants::error_brack); | |
18084 } | |
18085 continue; | |
18086 } | |
18087 | |
18088 code_range.first = code_range.second = rstate.char_num; | |
18089 | |
18090 if (curpos == end) | |
18091 return this->set_error(regex_constants::error_brack); | |
18092 | |
18093 if (*curpos == meta_char::mc_minus) // '-' | |
18094 { | |
18095 ++curpos; | |
18096 | |
18097 if (curpos == end) | |
18098 return this->set_error(regex_constants::error_brack); | |
18099 | |
18100 if (*curpos == meta_char::mc_sbracl) | |
18101 { | |
18102 PUSH_SEPARATELY: | |
18103 ranges.join(code_range); | |
18104 code_range.first = code_range.second = meta_char::mc_minus; | |
18105 } | |
18106 else | |
18107 { | |
18108 if (!get_character_in_class(curranges, rstate, curpos, end, cvars)) | |
18109 return false; | |
18110 | |
18111 if (rstate.type == st_character_class) | |
18112 { | |
18113 ranges.merge(curranges); | |
18114 goto PUSH_SEPARATELY; | |
18115 } | |
18116 | |
18117 code_range.second = rstate.char_num; | |
18118 | |
18119 if (!code_range.is_range_valid()) | |
18120 return this->set_error(regex_constants::error_range); | |
18121 } | |
18122 } | |
18123 ranges.join(code_range); | |
18124 } | |
18125 | |
18126 // *curpos == ']' | |
18127 ++curpos; | |
18128 if (cvars.is_icase()) | |
18129 ranges.make_caseunfoldedcharset(); | |
18130 | |
18131 if (castate.flags) // is_not. | |
18132 { | |
18133 ranges.negation(); | |
18134 castate.flags = 0u; | |
18135 } | |
18136 | |
18137 return true; | |
18138 } | |
18139 | |
18140 bool get_character_in_class(range_pairs &rp, state_type &rstate, const ui_l32 *&curpos, const ui_l32 *const end, const cvars_type &cvars) | |
18141 { | |
18142 rstate.char_num = *curpos++; | |
18143 | |
18144 if (rstate.char_num != meta_char::mc_escape) // '\\' | |
18145 return true; | |
18146 | |
18147 rp.clear(); | |
18148 | |
18149 if (curpos == end) | |
18150 return this->set_error(regex_constants::error_escape); | |
18151 | |
18152 rstate.char_num = *curpos++; | |
18153 | |
18154 return translate_escape(&rp, rstate, curpos, end, true, false, cvars); | |
18155 } | |
18156 | |
18157 void add_predefclass_to_charclass(range_pairs &cls, const state_type &castate) | |
18158 { | |
18159 range_pairs predefclass = this->character_class[castate.char_num]; | |
18160 | |
18161 if (castate.flags) // is_not. | |
18162 predefclass.negation(); | |
18163 | |
18164 cls.merge(predefclass); | |
18165 } | |
18166 | |
18167 #if !defined(SRELL_NO_VMODE) && !defined(SRELL_NO_UNICODE_PROPERTY) | |
18168 | |
18169 bool parse_unicharset(posdata_holder &basepos, const ui_l32 *&curpos, const ui_l32 *const end, const cvars_type &cvars) | |
18170 { | |
18171 if (curpos == end) | |
18172 return this->set_error(regex_constants::error_brack); | |
18173 | |
18174 const bool invert = (*curpos == meta_char::mc_caret) ? (++curpos, true) : false; // '^' | |
18175 enum operation_type | |
18176 { | |
18177 op_init, op_firstcc, op_union, op_intersection, op_subtraction | |
18178 }; | |
18179 operation_type otype = op_init; | |
18180 posdata_holder newpos; | |
18181 range_pair code_range; | |
18182 state_type castate; | |
18183 | |
18184 // ClassSetCharacter :: | |
18185 // \ CharacterEscape[+UnicodeMode] | |
18186 // \ ClassSetReservedPunctuator | |
18187 // \ b | |
18188 | |
18189 for (;;) | |
18190 { | |
18191 if (curpos == end) | |
18192 goto ERROR_NOT_CLOSED; | |
18193 | |
18194 if (*curpos == meta_char::mc_sbracl) // ']' | |
18195 break; | |
18196 | |
18197 ui_l32 next2chars = constants::invalid_u32value; | |
18198 | |
18199 if (curpos + 1 != end && *curpos == curpos[1]) | |
18200 { | |
18201 switch (*curpos) | |
18202 { | |
18203 // ClassSetReservedDoublePunctuator :: one of | |
18204 // && !! ## $$ %% ** ++ ,, .. :: ;; << == >> ?? @@ ^^ `` ~~ | |
18205 case char_other::co_amp: // '&' | |
18206 case meta_char::mc_exclam: // '!' | |
18207 case meta_char::mc_sharp: // '#' | |
18208 case meta_char::mc_dollar: // '$' | |
18209 case char_other::co_perc: // '%' | |
18210 case meta_char::mc_astrsk: // '*' | |
18211 case meta_char::mc_plus: // '+' | |
18212 case meta_char::mc_comma: // ',' | |
18213 case meta_char::mc_period: // '.' | |
18214 case meta_char::mc_colon: // ':' | |
18215 case char_other::co_smcln: // ';' | |
18216 case meta_char::mc_lt: // '<' | |
18217 case meta_char::mc_eq: // '=' | |
18218 case meta_char::mc_gt: // '>' | |
18219 case meta_char::mc_query: // '?' | |
18220 case char_other::co_atmrk: // '@' | |
18221 case meta_char::mc_caret: // '^' | |
18222 case char_other::co_grav: // '`' | |
18223 case char_other::co_tilde: // '~' | |
18224 case meta_char::mc_minus: // '-' | |
18225 next2chars = *curpos; | |
18226 //@fallthrough@ | |
18227 default:; | |
18228 } | |
18229 } | |
18230 | |
18231 switch (otype) | |
18232 { | |
18233 case op_intersection: | |
18234 if (next2chars != char_other::co_amp) | |
18235 goto ERROR_DOUBLE_PUNCT; | |
18236 curpos += 2; | |
18237 break; | |
18238 | |
18239 case op_subtraction: | |
18240 if (next2chars != meta_char::mc_minus) | |
18241 goto ERROR_DOUBLE_PUNCT; | |
18242 curpos += 2; | |
18243 break; | |
18244 | |
18245 case op_firstcc: | |
18246 if (next2chars == char_other::co_amp) | |
18247 otype = op_intersection; | |
18248 else if (next2chars == meta_char::mc_minus) | |
18249 otype = op_subtraction; | |
18250 else if (next2chars == constants::invalid_u32value) | |
18251 break; | |
18252 else | |
18253 goto ERROR_DOUBLE_PUNCT; | |
18254 | |
18255 curpos += 2; | |
18256 break; | |
18257 | |
18258 // case op_union: | |
18259 // case op_init: | |
18260 default: | |
18261 if (next2chars != constants::invalid_u32value) | |
18262 goto ERROR_DOUBLE_PUNCT; | |
18263 } | |
18264 | |
18265 AFTER_OPERATOR: | |
18266 | |
18267 if (curpos == end) | |
18268 goto ERROR_NOT_CLOSED; | |
18269 | |
18270 castate.reset(); | |
18271 | |
18272 if (*curpos == meta_char::mc_sbraop) // '[' | |
18273 { | |
18274 ++curpos; | |
18275 if (!parse_unicharset(newpos, curpos, end, cvars)) | |
18276 return false; | |
18277 } | |
18278 else if (!get_character_in_class_vmode(newpos, castate, curpos, end, cvars, false)) | |
18279 return false; | |
18280 | |
18281 if (curpos == end) | |
18282 goto ERROR_NOT_CLOSED; | |
18283 | |
18284 if (otype == op_init) | |
18285 otype = op_firstcc; | |
18286 else if (otype == op_firstcc) | |
18287 otype = op_union; | |
18288 | |
18289 if (castate.type == st_character) | |
18290 { | |
18291 if (!newpos.has_data()) | |
18292 { | |
18293 code_range.set(castate.char_num); | |
18294 | |
18295 if (otype <= op_union) | |
18296 { | |
18297 if (*curpos == meta_char::mc_minus) // '-' | |
18298 { | |
18299 ++curpos; | |
18300 | |
18301 if (curpos == end) | |
18302 goto ERROR_BROKEN_RANGE; | |
18303 | |
18304 if (otype < op_union && *curpos == meta_char::mc_minus) // '-' | |
18305 { | |
18306 otype = op_subtraction; | |
18307 ++curpos; | |
18308 basepos.ranges.join(code_range); | |
18309 goto AFTER_OPERATOR; | |
18310 } | |
18311 | |
18312 if (!get_character_in_class_vmode(newpos, castate, curpos, end, cvars, true)) | |
18313 return false; | |
18314 | |
18315 otype = op_union; | |
18316 code_range.second = castate.char_num; | |
18317 if (!code_range.is_range_valid()) | |
18318 goto ERROR_BROKEN_RANGE; | |
18319 } | |
18320 } | |
18321 | |
18322 newpos.ranges.join(code_range); | |
18323 if (cvars.is_icase()) | |
18324 newpos.ranges.make_caseunfoldedcharset(); | |
18325 } | |
18326 } | |
18327 | |
18328 switch (otype) | |
18329 { | |
18330 case op_union: | |
18331 basepos.do_union(newpos); | |
18332 break; | |
18333 | |
18334 case op_intersection: | |
18335 basepos.do_and(newpos); | |
18336 break; | |
18337 | |
18338 case op_subtraction: | |
18339 basepos.do_subtract(newpos); | |
18340 break; | |
18341 | |
18342 // case op_firstcc: | |
18343 default: | |
18344 basepos.swap(newpos); | |
18345 } | |
18346 } | |
18347 | |
18348 // *curpos == ']' | |
18349 ++curpos; | |
18350 | |
18351 if (invert) | |
18352 { | |
18353 if (basepos.may_contain_strings()) | |
18354 return this->set_error(regex_constants::error_complement); | |
18355 | |
18356 basepos.ranges.negation(); | |
18357 } | |
18358 | |
18359 return true; | |
18360 | |
18361 ERROR_NOT_CLOSED: | |
18362 return this->set_error(regex_constants::error_brack); | |
18363 | |
18364 ERROR_BROKEN_RANGE: | |
18365 return this->set_error(regex_constants::error_range); | |
18366 | |
18367 ERROR_DOUBLE_PUNCT: | |
18368 return this->set_error(regex_constants::error_operator); | |
18369 } | |
18370 | |
18371 bool get_character_in_class_vmode( | |
18372 posdata_holder &pos, | |
18373 state_type &castate, | |
18374 const ui_l32 *&curpos, | |
18375 const ui_l32 *const end, | |
18376 const cvars_type &cvars, | |
18377 const bool no_ccesc | |
18378 ) | |
18379 { | |
18380 pos.clear(); | |
18381 | |
18382 castate.char_num = *curpos++; | |
18383 | |
18384 switch (castate.char_num) | |
18385 { | |
18386 // ClassSetSyntaxCharacter :: one of | |
18387 // ( ) [ ] { } / - \ | | |
18388 case meta_char::mc_rbraop: // '(' | |
18389 case meta_char::mc_rbracl: // ')' | |
18390 case meta_char::mc_sbraop: // '[' | |
18391 case meta_char::mc_sbracl: // ']' | |
18392 case meta_char::mc_cbraop: // '{' | |
18393 case meta_char::mc_cbracl: // '}' | |
18394 case char_other::co_slash: // '/' | |
18395 case meta_char::mc_minus: // '-' | |
18396 case meta_char::mc_bar: // '|' | |
18397 return this->set_error(regex_constants::error_noescape); | |
18398 //@fallthrough@ | |
18399 | |
18400 case meta_char::mc_escape: // '\\' | |
18401 break; | |
18402 | |
18403 default: | |
18404 return true; | |
18405 } | |
18406 | |
18407 if (curpos == end) | |
18408 return this->set_error(regex_constants::error_escape); | |
18409 | |
18410 castate.char_num = *curpos++; | |
18411 | |
18412 if (!no_ccesc) | |
18413 { | |
18414 if (((castate.char_num | masks::asc_icase) == char_alnum::ch_p)) | |
18415 { | |
18416 return parse_escape_p_vmode(pos, castate, curpos, end, cvars); | |
18417 } | |
18418 else if (castate.char_num == char_alnum::ch_q) | |
18419 { | |
18420 if (curpos == end || *curpos != meta_char::mc_cbraop) // '{' | |
18421 return this->set_error(regex_constants::error_escape); | |
18422 | |
18423 simple_array<ui_l32> seqs; | |
18424 simple_array<ui_l32> curseq; | |
18425 posdata_holder dummypos; | |
18426 state_type castate2; | |
18427 | |
18428 ++curpos; | |
18429 | |
18430 for (;;) | |
18431 { | |
18432 if (curpos == end) | |
18433 return this->set_error(regex_constants::error_escape); | |
18434 | |
18435 if (*curpos == meta_char::mc_bar || *curpos == meta_char::mc_cbracl) // '|' or '}'. | |
18436 { | |
18437 const ui_l32 seqlen = static_cast<ui_l32>(curseq.size()); | |
18438 | |
18439 if (seqlen <= 1) | |
18440 { | |
18441 seqs.push_backncr(2); | |
18442 seqs.push_backncr(seqlen != 0 ? curseq[0] : constants::ccstr_empty); | |
18443 } | |
18444 else // >= 2 | |
18445 { | |
18446 seqs.push_backncr(seqlen + 1); | |
18447 seqs.append(curseq); | |
18448 } | |
18449 | |
18450 if (*curpos == meta_char::mc_cbracl) // '}' | |
18451 break; | |
18452 | |
18453 curseq.clear(); | |
18454 ++curpos; | |
18455 } | |
18456 else | |
18457 { | |
18458 castate2.reset(); | |
18459 if (!get_character_in_class_vmode(dummypos, castate2, curpos, end, cvars, true)) | |
18460 return false; | |
18461 | |
18462 curseq.push_backncr(castate2.char_num); | |
18463 } | |
18464 } | |
18465 | |
18466 ++curpos; | |
18467 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) | |
18468 pos.split_seqs_and_ranges(seqs, cvars.is_icase(), cvars.is_back()); | |
18469 #else | |
18470 pos.split_seqs_and_ranges(seqs, cvars.is_icase(), false); | |
18471 #endif | |
18472 | |
18473 return true; | |
18474 } | |
18475 } | |
18476 | |
18477 switch (castate.char_num) | |
18478 { | |
18479 // ClassSetReservedPunctuator :: one of | |
18480 // & - ! # % , : ; < = > @ ` ~ | |
18481 case char_other::co_amp: // '&' | |
18482 case meta_char::mc_exclam: // '!' | |
18483 case meta_char::mc_sharp: // '#' | |
18484 case char_other::co_perc: // '%' | |
18485 case meta_char::mc_comma: // ',' | |
18486 case meta_char::mc_colon: // ':' | |
18487 case char_other::co_smcln: // ';' | |
18488 case meta_char::mc_lt: // '<' | |
18489 case meta_char::mc_eq: // '=' | |
18490 case meta_char::mc_gt: // '>' | |
18491 case char_other::co_atmrk: // '@' | |
18492 case char_other::co_grav: // '`' | |
18493 case char_other::co_tilde: // '~' | |
18494 return true; | |
18495 | |
18496 default:; | |
18497 } | |
18498 | |
18499 return translate_escape(&pos.ranges, castate, curpos, end, true, no_ccesc, cvars); | |
18500 } | |
18501 | |
18502 #endif // !defined(SRELL_NO_VMODE) && !defined(SRELL_NO_UNICODE_PROPERTY) | |
18503 | |
18504 bool translate_escape(range_pairs *const rp, state_type &eastate, const ui_l32 *&curpos, const ui_l32 *const end, const bool insidecharclass, const bool no_ccesc, const cvars_type &cvars) | |
18505 { | |
18506 if (!no_ccesc) | |
18507 { | |
18508 // Predefined classes. | |
18509 switch (eastate.char_num) | |
18510 { | |
18511 case char_alnum::ch_D: // 'D': | |
18512 eastate.flags = sflags::is_not; | |
18513 //@fallthrough@ | |
18514 | |
18515 case char_alnum::ch_d: // 'd': | |
18516 eastate.char_num = static_cast<ui_l32>(re_character_class::digit); // \d, \D. | |
18517 break; | |
18518 | |
18519 case char_alnum::ch_S: // 'S': | |
18520 eastate.flags = sflags::is_not; | |
18521 //@fallthrough@ | |
18522 | |
18523 case char_alnum::ch_s: // 's': | |
18524 eastate.char_num = static_cast<ui_l32>(re_character_class::space); // \s, \S. | |
18525 break; | |
18526 | |
18527 case char_alnum::ch_W: // 'W': | |
18528 eastate.flags = sflags::is_not; | |
18529 //@fallthrough@ | |
18530 | |
18531 case char_alnum::ch_w: // 'w': | |
18532 if (cvars.is_icase()) | |
18533 { | |
18534 this->character_class.setup_icase_word(); | |
18535 eastate.char_num = static_cast<ui_l32>(re_character_class::icase_word); | |
18536 } | |
18537 else | |
18538 eastate.char_num = static_cast<ui_l32>(re_character_class::word); // \w, \W. | |
18539 break; | |
18540 | |
18541 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
18542 // Prepared for Unicode properties and script names. | |
18543 case char_alnum::ch_P: // \P{...} | |
18544 eastate.flags = sflags::is_not; | |
18545 //@fallthrough@ | |
18546 | |
18547 case char_alnum::ch_p: // \p{...} | |
18548 { | |
18549 range_pairs lranges; | |
18550 range_pairs *const pranges = (rp != NULL) ? rp : &lranges; | |
18551 const ui_l32 pnumber = lookup_propertynumber(curpos, end); | |
18552 | |
18553 if (pnumber == up_constants::error_property || this->character_class.is_pos(pnumber)) | |
18554 return this->set_error(regex_constants::error_property); | |
18555 | |
18556 this->character_class.load_upranges(*pranges, pnumber); | |
18557 | |
18558 if (eastate.flags) // is_not. | |
18559 { | |
18560 pranges->negation(); | |
18561 eastate.flags = 0u; | |
18562 } | |
18563 | |
18564 if (!insidecharclass && cvars.is_icase()) | |
18565 pranges->make_caseunfoldedcharset(); | |
18566 | |
18567 if (rp == NULL) | |
18568 eastate.char_num = this->character_class.register_newclass(*pranges); | |
18569 } | |
18570 eastate.type = st_character_class; | |
18571 return true; | |
18572 #endif // !defined(SRELL_NO_UNICODE_PROPERTY) | |
18573 | |
18574 default: | |
18575 goto CLASS_OR_CHARACTER_ESCAPE; | |
18576 } | |
18577 | |
18578 if (rp != NULL) | |
18579 add_predefclass_to_charclass(*rp, eastate); | |
18580 else | |
18581 { | |
18582 if (eastate.flags) // is_not. | |
18583 { | |
18584 range_pairs lranges; | |
18585 | |
18586 add_predefclass_to_charclass(lranges, eastate); | |
18587 eastate.char_num = this->character_class.register_newclass(lranges); | |
18588 } | |
18589 } | |
18590 | |
18591 eastate.flags = 0u; | |
18592 eastate.type = st_character_class; | |
18593 return true; | |
18594 } | |
18595 | |
18596 CLASS_OR_CHARACTER_ESCAPE: | |
18597 | |
18598 switch (eastate.char_num) | |
18599 { | |
18600 case char_alnum::ch_b: | |
18601 eastate.char_num = char_ctrl::cc_bs; // '\b' 0x08:BS | |
18602 break; | |
18603 | |
18604 case char_alnum::ch_t: | |
18605 eastate.char_num = char_ctrl::cc_htab; // '\t' 0x09:HT | |
18606 break; | |
18607 | |
18608 case char_alnum::ch_n: | |
18609 eastate.char_num = char_ctrl::cc_nl; // '\n' 0x0a:LF | |
18610 break; | |
18611 | |
18612 case char_alnum::ch_v: | |
18613 eastate.char_num = char_ctrl::cc_vtab; // '\v' 0x0b:VT | |
18614 break; | |
18615 | |
18616 case char_alnum::ch_f: | |
18617 eastate.char_num = char_ctrl::cc_ff; // '\f' 0x0c:FF | |
18618 break; | |
18619 | |
18620 case char_alnum::ch_r: | |
18621 eastate.char_num = char_ctrl::cc_cr; // '\r' 0x0d:CR | |
18622 break; | |
18623 | |
18624 case char_alnum::ch_c: // \cX | |
18625 if (curpos != end) | |
18626 { | |
18627 eastate.char_num = static_cast<ui_l32>(*curpos | masks::asc_icase); | |
18628 | |
18629 if (eastate.char_num >= char_alnum::ch_a && eastate.char_num <= char_alnum::ch_z) | |
18630 eastate.char_num = static_cast<ui_l32>(*curpos++ & 0x1f); | |
18631 else | |
18632 { | |
18633 return this->set_error(regex_constants::error_escape); // Strict. | |
18634 // eastate.char_num = char_alnum::ch_c; // Loose. | |
18635 } | |
18636 } | |
18637 break; | |
18638 | |
18639 case char_alnum::ch_0: | |
18640 eastate.char_num = char_ctrl::cc_nul; // '\0' 0x00:NUL | |
18641 break; | |
18642 | |
18643 case char_alnum::ch_x: // \xhh | |
18644 eastate.char_num = translate_numbers(curpos, end, 16, 2, 2, 0xff); | |
18645 break; | |
18646 | |
18647 case char_alnum::ch_u: // \uhhhh, \u{h~hhhhhh} | |
18648 eastate.char_num = parse_escape_u(curpos, end); | |
18649 break; | |
18650 | |
18651 // SyntaxCharacter, '/', and '-'. | |
18652 case meta_char::mc_caret: // '^' | |
18653 case meta_char::mc_dollar: // '$' | |
18654 case meta_char::mc_escape: // '\\' | |
18655 case meta_char::mc_period: // '.' | |
18656 case meta_char::mc_astrsk: // '*' | |
18657 case meta_char::mc_plus: // '+' | |
18658 case meta_char::mc_query: // '?' | |
18659 case meta_char::mc_rbraop: // '(' | |
18660 case meta_char::mc_rbracl: // ')' | |
18661 case meta_char::mc_sbraop: // '[' | |
18662 case meta_char::mc_sbracl: // ']' | |
18663 case meta_char::mc_cbraop: // '{' | |
18664 case meta_char::mc_cbracl: // '}' | |
18665 case meta_char::mc_bar: // '|' | |
18666 case char_other::co_slash: // '/' | |
18667 break; | |
18668 | |
18669 case meta_char::mc_minus: // '-' allowed only in charclass. | |
18670 if (insidecharclass) | |
18671 break; | |
18672 //@fallthrough@ | |
18673 | |
18674 default: | |
18675 eastate.char_num = constants::invalid_u32value; | |
18676 } | |
18677 | |
18678 if (eastate.char_num == constants::invalid_u32value) | |
18679 return this->set_error(regex_constants::error_escape); | |
18680 | |
18681 return true; | |
18682 } | |
18683 | |
18684 ui_l32 parse_escape_u(const ui_l32 *&curpos, const ui_l32 *const end) const | |
18685 { | |
18686 ui_l32 ucp; | |
18687 | |
18688 if (curpos == end) | |
18689 return constants::invalid_u32value; | |
18690 | |
18691 if (*curpos == meta_char::mc_cbraop) | |
18692 { | |
18693 // ucp = translate_numbers(++curpos, end, 16, 1, 6, constants::unicode_max_codepoint, true); | |
18694 ucp = translate_numbers(++curpos, end, 16, 1, 0, constants::unicode_max_codepoint); | |
18695 | |
18696 if (curpos == end || *curpos != meta_char::mc_cbracl) | |
18697 return constants::invalid_u32value; | |
18698 | |
18699 ++curpos; | |
18700 } | |
18701 else | |
18702 { | |
18703 ucp = translate_numbers(curpos, end, 16, 4, 4, 0xffff); | |
18704 | |
18705 if (ucp >= 0xd800 && ucp <= 0xdbff) | |
18706 { | |
18707 const ui_l32 *prefetch = curpos; | |
18708 | |
18709 if (prefetch != end && *prefetch == meta_char::mc_escape && ++prefetch != end && *prefetch == char_alnum::ch_u) | |
18710 { | |
18711 ++prefetch; | |
18712 | |
18713 const ui_l32 nextucp = translate_numbers(prefetch, end, 16, 4, 4, 0xffff); | |
18714 | |
18715 if (nextucp >= 0xdc00 && nextucp <= 0xdfff) | |
18716 { | |
18717 curpos = prefetch; | |
18718 ucp = (((ucp << 10) & 0xffc00) | (nextucp & 0x3ff)) + 0x10000; | |
18719 } | |
18720 } | |
18721 } | |
18722 } | |
18723 return ucp; | |
18724 } | |
18725 | |
18726 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
18727 | |
18728 ui_l32 lookup_propertynumber(const ui_l32 *&curpos, const ui_l32 *const end) | |
18729 { | |
18730 pstring pname; | |
18731 pstring pvalue; | |
18732 | |
18733 if (curpos == end || *curpos != meta_char::mc_cbraop) // '{' | |
18734 return up_constants::error_property; | |
18735 | |
18736 const bool digit_seen = get_property_name_or_value(pvalue, ++curpos, end); | |
18737 | |
18738 if (!pvalue.size()) | |
18739 return up_constants::error_property; | |
18740 | |
18741 if (!digit_seen) | |
18742 { | |
18743 if (curpos == end) | |
18744 return up_constants::error_property; | |
18745 | |
18746 if (*curpos == meta_char::mc_eq) // '=' | |
18747 { | |
18748 pname = pvalue; | |
18749 get_property_name_or_value(pvalue, ++curpos, end); | |
18750 if (!pvalue.size()) | |
18751 return up_constants::error_property; | |
18752 } | |
18753 } | |
18754 | |
18755 if (curpos == end || *curpos != meta_char::mc_cbracl) // '}' | |
18756 return up_constants::error_property; | |
18757 | |
18758 ++curpos; | |
18759 | |
18760 pname.push_backncr(0); | |
18761 pvalue.push_backncr(0); | |
18762 | |
18763 return this->character_class.get_propertynumber(pname, pvalue); | |
18764 } | |
18765 | |
18766 bool get_property_name_or_value(pstring &name_or_value, const ui_l32 *&curpos, const ui_l32 *const end) const | |
18767 { | |
18768 bool number_found = false; | |
18769 | |
18770 name_or_value.clear(); | |
18771 | |
18772 for (;; ++curpos) | |
18773 { | |
18774 if (curpos == end) | |
18775 break; | |
18776 | |
18777 const ui_l32 curchar = *curpos; | |
18778 | |
18779 if (curchar >= char_alnum::ch_A && curchar <= char_alnum::ch_Z) | |
18780 ; | |
18781 else if (curchar >= char_alnum::ch_a && curchar <= char_alnum::ch_z) | |
18782 ; | |
18783 else if (curchar == char_other::co_ll) // '_' | |
18784 ; | |
18785 else if (curchar >= char_alnum::ch_0 && curchar <= char_alnum::ch_9) | |
18786 number_found = true; | |
18787 else | |
18788 break; | |
18789 | |
18790 name_or_value.append(1, static_cast<typename pstring::value_type>(curchar)); | |
18791 } | |
18792 | |
18793 // A string containing a digit cannot be a property name. | |
18794 return number_found; | |
18795 } | |
18796 | |
18797 #endif // !defined(SRELL_NO_UNICODE_PROPERTY) | |
18798 | |
18799 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
18800 | |
18801 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
18802 gname_string get_groupname(const ui_l32 *&curpos, const ui_l32 *const end, cvars_type &cvars) | |
18803 #else | |
18804 gname_string get_groupname(const ui_l32 *&curpos, const ui_l32 *const end, cvars_type &) | |
18805 #endif | |
18806 { | |
18807 charT mbstr[utf_traits::maxseqlen]; | |
18808 gname_string groupname; | |
18809 | |
18810 #if !defined(SRELL_NO_UNICODE_PROPERTY) | |
18811 cvars.idchecker.setup(); | |
18812 #endif | |
18813 for (;;) | |
18814 { | |
18815 if (curpos == end) | |
18816 { | |
18817 groupname.clear(); | |
18818 break; | |
18819 } | |
18820 | |
18821 ui_l32 curchar = *curpos++; | |
18822 | |
18823 if (curchar == meta_char::mc_gt) // '>' | |
18824 break; | |
18825 | |
18826 if (curchar == meta_char::mc_escape && curpos != end && *curpos == char_alnum::ch_u) // '\\', 'u'. | |
18827 curchar = parse_escape_u(++curpos, end); | |
18828 | |
18829 #if defined(SRELL_NO_UNICODE_PROPERTY) | |
18830 if (curchar != meta_char::mc_escape) | |
18831 #else | |
18832 if (cvars.idchecker.is_identifier(curchar, groupname.size() != 0)) | |
18833 #endif | |
18834 ; // OK. | |
18835 else | |
18836 curchar = constants::invalid_u32value; | |
18837 | |
18838 if (curchar == constants::invalid_u32value) | |
18839 { | |
18840 groupname.clear(); | |
18841 break; | |
18842 } | |
18843 | |
18844 const ui_l32 seqlen = utf_traits::to_codeunits(mbstr, curchar); | |
18845 | |
18846 for (ui_l32 i = 0; i < seqlen; ++i) | |
18847 groupname.append(1, mbstr[i]); | |
18848 } | |
18849 | |
18850 return groupname; | |
18851 } | |
18852 #endif // !defined(SRELL_NO_NAMEDCAPTURE) | |
18853 | |
18854 #if !defined(SRELL_NO_VMODE) && !defined(SRELL_NO_UNICODE_PROPERTY) | |
18855 | |
18856 bool parse_escape_p_vmode(posdata_holder &pos, state_type &ccepastate, const ui_l32 *&curpos, const ui_l32 *const end, const cvars_type &cvars) | |
18857 { | |
18858 if (curpos == end) | |
18859 return this->set_error(regex_constants::error_escape); | |
18860 | |
18861 if (ccepastate.char_num == char_alnum::ch_P) // \P{...} | |
18862 ccepastate.flags = sflags::is_not; | |
18863 | |
18864 ccepastate.char_num = lookup_propertynumber(curpos, end); | |
18865 | |
18866 if (ccepastate.char_num == up_constants::error_property) | |
18867 return this->set_error(regex_constants::error_property); | |
18868 | |
18869 if (!this->character_class.is_pos(ccepastate.char_num)) | |
18870 { | |
18871 pos.clear(); | |
18872 | |
18873 this->character_class.load_upranges(pos.ranges, ccepastate.char_num); | |
18874 | |
18875 if (cvars.is_icase() && ccepastate.char_num >= static_cast<ui_l32>(re_character_class::number_of_predefcls)) | |
18876 pos.ranges.make_caseunfoldedcharset(); | |
18877 | |
18878 if (ccepastate.flags) // is_not. | |
18879 { | |
18880 pos.ranges.negation(); | |
18881 ccepastate.flags = 0u; | |
18882 } | |
18883 | |
18884 ccepastate.type = st_character_class; | |
18885 ccepastate.quantifier.reset(1); | |
18886 } | |
18887 else | |
18888 { | |
18889 simple_array<ui_l32> sequences; | |
18890 | |
18891 this->character_class.get_prawdata(sequences, ccepastate.char_num); | |
18892 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) | |
18893 pos.split_seqs_and_ranges(sequences, cvars.is_icase(), cvars.is_back()); | |
18894 #else | |
18895 pos.split_seqs_and_ranges(sequences, cvars.is_icase(), false); | |
18896 #endif | |
18897 | |
18898 ccepastate.quantifier.set(pos.length.first, pos.length.second); | |
18899 | |
18900 if (ccepastate.flags) // is_not. | |
18901 return this->set_error(regex_constants::error_complement); | |
18902 } | |
18903 return true; | |
18904 } | |
18905 | |
18906 ui_l32 transform_seqdata(state_array &piece, const posdata_holder &pos, const cvars_type &cvars) | |
18907 { | |
18908 ui_l32 seqlen = static_cast<ui_l32>(pos.indices.size()); | |
18909 state_type castate; | |
18910 | |
18911 castate.reset(st_character_class); | |
18912 castate.char_num = this->character_class.register_newclass(pos.ranges); | |
18913 | |
18914 if (seqlen > 0) | |
18915 { | |
18916 const bool has_empty = pos.has_empty(); | |
18917 #if !defined(SRELLDBG_NO_ASTERISK_OPT) && !defined(SRELLDBG_NO_POS_OPT) && !defined(SRELLDBG_NO_STATEHOOK) | |
18918 bool hooked = false; | |
18919 state_size_type prevbranch_end = 0; | |
18920 #else | |
18921 state_size_type prevbranch_alt = 0; | |
18922 #endif | |
18923 state_type branchstate; | |
18924 state_type jumpstate; | |
18925 state_array branch; | |
18926 | |
18927 branch.resize(seqlen); | |
18928 for (ui_l32 i = 0; i < seqlen; ++i) | |
18929 branch[i].reset(); | |
18930 | |
18931 branchstate.reset(st_epsilon, epsilon_type::et_alt); | |
18932 | |
18933 jumpstate.reset(st_epsilon, epsilon_type::et_brnchend); // '/' | |
18934 | |
18935 --seqlen; | |
18936 | |
18937 for (; seqlen >= 2; --seqlen) | |
18938 { | |
18939 ui_l32 offset = pos.indices[seqlen]; | |
18940 const ui_l32 seqend = pos.indices[seqlen - 1]; | |
18941 | |
18942 if (offset != seqend) | |
18943 { | |
18944 branch.resize(seqlen + 1); | |
18945 branch[seqlen] = jumpstate; | |
18946 | |
18947 for (ui_l32 count = 0; offset < seqend; ++offset) | |
18948 { | |
18949 const ui_l32 seqch = pos.seqs[offset]; | |
18950 state_type *const ost = &branch[count++]; | |
18951 | |
18952 ost->char_num = seqch & masks::pos_char; | |
18953 this->NFA_states[0].flags |= ost->flags = (seqch & masks::pos_cf) ? sflags::icase : 0u; | |
18954 | |
18955 if (count == seqlen) | |
18956 { | |
18957 #if !defined(SRELLDBG_NO_ASTERISK_OPT) && !defined(SRELLDBG_NO_POS_OPT) && !defined(SRELLDBG_NO_STATEHOOK) | |
18958 state_size_type bpos = 0; | |
18959 | |
18960 for (state_size_type ppos = 0; ppos < piece.size();) | |
18961 { | |
18962 if (bpos + 1 == branch.size()) | |
18963 { | |
18964 piece.push_backncr(piece[ppos]); | |
18965 | |
18966 state_type &pst = piece[ppos]; | |
18967 | |
18968 pst.reset(st_epsilon, epsilon_type::et_alt); | |
18969 pst.next1 = static_cast<std::ptrdiff_t>(piece.size()) - ppos - 1; | |
18970 pst.next2 = static_cast<std::ptrdiff_t>(prevbranch_end) - ppos; | |
18971 pst.flags |= sflags::hooking; | |
18972 hooked = true; | |
18973 | |
18974 state_type &bst = piece[piece.size() - 1]; | |
18975 | |
18976 bst.next1 = bst.next1 - pst.next1; | |
18977 bst.next2 = bst.next2 ? (bst.next2 - pst.next1) : 0; | |
18978 bst.flags |= sflags::hookedlast; | |
18979 goto SKIP_APPEND; | |
18980 } | |
18981 | |
18982 state_type &pst = piece[ppos]; | |
18983 | |
18984 #if 0 | |
18985 if (pst.type == st_epsilon) | |
18986 ppos += pst.next1; | |
18987 else | |
18988 #endif | |
18989 if (pst.char_num == branch[bpos].char_num) | |
18990 { | |
18991 ++bpos; | |
18992 ppos += pst.next1; | |
18993 } | |
18994 else if (pst.next2) | |
18995 ppos += pst.next2; | |
18996 else | |
18997 { | |
18998 pst.next2 = static_cast<std::ptrdiff_t>(piece.size()) - ppos; | |
18999 break; | |
19000 } | |
19001 } | |
19002 | |
19003 { | |
19004 const state_size_type alen = branch.size() - bpos; | |
19005 | |
19006 if (piece.size()) | |
19007 piece[prevbranch_end].next1 = piece.size() + alen - 1 - prevbranch_end; | |
19008 | |
19009 piece.append(branch, bpos, alen); | |
19010 prevbranch_end = piece.size() - 1; | |
19011 } | |
19012 SKIP_APPEND: | |
19013 count = 0; | |
19014 | |
19015 #else // defined(SRELLDBG_NO_ASTERISK_OPT) || defined(SRELLDBG_NO_POS_OPT) || defined(SRELLDBG_NO_STATEHOOK) | |
19016 | |
19017 if (piece.size()) | |
19018 { | |
19019 state_type &laststate = piece[piece.size() - 1]; | |
19020 | |
19021 laststate.next1 = seqlen + 2; | |
19022 piece[prevbranch_alt].next2 = static_cast<std::ptrdiff_t>(piece.size()) - prevbranch_alt; | |
19023 } | |
19024 prevbranch_alt = piece.size(); | |
19025 piece.push_back(branchstate); | |
19026 piece.append(branch); | |
19027 count = 0; | |
19028 | |
19029 #endif // !defined(SRELLDBG_NO_ASTERISK_OPT) && !defined(SRELLDBG_NO_POS_OPT) && !defined(SRELLDBG_NO_STATEHOOK) | |
19030 } | |
19031 } | |
19032 } | |
19033 } | |
19034 | |
19035 if (piece.size()) | |
19036 { | |
19037 #if !defined(SRELLDBG_NO_ASTERISK_OPT) && !defined(SRELLDBG_NO_POS_OPT) && !defined(SRELLDBG_NO_STATEHOOK) | |
19038 state_type &laststate = piece[prevbranch_end]; | |
19039 | |
19040 laststate.next1 = piece.size() + (has_empty ? 2 : 1) - prevbranch_end; | |
19041 | |
19042 branchstate.next2 = static_cast<std::ptrdiff_t>(piece.size()) + 1; | |
19043 piece.insert(0, branchstate); | |
19044 #else | |
19045 state_type &laststate = piece[piece.size() - 1]; | |
19046 | |
19047 laststate.next1 = has_empty ? 3 : 2; | |
19048 | |
19049 piece[prevbranch_alt].next2 = static_cast<std::ptrdiff_t>(piece.size()) - prevbranch_alt; | |
19050 #endif | |
19051 } | |
19052 | |
19053 if (has_empty) | |
19054 { | |
19055 branchstate.next2 = 2; | |
19056 piece.push_back(branchstate); | |
19057 } | |
19058 | |
19059 piece.push_back(castate); | |
19060 | |
19061 branchstate.char_num = epsilon_type::et_ncgopen; | |
19062 branchstate.next1 = 1; | |
19063 branchstate.next2 = 0; | |
19064 branchstate.quantifier.set(1, 0); | |
19065 piece.insert(0, branchstate); | |
19066 | |
19067 branchstate.char_num = epsilon_type::et_ncgclose; | |
19068 branchstate.quantifier.atmost = 1; | |
19069 piece.push_back(branchstate); | |
19070 | |
19071 #if !defined(SRELLDBG_NO_ASTERISK_OPT) && !defined(SRELLDBG_NO_POS_OPT) && !defined(SRELLDBG_NO_STATEHOOK) | |
19072 if (hooked) | |
19073 reorder_piece(piece); | |
19074 #endif | |
19075 | |
19076 if ((this->soflags ^ cvars.soflags) & regex_constants::icase) | |
19077 { | |
19078 range_pairs charclass; | |
19079 | |
19080 if (cvars.is_icase()) | |
19081 { | |
19082 ui_l32 ucftable[ucf_constants::rev_maxset] = {}; | |
19083 | |
19084 for (state_size_type i = 0; i < piece.size(); ++i) | |
19085 { | |
19086 state_type &st = piece[i]; | |
19087 | |
19088 if (st.type == st_character && (st.flags & sflags::icase)) | |
19089 { | |
19090 const ui_l32 setnum = unicode_case_folding::do_caseunfolding(ucftable, st.char_num); | |
19091 | |
19092 charclass.clear(); | |
19093 for (ui_l32 j = 0; j < setnum; ++j) | |
19094 charclass.join(range_pair_helper(ucftable[j])); | |
19095 | |
19096 st.char_num = this->character_class.register_newclass(charclass); | |
19097 st.type = st_character_class; | |
19098 st.flags = 0u; // icase. | |
19099 } | |
19100 } | |
19101 } | |
19102 else | |
19103 { | |
19104 charclass.resize(1); | |
19105 for (state_size_type i = 0; i < piece.size(); ++i) | |
19106 { | |
19107 state_type &st = piece[i]; | |
19108 | |
19109 if (st.type == st_character && unicode_case_folding::try_casefolding(st.char_num) != constants::invalid_u32value) | |
19110 { | |
19111 charclass[0] = range_pair_helper(st.char_num); | |
19112 | |
19113 st.type = st_character_class; | |
19114 st.char_num = this->character_class.register_newclass(charclass); | |
19115 } | |
19116 } | |
19117 } | |
19118 } | |
19119 } | |
19120 return castate.char_num; | |
19121 } | |
19122 | |
19123 #endif // !defined(SRELL_NO_VMODE) && !defined(SRELL_NO_UNICODE_PROPERTY) | |
19124 | |
19125 ui_l32 translate_numbers(const ui_l32 *&curpos, const ui_l32 *const end, const int radix, const std::size_t minsize, const std::size_t maxsize, const ui_l32 maxvalue) const | |
19126 { | |
19127 std::size_t count = 0; | |
19128 ui_l32 u32value = 0; | |
19129 ui_l32 num; | |
19130 | |
19131 for (; maxsize == 0 || count < maxsize; ++curpos, ++count) | |
19132 { | |
19133 | |
19134 if (curpos == end) | |
19135 break; | |
19136 | |
19137 const ui_l32 ch = *curpos; | |
19138 | |
19139 if ((ch >= char_alnum::ch_0 && ch <= char_alnum::ch_7) || (radix >= 10 && (ch == char_alnum::ch_8 || ch == char_alnum::ch_9))) | |
19140 num = ch - char_alnum::ch_0; | |
19141 else if (radix == 16) | |
19142 { | |
19143 if (ch >= char_alnum::ch_A && ch <= char_alnum::ch_F) | |
19144 num = ch - char_alnum::ch_A + 10; | |
19145 else if (ch >= char_alnum::ch_a && ch <= char_alnum::ch_f) | |
19146 num = ch - char_alnum::ch_a + 10; | |
19147 else | |
19148 break; | |
19149 } | |
19150 else | |
19151 break; | |
19152 | |
19153 const ui_l32 nextvalue = u32value * radix + num; | |
19154 | |
19155 if ((/* maxvalue != 0 && */ nextvalue > maxvalue) || nextvalue < u32value) | |
19156 break; | |
19157 | |
19158 u32value = nextvalue; | |
19159 } | |
19160 | |
19161 if (count >= minsize) | |
19162 return u32value; | |
19163 | |
19164 return constants::invalid_u32value; | |
19165 } | |
19166 | |
19167 bool check_backreferences(cvars_type &cvars) | |
19168 { | |
19169 const state_size_type orgsize = this->NFA_states.size(); | |
19170 simple_array<bool> gno_found; | |
19171 state_array additions; | |
19172 | |
19173 gno_found.resize(this->number_of_brackets, false); | |
19174 | |
19175 for (state_size_type backrefpos = 1; backrefpos < orgsize; ++backrefpos) | |
19176 { | |
19177 state_type &brs = this->NFA_states[backrefpos]; | |
19178 | |
19179 if (brs.type == st_roundbracket_close) | |
19180 { | |
19181 gno_found[brs.char_num] = true; | |
19182 } | |
19183 else if (brs.type == st_backreference) | |
19184 { | |
19185 const ui_l32 &backrefno = brs.char_num; | |
19186 | |
19187 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
19188 if (brs.flags & sflags::backrefno_unresolved) | |
19189 { | |
19190 if (backrefno > cvars.unresolved_gnames.size()) | |
19191 return false; // Internal error. | |
19192 | |
19193 brs.flags &= ~sflags::backrefno_unresolved; | |
19194 | |
19195 const ui_l32 *list = this->namedcaptures[cvars.unresolved_gnames[backrefno]]; | |
19196 | |
19197 if (list == NULL || *list < 1) | |
19198 return false; | |
19199 | |
19200 const ui_l32 num = list[0]; | |
19201 state_type newbrs(brs); | |
19202 | |
19203 for (ui_l32 ino = 1; ino <= num; ++ino) | |
19204 { | |
19205 if (gno_found[list[ino]]) | |
19206 { | |
19207 newbrs.char_num = list[ino]; | |
19208 additions.push_back(newbrs); | |
19209 } | |
19210 } | |
19211 | |
19212 if (additions.size() == 0) | |
19213 goto REMOVE_BACKREF; | |
19214 | |
19215 brs.char_num = additions[0].char_num; | |
19216 additions.erase(0); | |
19217 | |
19218 if (additions.size()) | |
19219 { | |
19220 const std::ptrdiff_t next1abs = static_cast<std::ptrdiff_t>(backrefpos + brs.next1); | |
19221 const std::ptrdiff_t next2abs = static_cast<std::ptrdiff_t>(backrefpos + brs.next2); | |
19222 | |
19223 brs.next1 = static_cast<std::ptrdiff_t>(this->NFA_states.size() - backrefpos); | |
19224 brs.next2 = static_cast<std::ptrdiff_t>(this->NFA_states.size() - backrefpos); | |
19225 brs.flags |= sflags::hooking; | |
19226 | |
19227 const std::ptrdiff_t lastabs = static_cast<std::ptrdiff_t>(this->NFA_states.size() + additions.size() - 1); | |
19228 state_type &laststate = additions.back(); | |
19229 | |
19230 laststate.flags |= sflags::hookedlast; | |
19231 laststate.next1 = static_cast<std::ptrdiff_t>(next1abs - lastabs); | |
19232 laststate.next2 = static_cast<std::ptrdiff_t>(next2abs - lastabs); | |
19233 this->NFA_states += additions; | |
19234 additions.clear(); | |
19235 } | |
19236 } | |
19237 else | |
19238 #endif | |
19239 { | |
19240 | |
19241 if (backrefno >= this->number_of_brackets || !gno_found[backrefno]) | |
19242 { | |
19243 REMOVE_BACKREF: | |
19244 if (brs.next1 == -1) | |
19245 { | |
19246 state_type &prevstate = this->NFA_states[backrefpos + brs.next1]; | |
19247 | |
19248 if (prevstate.is_asterisk_or_plus_for_onelen_atom()) | |
19249 { | |
19250 prevstate.next1 = 2; | |
19251 prevstate.next2 = 0; | |
19252 prevstate.char_num = epsilon_type::et_fmrbckrf; | |
19253 } | |
19254 } | |
19255 | |
19256 brs.type = st_epsilon; | |
19257 brs.next2 = 0; | |
19258 brs.char_num = epsilon_type::et_fmrbckrf; | |
19259 } | |
19260 } | |
19261 } | |
19262 } | |
19263 if (orgsize != this->NFA_states.size()) | |
19264 reorder_piece(this->NFA_states); | |
19265 | |
19266 return true; | |
19267 } | |
19268 | |
19269 #if !defined(SRELLDBG_NO_1STCHRCLS) | |
19270 | |
19271 void create_firstchar_class() | |
19272 { | |
19273 #if !defined(SRELLDBG_NO_BITSET) | |
19274 range_pairs fcc; | |
19275 #else | |
19276 range_pairs &fcc = this->firstchar_class; | |
19277 #endif | |
19278 | |
19279 const bool canbe0length = gather_nextchars(fcc, static_cast<state_size_type>(this->NFA_states[0].next1), 0u, false); | |
19280 | |
19281 if (canbe0length) | |
19282 { | |
19283 fcc.set_solerange(range_pair_helper(0, constants::unicode_max_codepoint)); | |
19284 // Expressions would consist of assertions only, such as /^$/. | |
19285 // We cannot but accept every codepoint. | |
19286 } | |
19287 | |
19288 #if !defined(SRELLDBG_NO_BITSET) | |
19289 this->NFA_states[0].quantifier.is_greedy = this->character_class.register_newclass(fcc); | |
19290 #endif | |
19291 | |
19292 #if !defined(SRELLDBG_NO_BITSET) || !defined(SRELLDBG_NO_SCFINDER) | |
19293 set_bitset_table(fcc); | |
19294 #endif | |
19295 } | |
19296 | |
19297 #if !defined(SRELLDBG_NO_BITSET) || !defined(SRELLDBG_NO_SCFINDER) | |
19298 void set_bitset_table(const range_pairs &fcc) | |
19299 { | |
19300 #if !defined(SRELLDBG_NO_SCFINDER) | |
19301 ui_l32 entrychar = constants::max_u32value; | |
19302 #endif | |
19303 | |
19304 for (typename range_pairs::size_type i = 0; i < fcc.size(); ++i) | |
19305 { | |
19306 const range_pair &range = fcc[i]; | |
19307 | |
19308 #if 0 | |
19309 ui_l32 second = range.second <= constants::unicode_max_codepoint ? range.second : constants::unicode_max_codepoint; | |
19310 | |
19311 #if defined(_MSC_VER) && _MSC_VER >= 1400 | |
19312 #pragma warning(push) | |
19313 #pragma warning(disable:4127) | |
19314 #endif | |
19315 if (utf_traits::utftype == 16) | |
19316 #if defined(_MSC_VER) && _MSC_VER >= 1400 | |
19317 #pragma warning(pop) | |
19318 #endif | |
19319 { | |
19320 if (second >= 0x10000 && range.first < 0x10000) | |
19321 { | |
19322 this->firstchar_class_bs.set_range(utf_traits::firstcodeunit(0x10000) & utf_traits::bitsetmask, utf_traits::firstcodeunit(second) & utf_traits::bitsetmask); | |
19323 second = 0xffff; | |
19324 } | |
19325 } | |
19326 this->firstchar_class_bs.set_range(utf_traits::firstcodeunit(range.first) & utf_traits::bitsetmask, utf_traits::firstcodeunit(second) & utf_traits::bitsetmask); | |
19327 | |
19328 #else | |
19329 for (ui_l32 ucp = range.first; ucp <= utf_traits::maxcpvalue; ++ucp) | |
19330 { | |
19331 const ui_l32 firstcu = utf_traits::firstcodeunit(ucp) & utf_traits::bitsetmask; | |
19332 | |
19333 #if !defined(SRELLDBG_NO_BITSET) | |
19334 this->firstchar_class_bs.set(firstcu); | |
19335 #endif | |
19336 | |
19337 #if !defined(SRELLDBG_NO_SCFINDER) | |
19338 if (entrychar != constants::invalid_u32value) | |
19339 { | |
19340 if (entrychar != firstcu) | |
19341 { | |
19342 if (entrychar == constants::max_u32value) | |
19343 entrychar = firstcu; | |
19344 else | |
19345 entrychar = constants::invalid_u32value; | |
19346 } | |
19347 } | |
19348 #endif | |
19349 if (ucp == range.second) | |
19350 break; | |
19351 } | |
19352 #endif | |
19353 } | |
19354 #if !defined(SRELLDBG_NO_SCFINDER) | |
19355 this->NFA_states[0].char_num = entrychar; | |
19356 #endif | |
19357 } | |
19358 #endif // !defined(SRELLDBG_NO_BITSET) || !defined(SRELLDBG_NO_SCFINDER) | |
19359 #endif // !defined(SRELLDBG_NO_1STCHRCLS) | |
19360 | |
19361 bool gather_nextchars(range_pairs &nextcharclass, state_size_type pos, simple_array<bool> &checked, const ui_l32 bracket_number, const bool subsequent) const | |
19362 { | |
19363 bool canbe0length = false; | |
19364 | |
19365 for (;;) | |
19366 { | |
19367 const state_type &state = this->NFA_states[pos]; | |
19368 | |
19369 if (checked[pos]) | |
19370 break; | |
19371 | |
19372 checked[pos] = true; | |
19373 | |
19374 if (state.next2 | |
19375 && (state.type != st_check_counter || !state.quantifier.is_greedy || state.quantifier.atleast == 0) | |
19376 && (state.type != st_save_and_reset_counter) | |
19377 && (state.type != st_roundbracket_open) | |
19378 && (state.type != st_roundbracket_close || state.char_num != bracket_number) | |
19379 && (state.type != st_repeat_in_push) | |
19380 && (state.type != st_backreference || (state.next1 != state.next2)) | |
19381 && (state.type != st_lookaround_open)) | |
19382 if (gather_nextchars(nextcharclass, pos + state.next2, checked, bracket_number, subsequent)) | |
19383 canbe0length = true; | |
19384 | |
19385 switch (state.type) | |
19386 { | |
19387 case st_character: | |
19388 if (!(state.flags & sflags::icase)) | |
19389 { | |
19390 nextcharclass.join(range_pair_helper(state.char_num)); | |
19391 } | |
19392 else | |
19393 { | |
19394 ui_l32 table[ucf_constants::rev_maxset] = {}; | |
19395 const ui_l32 setnum = unicode_case_folding::do_caseunfolding(table, state.char_num); | |
19396 | |
19397 for (ui_l32 j = 0; j < setnum; ++j) | |
19398 nextcharclass.join(range_pair_helper(table[j])); | |
19399 } | |
19400 return canbe0length; | |
19401 | |
19402 case st_character_class: | |
19403 nextcharclass.merge(this->character_class[state.char_num]); | |
19404 return canbe0length; | |
19405 | |
19406 case st_backreference: | |
19407 { | |
19408 const state_size_type nextpos = find_next1_of_bracketopen(state.char_num); | |
19409 | |
19410 gather_nextchars(nextcharclass, nextpos, state.char_num, subsequent); | |
19411 } | |
19412 break; | |
19413 | |
19414 case st_eol: | |
19415 case st_bol: | |
19416 case st_boundary: | |
19417 if (subsequent) | |
19418 nextcharclass.set_solerange(range_pair_helper(0, constants::unicode_max_codepoint)); | |
19419 | |
19420 break; | |
19421 | |
19422 case st_lookaround_open: | |
19423 if (!state.flags && state.quantifier.is_greedy == 0) // !is_not. | |
19424 { | |
19425 gather_nextchars(nextcharclass, pos + 2, checked, 0u, subsequent); | |
19426 } | |
19427 else if (subsequent) | |
19428 nextcharclass.set_solerange(range_pair_helper(0, constants::unicode_max_codepoint)); | |
19429 | |
19430 break; | |
19431 | |
19432 case st_roundbracket_close: | |
19433 if (/* bracket_number == 0 || */ state.char_num != bracket_number) | |
19434 break; | |
19435 //@fallthrough@ | |
19436 | |
19437 case st_success: // == st_lookaround_close. | |
19438 return true; | |
19439 | |
19440 case st_check_counter: | |
19441 if (!state.quantifier.is_greedy && state.quantifier.atleast >= 1) | |
19442 return canbe0length; | |
19443 //@fallthrough@ | |
19444 | |
19445 default:; | |
19446 } | |
19447 | |
19448 if (state.next1) | |
19449 pos += state.next1; | |
19450 else | |
19451 break; | |
19452 } | |
19453 return canbe0length; | |
19454 } | |
19455 | |
19456 bool gather_nextchars(range_pairs &nextcharclass, const state_size_type pos, const ui_l32 bracket_number, const bool subsequent) const | |
19457 { | |
19458 simple_array<bool> checked; | |
19459 | |
19460 checked.resize(this->NFA_states.size(), false); | |
19461 return gather_nextchars(nextcharclass, pos, checked, bracket_number, subsequent); | |
19462 } | |
19463 | |
19464 state_size_type find_next1_of_bracketopen(const ui_l32 bracketno) const | |
19465 { | |
19466 for (state_size_type no = 0; no < this->NFA_states.size(); ++no) | |
19467 { | |
19468 const state_type &state = this->NFA_states[no]; | |
19469 | |
19470 if (state.type == st_roundbracket_open && state.char_num == bracketno) | |
19471 return no + state.next1; | |
19472 } | |
19473 return 0; | |
19474 } | |
19475 | |
19476 void relativejump_to_absolutejump() | |
19477 { | |
19478 for (state_size_type pos = 0; pos < this->NFA_states.size(); ++pos) | |
19479 { | |
19480 state_type &state = this->NFA_states[pos]; | |
19481 | |
19482 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
19483 if (state.next1 || state.type == st_character || state.type == st_character_class) | |
19484 #else | |
19485 if (state.next1) | |
19486 #endif | |
19487 state.next_state1 = &this->NFA_states[pos + state.next1]; | |
19488 else | |
19489 state.next_state1 = NULL; | |
19490 | |
19491 if (state.next2) | |
19492 state.next_state2 = &this->NFA_states[pos + state.next2]; | |
19493 else | |
19494 state.next_state2 = NULL; | |
19495 } | |
19496 } | |
19497 | |
19498 void optimise() | |
19499 { | |
19500 #if !defined(SRELLDBG_NO_BRANCH_OPT2) && !defined(SRELLDBG_NO_STATEHOOK) | |
19501 branch_optimisation2(); | |
19502 #endif | |
19503 | |
19504 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) && !defined(SRELLDBG_NO_MPREWINDER) | |
19505 if (!this->bmdata) | |
19506 find_entrypoint(); | |
19507 #endif | |
19508 | |
19509 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
19510 asterisk_optimisation(); | |
19511 #endif | |
19512 | |
19513 #if !defined(SRELLDBG_NO_BRANCH_OPT) && !defined(SRELLDBG_NO_ASTERISK_OPT) | |
19514 branch_optimisation(); | |
19515 #endif | |
19516 | |
19517 #if !defined(SRELLDBG_NO_1STCHRCLS) | |
19518 create_firstchar_class(); | |
19519 #endif | |
19520 | |
19521 #if !defined(SRELLDBG_NO_SKIP_EPSILON) | |
19522 skip_epsilon(); | |
19523 #endif | |
19524 | |
19525 #if !defined(SRELLDBG_NO_CCPOS) | |
19526 set_charclass_posinfo(); | |
19527 #endif | |
19528 } | |
19529 | |
19530 #if !defined(SRELLDBG_NO_SKIP_EPSILON) | |
19531 | |
19532 void skip_epsilon() | |
19533 { | |
19534 for (state_size_type pos = 0; pos < this->NFA_states.size(); ++pos) | |
19535 { | |
19536 state_type &state = this->NFA_states[pos]; | |
19537 | |
19538 if (state.next1) | |
19539 state.next1 = static_cast<std::ptrdiff_t>(skip_nonbranch_epsilon(pos + state.next1)) - pos; | |
19540 | |
19541 if (state.next2) | |
19542 state.next2 = static_cast<std::ptrdiff_t>(skip_nonbranch_epsilon(pos + state.next2)) - pos; | |
19543 } | |
19544 } | |
19545 | |
19546 state_size_type skip_nonbranch_epsilon(state_size_type pos) const | |
19547 { | |
19548 for (;;) | |
19549 { | |
19550 const state_type &state = this->NFA_states[pos]; | |
19551 | |
19552 if (state.type == st_epsilon && state.next2 == 0) | |
19553 { | |
19554 pos += state.next1; | |
19555 continue; | |
19556 } | |
19557 break; | |
19558 } | |
19559 return pos; | |
19560 } | |
19561 | |
19562 #endif | |
19563 | |
19564 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
19565 | |
19566 void asterisk_optimisation() | |
19567 { | |
19568 const state_size_type orgsize = this->NFA_states.size(); | |
19569 | |
19570 for (state_size_type pos = 1u; pos < orgsize; ++pos) | |
19571 { | |
19572 state_type &curstate = this->NFA_states[pos]; | |
19573 | |
19574 switch (curstate.type) | |
19575 { | |
19576 case st_character: | |
19577 case st_character_class: | |
19578 if (this->NFA_states[pos - 1].is_question_or_asterisk_before_corcc()) | |
19579 { | |
19580 state_type &estate = this->NFA_states[pos - 1]; | |
19581 const state_size_type nextno = pos + estate.farnext() - 1; | |
19582 | |
19583 if (is_exclusive_sequence(estate.quantifier, pos, nextno)) | |
19584 { | |
19585 state_type &estate2 = this->NFA_states[pos - 1]; | |
19586 state_type &corccstate = this->NFA_states[pos]; | |
19587 | |
19588 estate2.next1 = 1; | |
19589 estate2.next2 = 0; | |
19590 estate2.char_num = epsilon_type::et_aofmrast; | |
19591 | |
19592 if (corccstate.next1 < 0) | |
19593 corccstate.next1 = 0; | |
19594 | |
19595 if (corccstate.next2 == 0) | |
19596 corccstate.next2 = nextno - pos; | |
19597 } | |
19598 } | |
19599 continue; | |
19600 | |
19601 default:; | |
19602 } | |
19603 } | |
19604 if (orgsize != this->NFA_states.size()) | |
19605 reorder_piece(this->NFA_states); | |
19606 } | |
19607 | |
19608 bool is_exclusive_sequence(const re_quantifier &eq, const state_size_type curno, const state_size_type nextno) // const | |
19609 { | |
19610 const state_type &curstate = this->NFA_states[curno]; | |
19611 range_pairs curchar_class; | |
19612 range_pairs nextchar_class; | |
19613 | |
19614 if (curstate.type == st_character) | |
19615 { | |
19616 curchar_class.join(range_pair_helper(curstate.char_num)); | |
19617 if (curstate.flags & sflags::icase) | |
19618 curchar_class.make_caseunfoldedcharset(); | |
19619 } | |
19620 else if (curstate.type == st_character_class) | |
19621 { | |
19622 curchar_class = this->character_class[curstate.char_num]; | |
19623 if (curchar_class.size() == 0) // Means [], which always makes matching fail. | |
19624 return true; // For preventing the automaton from pushing bt data. | |
19625 } | |
19626 else | |
19627 { | |
19628 return false; | |
19629 } | |
19630 | |
19631 const bool canbe0length = gather_nextchars(nextchar_class, nextno, 0u, true); | |
19632 | |
19633 if (nextchar_class.size()) | |
19634 { | |
19635 if (!canbe0length || eq.is_greedy) | |
19636 { | |
19637 #if !defined(SRELLDBG_NO_SPLITCC) | |
19638 | |
19639 range_pairs kept; | |
19640 range_pairs removed; | |
19641 | |
19642 curchar_class.split_ranges(kept, removed, nextchar_class); | |
19643 | |
19644 if (removed.size() == 0) // !curchar_class.is_overlap(nextchar_class) | |
19645 return true; | |
19646 | |
19647 if (curstate.type == st_character_class && kept.size() && eq.is_infinity()) | |
19648 { | |
19649 { | |
19650 state_type &curstate2 = this->NFA_states[curno]; | |
19651 | |
19652 curstate2.char_num = this->character_class.register_newclass(kept); | |
19653 curstate2.flags |= (sflags::hooking | sflags::byn2); | |
19654 curstate2.next2 = this->NFA_states.size() - curno; | |
19655 } | |
19656 state_array additions; | |
19657 additions.resize(2); | |
19658 state_type &n0 = additions[0]; | |
19659 state_type &n1 = additions[1]; | |
19660 | |
19661 n0.reset(st_epsilon, epsilon_type::et_ccastrsk); | |
19662 n0.quantifier = eq; | |
19663 // n0.next2 = 1; | |
19664 n0.next2 = static_cast<std::ptrdiff_t>(nextno) - this->NFA_states.size(); | |
19665 if (!n0.quantifier.is_greedy) | |
19666 { | |
19667 n0.next1 = n0.next2; | |
19668 n0.next2 = 1; | |
19669 } | |
19670 | |
19671 n1.reset(st_character_class, this->character_class.register_newclass(removed)); | |
19672 n1.next1 = static_cast<std::ptrdiff_t>(curno) - this->NFA_states.size() - 1; | |
19673 // n1.next2 = 0; | |
19674 n1.flags |= sflags::hookedlast; | |
19675 this->NFA_states += additions; | |
19676 return true; | |
19677 } | |
19678 | |
19679 #else // defined(SRELLDBG_NO_SPLITCC) | |
19680 | |
19681 if (!curchar_class.is_overlap(nextchar_class)) | |
19682 { | |
19683 return true; | |
19684 } | |
19685 | |
19686 #endif // !defined(SRELLDBG_NO_SPLITCC) | |
19687 } | |
19688 } | |
19689 else if (/* nextchar_class.size() == 0 && */ (!canbe0length || only_success_left(nextno))) | |
19690 { | |
19691 // (size() == 0 && !canbe0length) means []. | |
19692 return eq.is_greedy ? true : false; | |
19693 } | |
19694 | |
19695 return false; | |
19696 } | |
19697 | |
19698 bool only_success_left(state_size_type pos) const | |
19699 { | |
19700 for (;;) | |
19701 { | |
19702 const state_type &state = this->NFA_states[pos]; | |
19703 | |
19704 switch (state.type) | |
19705 { | |
19706 case st_success: | |
19707 return true; | |
19708 | |
19709 case st_roundbracket_close: | |
19710 case st_backreference: | |
19711 if (state.next2 != 0 && state.next1 != state.next2) | |
19712 return false; | |
19713 break; | |
19714 | |
19715 case st_epsilon: | |
19716 if (state.next2 != 0 && !only_success_left(pos + state.next2)) | |
19717 return false; | |
19718 break; | |
19719 | |
19720 case st_roundbracket_open: | |
19721 break; // /a*()/ | |
19722 | |
19723 default: | |
19724 return false; | |
19725 } | |
19726 if (state.next1) | |
19727 pos += state.next1; | |
19728 else | |
19729 return false; | |
19730 } | |
19731 } | |
19732 #endif // !defined(SRELLDBG_NO_ASTERISK_OPT) | |
19733 | |
19734 void reorder_piece(state_array &piece) const | |
19735 { | |
19736 simple_array<ui_l32> newpos; | |
19737 ui_l32 offset = 0; | |
19738 | |
19739 newpos.resize(piece.size() + 1, 0); | |
19740 newpos[piece.size()] = static_cast<ui_l32>(piece.size()); | |
19741 | |
19742 for (ui_l32 indx = 0; indx < piece.size(); ++indx) | |
19743 { | |
19744 if (newpos[indx] == 0) | |
19745 { | |
19746 newpos[indx] = indx + offset; | |
19747 | |
19748 state_type &st = piece[indx]; | |
19749 | |
19750 if (st.flags & sflags::hooking) | |
19751 { | |
19752 const std::ptrdiff_t next1or2 = (st.flags & sflags::byn2) ? (st.flags ^= sflags::byn2, st.next2) : st.next1; | |
19753 st.flags ^= sflags::hooking; | |
19754 | |
19755 for (ui_l32 i = static_cast<ui_l32>(indx + next1or2); i < piece.size(); ++i) | |
19756 { | |
19757 ++offset; | |
19758 newpos[i] = indx + offset; | |
19759 if (piece[i].flags & sflags::hookedlast) | |
19760 { | |
19761 piece[i].flags ^= sflags::hookedlast; | |
19762 break; | |
19763 } | |
19764 } | |
19765 } | |
19766 } | |
19767 else | |
19768 --offset; | |
19769 } | |
19770 | |
19771 state_array newpiece(piece.size()); | |
19772 | |
19773 for (state_size_type indx = 0; indx < piece.size(); ++indx) | |
19774 { | |
19775 state_type &st = piece[indx]; | |
19776 | |
19777 if (st.next1 != 0) | |
19778 st.next1 = static_cast<std::ptrdiff_t>(newpos[indx + st.next1]) - newpos[indx]; | |
19779 | |
19780 if (st.next2 != 0) | |
19781 st.next2 = static_cast<std::ptrdiff_t>(newpos[indx + st.next2]) - newpos[indx]; | |
19782 | |
19783 newpiece[newpos[indx]] = piece[indx]; | |
19784 } | |
19785 newpiece.swap(piece); | |
19786 } | |
19787 | |
19788 bool check_if_backref_used(state_size_type pos, const ui_l32 number) const | |
19789 { | |
19790 for (; pos < this->NFA_states.size(); ++pos) | |
19791 { | |
19792 const state_type &state = this->NFA_states[pos]; | |
19793 | |
19794 if (state.type == st_backreference && state.char_num == number) | |
19795 return true; | |
19796 } | |
19797 return false; | |
19798 } | |
19799 | |
19800 #if !defined(SRELLDBG_NO_BRANCH_OPT) || !defined(SRELLDBG_NO_BRANCH_OPT2) | |
19801 | |
19802 state_size_type gather_if_char_or_charclass(range_pairs &charclass, state_size_type pos) const | |
19803 { | |
19804 for (;;) | |
19805 { | |
19806 const state_type &cst = this->NFA_states[pos]; | |
19807 | |
19808 if (cst.next2 != 0) | |
19809 break; | |
19810 | |
19811 if (cst.type == st_character) | |
19812 { | |
19813 charclass.set_solerange(range_pair_helper(cst.char_num)); | |
19814 if (cst.flags & sflags::icase) | |
19815 charclass.make_caseunfoldedcharset(); | |
19816 return pos; | |
19817 } | |
19818 else if (cst.type == st_character_class) | |
19819 { | |
19820 charclass = this->character_class[cst.char_num]; | |
19821 return pos; | |
19822 } | |
19823 else if (cst.type == st_epsilon && cst.char_num != epsilon_type::et_jmpinlp) | |
19824 { | |
19825 pos += cst.next1; | |
19826 } | |
19827 else | |
19828 break; | |
19829 } | |
19830 return 0; | |
19831 } | |
19832 #endif // !defined(SRELLDBG_NO_BRANCH_OPT) || !defined(SRELLDBG_NO_BRANCH_OPT2) | |
19833 | |
19834 #if !defined(SRELLDBG_NO_BRANCH_OPT) | |
19835 void branch_optimisation() | |
19836 { | |
19837 range_pairs nextcharclass1; | |
19838 | |
19839 for (state_size_type pos = 1; pos < this->NFA_states.size(); ++pos) | |
19840 { | |
19841 const state_type &state = this->NFA_states[pos]; | |
19842 | |
19843 if (state.is_branch()) | |
19844 { | |
19845 const state_size_type nextcharpos = gather_if_char_or_charclass(nextcharclass1, pos + state.next1); | |
19846 | |
19847 if (nextcharpos) | |
19848 { | |
19849 range_pairs nextcharclass2; | |
19850 const bool canbe0length = gather_nextchars(nextcharclass2, pos + state.next2, 0u /* bracket_number */, true); | |
19851 | |
19852 if (!canbe0length && !nextcharclass1.is_overlap(nextcharclass2)) | |
19853 { | |
19854 state_type &branch = this->NFA_states[pos]; | |
19855 state_type &next1 = this->NFA_states[nextcharpos]; | |
19856 | |
19857 next1.next2 = pos + branch.next2 - nextcharpos; | |
19858 branch.next2 = 0; | |
19859 branch.char_num = epsilon_type::et_bo1fmrbr; | |
19860 } | |
19861 } | |
19862 } | |
19863 } | |
19864 } | |
19865 #endif // !defined(SRELLDBG_NO_BRANCH_OPT) | |
19866 | |
19867 #if !defined(SRELLDBG_NO_BMH) | |
19868 void setup_bmhdata() | |
19869 { | |
19870 simple_array<ui_l32> u32s; | |
19871 | |
19872 for (state_size_type i = 1; i < this->NFA_states.size(); ++i) | |
19873 { | |
19874 const state_type &state = this->NFA_states[i]; | |
19875 | |
19876 if (state.type == st_character) | |
19877 u32s.push_backncr(state.char_num); | |
19878 else | |
19879 { | |
19880 u32s.clear(); | |
19881 break; | |
19882 } | |
19883 } | |
19884 | |
19885 if (u32s.size() > 1) | |
19886 // if ((u32s.size() > 1 && !this->is_ricase()) || (u32s.size() > 2 && this->is_ricase())) | |
19887 { | |
19888 if (this->bmdata) | |
19889 this->bmdata->clear(); | |
19890 else | |
19891 this->bmdata = new re_bmh<charT, utf_traits>; | |
19892 | |
19893 this->bmdata->setup(u32s, this->is_ricase()); | |
19894 return /* false */; | |
19895 } | |
19896 | |
19897 if (this->bmdata) | |
19898 delete this->bmdata; | |
19899 this->bmdata = NULL; | |
19900 // return true; | |
19901 } | |
19902 #endif // !defined(SRELLDBG_NO_BMH) | |
19903 | |
19904 #if !defined(SRELLDBG_NO_CCPOS) | |
19905 void set_charclass_posinfo() | |
19906 { | |
19907 this->character_class.finalise(); | |
19908 for (state_size_type i = 1; i < this->NFA_states.size(); ++i) | |
19909 { | |
19910 state_type &state = this->NFA_states[i]; | |
19911 | |
19912 if (state.type == st_character_class || state.type == st_bol || state.type == st_eol || state.type == st_boundary) | |
19913 { | |
19914 const range_pair &posinfo = this->character_class.charclasspos(state.char_num); | |
19915 state.quantifier.set(posinfo.first, posinfo.second); | |
19916 } | |
19917 } | |
19918 } | |
19919 #endif // !defined(SRELLDBG_NO_CCPOS) | |
19920 | |
19921 #if !defined(SRELLDBG_NO_BRANCH_OPT2) && !defined(SRELLDBG_NO_STATEHOOK) | |
19922 | |
19923 void branch_optimisation2() | |
19924 { | |
19925 bool hooked = false; | |
19926 range_pairs basealt1stch; | |
19927 range_pairs nextalt1stch; | |
19928 | |
19929 for (state_size_type pos = 1; pos < this->NFA_states.size(); ++pos) | |
19930 { | |
19931 const state_type &curstate = this->NFA_states[pos]; | |
19932 | |
19933 if (curstate.type == st_epsilon && curstate.next2 != 0 && curstate.char_num == epsilon_type::et_alt) // '|' | |
19934 { | |
19935 const state_size_type next1pos = pos + curstate.next1; | |
19936 state_size_type precharchainpos = pos; | |
19937 | |
19938 if (gather_if_char_or_charclass(basealt1stch, next1pos) != 0) | |
19939 { | |
19940 state_type &next1ref = this->NFA_states[next1pos]; | |
19941 state_size_type next2pos = precharchainpos + curstate.next2; | |
19942 state_size_type postcharchainpos = 0; | |
19943 | |
19944 for (;;) | |
19945 { | |
19946 state_size_type next2next1pos = next2pos; | |
19947 state_type &nstate2 = this->NFA_states[next2pos]; | |
19948 state_size_type next2next2pos = 0; | |
19949 | |
19950 if (nstate2.type == st_epsilon) | |
19951 { | |
19952 if (nstate2.next2 != 0) | |
19953 { | |
19954 if (nstate2.char_num == epsilon_type::et_alt) // '|' | |
19955 next2next2pos = next2pos + nstate2.next2; | |
19956 } | |
19957 next2next1pos += nstate2.next1; | |
19958 } | |
19959 | |
19960 if (gather_if_char_or_charclass(nextalt1stch, next2next1pos) != 0) | |
19961 { | |
19962 const int relation = basealt1stch.relationship(nextalt1stch); | |
19963 | |
19964 if (relation == 0) | |
19965 { | |
19966 state_type &prechainalt = this->NFA_states[precharchainpos]; | |
19967 state_type &becomes_unused = this->NFA_states[next2next1pos]; | |
19968 const state_size_type next1next1pos = next1pos + next1ref.next1; | |
19969 | |
19970 becomes_unused.type = st_epsilon; | |
19971 | |
19972 if (next2next2pos) | |
19973 { | |
19974 becomes_unused.char_num = epsilon_type::et_bo2fmrbr; // '2' | |
19975 | |
19976 if (postcharchainpos == 0) | |
19977 { | |
19978 nstate2.next1 = next1next1pos - next2pos; | |
19979 nstate2.next2 = next2next1pos - next2pos; | |
19980 | |
19981 next1ref.next1 = next2pos - next1pos; | |
19982 next1ref.flags |= sflags::hooking; | |
19983 nstate2.flags |= sflags::hookedlast; | |
19984 hooked = true; | |
19985 } | |
19986 else | |
19987 { | |
19988 state_type &becomes_alt = this->NFA_states[postcharchainpos]; | |
19989 | |
19990 becomes_alt.char_num = epsilon_type::et_alt; // '|' <- '2' | |
19991 becomes_alt.next2 = next2next1pos - postcharchainpos; | |
19992 | |
19993 nstate2.next2 = 0; | |
19994 nstate2.char_num = epsilon_type::et_bo2skpd; // '!' | |
19995 } | |
19996 postcharchainpos = next2next1pos; | |
19997 prechainalt.next2 = next2next2pos - precharchainpos; | |
19998 } | |
19999 else | |
20000 { | |
20001 if (postcharchainpos == 0) | |
20002 { | |
20003 becomes_unused.char_num = epsilon_type::et_alt; // '|' | |
20004 becomes_unused.next2 = becomes_unused.next1; | |
20005 becomes_unused.next1 = next1next1pos - next2next1pos; | |
20006 | |
20007 next1ref.next1 = next2next1pos - next1pos; | |
20008 next1ref.flags |= sflags::hooking; | |
20009 becomes_unused.flags |= sflags::hookedlast; | |
20010 hooked = true; | |
20011 } | |
20012 else | |
20013 { | |
20014 state_type &becomes_alt = this->NFA_states[postcharchainpos]; | |
20015 | |
20016 becomes_alt.char_num = epsilon_type::et_alt; // '|' <- '2' | |
20017 becomes_alt.next2 = next2next1pos + becomes_unused.next1 - postcharchainpos; | |
20018 | |
20019 becomes_unused.char_num = epsilon_type::et_bo2skpd; // '!' | |
20020 } | |
20021 prechainalt.next2 = 0; | |
20022 prechainalt.char_num = epsilon_type::et_bo2fmrbr; // '2' | |
20023 } | |
20024 } | |
20025 else if (relation == 1) | |
20026 { | |
20027 break; | |
20028 } | |
20029 else | |
20030 precharchainpos = next2pos; | |
20031 } | |
20032 else | |
20033 { | |
20034 // Fix for bug210428. | |
20035 // Original: /mm2|m|mm/ | |
20036 // 1st step: /m(?:m2||m)/ <- No more optimisation can be performed. Must quit. | |
20037 // 2nd step: /mm(?:2||)/ <- BUG. | |
20038 break; | |
20039 } | |
20040 | |
20041 if (next2next2pos == 0) | |
20042 break; | |
20043 | |
20044 next2pos = next2next2pos; | |
20045 } | |
20046 } | |
20047 } | |
20048 } | |
20049 | |
20050 if (hooked) | |
20051 reorder_piece(this->NFA_states); | |
20052 } | |
20053 #endif // !defined(SRELLDBG_NO_BRANCH_OPT2) && !defined(SRELLDBG_NO_STATEHOOK) | |
20054 | |
20055 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) && !defined(SRELLDBG_NO_MPREWINDER) | |
20056 | |
20057 void find_entrypoint() | |
20058 { | |
20059 if (find_singlechar_ep(1u)) | |
20060 return; | |
20061 | |
20062 find_better_ep(1u); | |
20063 } | |
20064 | |
20065 bool find_singlechar_ep(state_size_type cur) | |
20066 { | |
20067 state_size_type curatompos = 0; | |
20068 state_size_type singlecharpos = 0; | |
20069 state_size_type seqpos = 0; | |
20070 ui_l32 prevchar = constants::invalid_u32value; | |
20071 ui_l32 charcount = 0; | |
20072 bool needs_rerun = false; | |
20073 | |
20074 for (; cur < this->NFA_states.size();) | |
20075 { | |
20076 const state_type &state = this->NFA_states[cur]; | |
20077 | |
20078 switch (state.type) | |
20079 { | |
20080 case st_character: | |
20081 curatompos = cur; | |
20082 ST_CHARACTER: | |
20083 if (!(this->NFA_states[cur].flags & sflags::icase)) | |
20084 { | |
20085 if (prevchar != constants::invalid_u32value) | |
20086 seqpos = curatompos; | |
20087 | |
20088 singlecharpos = curatompos; | |
20089 ++charcount; | |
20090 prevchar = this->NFA_states[cur].char_num; | |
20091 ++cur; | |
20092 continue; | |
20093 } | |
20094 //@fallthrough@ | |
20095 | |
20096 case st_character_class: | |
20097 prevchar = constants::invalid_u32value; | |
20098 ++cur; | |
20099 continue; | |
20100 | |
20101 case st_epsilon: | |
20102 if (state.next2 == 0) | |
20103 { | |
20104 if (state.char_num == epsilon_type::et_jmpinlp) | |
20105 { | |
20106 const state_size_type rapos = cur + state.next1; | |
20107 const state_type &repatom = this->NFA_states[rapos]; | |
20108 | |
20109 if (repatom.type == st_character) | |
20110 { | |
20111 curatompos = cur; | |
20112 cur = rapos; | |
20113 needs_rerun = true; | |
20114 goto ST_CHARACTER; | |
20115 } | |
20116 prevchar = constants::invalid_u32value; | |
20117 cur = rapos; | |
20118 } | |
20119 else | |
20120 ++cur; | |
20121 continue; | |
20122 } | |
20123 | |
20124 if ((state.char_num == epsilon_type::et_ccastrsk) | |
20125 || ((state.char_num == epsilon_type::et_dfastrsk) | |
20126 && (is_reversible_atom(cur + state.nearnext(), true)))) | |
20127 { | |
20128 cur += state.farnext(); | |
20129 needs_rerun = true; | |
20130 prevchar = constants::invalid_u32value; | |
20131 continue; | |
20132 } | |
20133 break; | |
20134 | |
20135 case st_save_and_reset_counter: | |
20136 { | |
20137 const state_size_type ccpos = cur + state.next1; | |
20138 const state_size_type rapos = ccpos + 3; | |
20139 const state_type &ccstate = this->NFA_states[ccpos]; | |
20140 const state_type &repatom = this->NFA_states[rapos]; | |
20141 | |
20142 if (ccstate.quantifier.atleast > 0 && repatom.type == st_character) | |
20143 { | |
20144 curatompos = cur; | |
20145 cur = rapos; | |
20146 needs_rerun = true; | |
20147 goto ST_CHARACTER; | |
20148 } | |
20149 | |
20150 if (is_reversible_atom(rapos, ccstate.quantifier.atleast == 0)) | |
20151 { | |
20152 cur = ccpos + ccstate.farnext(); | |
20153 needs_rerun = true; | |
20154 prevchar = constants::invalid_u32value; | |
20155 continue; | |
20156 } | |
20157 } | |
20158 break; | |
20159 | |
20160 case st_check_counter: | |
20161 cur += state.farnext(); | |
20162 continue; | |
20163 | |
20164 case st_roundbracket_open: | |
20165 if (check_if_backref_used(cur + 1, state.char_num)) | |
20166 break; | |
20167 needs_rerun = true; | |
20168 //@fallthrough@ | |
20169 | |
20170 case st_repeat_in_push: | |
20171 cur += state.next1; | |
20172 continue; | |
20173 | |
20174 case st_check_0_width_repeat: | |
20175 cur += state.next2; | |
20176 continue; | |
20177 | |
20178 case st_roundbracket_close: | |
20179 case st_bol: | |
20180 case st_eol: | |
20181 case st_boundary: | |
20182 ++cur; | |
20183 continue; | |
20184 | |
20185 // Not supported: backreference, lookaround_open. | |
20186 // NFA_states broken if appeares: restore_counter, increment_counter, decrement_counter, | |
20187 // roundbracket_pop, repeat_in_pop, lookaround_pop. | |
20188 // Finish: success (== lookaround_close). | |
20189 default: | |
20190 break; | |
20191 } | |
20192 break; | |
20193 } | |
20194 | |
20195 return seqpos != 0 | |
20196 ? (create_rewinder(seqpos, needs_rerun), true) | |
20197 : (charcount > 1 ? (create_rewinder(singlecharpos, needs_rerun), true) : false); | |
20198 } | |
20199 | |
20200 bool is_reversible_atom(const state_size_type pos, const bool check_optseq) const | |
20201 { | |
20202 const state_type &s = this->NFA_states[pos]; | |
20203 state_size_type end = 0u; | |
20204 | |
20205 if (s.type == st_character || s.type == st_character_class) | |
20206 return true; | |
20207 | |
20208 if (check_optseq) | |
20209 return false; // Optional sequence (?, *, {0,m}) found. | |
20210 // Not only at the beginning but also at any position does | |
20211 // an optional sequence need measures to be taken: | |
20212 // "2000-1-1" =~ /\d(\d+-)?\d{1,2}-\d{1,2}/ | |
20213 | |
20214 switch (s.type) | |
20215 { | |
20216 case st_epsilon: | |
20217 if (s.next2 == 0 && s.char_num == epsilon_type::et_ncgopen) | |
20218 end = skip_group(this->NFA_states, pos); | |
20219 break; | |
20220 | |
20221 case st_roundbracket_open: | |
20222 if (check_if_backref_used(pos + 1, s.char_num)) | |
20223 return false; | |
20224 | |
20225 end = skip_bracket(s.char_num, this->NFA_states, pos); | |
20226 break; | |
20227 | |
20228 case st_repeat_in_push: | |
20229 end = skip_0width_checker(s.char_num, this->NFA_states, pos); | |
20230 //@fallthrough@ | |
20231 | |
20232 default:; | |
20233 } | |
20234 return end != 0u && !has_obstacle_to_reverse(pos, end, false); | |
20235 } | |
20236 | |
20237 bool has_obstacle_to_reverse(state_size_type pos, const state_size_type end, const bool check_optseq) const | |
20238 { | |
20239 for (; pos < end;) | |
20240 { | |
20241 const state_type &s = this->NFA_states[pos]; | |
20242 | |
20243 if (s.type == st_epsilon) | |
20244 { | |
20245 if (s.char_num == epsilon_type::et_alt) | |
20246 return true; | |
20247 // The rewinder cannot support Disjunction because forward matching | |
20248 // and backward matching can go through different routes: | |
20249 // * In a forward search /(?:.|ab)c/ against "abc" matches "abc", | |
20250 // while in a backward search from 'c' it matches "bc". | |
20251 | |
20252 // Because of the same reason, the rewinder cannot support an optional | |
20253 // group either. Semantically, /(\d+-)?\d{1,2}-\d{1,2}/ is equivalent to | |
20254 // /(\d+-|)\d{1,2}-\d{1,2}/. | |
20255 if (check_optseq) | |
20256 { | |
20257 if (s.char_num == epsilon_type::et_jmpinlp) | |
20258 { | |
20259 pos += s.next1; | |
20260 continue; | |
20261 } | |
20262 | |
20263 if (s.char_num == epsilon_type::et_dfastrsk && s.next2 != 0 && !this->NFA_states[pos + s.nearnext()].is_character_or_class()) | |
20264 return true; | |
20265 } | |
20266 | |
20267 } | |
20268 else if (s.type == st_backreference) | |
20269 return true; | |
20270 else if (s.type == st_lookaround_open) | |
20271 return true; | |
20272 else if (check_optseq && s.type == st_check_counter) | |
20273 { | |
20274 if (s.quantifier.atleast == 0 && !this->NFA_states[pos + 3].is_character_or_class()) | |
20275 return true; | |
20276 pos += 3; | |
20277 continue; | |
20278 } | |
20279 ++pos; | |
20280 } | |
20281 return false; | |
20282 } | |
20283 | |
20284 state_size_type skip_bracket(const ui_l32 no, const state_array &NFAs, state_size_type pos) const | |
20285 { | |
20286 return find_pair(st_roundbracket_close, NFAs, no, pos); | |
20287 } | |
20288 | |
20289 state_size_type skip_0width_checker(const ui_l32 no, const state_array &NFAs, state_size_type pos) const | |
20290 { | |
20291 return find_pair(st_check_0_width_repeat, NFAs, no, pos); | |
20292 } | |
20293 | |
20294 state_size_type find_pair(const re_state_type type, const state_array &NFAs, const ui_l32 no, state_size_type pos) const | |
20295 { | |
20296 for (++pos; pos < NFAs.size(); ++pos) | |
20297 { | |
20298 const state_type &s = NFAs[pos]; | |
20299 | |
20300 if (s.type == type && s.char_num == no) | |
20301 return pos; | |
20302 } | |
20303 return 0u; | |
20304 } | |
20305 | |
20306 state_size_type skip_group(const state_array &NFAs, state_size_type pos) const | |
20307 { | |
20308 ui_l32 depth = 1u; | |
20309 | |
20310 for (++pos; pos < NFAs.size(); ++pos) | |
20311 { | |
20312 const state_type &s = NFAs[pos]; | |
20313 | |
20314 if (s.type == st_epsilon) | |
20315 { | |
20316 if (s.char_num == epsilon_type::et_ncgopen) | |
20317 ++depth; | |
20318 else if (s.char_num == epsilon_type::et_ncgclose) | |
20319 { | |
20320 if (--depth == 0u) | |
20321 return pos; | |
20322 } | |
20323 } | |
20324 } | |
20325 return 0u; | |
20326 } | |
20327 | |
20328 void create_rewinder(const state_size_type end, const bool needs_rerun) | |
20329 { | |
20330 state_array newNFAs; | |
20331 state_type rwstate; | |
20332 | |
20333 newNFAs.append(this->NFA_states, 1u, end - 1u); | |
20334 if (!reverse_atoms(newNFAs) || newNFAs.size() == 0u) | |
20335 return; | |
20336 | |
20337 rwstate.reset(st_lookaround_pop, meta_char::mc_eq); | |
20338 rwstate.quantifier.atmost = 0; | |
20339 newNFAs.insert(0, rwstate); | |
20340 | |
20341 rwstate.type = st_lookaround_open; | |
20342 rwstate.next1 = static_cast<std::ptrdiff_t>(end + newNFAs.size() + 2) - 1; | |
20343 rwstate.next2 = 1; | |
20344 rwstate.quantifier.is_greedy = needs_rerun ? 3 : 2; // Match point rewinder. | |
20345 // "singing" problem: /\w+ing/ against "singing" matches the | |
20346 // entire "singing". However, if modified like /(?<=\K\w+)ing/ | |
20347 // it matches "sing" only, which is not correct (but correct if | |
20348 // /\w+?ing/). To avoid this problem, after rewinding is | |
20349 // finished rerunning the automaton forwards from the found | |
20350 // point is needed if the reversed states contain a variable | |
20351 // length (non fixed length) atom. | |
20352 // TODO: This rerunning can be avoided if the reversed atoms | |
20353 // are an exclusive sequence, like /\d+[:,]+\d+abcd/. | |
20354 newNFAs.insert(0, rwstate); | |
20355 | |
20356 rwstate.type = st_lookaround_close; | |
20357 rwstate.next1 = 0; | |
20358 rwstate.next2 = 0; | |
20359 newNFAs.append(1, rwstate); | |
20360 | |
20361 this->NFA_states.insert(1, newNFAs); | |
20362 this->NFA_states[0].next2 = static_cast<std::ptrdiff_t>(newNFAs.size()) + 1; | |
20363 } | |
20364 | |
20365 bool reverse_atoms(state_array &NFAs) | |
20366 { | |
20367 state_array revNFAs; | |
20368 state_array atomseq; | |
20369 state_type epsilon; | |
20370 | |
20371 epsilon.reset(st_epsilon, epsilon_type::et_rvfmrcg); | |
20372 | |
20373 for (state_size_type cur = 0u; cur < NFAs.size();) | |
20374 { | |
20375 const state_type &state = NFAs[cur]; | |
20376 | |
20377 switch (state.type) | |
20378 { | |
20379 case st_epsilon: | |
20380 if (state.is_noncapturinggroup_begin_or_end()) | |
20381 { | |
20382 revNFAs.insert(0, epsilon); | |
20383 ++cur; | |
20384 continue; | |
20385 } | |
20386 break; | |
20387 | |
20388 case st_roundbracket_open: | |
20389 atomseq.clear(); | |
20390 atomseq.push_back(epsilon); | |
20391 atomseq.push_back(epsilon); | |
20392 revNFAs.insert(0, atomseq); | |
20393 cur += 2; | |
20394 continue; | |
20395 | |
20396 case st_roundbracket_close: | |
20397 revNFAs.insert(0, epsilon); | |
20398 cur += 1; | |
20399 continue; | |
20400 | |
20401 default:; | |
20402 } | |
20403 | |
20404 const state_size_type boundary = find_atom_boundary(NFAs, cur, NFAs.size()); | |
20405 | |
20406 if (boundary == 0u || cur == boundary) | |
20407 return false; | |
20408 | |
20409 atomseq.clear(); | |
20410 atomseq.append(NFAs, cur, boundary - cur); | |
20411 | |
20412 if (!mend_for_reverse(atomseq)) | |
20413 { | |
20414 return false; | |
20415 } | |
20416 | |
20417 cur = boundary; | |
20418 revNFAs.insert(0, atomseq); | |
20419 } | |
20420 revNFAs.swap(NFAs); | |
20421 return true; | |
20422 } | |
20423 | |
20424 bool mend_for_reverse(state_array &atoms) | |
20425 { | |
20426 for (state_size_type pos = 0; pos < atoms.size(); ++pos) | |
20427 { | |
20428 state_type &s = atoms[pos]; | |
20429 | |
20430 switch (s.type) | |
20431 { | |
20432 case st_roundbracket_open: | |
20433 if (!check_if_backref_used(pos + 1, s.char_num)) | |
20434 { | |
20435 const state_size_type end = skip_bracket(s.char_num, atoms, pos); | |
20436 | |
20437 if (end != 0u) | |
20438 { | |
20439 pos += 2; | |
20440 state_array rev(atoms, pos, end - pos); | |
20441 | |
20442 if (reverse_atoms(rev) && (end - pos) == rev.size()) | |
20443 { | |
20444 if (s.quantifier.is_greedy) | |
20445 { | |
20446 atoms[pos - 2].reset(st_epsilon, epsilon_type::et_mfrfmrcg); | |
20447 atoms[pos - 1].reset(st_epsilon, epsilon_type::et_mfrfmrcg); | |
20448 atoms[end].type = st_epsilon; | |
20449 atoms[end].char_num = epsilon_type::et_mfrfmrcg; | |
20450 atoms[end].next2 = 0; | |
20451 } | |
20452 else | |
20453 { | |
20454 state_type &bro = atoms[pos - 2]; | |
20455 state_type &brp = atoms[pos - 1]; | |
20456 state_type &brc = atoms[end]; | |
20457 | |
20458 bro.type = st_repeat_in_push; | |
20459 brp.type = st_repeat_in_pop; | |
20460 brc.type = st_check_0_width_repeat; | |
20461 | |
20462 bro.char_num = this->number_of_repeats; | |
20463 brp.char_num = this->number_of_repeats; | |
20464 brc.char_num = this->number_of_repeats; | |
20465 ++this->number_of_repeats; | |
20466 } | |
20467 atoms.replace(pos, end - pos, rev); | |
20468 pos += rev.size(); | |
20469 continue; | |
20470 } | |
20471 } | |
20472 } | |
20473 return false; | |
20474 | |
20475 case st_epsilon: | |
20476 if (s.char_num == epsilon_type::et_ncgopen) | |
20477 { | |
20478 state_size_type end = skip_group(atoms, pos); | |
20479 | |
20480 if (end != 0u) | |
20481 { | |
20482 ++pos; | |
20483 state_array rev(atoms, pos, end - pos); | |
20484 | |
20485 if (reverse_atoms(rev) && (end - pos) == rev.size()) | |
20486 { | |
20487 atoms.replace(pos, end - pos, rev); | |
20488 pos += rev.size(); | |
20489 continue; | |
20490 } | |
20491 } | |
20492 return false; | |
20493 } | |
20494 else if ((s.char_num == epsilon_type::et_ccastrsk || s.char_num == epsilon_type::et_dfastrsk) | |
20495 && s.next2 != 0 && !s.quantifier.is_greedy) | |
20496 { | |
20497 s.next2 = s.next1; | |
20498 s.next1 = 1; | |
20499 s.quantifier.is_greedy = 1u; | |
20500 } | |
20501 continue; | |
20502 | |
20503 case st_check_counter: | |
20504 if (pos + 3 < atoms.size()) | |
20505 { | |
20506 if (!s.quantifier.is_greedy) | |
20507 { | |
20508 s.next2 = s.next1; | |
20509 s.next1 = 1; | |
20510 s.quantifier.is_greedy = 1u; | |
20511 } | |
20512 continue; | |
20513 } | |
20514 return false; | |
20515 | |
20516 default:; | |
20517 } | |
20518 } | |
20519 return true; | |
20520 } | |
20521 | |
20522 state_size_type find_atom_boundary(const state_array &NFAs, state_size_type cur, const state_size_type end) const | |
20523 { | |
20524 const state_size_type begin = cur; | |
20525 state_size_type charatomseq_endpos = cur; | |
20526 const state_type *charatomseq_begin = NULL; | |
20527 | |
20528 for (; cur < end;) | |
20529 { | |
20530 const state_type &cst = NFAs[cur]; | |
20531 | |
20532 switch (cst.type) | |
20533 { | |
20534 case st_character: | |
20535 case st_character_class: | |
20536 if (charatomseq_begin == NULL) | |
20537 charatomseq_begin = &cst; | |
20538 else if (!charatomseq_begin->is_same_character_or_charclass(cst)) | |
20539 return charatomseq_endpos; | |
20540 | |
20541 charatomseq_endpos = ++cur; | |
20542 continue; | |
20543 | |
20544 case st_epsilon: | |
20545 if (cst.next2 == 0) | |
20546 { | |
20547 if (charatomseq_begin) | |
20548 return charatomseq_endpos; | |
20549 | |
20550 if (cst.char_num == epsilon_type::et_jmpinlp) | |
20551 { | |
20552 ++cur; | |
20553 continue; | |
20554 } | |
20555 else if (cst.char_num == epsilon_type::et_ncgopen) | |
20556 { | |
20557 const state_size_type gend = skip_group(NFAs, cur); | |
20558 | |
20559 return gend != 0u ? gend + 1 : 0u; | |
20560 } | |
20561 else if (cst.char_num != epsilon_type::et_brnchend) | |
20562 return cur + 1; | |
20563 | |
20564 return 0u; | |
20565 } | |
20566 | |
20567 if (cst.char_num == epsilon_type::et_ccastrsk) | |
20568 { | |
20569 if (cur + 1 < end) | |
20570 { | |
20571 const state_type &repatom = NFAs[cur + 1]; | |
20572 | |
20573 if (charatomseq_begin == NULL) | |
20574 charatomseq_begin = &repatom; | |
20575 else if (!charatomseq_begin->is_same_character_or_charclass(repatom)) | |
20576 return charatomseq_endpos; | |
20577 | |
20578 return cur + cst.farnext(); | |
20579 } | |
20580 return 0u; | |
20581 } | |
20582 else if (cst.char_num == epsilon_type::et_alt) // '|' | |
20583 { | |
20584 if (charatomseq_begin) | |
20585 return charatomseq_endpos; | |
20586 | |
20587 state_size_type altend = cur + cst.next2 - 1; | |
20588 | |
20589 for (; this->NFA_states[altend].type == st_epsilon && this->NFA_states[altend].char_num == epsilon_type::et_brnchend; altend += this->NFA_states[altend].next1); | |
20590 | |
20591 return altend; | |
20592 } | |
20593 | |
20594 if (cst.char_num == epsilon_type::et_dfastrsk) | |
20595 return charatomseq_begin ? charatomseq_endpos : cur + cst.farnext(); | |
20596 | |
20597 return 0u; | |
20598 | |
20599 case st_save_and_reset_counter: | |
20600 cur += cst.next1; | |
20601 //@fallthrough@ | |
20602 | |
20603 case st_check_counter: | |
20604 { | |
20605 const state_type &ccstate = NFAs[cur]; | |
20606 const state_type &repatom = NFAs[cur + 3]; | |
20607 | |
20608 if (charatomseq_begin) | |
20609 { | |
20610 if (!charatomseq_begin->is_same_character_or_charclass(repatom)) | |
20611 return charatomseq_endpos; | |
20612 } | |
20613 else if (repatom.is_character_or_class()) | |
20614 charatomseq_begin = &repatom; | |
20615 else | |
20616 return cur + ccstate.farnext(); | |
20617 | |
20618 charatomseq_endpos = cur += ccstate.farnext(); | |
20619 } | |
20620 continue; | |
20621 | |
20622 case st_bol: | |
20623 case st_eol: | |
20624 case st_boundary: | |
20625 case st_backreference: | |
20626 if (charatomseq_begin) | |
20627 return charatomseq_endpos; | |
20628 return cur + 1; | |
20629 | |
20630 case st_roundbracket_open: | |
20631 if (charatomseq_begin) | |
20632 return charatomseq_endpos; | |
20633 else | |
20634 { | |
20635 const state_size_type rbend = skip_bracket(cst.char_num, NFAs, cur); | |
20636 | |
20637 if (rbend != 0u) | |
20638 return rbend + 1; | |
20639 } | |
20640 return 0u; | |
20641 | |
20642 case st_repeat_in_push: | |
20643 if (charatomseq_begin) | |
20644 return charatomseq_endpos; | |
20645 else | |
20646 { | |
20647 const state_size_type rpend = skip_0width_checker(cst.char_num, NFAs, cur); | |
20648 | |
20649 if (rpend != 0u) | |
20650 return rpend + 1; | |
20651 } | |
20652 return 0u; | |
20653 | |
20654 case st_lookaround_open: | |
20655 if (charatomseq_begin) | |
20656 return charatomseq_endpos; | |
20657 return cur + cst.next1; | |
20658 | |
20659 case st_roundbracket_close: | |
20660 case st_check_0_width_repeat: | |
20661 case st_lookaround_close: | |
20662 return charatomseq_endpos; | |
20663 | |
20664 // restore_counter, increment_counter, decrement_counter, | |
20665 // roundbracket_pop, repeat_in_pop, lookaround_pop. | |
20666 default: | |
20667 return 0u; | |
20668 } | |
20669 } | |
20670 return begin != charatomseq_endpos ? charatomseq_endpos : 0u; | |
20671 } | |
20672 | |
20673 bool find_better_ep(state_size_type cur) | |
20674 { | |
20675 state_size_type betterpos = 0u; | |
20676 ui_l32 bp_cpnum = 0u; | |
20677 ui_l32 charcount = 0u; | |
20678 range_pairs nextcc; | |
20679 | |
20680 for (; cur < this->NFA_states.size();) | |
20681 { | |
20682 const state_type &state = this->NFA_states[cur]; | |
20683 | |
20684 if (state.type == st_epsilon) | |
20685 { | |
20686 if (state.char_num == epsilon_type::et_ncgopen || (state.next2 == 0 && state.char_num != epsilon_type::et_jmpinlp)) | |
20687 { | |
20688 ++cur; | |
20689 continue; | |
20690 } | |
20691 } | |
20692 else if (state.type == st_roundbracket_open) | |
20693 { | |
20694 cur += state.next1; | |
20695 continue; | |
20696 } | |
20697 else if (state.type == st_bol || state.type == st_eol || state.type == st_boundary) | |
20698 { | |
20699 cur += state.next1; | |
20700 continue; | |
20701 } | |
20702 else if (state.type == st_roundbracket_close) | |
20703 { | |
20704 cur += state.next2; | |
20705 continue; | |
20706 } | |
20707 else if (state.type == st_backreference || state.type == st_lookaround_open) | |
20708 break; | |
20709 | |
20710 const state_size_type boundary = find_atom_boundary(this->NFA_states, cur, this->NFA_states.size()); | |
20711 | |
20712 if (boundary == 0u || cur == boundary) | |
20713 break; | |
20714 | |
20715 nextcc.clear(); | |
20716 const bool canbe0length = gather_nextchars(nextcc, cur, 0u, false); | |
20717 | |
20718 if (canbe0length) | |
20719 break; | |
20720 | |
20721 const ui_l32 cpnum = nextcc.total_codepoints(); | |
20722 const bool has_obstacle = has_obstacle_to_reverse(cur, boundary, true); | |
20723 | |
20724 if (betterpos != 0u) | |
20725 { | |
20726 if (bp_cpnum > cpnum || (bp_cpnum == cpnum && charcount == 1u)) | |
20727 { | |
20728 betterpos = cur; | |
20729 bp_cpnum = cpnum; | |
20730 ++charcount; | |
20731 } | |
20732 } | |
20733 else | |
20734 { | |
20735 betterpos = cur; | |
20736 bp_cpnum = cpnum; | |
20737 ++charcount; | |
20738 } | |
20739 | |
20740 if (has_obstacle) | |
20741 break; | |
20742 | |
20743 cur = boundary; | |
20744 } | |
20745 | |
20746 return (charcount > 1u) ? (create_rewinder(betterpos, true), true) : false; | |
20747 } | |
20748 | |
20749 #endif // !defined(SRELL_FIXEDWIDTHLOOKBEHIND) && !defined(SRELLDBG_NO_MPREWINDER) | |
20750 | |
20751 public: // For debug. | |
20752 | |
20753 void print_NFA_states(const int) const; | |
20754 }; | |
20755 // re_compiler | |
20756 | |
20757 } // namespace re_detail | |
20758 | |
20759 // ... "rei_compiler.hpp"] | |
20760 // ["regex_sub_match.hpp" ... | |
20761 | |
20762 // 28.9, class template sub_match: | |
20763 template <class BidirectionalIterator> | |
20764 class sub_match : public std::pair<BidirectionalIterator, BidirectionalIterator> | |
20765 { | |
20766 public: | |
20767 | |
20768 typedef typename std::iterator_traits<BidirectionalIterator>::value_type value_type; | |
20769 typedef typename std::iterator_traits<BidirectionalIterator>::difference_type difference_type; | |
20770 typedef BidirectionalIterator iterator; | |
20771 typedef std::basic_string<value_type> string_type; | |
20772 | |
20773 bool matched; | |
20774 | |
20775 // constexpr sub_match(); // C++11. | |
20776 | |
20777 sub_match() : matched(false) | |
20778 { | |
20779 } | |
20780 | |
20781 difference_type length() const | |
20782 { | |
20783 return matched ? std::distance(this->first, this->second) : 0; | |
20784 } | |
20785 | |
20786 operator string_type() const | |
20787 { | |
20788 return matched ? string_type(this->first, this->second) : string_type(); | |
20789 } | |
20790 | |
20791 string_type str() const | |
20792 { | |
20793 return matched ? string_type(this->first, this->second) : string_type(); | |
20794 } | |
20795 | |
20796 int compare(const sub_match &s) const | |
20797 { | |
20798 return str().compare(s.str()); | |
20799 } | |
20800 | |
20801 int compare(const string_type &s) const | |
20802 { | |
20803 return str().compare(s); | |
20804 } | |
20805 | |
20806 int compare(const value_type *const s) const | |
20807 { | |
20808 return str().compare(s); | |
20809 } | |
20810 | |
20811 void swap(sub_match &s) | |
20812 { | |
20813 if (this != &s) | |
20814 { | |
20815 this->std::pair<BidirectionalIterator, BidirectionalIterator>::swap(s); | |
20816 std::swap(matched, s.matched); | |
20817 } | |
20818 } | |
20819 | |
20820 #if !defined(SRELL_NO_APIEXT) | |
20821 | |
20822 template <typename ST, typename SA> | |
20823 operator std::basic_string<value_type, ST, SA>() const | |
20824 { | |
20825 typedef std::basic_string<value_type, ST, SA> string_type2; | |
20826 return matched ? string_type2(this->first, this->second) : string_type2(); | |
20827 } | |
20828 | |
20829 template <typename ST, typename SA> | |
20830 std::basic_string<value_type, ST, SA> str() const | |
20831 { | |
20832 typedef std::basic_string<value_type, ST, SA> string_type2; | |
20833 return matched ? string_type2(this->first, this->second) : string_type2(); | |
20834 } | |
20835 | |
20836 #endif // !defined(SRELL_NO_APIEXT) | |
20837 | |
20838 void set_(const typename re_detail::re_submatch_type<BidirectionalIterator> &br) | |
20839 { | |
20840 this->first = br.core.open_at; | |
20841 this->second = br.core.close_at; | |
20842 this->matched = br.counter != 0; | |
20843 } | |
20844 }; | |
20845 | |
20846 // 28.9.2, sub_match non-member operators: | |
20847 // [7.9.2] sub_match non-member operators | |
20848 | |
20849 // Compares sub_match & with sub_match &. | |
20850 template <class BiIter> | |
20851 bool operator==(const sub_match<BiIter> &lhs, const sub_match<BiIter> &rhs) | |
20852 { | |
20853 return lhs.compare(rhs) == 0; // 1 | |
20854 } | |
20855 | |
20856 template <class BiIter> | |
20857 bool operator!=(const sub_match<BiIter> &lhs, const sub_match<BiIter> &rhs) | |
20858 { | |
20859 return lhs.compare(rhs) != 0; // 2 | |
20860 } | |
20861 | |
20862 template <class BiIter> | |
20863 bool operator<(const sub_match<BiIter> &lhs, const sub_match<BiIter> &rhs) | |
20864 { | |
20865 return lhs.compare(rhs) < 0; // 3 | |
20866 } | |
20867 | |
20868 template <class BiIter> | |
20869 bool operator<=(const sub_match<BiIter> &lhs, const sub_match<BiIter> &rhs) | |
20870 { | |
20871 return lhs.compare(rhs) <= 0; // 4 | |
20872 } | |
20873 | |
20874 template <class BiIter> | |
20875 bool operator>=(const sub_match<BiIter> &lhs, const sub_match<BiIter> &rhs) | |
20876 { | |
20877 return lhs.compare(rhs) >= 0; // 5 | |
20878 } | |
20879 | |
20880 template <class BiIter> | |
20881 bool operator>(const sub_match<BiIter> &lhs, const sub_match<BiIter> &rhs) | |
20882 { | |
20883 return lhs.compare(rhs) > 0; // 6 | |
20884 } | |
20885 | |
20886 // Compares basic_string & with sub_match &. | |
20887 template <class BiIter, class ST, class SA> | |
20888 bool operator==( | |
20889 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &lhs, | |
20890 const sub_match<BiIter> &rhs | |
20891 ) | |
20892 { | |
20893 return rhs.compare(lhs.c_str()) == 0; // 7 | |
20894 } | |
20895 | |
20896 template <class BiIter, class ST, class SA> | |
20897 bool operator!=( | |
20898 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &lhs, | |
20899 const sub_match<BiIter> &rhs | |
20900 ) | |
20901 { | |
20902 return !(lhs == rhs); // 8 | |
20903 } | |
20904 | |
20905 template <class BiIter, class ST, class SA> | |
20906 bool operator<( | |
20907 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &lhs, | |
20908 const sub_match<BiIter> &rhs | |
20909 ) | |
20910 { | |
20911 return rhs.compare(lhs.c_str()) > 0; // 9 | |
20912 } | |
20913 | |
20914 template <class BiIter, class ST, class SA> | |
20915 bool operator>( | |
20916 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &lhs, | |
20917 const sub_match<BiIter> &rhs | |
20918 ) | |
20919 { | |
20920 return rhs < lhs; // 10 | |
20921 } | |
20922 | |
20923 template <class BiIter, class ST, class SA> | |
20924 bool operator>=( | |
20925 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &lhs, | |
20926 const sub_match<BiIter> &rhs | |
20927 ) | |
20928 { | |
20929 return !(lhs < rhs); // 11 | |
20930 } | |
20931 | |
20932 template <class BiIter, class ST, class SA> | |
20933 bool operator<=( | |
20934 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &lhs, | |
20935 const sub_match<BiIter> &rhs | |
20936 ) | |
20937 { | |
20938 return !(rhs < lhs); // 12 | |
20939 } | |
20940 | |
20941 // Compares sub_match & with basic_string &. | |
20942 template <class BiIter, class ST, class SA> | |
20943 bool operator==( | |
20944 const sub_match<BiIter> &lhs, | |
20945 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &rhs | |
20946 ) | |
20947 { | |
20948 return lhs.compare(rhs.c_str()) == 0; // 13 | |
20949 } | |
20950 | |
20951 template <class BiIter, class ST, class SA> | |
20952 bool operator!=( | |
20953 const sub_match<BiIter> &lhs, | |
20954 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &rhs | |
20955 ) | |
20956 { | |
20957 return !(lhs == rhs); // 14 | |
20958 } | |
20959 | |
20960 template <class BiIter, class ST, class SA> | |
20961 bool operator<( | |
20962 const sub_match<BiIter> &lhs, | |
20963 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &rhs | |
20964 ) | |
20965 { | |
20966 return lhs.compare(rhs.c_str()) < 0; // 15 | |
20967 } | |
20968 | |
20969 template <class BiIter, class ST, class SA> | |
20970 bool operator>( | |
20971 const sub_match<BiIter> &lhs, | |
20972 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &rhs | |
20973 ) | |
20974 { | |
20975 return rhs < lhs; // 16 | |
20976 } | |
20977 | |
20978 template <class BiIter, class ST, class SA> | |
20979 bool operator>=( | |
20980 const sub_match<BiIter> &lhs, | |
20981 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &rhs | |
20982 ) | |
20983 { | |
20984 return !(lhs < rhs); // 17 | |
20985 } | |
20986 | |
20987 template <class BiIter, class ST, class SA> | |
20988 bool operator<=( | |
20989 const sub_match<BiIter> &lhs, | |
20990 const std::basic_string<typename std::iterator_traits<BiIter>::value_type, ST, SA> &rhs | |
20991 ) | |
20992 { | |
20993 return !(rhs < lhs); // 18 | |
20994 } | |
20995 | |
20996 // Compares iterator_traits::value_type * with sub_match &. | |
20997 template <class BiIter> | |
20998 bool operator==( | |
20999 typename std::iterator_traits<BiIter>::value_type const *lhs, | |
21000 const sub_match<BiIter> &rhs | |
21001 ) | |
21002 { | |
21003 return rhs.compare(lhs) == 0; // 19 | |
21004 } | |
21005 | |
21006 template <class BiIter> | |
21007 bool operator!=( | |
21008 typename std::iterator_traits<BiIter>::value_type const *lhs, | |
21009 const sub_match<BiIter> &rhs | |
21010 ) | |
21011 { | |
21012 return !(lhs == rhs); // 20 | |
21013 } | |
21014 | |
21015 template <class BiIter> | |
21016 bool operator<( | |
21017 typename std::iterator_traits<BiIter>::value_type const *lhs, | |
21018 const sub_match<BiIter> &rhs | |
21019 ) | |
21020 { | |
21021 return rhs.compare(lhs) > 0; // 21 | |
21022 } | |
21023 | |
21024 template <class BiIter> | |
21025 bool operator>( | |
21026 typename std::iterator_traits<BiIter>::value_type const *lhs, | |
21027 const sub_match<BiIter> &rhs | |
21028 ) | |
21029 { | |
21030 return rhs < lhs; // 22 | |
21031 } | |
21032 | |
21033 template <class BiIter> | |
21034 bool operator>=( | |
21035 typename std::iterator_traits<BiIter>::value_type const *lhs, | |
21036 const sub_match<BiIter> &rhs | |
21037 ) | |
21038 { | |
21039 return !(lhs < rhs); // 23 | |
21040 } | |
21041 | |
21042 template <class BiIter> | |
21043 bool operator<=( | |
21044 typename std::iterator_traits<BiIter>::value_type const *lhs, | |
21045 const sub_match<BiIter> &rhs | |
21046 ) | |
21047 { | |
21048 return !(rhs < lhs); // 24 | |
21049 } | |
21050 | |
21051 // Compares sub_match & with iterator_traits::value_type *. | |
21052 template <class BiIter> | |
21053 bool operator==( | |
21054 const sub_match<BiIter> &lhs, | |
21055 typename std::iterator_traits<BiIter>::value_type const *rhs | |
21056 ) | |
21057 { | |
21058 return lhs.compare(rhs) == 0; // 25 | |
21059 } | |
21060 | |
21061 template <class BiIter> | |
21062 bool operator!=( | |
21063 const sub_match<BiIter> &lhs, | |
21064 typename std::iterator_traits<BiIter>::value_type const *rhs | |
21065 ) | |
21066 { | |
21067 return !(lhs == rhs); // 26 | |
21068 } | |
21069 | |
21070 template <class BiIter> | |
21071 bool operator<( | |
21072 const sub_match<BiIter> &lhs, | |
21073 typename std::iterator_traits<BiIter>::value_type const *rhs | |
21074 ) | |
21075 { | |
21076 return lhs.compare(rhs) < 0; // 27 | |
21077 } | |
21078 | |
21079 template <class BiIter> | |
21080 bool operator>( | |
21081 const sub_match<BiIter> &lhs, | |
21082 typename std::iterator_traits<BiIter>::value_type const *rhs | |
21083 ) | |
21084 { | |
21085 return rhs < lhs; // 28 | |
21086 } | |
21087 | |
21088 template <class BiIter> | |
21089 bool operator>=( | |
21090 const sub_match<BiIter> &lhs, | |
21091 typename std::iterator_traits<BiIter>::value_type const *rhs | |
21092 ) | |
21093 { | |
21094 return !(lhs < rhs); // 29 | |
21095 } | |
21096 | |
21097 template <class BiIter> | |
21098 bool operator<=( | |
21099 const sub_match<BiIter> &lhs, | |
21100 typename std::iterator_traits<BiIter>::value_type const *rhs | |
21101 ) | |
21102 { | |
21103 return !(rhs < lhs); // 30 | |
21104 } | |
21105 | |
21106 // Compares iterator_traits::value_type & with sub_match &. | |
21107 template <class BiIter> | |
21108 bool operator==( | |
21109 typename std::iterator_traits<BiIter>::value_type const &lhs, | |
21110 const sub_match<BiIter> &rhs | |
21111 ) | |
21112 { | |
21113 return rhs.compare(typename sub_match<BiIter>::string_type(1, lhs)) == 0; // 31 | |
21114 } | |
21115 | |
21116 template <class BiIter> | |
21117 bool operator!=( | |
21118 typename std::iterator_traits<BiIter>::value_type const &lhs, | |
21119 const sub_match<BiIter> &rhs | |
21120 ) | |
21121 { | |
21122 return !(lhs == rhs); // 32 | |
21123 } | |
21124 | |
21125 template <class BiIter> | |
21126 bool operator<( | |
21127 typename std::iterator_traits<BiIter>::value_type const &lhs, | |
21128 const sub_match<BiIter> &rhs | |
21129 ) | |
21130 { | |
21131 return rhs.compare(typename sub_match<BiIter>::string_type(1, lhs)) > 0; // 33 | |
21132 } | |
21133 | |
21134 template <class BiIter> | |
21135 bool operator>( | |
21136 typename std::iterator_traits<BiIter>::value_type const &lhs, | |
21137 const sub_match<BiIter> &rhs | |
21138 ) | |
21139 { | |
21140 return rhs < lhs; // 34 | |
21141 } | |
21142 | |
21143 template <class BiIter> | |
21144 bool operator>=( | |
21145 typename std::iterator_traits<BiIter>::value_type const &lhs, | |
21146 const sub_match<BiIter> &rhs | |
21147 ) | |
21148 { | |
21149 return !(lhs < rhs); // 35 | |
21150 } | |
21151 | |
21152 template <class BiIter> | |
21153 bool operator<=( | |
21154 typename std::iterator_traits<BiIter>::value_type const &lhs, | |
21155 const sub_match<BiIter> &rhs | |
21156 ) | |
21157 { | |
21158 return !(rhs < lhs); // 36 | |
21159 } | |
21160 | |
21161 // Compares sub_match & with iterator_traits::value_type &. | |
21162 template <class BiIter> | |
21163 bool operator==( | |
21164 const sub_match<BiIter> &lhs, | |
21165 typename std::iterator_traits<BiIter>::value_type const &rhs | |
21166 ) | |
21167 { | |
21168 return lhs.compare(typename sub_match<BiIter>::string_type(1, rhs)) == 0; // 37 | |
21169 } | |
21170 | |
21171 template <class BiIter> | |
21172 bool operator!=( | |
21173 const sub_match<BiIter> &lhs, | |
21174 typename std::iterator_traits<BiIter>::value_type const &rhs | |
21175 ) | |
21176 { | |
21177 return !(lhs == rhs); // 38 | |
21178 } | |
21179 | |
21180 template <class BiIter> | |
21181 bool operator<( | |
21182 const sub_match<BiIter> &lhs, | |
21183 typename std::iterator_traits<BiIter>::value_type const &rhs | |
21184 ) | |
21185 { | |
21186 return lhs.compare(typename sub_match<BiIter>::string_type(1, rhs)) < 0; // 39 | |
21187 } | |
21188 | |
21189 template <class BiIter> | |
21190 bool operator>( | |
21191 const sub_match<BiIter> &lhs, | |
21192 typename std::iterator_traits<BiIter>::value_type const &rhs | |
21193 ) | |
21194 { | |
21195 return rhs < lhs; // 40 | |
21196 } | |
21197 | |
21198 template <class BiIter> | |
21199 bool operator>=( | |
21200 const sub_match<BiIter> &lhs, | |
21201 typename std::iterator_traits<BiIter>::value_type const &rhs | |
21202 ) | |
21203 { | |
21204 return !(lhs < rhs); // 41 | |
21205 } | |
21206 | |
21207 template <class BiIter> | |
21208 bool operator<=( | |
21209 const sub_match<BiIter> &lhs, | |
21210 typename std::iterator_traits<BiIter>::value_type const &rhs | |
21211 ) | |
21212 { | |
21213 return !(rhs < lhs); // 42 | |
21214 } | |
21215 | |
21216 template <class charT, class ST, class BiIter> | |
21217 std::basic_ostream<charT, ST> &operator<<(std::basic_ostream<charT, ST> &os, const sub_match<BiIter> &m) | |
21218 { | |
21219 return (os << m.str()); | |
21220 } | |
21221 | |
21222 typedef sub_match<const char *> csub_match; | |
21223 typedef sub_match<const wchar_t *> wcsub_match; | |
21224 typedef sub_match<std::string::const_iterator> ssub_match; | |
21225 typedef sub_match<std::wstring::const_iterator> wssub_match; | |
21226 | |
21227 typedef csub_match u8ccsub_match; | |
21228 typedef ssub_match u8cssub_match; | |
21229 | |
21230 #if defined(WCHAR_MAX) | |
21231 #if WCHAR_MAX >= 0x10ffff | |
21232 typedef wcsub_match u32wcsub_match; | |
21233 typedef wssub_match u32wssub_match; | |
21234 typedef u32wcsub_match u1632wcsub_match; | |
21235 typedef u32wssub_match u1632wssub_match; | |
21236 #elif WCHAR_MAX >= 0xffff | |
21237 typedef wcsub_match u16wcsub_match; | |
21238 typedef wssub_match u16wssub_match; | |
21239 typedef u16wcsub_match u1632wcsub_match; | |
21240 typedef u16wssub_match u1632wssub_match; | |
21241 #endif | |
21242 #endif | |
21243 | |
21244 #if defined(SRELL_CPP11_CHAR1632_ENABLED) | |
21245 typedef sub_match<const char16_t *> u16csub_match; | |
21246 typedef sub_match<const char32_t *> u32csub_match; | |
21247 typedef sub_match<std::u16string::const_iterator> u16ssub_match; | |
21248 typedef sub_match<std::u32string::const_iterator> u32ssub_match; | |
21249 #endif | |
21250 | |
21251 #if defined(SRELL_CPP20_CHAR8_ENABLED) | |
21252 typedef sub_match<const char8_t *> u8csub_match; | |
21253 #else | |
21254 typedef u8ccsub_match u8csub_match; | |
21255 #endif | |
21256 #if defined(SRELL_CPP20_CHAR8_ENABLED) && SRELL_CPP20_CHAR8_ENABLED >= 2 | |
21257 typedef sub_match<std::u8string::const_iterator> u8ssub_match; | |
21258 #else // !defined(SRELL_CPP20_CHAR8_ENABLED) || SRELL_CPP20_CHAR8_ENABLED < 2 | |
21259 typedef u8cssub_match u8ssub_match; | |
21260 #endif | |
21261 | |
21262 // ... "regex_sub_match.hpp"] | |
21263 // ["regex_match_results.hpp" ... | |
21264 | |
21265 // 28.10, class template match_results: | |
21266 template <class BidirectionalIterator, class Allocator = std::allocator<sub_match<BidirectionalIterator> > > | |
21267 class match_results | |
21268 { | |
21269 public: | |
21270 | |
21271 typedef sub_match<BidirectionalIterator> value_type; | |
21272 typedef const value_type & const_reference; | |
21273 typedef const_reference reference; | |
21274 // typedef implementation defined const_iterator; | |
21275 typedef typename std::vector<value_type, Allocator>::const_iterator const_iterator; | |
21276 typedef const_iterator iterator; | |
21277 typedef typename std::iterator_traits<BidirectionalIterator>::difference_type difference_type; | |
21278 | |
21279 #if defined(__cplusplus) && __cplusplus >= 201103L | |
21280 typedef typename std::allocator_traits<Allocator>::size_type size_type; | |
21281 #else | |
21282 typedef typename Allocator::size_type size_type; // TR1. | |
21283 #endif | |
21284 | |
21285 typedef Allocator allocator_type; | |
21286 typedef typename std::iterator_traits<BidirectionalIterator>::value_type char_type; | |
21287 typedef std::basic_string<char_type> string_type; | |
21288 | |
21289 public: | |
21290 | |
21291 // 28.10.1, construct/copy/destroy: | |
21292 // [7.10.1] construct/copy/destroy | |
21293 explicit match_results(const Allocator &a = Allocator()) : ready_(0u), sub_matches_(a) | |
21294 { | |
21295 } | |
21296 | |
21297 match_results(const match_results &m) | |
21298 { | |
21299 operator=(m); | |
21300 } | |
21301 | |
21302 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
21303 match_results(match_results &&m) SRELL_NOEXCEPT | |
21304 { | |
21305 operator=(std::move(m)); | |
21306 } | |
21307 #endif | |
21308 | |
21309 match_results &operator=(const match_results &m) | |
21310 { | |
21311 if (this != &m) | |
21312 { | |
21313 // this->sstate_ = m.sstate_; | |
21314 this->ready_ = m.ready_; | |
21315 this->sub_matches_ = m.sub_matches_; | |
21316 this->prefix_ = m.prefix_; | |
21317 this->suffix_ = m.suffix_; | |
21318 this->base_ = m.base_; | |
21319 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21320 this->gnames_ = m.gnames_; | |
21321 #endif | |
21322 } | |
21323 return *this; | |
21324 } | |
21325 | |
21326 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
21327 match_results &operator=(match_results &&m) SRELL_NOEXCEPT | |
21328 { | |
21329 if (this != &m) | |
21330 { | |
21331 // this->sstate_ = std::move(m.sstate_); | |
21332 this->ready_ = m.ready_; | |
21333 this->sub_matches_ = std::move(m.sub_matches_); | |
21334 this->prefix_ = std::move(m.prefix_); | |
21335 this->suffix_ = std::move(m.suffix_); | |
21336 this->base_ = m.base_; | |
21337 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21338 this->gnames_ = std::move(m.gnames_); | |
21339 #endif | |
21340 } | |
21341 return *this; | |
21342 } | |
21343 #endif | |
21344 | |
21345 // ~match_results(); | |
21346 | |
21347 // 28.10.2, state: | |
21348 bool ready() const | |
21349 { | |
21350 return (ready_ & 1u) ? true : false; | |
21351 } | |
21352 | |
21353 // 28.10.3, size: | |
21354 // [7.10.2] size | |
21355 size_type size() const | |
21356 { | |
21357 return sub_matches_.size(); | |
21358 } | |
21359 | |
21360 size_type max_size() const | |
21361 { | |
21362 return sub_matches_.max_size(); | |
21363 // return static_cast<size_type>(~0) / sizeof (value_type); | |
21364 } | |
21365 | |
21366 bool empty() const | |
21367 { | |
21368 return size() == 0; | |
21369 } | |
21370 | |
21371 // 28.10.4, element access: | |
21372 // [7.10.3] element access | |
21373 difference_type length(const size_type sub = 0) const | |
21374 { | |
21375 return (*this)[sub].length(); | |
21376 } | |
21377 | |
21378 difference_type position(const size_type sub = 0) const | |
21379 { | |
21380 const_reference ref = (*this)[sub]; | |
21381 | |
21382 return std::distance(base_, ref.first); | |
21383 } | |
21384 | |
21385 string_type str(const size_type sub = 0) const | |
21386 { | |
21387 return string_type((*this)[sub]); | |
21388 } | |
21389 | |
21390 const_reference operator[](const size_type n) const | |
21391 { | |
21392 return n < sub_matches_.size() ? sub_matches_[n] : unmatched_; | |
21393 } | |
21394 | |
21395 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21396 | |
21397 // Helpers for overload resolution of the integer literal 0 of signed types. | |
21398 template <typename IntegerType> | |
21399 difference_type length(const IntegerType zero) const | |
21400 { | |
21401 return length(static_cast<size_type>(zero)); | |
21402 } | |
21403 template <typename IntegerType> | |
21404 difference_type position(const IntegerType zero) const | |
21405 { | |
21406 return position(static_cast<size_type>(zero)); | |
21407 } | |
21408 template <typename IntegerType> | |
21409 string_type str(const IntegerType zero) const | |
21410 { | |
21411 return str(static_cast<size_type>(zero)); | |
21412 } | |
21413 template <typename IntegerType> | |
21414 const_reference operator[](const IntegerType zero) const | |
21415 { | |
21416 return operator[](static_cast<size_type>(zero)); | |
21417 } | |
21418 | |
21419 difference_type length(const string_type &sub) const | |
21420 { | |
21421 return (*this)[sub].length(); | |
21422 } | |
21423 | |
21424 difference_type position(const string_type &sub) const | |
21425 { | |
21426 const_reference ref = (*this)[sub]; | |
21427 | |
21428 return std::distance(base_, ref.first); | |
21429 } | |
21430 | |
21431 string_type str(const string_type &sub) const | |
21432 { | |
21433 return string_type((*this)[sub]); | |
21434 } | |
21435 | |
21436 const_reference operator[](const string_type &sub) const | |
21437 { | |
21438 const re_detail::ui_l32 backrefno = lookup_backref_number(sub.data(), sub.data() + sub.size()); | |
21439 | |
21440 return backrefno != gnamemap_type::notfound ? sub_matches_[backrefno] : unmatched_; | |
21441 } | |
21442 | |
21443 difference_type length(const char_type *sub) const | |
21444 { | |
21445 return (*this)[sub].length(); | |
21446 } | |
21447 | |
21448 difference_type position(const char_type *sub) const | |
21449 { | |
21450 const_reference ref = (*this)[sub]; | |
21451 | |
21452 return std::distance(base_, ref.first); | |
21453 } | |
21454 | |
21455 string_type str(const char_type *sub) const | |
21456 { | |
21457 return string_type((*this)[sub]); | |
21458 } | |
21459 | |
21460 const_reference operator[](const char_type *sub) const | |
21461 { | |
21462 const re_detail::ui_l32 backrefno = lookup_backref_number(sub, sub + std::char_traits<char_type>::length(sub)); | |
21463 | |
21464 return backrefno != gnamemap_type::notfound ? sub_matches_[backrefno] : unmatched_; | |
21465 } | |
21466 | |
21467 #endif // !defined(SRELL_NO_NAMEDCAPTURE) | |
21468 | |
21469 const_reference prefix() const | |
21470 { | |
21471 return prefix_; | |
21472 } | |
21473 | |
21474 const_reference suffix() const | |
21475 { | |
21476 return suffix_; | |
21477 } | |
21478 | |
21479 const_iterator begin() const | |
21480 { | |
21481 return sub_matches_.begin(); | |
21482 } | |
21483 | |
21484 const_iterator end() const | |
21485 { | |
21486 return sub_matches_.end(); | |
21487 } | |
21488 | |
21489 const_iterator cbegin() const | |
21490 { | |
21491 return sub_matches_.begin(); | |
21492 } | |
21493 | |
21494 const_iterator cend() const | |
21495 { | |
21496 return sub_matches_.end(); | |
21497 } | |
21498 | |
21499 // 28.10.5, format: | |
21500 // [7.10.4] format | |
21501 template <class OutputIter> | |
21502 OutputIter format( | |
21503 OutputIter out, | |
21504 const char_type *fmt_first, | |
21505 const char_type *const fmt_last, | |
21506 regex_constants::match_flag_type /* flags */ = regex_constants::format_default | |
21507 ) const | |
21508 { | |
21509 if (this->ready() && !this->empty()) | |
21510 { | |
21511 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21512 const bool no_groupnames = gnames_.size() == 0; | |
21513 #endif | |
21514 const value_type &m0 = (*this)[0]; | |
21515 | |
21516 while (fmt_first != fmt_last) | |
21517 { | |
21518 if (*fmt_first != static_cast<char_type>(re_detail::meta_char::mc_dollar)) // '$' | |
21519 { | |
21520 *out++ = *fmt_first++; | |
21521 } | |
21522 else | |
21523 { | |
21524 ++fmt_first; | |
21525 if (fmt_first == fmt_last) | |
21526 { | |
21527 *out++ = re_detail::meta_char::mc_dollar; // '$'; | |
21528 } | |
21529 else if (*fmt_first == static_cast<char_type>(re_detail::char_other::co_amp)) // '&', $& | |
21530 { | |
21531 out = std::copy(m0.first, m0.second, out); | |
21532 ++fmt_first; | |
21533 } | |
21534 else if (*fmt_first == static_cast<char_type>(re_detail::char_other::co_grav)) // '`', $`, prefix. | |
21535 { | |
21536 out = std::copy(this->prefix().first, this->prefix().second, out); | |
21537 ++fmt_first; | |
21538 } | |
21539 else if (*fmt_first == static_cast<char_type>(re_detail::char_other::co_apos)) // '\'', $', suffix. | |
21540 { | |
21541 out = std::copy(this->suffix().first, this->suffix().second, out); | |
21542 ++fmt_first; | |
21543 } | |
21544 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21545 else if (*fmt_first == static_cast<char_type>(re_detail::meta_char::mc_lt) && !no_groupnames) // '<', $< | |
21546 { | |
21547 const char_type *const current_backup = fmt_first; | |
21548 bool replaced = false; | |
21549 | |
21550 if (++fmt_first == fmt_last) | |
21551 ; // Do nothing. | |
21552 else | |
21553 { | |
21554 const char_type *const name_begin = fmt_first; | |
21555 | |
21556 for (;; ++fmt_first) | |
21557 { | |
21558 if (*fmt_first == static_cast<char_type>(re_detail::meta_char::mc_gt)) | |
21559 { | |
21560 const re_detail::ui_l32 backref_number = lookup_backref_number(name_begin, fmt_first); | |
21561 | |
21562 if (backref_number != gnamemap_type::notfound) | |
21563 { | |
21564 const value_type &mn = (*this)[backref_number]; | |
21565 | |
21566 if (mn.matched) | |
21567 out = std::copy(mn.first, mn.second, out); | |
21568 // replaced = true; | |
21569 } | |
21570 replaced = true; | |
21571 ++fmt_first; | |
21572 break; | |
21573 } | |
21574 if (fmt_first == fmt_last) | |
21575 break; | |
21576 } | |
21577 } | |
21578 if (!replaced) | |
21579 { | |
21580 fmt_first = current_backup; | |
21581 *out++ = re_detail::meta_char::mc_dollar; // '$'; | |
21582 } | |
21583 } | |
21584 #endif // !defined(SRELL_NO_NAMEDCAPTURE) | |
21585 else | |
21586 { | |
21587 const char_type *const backup_pos = fmt_first; | |
21588 size_type backref_number = 0; | |
21589 | |
21590 if (fmt_first != fmt_last && *fmt_first >= static_cast<char_type>(re_detail::char_alnum::ch_0) && *fmt_first <= static_cast<char_type>(re_detail::char_alnum::ch_9)) // '0'-'9' | |
21591 { | |
21592 backref_number += *fmt_first - re_detail::char_alnum::ch_0; // '0'; | |
21593 | |
21594 if (++fmt_first != fmt_last && *fmt_first >= static_cast<char_type>(re_detail::char_alnum::ch_0) && *fmt_first <= static_cast<char_type>(re_detail::char_alnum::ch_9)) // '0'-'9' | |
21595 { | |
21596 backref_number *= 10; | |
21597 backref_number += *fmt_first - re_detail::char_alnum::ch_0; // '0'; | |
21598 ++fmt_first; | |
21599 } | |
21600 } | |
21601 | |
21602 if (backref_number && backref_number < this->size()) | |
21603 { | |
21604 const value_type &mn = (*this)[backref_number]; | |
21605 | |
21606 if (mn.matched) | |
21607 out = std::copy(mn.first, mn.second, out); | |
21608 } | |
21609 else | |
21610 { | |
21611 *out++ = re_detail::meta_char::mc_dollar; // '$'; | |
21612 | |
21613 fmt_first = backup_pos; | |
21614 if (*fmt_first == static_cast<char_type>(re_detail::meta_char::mc_dollar)) | |
21615 ++fmt_first; | |
21616 } | |
21617 } | |
21618 } | |
21619 } | |
21620 } | |
21621 return out; | |
21622 } | |
21623 | |
21624 template <class OutputIter, class ST, class SA> | |
21625 OutputIter format( | |
21626 OutputIter out, | |
21627 const std::basic_string<char_type, ST, SA> &fmt, | |
21628 regex_constants::match_flag_type flags = regex_constants::format_default | |
21629 ) const | |
21630 { | |
21631 return format(out, fmt.data(), fmt.data() + fmt.size(), flags); | |
21632 } | |
21633 | |
21634 template <class ST, class SA> | |
21635 std::basic_string<char_type, ST, SA> format( | |
21636 const string_type &fmt, | |
21637 regex_constants::match_flag_type flags = regex_constants::format_default | |
21638 ) const | |
21639 { | |
21640 std::basic_string<char_type, ST, SA> result; | |
21641 | |
21642 // format(std::back_insert_iterator<string_type>(result), fmt, flags); | |
21643 format(std::back_inserter(result), fmt, flags); | |
21644 return result; | |
21645 } | |
21646 | |
21647 string_type format(const char_type *fmt, regex_constants::match_flag_type flags = regex_constants::format_default) const | |
21648 { | |
21649 string_type result; | |
21650 | |
21651 format(std::back_inserter(result), fmt, fmt + std::char_traits<char_type>::length(fmt), flags); | |
21652 return result; | |
21653 } | |
21654 | |
21655 // 28.10.6, allocator: | |
21656 // [7.10.5] allocator | |
21657 allocator_type get_allocator() const | |
21658 { | |
21659 return allocator_type(); | |
21660 } | |
21661 | |
21662 // 28.10.7, swap: | |
21663 // [7.10.6] swap | |
21664 void swap(match_results &that) | |
21665 { | |
21666 const match_results tmp(that); | |
21667 that = *this; | |
21668 *this = tmp; | |
21669 } | |
21670 | |
21671 regex_constants::error_type ecode() const | |
21672 { | |
21673 return static_cast<regex_constants::error_type>(ready_ >> 1); | |
21674 } | |
21675 | |
21676 public: // For internal. | |
21677 | |
21678 typedef match_results<BidirectionalIterator> match_results_type; | |
21679 typedef typename match_results_type::size_type match_results_size_type; | |
21680 typedef typename re_detail::re_search_state</*charT, */BidirectionalIterator> search_state_type; | |
21681 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21682 typedef typename re_detail::groupname_mapper<char_type> gnamemap_type; | |
21683 #endif | |
21684 | |
21685 search_state_type sstate_; | |
21686 | |
21687 void clear_() | |
21688 { | |
21689 ready_ = 0u; | |
21690 sub_matches_.clear(); | |
21691 // prefix_.matched = false; | |
21692 // suffix_.matched = false; | |
21693 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21694 gnames_.clear(); | |
21695 #endif | |
21696 } | |
21697 | |
21698 // template <typename charT> | |
21699 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21700 bool set_match_results_(const gnamemap_type &gnames) | |
21701 #else | |
21702 bool set_match_results_() | |
21703 #endif | |
21704 { | |
21705 sub_matches_.resize(sstate_.bracket.size()); | |
21706 // value_type &m0 = sub_matches_[0]; | |
21707 | |
21708 sub_matches_[0].matched = true; | |
21709 | |
21710 for (re_detail::ui_l32 i = 1; i < static_cast<re_detail::ui_l32>(sstate_.bracket.size()); ++i) | |
21711 sub_matches_[i].set_(sstate_.bracket[i]); | |
21712 | |
21713 base_ = sstate_.lblim; | |
21714 prefix_.first = sstate_.srchbegin; | |
21715 prefix_.second = sub_matches_[0].first = sstate_.bracket[0].core.open_at; | |
21716 suffix_.first = sub_matches_[0].second = sstate_.ssc.iter; | |
21717 suffix_.second = sstate_.srchend; | |
21718 | |
21719 prefix_.matched = prefix_.first != prefix_.second; | |
21720 suffix_.matched = suffix_.first != suffix_.second; | |
21721 | |
21722 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21723 gnames_ = gnames; | |
21724 #endif | |
21725 ready_ = 1u; | |
21726 return true; | |
21727 } | |
21728 | |
21729 bool set_match_results_bmh_() | |
21730 { | |
21731 sub_matches_.resize(1); | |
21732 // value_type &m0 = sub_matches_[0]; | |
21733 | |
21734 sub_matches_[0].matched = true; | |
21735 | |
21736 base_ = sstate_.lblim; | |
21737 prefix_.first = sstate_.srchbegin; | |
21738 prefix_.second = sub_matches_[0].first = sstate_.ssc.iter; | |
21739 suffix_.first = sub_matches_[0].second = sstate_.nextpos; | |
21740 suffix_.second = sstate_.srchend; | |
21741 | |
21742 prefix_.matched = prefix_.first != prefix_.second; | |
21743 suffix_.matched = suffix_.first != suffix_.second; | |
21744 | |
21745 ready_ = 1u; | |
21746 return true; | |
21747 } | |
21748 | |
21749 void set_prefix1_(const BidirectionalIterator pf) | |
21750 { | |
21751 prefix_.first = pf; | |
21752 } | |
21753 | |
21754 void update_prefix1_(const BidirectionalIterator pf) | |
21755 { | |
21756 prefix_.first = pf; | |
21757 prefix_.matched = prefix_.first != prefix_.second; | |
21758 } | |
21759 | |
21760 void update_prefix2_(const BidirectionalIterator ps) | |
21761 { | |
21762 prefix_.second = ps; | |
21763 prefix_.matched = prefix_.first != prefix_.second; | |
21764 } | |
21765 | |
21766 void update_m0_(const BidirectionalIterator mf, const BidirectionalIterator ms) | |
21767 { | |
21768 sub_matches_.resize(1); | |
21769 | |
21770 sub_matches_[0].first = mf; | |
21771 sub_matches_[0].second = ms; | |
21772 sub_matches_[0].matched = true; | |
21773 | |
21774 prefix_.first = prefix_.second = mf; | |
21775 } | |
21776 | |
21777 bool mark_as_failed_(const int reason) | |
21778 { | |
21779 ready_ = reason ? (reason << 1) : 1u; | |
21780 return false; | |
21781 } | |
21782 | |
21783 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21784 | |
21785 typename gnamemap_type::gname_string lookup_gname_(const re_detail::ui_l32 gno) const | |
21786 { | |
21787 return gnames_[gno]; | |
21788 } | |
21789 | |
21790 #endif | |
21791 | |
21792 private: | |
21793 | |
21794 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21795 | |
21796 re_detail::ui_l32 lookup_backref_number(const char_type *begin, const char_type *const end) const | |
21797 { | |
21798 typename gnamemap_type::gname_string key(end - begin); | |
21799 | |
21800 for (std::size_t i = 0; begin != end; ++begin, ++i) | |
21801 key[i] = *begin; | |
21802 | |
21803 const re_detail::ui_l32 *list = gnames_[key]; | |
21804 re_detail::ui_l32 gno = gnamemap_type::notfound; | |
21805 | |
21806 if (list) | |
21807 { | |
21808 const re_detail::ui_l32 num = list[0]; | |
21809 | |
21810 for (re_detail::ui_l32 i = 1; i <= num; ++i) | |
21811 { | |
21812 gno = list[i]; | |
21813 if (gno < static_cast<re_detail::ui_l32>(sub_matches_.size()) && sub_matches_[gno].matched) | |
21814 break; | |
21815 } | |
21816 } | |
21817 return gno; | |
21818 } | |
21819 | |
21820 #endif // !defined(SRELL_NO_NAMEDCAPTURE) | |
21821 | |
21822 public: // For debug. | |
21823 | |
21824 template <typename BasicRegexT> | |
21825 void print_sub_matches(const BasicRegexT &, const int) const; | |
21826 void print_addresses(const value_type &, const char *const) const; | |
21827 | |
21828 private: | |
21829 | |
21830 typedef std::vector<value_type, Allocator> sub_match_array; | |
21831 | |
21832 unsigned int ready_; | |
21833 sub_match_array sub_matches_; | |
21834 value_type prefix_; | |
21835 value_type suffix_; | |
21836 value_type unmatched_; | |
21837 BidirectionalIterator base_; | |
21838 | |
21839 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
21840 gnamemap_type gnames_; | |
21841 #endif | |
21842 }; | |
21843 | |
21844 // 28.10.7, match_results swap: | |
21845 // [7.10.6] match_results swap | |
21846 template <class BidirectionalIterator, class Allocator> | |
21847 void swap( | |
21848 match_results<BidirectionalIterator, Allocator> &m1, | |
21849 match_results<BidirectionalIterator, Allocator> &m2 | |
21850 ) | |
21851 { | |
21852 m1.swap(m2); | |
21853 } | |
21854 | |
21855 // 28.10.8, match_results comparisons | |
21856 template <class BidirectionalIterator, class Allocator> | |
21857 bool operator==( | |
21858 const match_results<BidirectionalIterator, Allocator> &m1, | |
21859 const match_results<BidirectionalIterator, Allocator> &m2 | |
21860 ) | |
21861 { | |
21862 if (!m1.ready() && !m2.ready()) | |
21863 return true; | |
21864 | |
21865 if (m1.ready() && m2.ready()) | |
21866 { | |
21867 if (m1.empty() && m2.empty()) | |
21868 return true; | |
21869 | |
21870 if (!m1.empty() && !m2.empty()) | |
21871 { | |
21872 return m1.prefix() == m2.prefix() && m1.size() == m2.size() && std::equal(m1.begin(), m1.end(), m2.begin()) && m1.suffix() == m2.suffix(); | |
21873 } | |
21874 } | |
21875 return false; | |
21876 } | |
21877 | |
21878 template <class BidirectionalIterator, class Allocator> | |
21879 bool operator!=( | |
21880 const match_results<BidirectionalIterator, Allocator> &m1, | |
21881 const match_results<BidirectionalIterator, Allocator> &m2 | |
21882 ) | |
21883 { | |
21884 return !(m1 == m2); | |
21885 } | |
21886 | |
21887 typedef match_results<const char *> cmatch; | |
21888 typedef match_results<const wchar_t *> wcmatch; | |
21889 typedef match_results<std::string::const_iterator> smatch; | |
21890 typedef match_results<std::wstring::const_iterator> wsmatch; | |
21891 | |
21892 typedef cmatch u8ccmatch; | |
21893 typedef smatch u8csmatch; | |
21894 | |
21895 #if defined(WCHAR_MAX) | |
21896 #if WCHAR_MAX >= 0x10ffff | |
21897 typedef wcmatch u32wcmatch; | |
21898 typedef wsmatch u32wsmatch; | |
21899 typedef u32wcmatch u1632wcmatch; | |
21900 typedef u32wsmatch u1632wsmatch; | |
21901 #elif WCHAR_MAX >= 0xffff | |
21902 typedef wcmatch u16wcmatch; | |
21903 typedef wsmatch u16wsmatch; | |
21904 typedef u16wcmatch u1632wcmatch; | |
21905 typedef u16wsmatch u1632wsmatch; | |
21906 #endif | |
21907 #endif | |
21908 | |
21909 #if defined(SRELL_CPP11_CHAR1632_ENABLED) | |
21910 typedef match_results<const char16_t *> u16cmatch; | |
21911 typedef match_results<const char32_t *> u32cmatch; | |
21912 typedef match_results<std::u16string::const_iterator> u16smatch; | |
21913 typedef match_results<std::u32string::const_iterator> u32smatch; | |
21914 #endif | |
21915 | |
21916 #if defined(SRELL_CPP20_CHAR8_ENABLED) | |
21917 typedef match_results<const char8_t *> u8cmatch; | |
21918 #else | |
21919 typedef u8ccmatch u8cmatch; | |
21920 #endif | |
21921 #if defined(SRELL_CPP20_CHAR8_ENABLED) && SRELL_CPP20_CHAR8_ENABLED >= 2 | |
21922 typedef match_results<std::u8string::const_iterator> u8smatch; | |
21923 #else // !defined(SRELL_CPP20_CHAR8_ENABLED) || SRELL_CPP20_CHAR8_ENABLED < 2 | |
21924 typedef u8csmatch u8smatch; | |
21925 #endif | |
21926 | |
21927 // ... "regex_match_results.hpp"] | |
21928 // ["rei_algorithm.hpp" ... | |
21929 | |
21930 namespace re_detail | |
21931 { | |
21932 | |
21933 #if !defined(SRELL_NO_APIEXT) | |
21934 | |
21935 template <typename charT> | |
21936 struct repoptions | |
21937 { | |
21938 const charT *fmt_begin; | |
21939 const charT *fmt_end; | |
21940 bool global; | |
21941 | |
21942 repoptions(const charT *const b, const charT *const e, const bool g) | |
21943 : fmt_begin(b), fmt_end(e), global(g) | |
21944 { | |
21945 } | |
21946 }; | |
21947 | |
21948 template <typename charT, typename ST, typename SA, typename BidiIter> | |
21949 bool call_mrformat(std::basic_string<charT, ST, SA> &s, const match_results<BidiIter> &m, void *p) | |
21950 { | |
21951 const repoptions<charT> *const opts = reinterpret_cast<const repoptions<charT> *>(p); | |
21952 | |
21953 m.format(std::back_inserter(s), opts->fmt_begin, opts->fmt_end); //, flags); | |
21954 return opts->global; | |
21955 } | |
21956 | |
21957 template <typename charT, typename StringLike, typename iteratorTag> | |
21958 iteratorTag pos0_(const StringLike &s, iteratorTag) | |
21959 { | |
21960 return s.begin(); | |
21961 } | |
21962 template <typename charT, typename StringLike> | |
21963 const charT *pos0_(const StringLike &s, const charT *) | |
21964 { | |
21965 return s.data(); | |
21966 } | |
21967 | |
21968 template <typename charT, typename StringLike, typename iteratorTag> | |
21969 iteratorTag pos1_(const StringLike &s, iteratorTag) | |
21970 { | |
21971 return s.end(); | |
21972 } | |
21973 template <typename charT, typename StringLike> | |
21974 const charT *pos1_(const StringLike &s, const charT *) | |
21975 { | |
21976 return s.data() + s.size(); | |
21977 } | |
21978 | |
21979 #endif // !defined(SRELL_NO_APIEXT) | |
21980 | |
21981 template <typename charT, typename traits> | |
21982 class re_object : public re_compiler<charT, traits> | |
21983 { | |
21984 public: | |
21985 | |
21986 template <typename BidirectionalIterator, typename Allocator> | |
21987 bool search | |
21988 ( | |
21989 const BidirectionalIterator begin, | |
21990 const BidirectionalIterator end, | |
21991 const BidirectionalIterator lookbehind_limit, | |
21992 match_results<BidirectionalIterator, Allocator> &results, | |
21993 const regex_constants::match_flag_type flags | |
21994 ) const | |
21995 { | |
21996 int reason = 0; | |
21997 | |
21998 results.clear_(); | |
21999 | |
22000 if (this->NFA_states.size()) | |
22001 { | |
22002 re_search_state<BidirectionalIterator> &sstate = results.sstate_; | |
22003 | |
22004 sstate.init(begin, end, lookbehind_limit, flags); | |
22005 | |
22006 #if !defined(SRELLDBG_NO_BMH) | |
22007 if (this->bmdata && !(sstate.flags & regex_constants::match_continuous)) | |
22008 { | |
22009 #if !defined(SRELL_NO_ICASE) | |
22010 if (!this->is_ricase() ? this->bmdata->do_casesensitivesearch(sstate, typename std::iterator_traits<BidirectionalIterator>::iterator_category()) : this->bmdata->do_icasesearch(sstate, typename std::iterator_traits<BidirectionalIterator>::iterator_category())) | |
22011 #else | |
22012 if (this->bmdata->do_casesensitivesearch(sstate, typename std::iterator_traits<BidirectionalIterator>::iterator_category())) | |
22013 #endif // !defined(SRELL_NO_ICASE) | |
22014 return results.set_match_results_bmh_(); | |
22015 | |
22016 goto NOT_FOUND; | |
22017 } | |
22018 #endif // !defined(SRELLDBG_NO_BMH) | |
22019 | |
22020 sstate.init_for_automaton(this->number_of_brackets, this->number_of_counters, this->number_of_repeats); | |
22021 | |
22022 if (sstate.flags & regex_constants::match_continuous) | |
22023 { | |
22024 sstate.entry_state = this->NFA_states[0].next_state2; | |
22025 | |
22026 sstate.ssc.iter = sstate.nextpos; | |
22027 | |
22028 #if defined(SRELL_NO_LIMIT_COUNTER) | |
22029 sstate.reset(); | |
22030 #else | |
22031 sstate.reset(this->limit_counter); | |
22032 #endif | |
22033 reason = !this->is_ricase() ? run_automaton<false, false>(sstate) : run_automaton<true, false>(sstate); | |
22034 | |
22035 goto CHECK_REASON; | |
22036 } | |
22037 | |
22038 sstate.entry_state = this->NFA_states[0].next_state1; | |
22039 | |
22040 #if !defined(SRELLDBG_NO_SCFINDER) | |
22041 if (this->NFA_states[0].char_num != constants::invalid_u32value) | |
22042 { | |
22043 reason = !this->is_ricase() ? do_search_sc<false>(sstate, typename std::iterator_traits<BidirectionalIterator>::iterator_category()) : do_search_sc<true>(sstate, typename std::iterator_traits<BidirectionalIterator>::iterator_category()); | |
22044 | |
22045 goto CHECK_REASON; | |
22046 } | |
22047 #endif // !defined(SRELLDBG_NO_SCFINDER) | |
22048 | |
22049 #if !defined(SRELL_NO_ICASE) | |
22050 reason = !this->is_ricase() ? do_search<false>(sstate) : do_search<true>(sstate); | |
22051 #else | |
22052 reason = do_search<false>(results); | |
22053 #endif | |
22054 CHECK_REASON: | |
22055 if (reason == 1) | |
22056 { | |
22057 #if !defined(SRELL_NO_NAMEDCAPTURE) | |
22058 return results.set_match_results_(this->namedcaptures); | |
22059 #else | |
22060 return results.set_match_results_(); | |
22061 #endif | |
22062 } | |
22063 } | |
22064 #if !defined(SRELLDBG_NO_BMH) | |
22065 NOT_FOUND: | |
22066 #endif | |
22067 return results.mark_as_failed_(reason); | |
22068 } | |
22069 | |
22070 private: | |
22071 | |
22072 typedef typename traits::utf_traits utf_traits; | |
22073 | |
22074 template <const bool icase, typename BidirectionalIterator> | |
22075 int do_search(re_search_state<BidirectionalIterator> &sstate) const | |
22076 { | |
22077 for (;;) | |
22078 { | |
22079 const bool final = sstate.nextpos == sstate.srchend; | |
22080 | |
22081 sstate.ssc.iter = sstate.nextpos; | |
22082 | |
22083 if (!final) | |
22084 { | |
22085 #if defined(SRELLDBG_NO_1STCHRCLS) | |
22086 utf_traits::codepoint_inc(sstate.nextpos, sstate.srchend); | |
22087 #else | |
22088 #if !defined(SRELLDBG_NO_BITSET) | |
22089 if (!this->firstchar_class_bs.test((*sstate.nextpos++) & utf_traits::bitsetmask)) | |
22090 #else | |
22091 const ui_l32 firstchar = utf_traits::codepoint_inc(sstate.nextpos, sstate.srchend); | |
22092 | |
22093 if (!this->firstchar_class.is_included(firstchar)) | |
22094 #endif | |
22095 continue; | |
22096 #endif // defined(SRELLDBG_NO_1STCHRCLS) | |
22097 } | |
22098 // Even when final == true, we have to try for such expressions | |
22099 // as "" =~ /^$/ or "..." =~ /$/. | |
22100 | |
22101 #if defined(SRELL_NO_LIMIT_COUNTER) | |
22102 sstate.reset(/* first */); | |
22103 #else | |
22104 sstate.reset(/* first, */ this->limit_counter); | |
22105 #endif | |
22106 const int reason = run_automaton<icase, false>(sstate /* , false */); | |
22107 if (reason) | |
22108 return reason; | |
22109 | |
22110 if (final) | |
22111 break; | |
22112 } | |
22113 return 0; | |
22114 } | |
22115 | |
22116 #if !defined(SRELLDBG_NO_SCFINDER) | |
22117 | |
22118 template <const bool icase, typename ContiguousIterator> | |
22119 int do_search_sc(re_search_state<ContiguousIterator> &sstate, const std::random_access_iterator_tag) const | |
22120 { | |
22121 if (is_contiguous(sstate.srchbegin)) | |
22122 { | |
22123 typedef typename std::iterator_traits<ContiguousIterator>::value_type char_type2; | |
22124 const char_type2 ec = static_cast<char_type2>(this->NFA_states[0].char_num); | |
22125 | |
22126 for (;;) | |
22127 { | |
22128 if (sstate.nextpos >= sstate.srchend) | |
22129 break; | |
22130 | |
22131 sstate.ssc.iter = sstate.nextpos; | |
22132 | |
22133 const char_type2 *const bgnpos = std::char_traits<char_type2>::find(&*sstate.nextpos, sstate.srchend - sstate.nextpos, ec); | |
22134 | |
22135 if (bgnpos) | |
22136 { | |
22137 // sstate.ssc.iter = bgnpos; | |
22138 sstate.ssc.iter += bgnpos - &*sstate.nextpos; | |
22139 // sstate.nextpos = bgnpos + 1; | |
22140 sstate.nextpos = sstate.ssc.iter + 1; | |
22141 | |
22142 #if defined(SRELL_NO_LIMIT_COUNTER) | |
22143 sstate.reset(); | |
22144 #else | |
22145 sstate.reset(this->limit_counter); | |
22146 #endif | |
22147 const int reason = run_automaton<icase, false>(sstate); | |
22148 if (reason) | |
22149 return reason; | |
22150 } | |
22151 else | |
22152 break; | |
22153 } | |
22154 return 0; | |
22155 } | |
22156 return do_search_sc<icase>(sstate, std::bidirectional_iterator_tag()); | |
22157 } | |
22158 | |
22159 template <const bool icase, typename BidirectionalIterator> | |
22160 int do_search_sc(re_search_state<BidirectionalIterator> &sstate, const std::bidirectional_iterator_tag) const | |
22161 { | |
22162 typedef typename std::iterator_traits<BidirectionalIterator>::value_type char_type2; | |
22163 const char_type2 ec = static_cast<char_type2>(this->NFA_states[0].char_num); | |
22164 | |
22165 for (; sstate.nextpos != sstate.srchend;) | |
22166 { | |
22167 sstate.ssc.iter = find(sstate.nextpos, sstate.srchend, ec); | |
22168 | |
22169 if (sstate.ssc.iter != sstate.srchend) | |
22170 { | |
22171 sstate.nextpos = sstate.ssc.iter; | |
22172 ++sstate.nextpos; | |
22173 | |
22174 #if defined(SRELL_NO_LIMIT_COUNTER) | |
22175 sstate.reset(); | |
22176 #else | |
22177 sstate.reset(this->limit_counter); | |
22178 #endif | |
22179 const int reason = run_automaton<icase, false>(sstate); | |
22180 if (reason) | |
22181 return reason; | |
22182 } | |
22183 else | |
22184 break; | |
22185 } | |
22186 return 0; | |
22187 } | |
22188 | |
22189 template <typename BidirectionalIterator, typename CharT0> | |
22190 BidirectionalIterator find(BidirectionalIterator begin, const BidirectionalIterator end, const CharT0 c) const | |
22191 { | |
22192 for (; begin != end; ++begin) | |
22193 if ((*begin & utf_traits::bitsetmask) == (c & utf_traits::bitsetmask)) | |
22194 break; | |
22195 | |
22196 return begin; | |
22197 } | |
22198 | |
22199 template <typename BidirectionalIterator> | |
22200 bool is_contiguous(BidirectionalIterator) const | |
22201 { | |
22202 return false; | |
22203 } | |
22204 | |
22205 #if !defined(SRELL_NO_CONCEPTS) && defined(__cpp_concepts) | |
22206 | |
22207 template <std::contiguous_iterator I> | |
22208 bool is_contiguous(I) const | |
22209 { | |
22210 return true; | |
22211 } | |
22212 | |
22213 #else | |
22214 | |
22215 bool is_contiguous(const charT *) const | |
22216 { | |
22217 return true; | |
22218 } | |
22219 | |
22220 bool is_contiguous(typename std::basic_string<charT>::const_iterator) const | |
22221 { | |
22222 return true; | |
22223 } | |
22224 #endif // !defined(SRELL_NO_CONCEPTS) && defined(__cpp_concepts) | |
22225 #endif // !defined(SRELLDBG_NO_SCFINDER) | |
22226 | |
22227 template <typename T, const bool> | |
22228 struct casehelper | |
22229 { | |
22230 static T canonicalise(const T t) | |
22231 { | |
22232 return t; | |
22233 } | |
22234 }; | |
22235 | |
22236 template <typename T> | |
22237 struct casehelper<T, true> | |
22238 { | |
22239 static T canonicalise(const T t) | |
22240 { | |
22241 return unicode_case_folding::do_casefolding(t); | |
22242 } | |
22243 }; | |
22244 | |
22245 template <const bool icase, const bool reverse, typename BidirectionalIterator> | |
22246 int run_automaton | |
22247 ( | |
22248 re_search_state</*charT, */BidirectionalIterator> &sstate | |
22249 ) const | |
22250 { | |
22251 typedef casehelper<ui_l32, icase> casehelper_type; | |
22252 typedef typename re_object_core<charT, traits>::state_type state_type; | |
22253 typedef re_search_state</*charT, */BidirectionalIterator> ss_type; | |
22254 // typedef typename ss_type::search_state_core ssc_type; | |
22255 typedef typename ss_type::submatchcore_type submatchcore_type; | |
22256 typedef typename ss_type::submatch_type submatch_type; | |
22257 typedef typename ss_type::counter_type counter_type; | |
22258 typedef typename ss_type::position_type position_type; | |
22259 ui_l32 is_matched; | |
22260 | |
22261 goto START; | |
22262 | |
22263 JUDGE: | |
22264 if (is_matched) | |
22265 { | |
22266 MATCHED: | |
22267 sstate.ssc.state = sstate.ssc.state->next_state1; | |
22268 } | |
22269 else | |
22270 { | |
22271 NOT_MATCHED: | |
22272 | |
22273 #if !defined(SRELL_NO_LIMIT_COUNTER) | |
22274 if (--sstate.failure_counter) | |
22275 { | |
22276 #endif | |
22277 if (sstate.bt_size() > sstate.btstack_size) | |
22278 { | |
22279 sstate.pop_bt(sstate.ssc); | |
22280 | |
22281 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22282 } | |
22283 else | |
22284 return 0; | |
22285 | |
22286 #if !defined(SRELL_NO_LIMIT_COUNTER) | |
22287 } | |
22288 else | |
22289 #if defined(SRELL_NO_THROW) | |
22290 return static_cast<int>(regex_constants::error_complexity); | |
22291 #else | |
22292 throw regex_error(regex_constants::error_complexity); | |
22293 #endif | |
22294 #endif | |
22295 } | |
22296 | |
22297 // START: | |
22298 for (;;) | |
22299 { | |
22300 START: | |
22301 | |
22302 switch (sstate.ssc.state->type) | |
22303 { | |
22304 case st_character: | |
22305 | |
22306 #if defined(_MSC_VER) && _MSC_VER >= 1400 | |
22307 #pragma warning(push) | |
22308 #pragma warning(disable:4127) | |
22309 #endif | |
22310 if (!reverse) | |
22311 #if defined(_MSC_VER) && _MSC_VER >= 1400 | |
22312 #pragma warning(pop) | |
22313 #endif | |
22314 { | |
22315 if (!(sstate.ssc.iter == sstate.srchend)) | |
22316 { | |
22317 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22318 const BidirectionalIterator prevpos = sstate.ssc.iter; | |
22319 #endif | |
22320 const ui_l32 uchar = casehelper_type::canonicalise(utf_traits::codepoint_inc(sstate.ssc.iter, sstate.srchend)); | |
22321 RETRY_CF: | |
22322 | |
22323 if (sstate.ssc.state->char_num == uchar) | |
22324 goto MATCHED; | |
22325 | |
22326 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22327 if (sstate.ssc.state->next_state2) | |
22328 { | |
22329 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22330 | |
22331 if (sstate.ssc.state->type == st_character) | |
22332 goto RETRY_CF; | |
22333 | |
22334 sstate.ssc.iter = prevpos; | |
22335 continue; | |
22336 } | |
22337 #endif | |
22338 } | |
22339 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22340 else if (sstate.ssc.state->next_state2) | |
22341 { | |
22342 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22343 continue; | |
22344 } | |
22345 #endif | |
22346 } | |
22347 else // reverse == true. | |
22348 { | |
22349 if (!(sstate.ssc.iter == sstate.lblim)) | |
22350 { | |
22351 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22352 const BidirectionalIterator prevpos = sstate.ssc.iter; | |
22353 #endif | |
22354 const ui_l32 uchar = casehelper_type::canonicalise(utf_traits::dec_codepoint(sstate.ssc.iter, sstate.lblim)); | |
22355 RETRY_CB: | |
22356 | |
22357 if (sstate.ssc.state->char_num == uchar) | |
22358 goto MATCHED; | |
22359 | |
22360 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22361 if (sstate.ssc.state->next_state2) | |
22362 { | |
22363 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22364 | |
22365 if (sstate.ssc.state->type == st_character) | |
22366 goto RETRY_CB; | |
22367 | |
22368 sstate.ssc.iter = prevpos; | |
22369 continue; | |
22370 } | |
22371 #endif | |
22372 } | |
22373 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22374 else if (sstate.ssc.state->next_state2) | |
22375 { | |
22376 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22377 continue; | |
22378 } | |
22379 #endif | |
22380 } | |
22381 goto NOT_MATCHED; | |
22382 | |
22383 case st_character_class: | |
22384 | |
22385 #if defined(_MSC_VER) && _MSC_VER >= 1400 | |
22386 #pragma warning(push) | |
22387 #pragma warning(disable:4127) | |
22388 #endif | |
22389 if (!reverse) | |
22390 #if defined(_MSC_VER) && _MSC_VER >= 1400 | |
22391 #pragma warning(pop) | |
22392 #endif | |
22393 { | |
22394 if (!(sstate.ssc.iter == sstate.srchend)) | |
22395 { | |
22396 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22397 const BidirectionalIterator prevpos = sstate.ssc.iter; | |
22398 #endif | |
22399 const ui_l32 uchar = utf_traits::codepoint_inc(sstate.ssc.iter, sstate.srchend); | |
22400 // RETRY_CCF: | |
22401 | |
22402 #if !defined(SRELLDBG_NO_CCPOS) | |
22403 if (this->character_class.is_included(sstate.ssc.state->quantifier.atleast, sstate.ssc.state->quantifier.atmost, uchar)) | |
22404 #else | |
22405 if (this->character_class.is_included(sstate.ssc.state->char_num, uchar)) | |
22406 #endif | |
22407 goto MATCHED; | |
22408 | |
22409 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22410 if (sstate.ssc.state->next_state2) | |
22411 { | |
22412 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22413 | |
22414 // if (sstate.ssc.state->type == st_character_class) | |
22415 // goto RETRY_CCF; | |
22416 | |
22417 sstate.ssc.iter = prevpos; | |
22418 continue; | |
22419 } | |
22420 #endif | |
22421 } | |
22422 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22423 else if (sstate.ssc.state->next_state2) | |
22424 { | |
22425 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22426 continue; | |
22427 } | |
22428 #endif | |
22429 } | |
22430 else // reverse == true. | |
22431 { | |
22432 if (!(sstate.ssc.iter == sstate.lblim)) | |
22433 { | |
22434 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22435 const BidirectionalIterator prevpos = sstate.ssc.iter; | |
22436 #endif | |
22437 const ui_l32 uchar = utf_traits::dec_codepoint(sstate.ssc.iter, sstate.lblim); | |
22438 // RETRY_CCB: | |
22439 | |
22440 #if !defined(SRELLDBG_NO_CCPOS) | |
22441 if (this->character_class.is_included(sstate.ssc.state->quantifier.atleast, sstate.ssc.state->quantifier.atmost, uchar)) | |
22442 #else | |
22443 if (this->character_class.is_included(sstate.ssc.state->char_num, uchar)) | |
22444 #endif | |
22445 goto MATCHED; | |
22446 | |
22447 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22448 if (sstate.ssc.state->next_state2) | |
22449 { | |
22450 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22451 | |
22452 // if (sstate.ssc.state->type == st_character_class) | |
22453 // goto RETRY_CCB; | |
22454 | |
22455 sstate.ssc.iter = prevpos; | |
22456 continue; | |
22457 } | |
22458 #endif | |
22459 } | |
22460 #if !defined(SRELLDBG_NO_ASTERISK_OPT) | |
22461 else if (sstate.ssc.state->next_state2) | |
22462 { | |
22463 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22464 continue; | |
22465 } | |
22466 #endif | |
22467 } | |
22468 goto NOT_MATCHED; | |
22469 | |
22470 case st_epsilon: | |
22471 | |
22472 #if defined(SRELLDBG_NO_SKIP_EPSILON) | |
22473 if (sstate.ssc.state->next_state2) | |
22474 #endif | |
22475 { | |
22476 sstate.push_bt(sstate.ssc); | |
22477 } | |
22478 | |
22479 sstate.ssc.state = sstate.ssc.state->next_state1; | |
22480 continue; | |
22481 | |
22482 default: | |
22483 switch (sstate.ssc.state->type) | |
22484 { | |
22485 | |
22486 case st_check_counter: | |
22487 { | |
22488 ST_CHECK_COUNTER: | |
22489 const ui_l32 counter = sstate.counter[sstate.ssc.state->char_num]; | |
22490 | |
22491 if (counter < sstate.ssc.state->quantifier.atleast) | |
22492 { | |
22493 ++sstate.ssc.state; | |
22494 } | |
22495 else | |
22496 { | |
22497 if (counter < sstate.ssc.state->quantifier.atmost || sstate.ssc.state->quantifier.is_infinity()) | |
22498 { | |
22499 sstate.push_bt(sstate.ssc); | |
22500 sstate.ssc.state = sstate.ssc.state->next_state1; | |
22501 } | |
22502 else | |
22503 { | |
22504 sstate.ssc.state = sstate.ssc.state->quantifier.is_greedy | |
22505 ? sstate.ssc.state->next_state2 | |
22506 : sstate.ssc.state->next_state1; | |
22507 } | |
22508 continue; | |
22509 } | |
22510 } | |
22511 //@fallthrough@ | |
22512 | |
22513 case st_increment_counter: | |
22514 { | |
22515 ui_l32 &counter = sstate.counter[sstate.ssc.state->char_num]; | |
22516 | |
22517 if (counter != constants::infinity) | |
22518 { | |
22519 ++counter; | |
22520 if (sstate.ssc.state->next_state2) | |
22521 sstate.push_bt(sstate.ssc); | |
22522 } | |
22523 } | |
22524 goto MATCHED; | |
22525 | |
22526 case st_decrement_counter: | |
22527 --sstate.counter[sstate.ssc.state->char_num]; | |
22528 goto NOT_MATCHED; | |
22529 | |
22530 case st_save_and_reset_counter: | |
22531 { | |
22532 counter_type &c = sstate.counter[sstate.ssc.state->char_num]; | |
22533 | |
22534 sstate.push_c(c); | |
22535 sstate.push_bt(sstate.ssc); | |
22536 c = 0; | |
22537 } | |
22538 sstate.ssc.state = sstate.ssc.state->next_state1; | |
22539 goto ST_CHECK_COUNTER; | |
22540 | |
22541 case st_restore_counter: | |
22542 sstate.pop_c(sstate.counter[sstate.ssc.state->char_num]); | |
22543 goto NOT_MATCHED; | |
22544 | |
22545 case st_roundbracket_open: // '(': | |
22546 { | |
22547 ST_ROUNDBRACKET_OPEN: | |
22548 for (ui_l32 brno = sstate.ssc.state->quantifier.atleast; brno <= sstate.ssc.state->quantifier.atmost; ++brno) | |
22549 { | |
22550 submatch_type &inner_bracket = sstate.bracket[brno]; | |
22551 | |
22552 sstate.push_sm(inner_bracket.core); | |
22553 sstate.push_c(inner_bracket.counter); | |
22554 inner_bracket.core.open_at = inner_bracket.core.close_at = sstate.srchend; | |
22555 inner_bracket.counter = 0; | |
22556 // ECMAScript spec (3-5.1) 15.10.2.5, NOTE 3. | |
22557 // ECMAScript 2018 (ES9) 21.2.2.5.1, Note 3. | |
22558 } | |
22559 | |
22560 submatch_type &bracket = sstate.bracket[sstate.ssc.state->char_num]; | |
22561 | |
22562 sstate.push_sm(bracket.core); | |
22563 | |
22564 sstate.push_bt(sstate.ssc); | |
22565 | |
22566 if (++bracket.counter == 0) | |
22567 goto ST_ROUNDBRACKET_OPEN; | |
22568 | |
22569 (!reverse ? bracket.core.open_at : bracket.core.close_at) = sstate.ssc.iter; | |
22570 } | |
22571 goto MATCHED; | |
22572 | |
22573 case st_roundbracket_pop: // '/': | |
22574 { | |
22575 submatch_type &bracket = sstate.bracket[sstate.ssc.state->char_num]; | |
22576 | |
22577 --bracket.counter; | |
22578 sstate.pop_sm(bracket.core); | |
22579 | |
22580 for (ui_l32 brno = sstate.ssc.state->quantifier.atmost; brno >= sstate.ssc.state->quantifier.atleast; --brno) | |
22581 { | |
22582 submatch_type &inner_bracket = sstate.bracket[brno]; | |
22583 | |
22584 sstate.pop_c(inner_bracket.counter); | |
22585 sstate.pop_sm(inner_bracket.core); | |
22586 } | |
22587 } | |
22588 goto NOT_MATCHED; | |
22589 | |
22590 case st_roundbracket_close: // ')': | |
22591 { | |
22592 submatch_type &bracket = sstate.bracket[sstate.ssc.state->char_num]; | |
22593 submatchcore_type &brc = bracket.core; | |
22594 | |
22595 if ((!reverse ? brc.open_at : brc.close_at) != sstate.ssc.iter) | |
22596 { | |
22597 sstate.ssc.state = sstate.ssc.state->next_state1; | |
22598 } | |
22599 else // 0 width match, breaks from the loop. | |
22600 { | |
22601 if (sstate.ssc.state->next_state1->type != st_check_counter) | |
22602 { | |
22603 if (bracket.counter > 1) | |
22604 goto NOT_MATCHED; // ECMAScript spec 15.10.2.5, note 4. | |
22605 | |
22606 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22607 // Accepts 0 width match and exits. | |
22608 } | |
22609 else | |
22610 { | |
22611 // A pair with check_counter. | |
22612 const counter_type counter = sstate.counter[sstate.ssc.state->next_state1->char_num]; | |
22613 | |
22614 if (counter > sstate.ssc.state->next_state1->quantifier.atleast) | |
22615 goto NOT_MATCHED; // Takes a captured string in the previous loop. | |
22616 | |
22617 sstate.ssc.state = sstate.ssc.state->next_state1; | |
22618 // Accepts 0 width match and continues. | |
22619 } | |
22620 } | |
22621 (!reverse ? brc.close_at : brc.open_at) = sstate.ssc.iter; | |
22622 } | |
22623 continue; | |
22624 | |
22625 case st_repeat_in_push: | |
22626 { | |
22627 position_type &r = sstate.repeat[sstate.ssc.state->char_num]; | |
22628 | |
22629 sstate.push_rp(r); | |
22630 r = sstate.ssc.iter; | |
22631 | |
22632 for (ui_l32 brno = sstate.ssc.state->quantifier.atleast; brno <= sstate.ssc.state->quantifier.atmost; ++brno) | |
22633 { | |
22634 submatch_type &inner_bracket = sstate.bracket[brno]; | |
22635 | |
22636 sstate.push_sm(inner_bracket.core); | |
22637 sstate.push_c(inner_bracket.counter); | |
22638 inner_bracket.core.open_at = inner_bracket.core.close_at = sstate.srchend; | |
22639 inner_bracket.counter = 0; | |
22640 // ECMAScript 2019 (ES10) 21.2.2.5.1, Note 3. | |
22641 } | |
22642 sstate.push_bt(sstate.ssc); | |
22643 } | |
22644 goto MATCHED; | |
22645 | |
22646 case st_repeat_in_pop: | |
22647 for (ui_l32 brno = sstate.ssc.state->quantifier.atmost; brno >= sstate.ssc.state->quantifier.atleast; --brno) | |
22648 { | |
22649 submatch_type &inner_bracket = sstate.bracket[brno]; | |
22650 | |
22651 sstate.pop_c(inner_bracket.counter); | |
22652 sstate.pop_sm(inner_bracket.core); | |
22653 } | |
22654 | |
22655 sstate.pop_rp(sstate.repeat[sstate.ssc.state->char_num]); | |
22656 goto NOT_MATCHED; | |
22657 | |
22658 case st_check_0_width_repeat: | |
22659 if (sstate.ssc.iter != sstate.repeat[sstate.ssc.state->char_num]) | |
22660 goto MATCHED; | |
22661 | |
22662 if (sstate.ssc.state->next_state1->type == st_check_counter) | |
22663 { | |
22664 const counter_type counter = sstate.counter[sstate.ssc.state->next_state1->char_num]; | |
22665 | |
22666 if (counter > sstate.ssc.state->next_state1->quantifier.atleast) | |
22667 goto NOT_MATCHED; | |
22668 | |
22669 sstate.ssc.state = sstate.ssc.state->next_state1; | |
22670 } | |
22671 else | |
22672 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22673 | |
22674 continue; | |
22675 | |
22676 case st_backreference: // '\\': | |
22677 { | |
22678 const submatch_type &bracket = sstate.bracket[sstate.ssc.state->char_num]; | |
22679 | |
22680 if (bracket.counter == 0) // Undefined. | |
22681 { | |
22682 ESCAPE_FROM_ZERO_WIDTH_MATCH: | |
22683 sstate.ssc.state = sstate.ssc.state->next_state2; | |
22684 continue; | |
22685 } | |
22686 | |
22687 const submatchcore_type &brc = bracket.core; | |
22688 | |
22689 if (brc.open_at == brc.close_at) | |
22690 goto ESCAPE_FROM_ZERO_WIDTH_MATCH; | |
22691 | |
22692 #if defined(_MSC_VER) && _MSC_VER >= 1400 | |
22693 #pragma warning(push) | |
22694 #pragma warning(disable:4127) | |
22695 #endif | |
22696 if (!reverse) | |
22697 #if defined(_MSC_VER) && _MSC_VER >= 1400 | |
22698 #pragma warning(pop) | |
22699 #endif | |
22700 { | |
22701 BidirectionalIterator backrefpos = brc.open_at; | |
22702 | |
22703 if (!sstate.ssc.state->flags) // !icase. | |
22704 { | |
22705 for (; backrefpos != brc.close_at;) | |
22706 { | |
22707 if (sstate.ssc.iter == sstate.srchend || *sstate.ssc.iter++ != *backrefpos++) | |
22708 goto NOT_MATCHED; | |
22709 } | |
22710 } | |
22711 else // icase. | |
22712 { | |
22713 for (; backrefpos != brc.close_at;) | |
22714 { | |
22715 if (!(sstate.ssc.iter == sstate.srchend)) | |
22716 { | |
22717 const ui_l32 uchartxt = utf_traits::codepoint_inc(sstate.ssc.iter, sstate.srchend); | |
22718 const ui_l32 ucharref = utf_traits::codepoint_inc(backrefpos, brc.close_at); | |
22719 | |
22720 if (unicode_case_folding::do_casefolding(uchartxt) == unicode_case_folding::do_casefolding(ucharref)) | |
22721 continue; | |
22722 } | |
22723 goto NOT_MATCHED; | |
22724 } | |
22725 } | |
22726 } | |
22727 else // reverse == true. | |
22728 { | |
22729 BidirectionalIterator backrefpos = brc.close_at; | |
22730 | |
22731 if (!sstate.ssc.state->flags) // !icase. | |
22732 { | |
22733 for (; backrefpos != brc.open_at;) | |
22734 { | |
22735 if (sstate.ssc.iter == sstate.lblim || *--sstate.ssc.iter != *--backrefpos) | |
22736 goto NOT_MATCHED; | |
22737 } | |
22738 } | |
22739 else // icase. | |
22740 { | |
22741 for (; backrefpos != brc.open_at;) | |
22742 { | |
22743 if (!(sstate.ssc.iter == sstate.lblim)) | |
22744 { | |
22745 const ui_l32 uchartxt = utf_traits::dec_codepoint(sstate.ssc.iter, sstate.lblim); | |
22746 const ui_l32 ucharref = utf_traits::dec_codepoint(backrefpos, brc.open_at); | |
22747 | |
22748 if (unicode_case_folding::do_casefolding(uchartxt) == unicode_case_folding::do_casefolding(ucharref)) | |
22749 continue; | |
22750 } | |
22751 goto NOT_MATCHED; | |
22752 } | |
22753 } | |
22754 } | |
22755 } | |
22756 goto MATCHED; | |
22757 | |
22758 case st_lookaround_open: | |
22759 { | |
22760 const state_type *const lostate = sstate.ssc.state; | |
22761 | |
22762 for (ui_l32 brno = lostate->quantifier.atleast; brno <= lostate->quantifier.atmost; ++brno) | |
22763 { | |
22764 const submatch_type &sm = sstate.bracket[brno]; | |
22765 sstate.push_sm(sm.core); | |
22766 sstate.push_c(sm.counter); | |
22767 } | |
22768 | |
22769 const typename ss_type::bottom_state backup_bottom(sstate.btstack_size, sstate); | |
22770 const BidirectionalIterator orgpos = sstate.ssc.iter; | |
22771 | |
22772 if (lostate->quantifier.atleast <= lostate->quantifier.atmost) | |
22773 sstate.push_bt(sstate.ssc); | |
22774 | |
22775 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) && !defined(SRELLDBG_NO_MPREWINDER) | |
22776 if (lostate->quantifier.is_greedy >= 2) | |
22777 { | |
22778 sstate.push_rp(sstate.lblim); | |
22779 sstate.lblim = sstate.srchbegin; | |
22780 } | |
22781 #endif | |
22782 | |
22783 sstate.btstack_size = sstate.bt_size(); | |
22784 | |
22785 #if defined(SRELL_FIXEDWIDTHLOOKBEHIND) | |
22786 | |
22787 // if (lostate->reverse) | |
22788 { | |
22789 for (ui_l32 i = 0; i < lostate->quantifier.is_greedy; ++i) | |
22790 { | |
22791 if (!(sstate.ssc.iter == sstate.lblim)) | |
22792 { | |
22793 utf_traits::dec_codepoint(sstate.ssc.iter, sstate.lblim); | |
22794 continue; | |
22795 } | |
22796 is_matched = false; | |
22797 goto AFTER_LOOKAROUND; | |
22798 } | |
22799 } | |
22800 #endif | |
22801 sstate.ssc.state = lostate->next_state2->next_state1; | |
22802 | |
22803 // sstate.ssc.state is no longer pointing to lookaround_open! | |
22804 | |
22805 #if defined(SRELL_NO_THROW) | |
22806 const int reason = | |
22807 #else | |
22808 is_matched = | |
22809 #endif | |
22810 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) | |
22811 (lostate->quantifier.is_greedy == 0 ? run_automaton<icase, false>(sstate) : run_automaton<icase, true>(sstate)); | |
22812 #else | |
22813 run_automaton<icase, false>(sstate); | |
22814 #endif | |
22815 | |
22816 #if defined(SRELL_NO_THROW) | |
22817 if (reason & ~1) | |
22818 return reason; | |
22819 | |
22820 is_matched = reason ? 1 : 0; | |
22821 #endif | |
22822 | |
22823 #if defined(SRELL_FIXEDWIDTHLOOKBEHIND) | |
22824 AFTER_LOOKAROUND: | |
22825 #endif | |
22826 sstate.bt_resize(sstate.btstack_size); | |
22827 | |
22828 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) && !defined(SRELLDBG_NO_MPREWINDER) | |
22829 if (lostate->quantifier.is_greedy >= 2) | |
22830 { | |
22831 sstate.pop_rp(sstate.lblim); | |
22832 if (is_matched) | |
22833 sstate.bracket[0].core.open_at = sstate.ssc.iter; | |
22834 } | |
22835 #endif | |
22836 | |
22837 #if defined(SRELL_ENABLE_GT) | |
22838 if (lostate->char_num != meta_char::mc_gt) // '>' | |
22839 #endif | |
22840 { | |
22841 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) && !defined(SRELLDBG_NO_MPREWINDER) | |
22842 if (lostate->quantifier.is_greedy < 3) | |
22843 #endif | |
22844 sstate.ssc.iter = orgpos; | |
22845 } | |
22846 | |
22847 backup_bottom.restore(sstate.btstack_size, sstate); | |
22848 | |
22849 is_matched ^= lostate->flags; // is_not. | |
22850 | |
22851 if (is_matched) | |
22852 { | |
22853 #if !defined(SRELL_FIXEDWIDTHLOOKBEHIND) && !defined(SRELLDBG_NO_MPREWINDER) | |
22854 if (lostate->quantifier.is_greedy == 3) | |
22855 sstate.ssc.state = this->NFA_states[0].next_state2; | |
22856 else | |
22857 #endif | |
22858 sstate.ssc.state = lostate->next_state1; | |
22859 continue; | |
22860 } | |
22861 | |
22862 if (lostate->quantifier.atleast <= lostate->quantifier.atmost) | |
22863 sstate.pop_bt(sstate.ssc); | |
22864 sstate.ssc.state = lostate->next_state2; | |
22865 } | |
22866 //@fallthrough@ | |
22867 | |
22868 case st_lookaround_pop: | |
22869 for (ui_l32 brno = sstate.ssc.state->quantifier.atmost; brno >= sstate.ssc.state->quantifier.atleast; --brno) | |
22870 { | |
22871 submatch_type &sm = sstate.bracket[brno]; | |
22872 | |
22873 sstate.pop_c(sm.counter); | |
22874 sstate.pop_sm(sm.core); | |
22875 } | |
22876 goto NOT_MATCHED; | |
22877 | |
22878 case st_bol: // '^': | |
22879 if (sstate.ssc.iter == sstate.lblim && !(sstate.reallblim != sstate.lblim || (sstate.flags & regex_constants::match_prev_avail) != 0)) | |
22880 { | |
22881 if (!(sstate.flags & regex_constants::match_not_bol)) | |
22882 goto MATCHED; | |
22883 } | |
22884 // !sstate.is_at_lookbehindlimit() || sstate.match_prev_avail_flag() | |
22885 else if (sstate.ssc.state->flags) // multiline. | |
22886 { | |
22887 const ui_l32 prevchar = utf_traits::prevcodepoint(sstate.ssc.iter, sstate.reallblim); | |
22888 | |
22889 #if !defined(SRELLDBG_NO_CCPOS) | |
22890 if (this->character_class.is_included(sstate.ssc.state->quantifier.atleast, sstate.ssc.state->quantifier.atmost, prevchar)) | |
22891 #else | |
22892 if (this->character_class.is_included(re_character_class::newline, prevchar)) | |
22893 #endif | |
22894 goto MATCHED; | |
22895 } | |
22896 goto NOT_MATCHED; | |
22897 | |
22898 case st_eol: // '$': | |
22899 if (sstate.ssc.iter == sstate.srchend) | |
22900 { | |
22901 if (!(sstate.flags & regex_constants::match_not_eol)) | |
22902 goto MATCHED; | |
22903 } | |
22904 else if (sstate.ssc.state->flags) // multiline. | |
22905 { | |
22906 const ui_l32 nextchar = utf_traits::codepoint(sstate.ssc.iter, sstate.srchend); | |
22907 | |
22908 #if !defined(SRELLDBG_NO_CCPOS) | |
22909 if (this->character_class.is_included(sstate.ssc.state->quantifier.atleast, sstate.ssc.state->quantifier.atmost, nextchar)) | |
22910 #else | |
22911 if (this->character_class.is_included(re_character_class::newline, nextchar)) | |
22912 #endif | |
22913 goto MATCHED; | |
22914 } | |
22915 goto NOT_MATCHED; | |
22916 | |
22917 case st_boundary: // '\b' '\B' | |
22918 is_matched = sstate.ssc.state->flags; // is_not. | |
22919 // is_matched = sstate.ssc.state->char_num == char_alnum::ch_B; | |
22920 | |
22921 // First, suppose the previous character is not \w but \W. | |
22922 | |
22923 if (sstate.ssc.iter == sstate.srchend) | |
22924 { | |
22925 if (sstate.flags & regex_constants::match_not_eow) | |
22926 is_matched = is_matched ? 0u : 1u; | |
22927 } | |
22928 else | |
22929 { | |
22930 #if !defined(SRELLDBG_NO_CCPOS) | |
22931 if (this->character_class.is_included(sstate.ssc.state->quantifier.atleast, sstate.ssc.state->quantifier.atmost, utf_traits::codepoint(sstate.ssc.iter, sstate.srchend))) | |
22932 #else | |
22933 if (this->character_class.is_included(sstate.ssc.state->char_num, utf_traits::codepoint(sstate.ssc.iter, sstate.srchend))) | |
22934 #endif | |
22935 { | |
22936 is_matched = is_matched ? 0u : 1u; | |
22937 } | |
22938 } | |
22939 // \W/last \w | |
22940 // \b false true | |
22941 // \B true false | |
22942 | |
22943 // Second, if the actual previous character is \w, flip is_matched. | |
22944 | |
22945 if (sstate.ssc.iter == sstate.lblim && !(sstate.reallblim != sstate.lblim || (sstate.flags & regex_constants::match_prev_avail) != 0)) | |
22946 { | |
22947 if (sstate.flags & regex_constants::match_not_bow) | |
22948 is_matched = is_matched ? 0u : 1u; | |
22949 } | |
22950 else | |
22951 { | |
22952 // !sstate.is_at_lookbehindlimit() || sstate.match_prev_avail_flag() | |
22953 #if !defined(SRELLDBG_NO_CCPOS) | |
22954 if (this->character_class.is_included(sstate.ssc.state->quantifier.atleast, sstate.ssc.state->quantifier.atmost, utf_traits::prevcodepoint(sstate.ssc.iter, sstate.reallblim))) | |
22955 #else | |
22956 if (this->character_class.is_included(sstate.ssc.state->char_num, utf_traits::prevcodepoint(sstate.ssc.iter, sstate.reallblim))) | |
22957 #endif | |
22958 { | |
22959 is_matched = is_matched ? 0u : 1u; | |
22960 } | |
22961 } | |
22962 // \b \B | |
22963 // pre cur \W/last \w pre cur \W/last \w | |
22964 // \W/base false true \W/base true false | |
22965 // \w true false \w false true | |
22966 | |
22967 goto JUDGE; | |
22968 | |
22969 case st_success: // == lookaround_close. | |
22970 // if (is_recursive) | |
22971 if (sstate.btstack_size) | |
22972 return 1; | |
22973 | |
22974 if | |
22975 ( | |
22976 (!(sstate.flags & regex_constants::match_not_null) || !(sstate.ssc.iter == sstate.bracket[0].core.open_at)) | |
22977 && | |
22978 (!(sstate.flags & regex_constants::match_match_) || sstate.ssc.iter == sstate.srchend) | |
22979 ) | |
22980 return 1; | |
22981 | |
22982 goto NOT_MATCHED; | |
22983 | |
22984 #if defined(SRELLTEST_NEXTPOS_OPT) | |
22985 case st_move_nextpos: | |
22986 #if !defined(SRELLDBG_NO_1STCHRCLS) && !defined(SRELLDBG_NO_BITSET) | |
22987 sstate.nextpos = sstate.ssc.iter; | |
22988 if (!(sstate.ssc.iter == sstate.srchend)) | |
22989 ++sstate.nextpos; | |
22990 #else // defined(SRELLDBG_NO_1STCHRCLS) || defined(SRELLDBG_NO_BITSET) | |
22991 if (sstate.ssc.iter != sstate.bracket[0].core.open_at) | |
22992 { | |
22993 sstate.nextpos = sstate.ssc.iter; | |
22994 if (!(sstate.ssc.iter == sstate.srchend)) | |
22995 utf_traits::codepoint_inc(sstate.nextpos, sstate.srchend); | |
22996 } | |
22997 #endif | |
22998 goto MATCHED; | |
22999 #endif | |
23000 | |
23001 default: | |
23002 // Reaching here means that this->NFA_states is corrupted. | |
23003 #if defined(SRELL_NO_THROW) | |
23004 return static_cast<int>(regex_constants::error_internal); | |
23005 #else | |
23006 throw regex_error(regex_constants::error_internal); | |
23007 #endif | |
23008 } | |
23009 } | |
23010 } | |
23011 } | |
23012 | |
23013 #if !defined(SRELL_NO_APIEXT) | |
23014 | |
23015 protected: | |
23016 | |
23017 template <typename StringLike, typename ST, typename SA, typename RAIter, typename MA> | |
23018 void do_replace( | |
23019 StringLike &s, | |
23020 bool (*repfunc)(std::basic_string<charT, ST, SA> &, const match_results<RAIter, MA> &, void *), | |
23021 void *ptr | |
23022 ) const | |
23023 { | |
23024 typedef std::basic_string<charT, ST, SA> string_type; | |
23025 typedef typename string_type::size_type size_type; | |
23026 typedef typename traits::utf_traits utf_traits; | |
23027 typedef match_results<RAIter, MA> match_type; | |
23028 regex_constants::match_flag_type flags = regex_constants::match_default; | |
23029 string_type subst; | |
23030 match_type match; | |
23031 size_type offset = 0; | |
23032 size_type prevend = offset; | |
23033 | |
23034 for (;;) | |
23035 { | |
23036 if (!this->search(pos0_<charT>(s, RAIter()) + offset, pos1_<charT>(s, RAIter()), pos0_<charT>(s, RAIter()), match, flags)) | |
23037 break; | |
23038 | |
23039 const typename match_type::size_type matchlen = match.length(0); | |
23040 | |
23041 match.update_prefix1_(pos0_<charT>(s, RAIter()) + prevend); | |
23042 offset = match[0].second - pos0_<charT>(s, RAIter()); | |
23043 | |
23044 const bool continuable = repfunc(subst, match, ptr); | |
23045 | |
23046 s.replace(match[0].first - pos0_<charT>(s, RAIter()), matchlen, subst); | |
23047 if (!continuable) | |
23048 break; | |
23049 | |
23050 offset += subst.size() - matchlen; | |
23051 prevend = offset; | |
23052 | |
23053 if (matchlen == 0) | |
23054 { | |
23055 if (offset == s.size()) | |
23056 { | |
23057 break; | |
23058 } | |
23059 else | |
23060 { | |
23061 RAIter it = pos0_<charT>(s, RAIter()) + offset; | |
23062 | |
23063 utf_traits::codepoint_inc(it, pos1_<charT>(s, RAIter())); | |
23064 offset = it - pos0_<charT>(s, RAIter()); | |
23065 } | |
23066 } | |
23067 subst.clear(); | |
23068 flags |= regex_constants::match_prev_avail; | |
23069 } | |
23070 } | |
23071 | |
23072 template <typename BidiIter> | |
23073 struct submatch_helper : public sub_match<BidiIter> | |
23074 { | |
23075 submatch_helper(const BidiIter f, const BidiIter s, const bool m = true) | |
23076 { | |
23077 this->first = f; | |
23078 this->second = s; | |
23079 this->matched = m; | |
23080 } | |
23081 }; | |
23082 | |
23083 template <typename MatchResults, typename container, typename BidiIter> | |
23084 void do_split( | |
23085 container &c, | |
23086 const BidiIter begin, | |
23087 const BidiIter end, | |
23088 const std::size_t limit /* = -1 */ | |
23089 ) const | |
23090 { | |
23091 typedef typename traits::utf_traits utf_traits; | |
23092 typedef MatchResults match_type; | |
23093 typedef submatch_helper<BidiIter> helper; | |
23094 regex_constants::match_flag_type flags = regex_constants::match_default; | |
23095 BidiIter offset = begin; | |
23096 BidiIter prevend = offset; | |
23097 std::size_t count = 0; | |
23098 match_type match; | |
23099 | |
23100 if (limit == 0) // 22.2.5.14 RegExp.prototype [ @@split ] ( string, limit ), step 14: | |
23101 return; | |
23102 | |
23103 if (offset == end) // 22.2.5.14 RegExp.prototype [ @@split ] ( string, limit ), step 16: | |
23104 { | |
23105 if (!this->search(offset, end, begin, match, flags)) | |
23106 c.push_back(helper(begin, end)); | |
23107 | |
23108 return; | |
23109 } | |
23110 | |
23111 for (; offset < end;) | |
23112 { | |
23113 if (!this->search(offset, end, begin, match, flags) || match[0].first == end) | |
23114 break; | |
23115 | |
23116 if (match[0].second != prevend) | |
23117 { | |
23118 if (++count == limit) | |
23119 break; | |
23120 c.push_back(helper(prevend, match[0].first)); | |
23121 | |
23122 prevend = match[0].second; | |
23123 | |
23124 for (typename match_type::size_type i = 1; i < match.size(); ++i) | |
23125 { | |
23126 if (++count == limit) | |
23127 goto FINAL_PUSH; | |
23128 c.push_back(match[i]); | |
23129 } | |
23130 | |
23131 offset = prevend; | |
23132 } | |
23133 else | |
23134 { | |
23135 utf_traits::codepoint_inc(offset, end); | |
23136 } | |
23137 flags |= regex_constants::match_prev_avail; | |
23138 } | |
23139 | |
23140 FINAL_PUSH: | |
23141 c.push_back(helper(prevend, end)); | |
23142 } | |
23143 | |
23144 #endif // !defined(SRELL_NO_APIEXT) | |
23145 }; | |
23146 // re_object | |
23147 | |
23148 } // namespace re_detail | |
23149 | |
23150 // ... "rei_algorithm.hpp"] | |
23151 // ["basic_regex.hpp" ... | |
23152 | |
23153 // 28.8, class template basic_regex: | |
23154 template <class charT, class traits = regex_traits<charT> > | |
23155 class basic_regex : public re_detail::re_object<charT, traits> | |
23156 { | |
23157 public: | |
23158 | |
23159 // Types: | |
23160 typedef charT value_type; | |
23161 typedef traits traits_type; | |
23162 typedef typename traits::string_type string_type; | |
23163 typedef regex_constants::syntax_option_type flag_type; | |
23164 typedef typename traits::locale_type locale_type; | |
23165 | |
23166 // 28.8.1, constants: | |
23167 // [7.8.1] constants | |
23168 static const regex_constants::syntax_option_type icase = regex_constants::icase; | |
23169 static const regex_constants::syntax_option_type nosubs = regex_constants::nosubs; | |
23170 static const regex_constants::syntax_option_type optimize = regex_constants::optimize; | |
23171 static const regex_constants::syntax_option_type collate = regex_constants::collate; | |
23172 static const regex_constants::syntax_option_type ECMAScript = regex_constants::ECMAScript; | |
23173 static const regex_constants::syntax_option_type basic = regex_constants::basic; | |
23174 static const regex_constants::syntax_option_type extended = regex_constants::extended; | |
23175 static const regex_constants::syntax_option_type awk = regex_constants::awk; | |
23176 static const regex_constants::syntax_option_type grep = regex_constants::grep; | |
23177 static const regex_constants::syntax_option_type egrep = regex_constants::egrep; | |
23178 static const regex_constants::syntax_option_type multiline = regex_constants::multiline; | |
23179 | |
23180 static const regex_constants::syntax_option_type dotall = regex_constants::dotall; | |
23181 static const regex_constants::syntax_option_type unicodesets = regex_constants::unicodesets; | |
23182 | |
23183 // 28.8.2, construct/copy/destroy: | |
23184 // [7.8.2] construct/copy/destroy | |
23185 basic_regex() | |
23186 { | |
23187 } | |
23188 | |
23189 explicit basic_regex(const charT *const p, const flag_type f = regex_constants::ECMAScript) | |
23190 { | |
23191 assign(p, p + std::char_traits<charT>::length(p), f); | |
23192 } | |
23193 | |
23194 basic_regex(const charT *const p, const std::size_t len, const flag_type f = regex_constants::ECMAScript) | |
23195 { | |
23196 assign(p, p + len, f); | |
23197 } | |
23198 | |
23199 basic_regex(const basic_regex &e) | |
23200 { | |
23201 assign(e); | |
23202 } | |
23203 | |
23204 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
23205 basic_regex(basic_regex &&e) SRELL_NOEXCEPT | |
23206 { | |
23207 assign(std::move(e)); | |
23208 } | |
23209 #endif | |
23210 | |
23211 template <class ST, class SA> | |
23212 explicit basic_regex(const std::basic_string<charT, ST, SA> &p, const flag_type f = regex_constants::ECMAScript) | |
23213 { | |
23214 assign(p, f); | |
23215 } | |
23216 | |
23217 template <class ForwardIterator> | |
23218 basic_regex(ForwardIterator first, ForwardIterator last, const flag_type f = regex_constants::ECMAScript) | |
23219 { | |
23220 assign(first, last, f); | |
23221 } | |
23222 | |
23223 #if defined(SRELL_CPP11_INITIALIZER_LIST_ENABLED) | |
23224 basic_regex(std::initializer_list<charT> il, const flag_type f = regex_constants::ECMAScript) | |
23225 { | |
23226 assign(il, f); | |
23227 } | |
23228 #endif | |
23229 | |
23230 // ~basic_regex(); | |
23231 | |
23232 basic_regex &operator=(const basic_regex &right) | |
23233 { | |
23234 return assign(right); | |
23235 } | |
23236 | |
23237 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
23238 basic_regex &operator=(basic_regex &&e) SRELL_NOEXCEPT | |
23239 { | |
23240 return assign(std::move(e)); | |
23241 } | |
23242 #endif | |
23243 | |
23244 basic_regex &operator=(const charT *const ptr) | |
23245 { | |
23246 return assign(ptr); | |
23247 } | |
23248 | |
23249 #if defined(SRELL_CPP11_INITIALIZER_LIST_ENABLED) | |
23250 basic_regex &operator=(std::initializer_list<charT> il) | |
23251 { | |
23252 return assign(il.begin(), il.end()); | |
23253 } | |
23254 #endif | |
23255 | |
23256 template <class ST, class SA> | |
23257 basic_regex &operator=(const std::basic_string<charT, ST, SA> &p) | |
23258 { | |
23259 return assign(p); | |
23260 } | |
23261 | |
23262 // 28.8.3, assign: | |
23263 // [7.8.3] assign | |
23264 basic_regex &assign(const basic_regex &right) | |
23265 { | |
23266 re_detail::re_object_core<charT, traits>::operator=(right); | |
23267 return *this; | |
23268 } | |
23269 | |
23270 #if defined(SRELL_CPP11_MOVE_ENABLED) | |
23271 basic_regex &assign(basic_regex &&right) SRELL_NOEXCEPT | |
23272 { | |
23273 re_detail::re_object_core<charT, traits>::operator=(std::move(right)); | |
23274 return *this; | |
23275 } | |
23276 #endif | |
23277 | |
23278 basic_regex &assign(const charT *const ptr, const flag_type f = regex_constants::ECMAScript) | |
23279 { | |
23280 return assign(ptr, ptr + std::char_traits<charT>::length(ptr), f); | |
23281 } | |
23282 | |
23283 basic_regex &assign(const charT *const p, std::size_t len, const flag_type f = regex_constants::ECMAScript) | |
23284 { | |
23285 return assign(p, p + len, f); | |
23286 } | |
23287 | |
23288 template <class string_traits, class A> | |
23289 basic_regex &assign(const std::basic_string<charT, string_traits, A> &s, const flag_type f = regex_constants::ECMAScript) | |
23290 { | |
23291 return assign(s.c_str(), s.c_str() + s.size(), f); | |
23292 } | |
23293 | |
23294 template <class InputIterator> | |
23295 basic_regex &assign(InputIterator first, InputIterator last, const flag_type f = regex_constants::ECMAScript) | |
23296 { | |
23297 #if defined(SRELL_STRICT_IMPL) | |
23298 basic_regex tmp; | |
23299 tmp.compile(first, last, f); | |
23300 tmp.swap(*this); | |
23301 #else | |
23302 this->compile(first, last, f); | |
23303 #endif | |
23304 return *this; | |
23305 } | |
23306 | |
23307 #if defined(SRELL_CPP11_INITIALIZER_LIST_ENABLED) | |
23308 basic_regex &assign(std::initializer_list<charT> il, const flag_type f = regex_constants::ECMAScript) | |
23309 { | |
23310 return assign(il.begin(), il.end(), f); | |
23311 } | |
23312 #endif | |
23313 | |
23314 // 28.8.4, const operations: | |
23315 // [7.8.4] const operations | |
23316 unsigned mark_count() const | |
23317 { | |
23318 return this->number_of_brackets - 1; | |
23319 } | |
23320 | |
23321 flag_type flags() const | |
23322 { | |
23323 return this->soflags; | |
23324 } | |
23325 | |
23326 // 28.8.5, locale: | |
23327 // [7.8.5] locale | |
23328 locale_type imbue(locale_type loc) | |
23329 { | |
23330 return this->traits_inst.imbue(loc); | |
23331 } | |
23332 | |
23333 locale_type getloc() const | |
23334 { | |
23335 return this->traits_inst.getloc(); | |
23336 } | |
23337 | |
23338 // 28.8.6, swap: | |
23339 // [7.8.6] swap | |
23340 void swap(basic_regex &e) | |
23341 { | |
23342 re_detail::re_object_core<charT, traits>::swap(e); | |
23343 } | |
23344 | |
23345 regex_constants::error_type ecode() const | |
23346 { | |
23347 return re_detail::re_object_core<charT, traits>::ecode(); | |
23348 } | |
23349 | |
23350 #if !defined(SRELL_NO_APIEXT) | |
23351 | |
23352 template <typename BidirectionalIterator, typename Allocator> | |
23353 bool match( | |
23354 const BidirectionalIterator begin, | |
23355 const BidirectionalIterator end, | |
23356 match_results<BidirectionalIterator, Allocator> &m, | |
23357 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23358 ) const | |
23359 { | |
23360 return base_type::search(begin, end, begin, m, flags | regex_constants::match_continuous | regex_constants::match_match_); | |
23361 } | |
23362 | |
23363 template <typename BidirectionalIterator> | |
23364 bool match( | |
23365 const BidirectionalIterator begin, | |
23366 const BidirectionalIterator end, | |
23367 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23368 ) const | |
23369 { | |
23370 match_results<BidirectionalIterator> m; | |
23371 return this->match(begin, end, m, flags); | |
23372 } | |
23373 | |
23374 template <typename Allocator> | |
23375 bool match( | |
23376 const charT *const str, | |
23377 match_results<const charT *, Allocator> &m, | |
23378 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23379 ) const | |
23380 { | |
23381 return this->match(str, str + std::char_traits<charT>::length(str), m, flags); | |
23382 } | |
23383 | |
23384 bool match( | |
23385 const charT *const str, | |
23386 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23387 ) const | |
23388 { | |
23389 return this->match(str, str + std::char_traits<charT>::length(str), flags); | |
23390 } | |
23391 | |
23392 template <typename ST, typename SA, typename MA> | |
23393 bool match( | |
23394 const std::basic_string<charT, ST, SA> &s, | |
23395 match_results<typename std::basic_string<charT, ST, SA>::const_iterator, MA> &m, | |
23396 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23397 ) const | |
23398 { | |
23399 return this->match(s.begin(), s.end(), m, flags); | |
23400 } | |
23401 | |
23402 template <typename ST, typename SA> | |
23403 bool match( | |
23404 const std::basic_string<charT, ST, SA> &s, | |
23405 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23406 ) const | |
23407 { | |
23408 return this->match(s.begin(), s.end(), flags); | |
23409 } | |
23410 | |
23411 template <typename BidirectionalIterator, typename Allocator> | |
23412 bool search( | |
23413 const BidirectionalIterator begin, | |
23414 const BidirectionalIterator end, | |
23415 const BidirectionalIterator lookbehind_limit, | |
23416 match_results<BidirectionalIterator, Allocator> &m, | |
23417 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23418 ) const | |
23419 { | |
23420 return base_type::search(begin, end, lookbehind_limit, m, flags); | |
23421 } | |
23422 | |
23423 template <typename BidirectionalIterator> | |
23424 bool search( | |
23425 const BidirectionalIterator begin, | |
23426 const BidirectionalIterator end, | |
23427 const BidirectionalIterator lookbehind_limit, | |
23428 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23429 ) const | |
23430 { | |
23431 match_results<BidirectionalIterator> m; | |
23432 return base_type::search(begin, end, lookbehind_limit, m, flags); | |
23433 } | |
23434 | |
23435 template <typename BidirectionalIterator, typename Allocator> | |
23436 bool search( | |
23437 const BidirectionalIterator begin, | |
23438 const BidirectionalIterator end, | |
23439 match_results<BidirectionalIterator, Allocator> &m, | |
23440 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23441 ) const | |
23442 { | |
23443 return base_type::search(begin, end, begin, m, flags); | |
23444 } | |
23445 | |
23446 template <typename BidirectionalIterator> | |
23447 bool search( | |
23448 const BidirectionalIterator begin, | |
23449 const BidirectionalIterator end, | |
23450 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23451 ) const | |
23452 { | |
23453 return this->search(begin, end, begin, flags); | |
23454 } | |
23455 | |
23456 template <typename Allocator> | |
23457 bool search( | |
23458 const charT *const str, | |
23459 match_results<const charT *, Allocator> &m, | |
23460 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23461 ) const | |
23462 { | |
23463 return this->search(str, str + std::char_traits<charT>::length(str), m, flags); | |
23464 } | |
23465 | |
23466 bool search( | |
23467 const charT *const str, | |
23468 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23469 ) const | |
23470 { | |
23471 return this->search(str, str + std::char_traits<charT>::length(str), flags); | |
23472 } | |
23473 | |
23474 template <typename ST, typename SA, typename MA> | |
23475 bool search( | |
23476 const std::basic_string<charT, ST, SA> &s, | |
23477 match_results<typename std::basic_string<charT, ST, SA>::const_iterator, MA> &m, | |
23478 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23479 ) const | |
23480 { | |
23481 return this->search(s.begin(), s.end(), m, flags); | |
23482 } | |
23483 | |
23484 template <typename ST, typename SA> | |
23485 bool search( | |
23486 const std::basic_string<charT, ST, SA> &s, | |
23487 const regex_constants::match_flag_type flags = regex_constants::match_default | |
23488 ) const | |
23489 { | |
23490 return this->search(s.begin(), s.end(), flags); | |
23491 } | |
23492 | |
23493 template <typename StringLike> | |
23494 void replace( | |
23495 StringLike &s, | |
23496 const charT *const fmt_begin, | |
23497 const charT *const fmt_end, | |
23498 const bool global = false | |
23499 ) const | |
23500 { | |
23501 typedef typename StringLike::traits_type ST; | |
23502 typedef typename StringLike::allocator_type SA; | |
23503 re_detail::repoptions<charT> opts(fmt_begin, fmt_end, global); | |
23504 | |
23505 this->do_replace(s, re_detail::call_mrformat<charT, ST, SA, const charT *>, reinterpret_cast<void *>(&opts)); | |
23506 } | |
23507 | |
23508 template <typename StringLike> | |
23509 void replace( | |
23510 StringLike &s, | |
23511 const charT *const fmt, | |
23512 const bool global = false | |
23513 ) const | |
23514 { | |
23515 replace(s, fmt, fmt + std::char_traits<charT>::length(fmt), global); | |
23516 } | |
23517 | |
23518 template <typename StringLike, typename FST, typename FSA> | |
23519 void replace( | |
23520 StringLike &s, | |
23521 const std::basic_string<charT, FST, FSA> &fmt, | |
23522 const bool global = false | |
23523 ) const | |
23524 { | |
23525 replace(s, fmt.data(), fmt.data() + fmt.size(), global); | |
23526 } | |
23527 | |
23528 template <typename StringLike, typename RandomAccessIterator, typename MA> | |
23529 void replace( | |
23530 StringLike &s, | |
23531 bool (*repfunc)(std::basic_string<charT, typename StringLike::traits_type, typename StringLike::allocator_type> &, const match_results<RandomAccessIterator, MA> &, void *), | |
23532 void *ptr = NULL | |
23533 ) const | |
23534 { | |
23535 this->do_replace(s, repfunc, ptr); | |
23536 } | |
23537 | |
23538 // re.replace<my_match_type>(...): | |
23539 // Overload for match_results<BidiIter, CustomAllocator> (my_match_type) | |
23540 // to be used internally and passed to a callback function instead of default | |
23541 // match_results<BidiIter, std::allocator<sub_match<BidiIter> >. | |
23542 // template <typename S, typename MR> | |
23543 template <typename MatchResults, typename StringLike> | |
23544 void replace( | |
23545 StringLike &s, | |
23546 // bool (*repfunc)(std::basic_string<charT, typename S::traits_type, typename S::allocator_type> &, const match_results<typename MR::value_type::iterator, typename MR::allocator_type> &, void *), | |
23547 bool (*repfunc)(std::basic_string<charT, typename StringLike::traits_type, typename StringLike::allocator_type> &, const MatchResults &, void *), | |
23548 void *ptr = NULL | |
23549 ) const | |
23550 { | |
23551 this->do_replace(s, repfunc, ptr); | |
23552 } | |
23553 | |
23554 template <typename container, typename ST, typename SA> | |
23555 void split( | |
23556 container &c, | |
23557 const std::basic_string<charT, ST, SA> &s, | |
23558 const std::size_t limit = static_cast<std::size_t>(-1) | |
23559 ) const | |
23560 { | |
23561 typedef typename container::value_type::iterator BidiIter; | |
23562 typedef match_results<BidiIter> match_type; // match_type::value_type == container::value_type. | |
23563 this->template do_split<match_type>(c, re_detail::pos0_<charT>(s, BidiIter()), re_detail::pos1_<charT>(s, BidiIter()), limit); | |
23564 } | |
23565 | |
23566 template <typename container, typename BidirectionalIterator> | |
23567 void split( | |
23568 container &c, | |
23569 const BidirectionalIterator begin, // The same as or convertible to container::value_type::iterator. | |
23570 const BidirectionalIterator end, | |
23571 const std::size_t limit = static_cast<std::size_t>(-1) | |
23572 ) const | |
23573 { | |
23574 typedef typename container::value_type::iterator const_iterator; | |
23575 typedef match_results<const_iterator> match_type; | |
23576 | |
23577 this->template do_split<match_type>(c, static_cast<const_iterator>(begin), static_cast<const_iterator>(end), limit); | |
23578 // container::value_type::iterator should be const_iterator, | |
23579 // whereas BidirectionalIterator can be iterator. | |
23580 } | |
23581 | |
23582 template <typename container> | |
23583 void split( | |
23584 container &c, | |
23585 const charT *const str, | |
23586 const std::size_t limit = static_cast<std::size_t>(-1) | |
23587 ) const | |
23588 { | |
23589 typedef match_results<const charT *> match_type; | |
23590 this->template do_split<match_type>(c, str, str + std::char_traits<charT>::length(str), limit); | |
23591 } | |
23592 | |
23593 // re.split<my_match_type>(listcontainer, string): | |
23594 // Overload for match_results<BidiIter, CustomAllocator> (my_match_type) | |
23595 // to be used internally instead of default | |
23596 // match_results<BidiIter, std::allocator<sub_match<BidiIter> >. | |
23597 // In general, container::value_type == sub_match<BidiIter> == MatchResults::value_type. | |
23598 template <typename MatchResults, typename container, typename ST, typename SA> | |
23599 void split( | |
23600 container &c, | |
23601 const std::basic_string<charT, ST, SA> &s, | |
23602 const std::size_t limit = static_cast<std::size_t>(-1) | |
23603 ) const | |
23604 { | |
23605 typedef typename container::value_type::iterator BidiIter; | |
23606 this->template do_split<MatchResults>(c, re_detail::pos0_<charT>(s, BidiIter()), re_detail::pos1_<charT>(s, BidiIter()), limit); | |
23607 } | |
23608 | |
23609 template <typename MatchResults, typename container, typename BidirectionalIterator> | |
23610 void split( | |
23611 container &c, | |
23612 const BidirectionalIterator begin, // The same as or convertible to MatchResults::value_type::iterator and container::value_type::iterator. | |
23613 const BidirectionalIterator end, | |
23614 const std::size_t limit = static_cast<std::size_t>(-1) | |
23615 ) const | |
23616 { | |
23617 typedef typename container::value_type::iterator const_iterator; | |
23618 | |
23619 this->template do_split<MatchResults>(c, static_cast<const_iterator>(begin), static_cast<const_iterator>(end), limit); | |
23620 } | |
23621 | |
23622 template <typename MatchResults, typename container> | |
23623 void split( | |
23624 container &c, | |
23625 const charT *const str, | |
23626 const std::size_t limit = static_cast<std::size_t>(-1) | |
23627 ) const | |
23628 { | |
23629 this->template do_split<MatchResults>(c, str, str + std::char_traits<charT>::length(str), limit); | |
23630 } | |
23631 | |
23632 private: | |
23633 | |
23634 typedef re_detail::re_object<charT, traits> base_type; | |
23635 | |
23636 #endif // !defined(SRELL_NO_APIEXT) | |
23637 }; | |
23638 template <class charT, class traits> | |
23639 const regex_constants::syntax_option_type basic_regex<charT, traits>::icase; | |
23640 template <class charT, class traits> | |
23641 const regex_constants::syntax_option_type basic_regex<charT, traits>::nosubs; | |
23642 template <class charT, class traits> | |
23643 const regex_constants::syntax_option_type basic_regex<charT, traits>::optimize; | |
23644 template <class charT, class traits> | |
23645 const regex_constants::syntax_option_type basic_regex<charT, traits>::collate; | |
23646 template <class charT, class traits> | |
23647 const regex_constants::syntax_option_type basic_regex<charT, traits>::ECMAScript; | |
23648 template <class charT, class traits> | |
23649 const regex_constants::syntax_option_type basic_regex<charT, traits>::basic; | |
23650 template <class charT, class traits> | |
23651 const regex_constants::syntax_option_type basic_regex<charT, traits>::extended; | |
23652 template <class charT, class traits> | |
23653 const regex_constants::syntax_option_type basic_regex<charT, traits>::awk; | |
23654 template <class charT, class traits> | |
23655 const regex_constants::syntax_option_type basic_regex<charT, traits>::grep; | |
23656 template <class charT, class traits> | |
23657 const regex_constants::syntax_option_type basic_regex<charT, traits>::egrep; | |
23658 template <class charT, class traits> | |
23659 const regex_constants::syntax_option_type basic_regex<charT, traits>::multiline; | |
23660 | |
23661 template <class charT, class traits> | |
23662 const regex_constants::syntax_option_type basic_regex<charT, traits>::dotall; | |
23663 template <class charT, class traits> | |
23664 const regex_constants::syntax_option_type basic_regex<charT, traits>::unicodesets; | |
23665 | |
23666 // 28.8.6, basic_regex swap: | |
23667 template <class charT, class traits> | |
23668 void swap(basic_regex<charT, traits> &lhs, basic_regex<charT, traits> &rhs) | |
23669 { | |
23670 lhs.swap(rhs); | |
23671 } | |
23672 | |
23673 typedef basic_regex<char> regex; | |
23674 typedef basic_regex<wchar_t> wregex; | |
23675 | |
23676 typedef basic_regex<char, u8regex_traits<char> > u8cregex; | |
23677 | |
23678 #if defined(WCHAR_MAX) | |
23679 #if WCHAR_MAX >= 0x10ffff | |
23680 typedef wregex u32wregex; | |
23681 typedef u32wregex u1632wregex; | |
23682 #elif WCHAR_MAX >= 0xffff | |
23683 typedef basic_regex<wchar_t, u16regex_traits<wchar_t> > u16wregex; | |
23684 typedef u16wregex u1632wregex; | |
23685 #endif | |
23686 #endif | |
23687 | |
23688 #if defined(SRELL_CPP11_CHAR1632_ENABLED) | |
23689 typedef basic_regex<char16_t> u16regex; | |
23690 typedef basic_regex<char32_t> u32regex; | |
23691 #endif | |
23692 | |
23693 #if defined(SRELL_CPP20_CHAR8_ENABLED) | |
23694 typedef basic_regex<char8_t> u8regex; | |
23695 #else | |
23696 typedef u8cregex u8regex; | |
23697 #endif | |
23698 | |
23699 // ... "basic_regex.hpp"] | |
23700 // ["regex_iterator.hpp" ... | |
23701 | |
23702 // 28.12.1, class template regex_iterator: | |
23703 template <class BidirectionalIterator, class charT = typename std::iterator_traits<BidirectionalIterator>::value_type, class traits = regex_traits<charT> > | |
23704 class regex_iterator | |
23705 { | |
23706 public: | |
23707 | |
23708 typedef basic_regex<charT, traits> regex_type; | |
23709 typedef match_results<BidirectionalIterator> value_type; | |
23710 typedef std::ptrdiff_t difference_type; | |
23711 typedef const value_type *pointer; | |
23712 typedef const value_type &reference; | |
23713 typedef std::forward_iterator_tag iterator_category; | |
23714 | |
23715 regex_iterator() | |
23716 { | |
23717 // 28.12.1.1: Constructs an end-of-sequence iterator. | |
23718 } | |
23719 | |
23720 regex_iterator( | |
23721 const BidirectionalIterator a, | |
23722 const BidirectionalIterator b, | |
23723 const regex_type &re, | |
23724 const regex_constants::match_flag_type m = regex_constants::match_default) | |
23725 : begin(a), end(b), pregex(&re), flags(m) | |
23726 { | |
23727 regex_search(begin, end, begin, match, *pregex, flags); | |
23728 // 28.12.1.1: If this call returns false the constructor | |
23729 // sets *this to the end-of-sequence iterator. | |
23730 } | |
23731 | |
23732 regex_iterator(const regex_iterator &that) | |
23733 { | |
23734 operator=(that); | |
23735 } | |
23736 | |
23737 regex_iterator &operator=(const regex_iterator &that) | |
23738 { | |
23739 if (this != &that) | |
23740 { | |
23741 this->match = that.match; | |
23742 if (this->match.size() > 0) | |
23743 { | |
23744 this->begin = that.begin; | |
23745 this->end = that.end; | |
23746 this->pregex = that.pregex; | |
23747 this->flags = that.flags; | |
23748 } | |
23749 } | |
23750 return *this; | |
23751 } | |
23752 | |
23753 bool operator==(const regex_iterator &right) const | |
23754 { | |
23755 if (right.match.size() == 0 || this->match.size() == 0) | |
23756 return this->match.size() == right.match.size(); | |
23757 | |
23758 return this->begin == right.begin | |
23759 && this->end == right.end | |
23760 && this->pregex == right.pregex | |
23761 && this->flags == right.flags | |
23762 && this->match[0] == right.match[0]; | |
23763 } | |
23764 | |
23765 bool operator!=(const regex_iterator &right) const | |
23766 { | |
23767 return !(*this == right); | |
23768 } | |
23769 | |
23770 const value_type &operator*() const | |
23771 { | |
23772 return match; | |
23773 } | |
23774 | |
23775 const value_type *operator->() const | |
23776 { | |
23777 return &match; | |
23778 } | |
23779 | |
23780 regex_iterator &operator++() | |
23781 { | |
23782 if (this->match.size()) | |
23783 { | |
23784 BidirectionalIterator start = match[0].second; | |
23785 | |
23786 if (match[0].first == start) // The iterator holds a 0-length match. | |
23787 { | |
23788 if (start == end) | |
23789 { | |
23790 match.clear_(); | |
23791 // 28.12.1.4.2: If the iterator holds a zero-length match and | |
23792 // start == end the operator sets *this to the end-ofsequence | |
23793 // iterator and returns *this. | |
23794 } | |
23795 else | |
23796 { | |
23797 // 28.12.1.4.3: Otherwise, if the iterator holds a zero-length match | |
23798 // the operator calls regex_search(start, end, match, *pregex, flags | |
23799 // | regex_constants::match_not_null | regex_constants::match_continuous). | |
23800 // If the call returns true the operator returns *this. [Cont...] | |
23801 | |
23802 if (!regex_search(start, end, begin, match, *pregex, flags | regex_constants::match_not_null | regex_constants::match_continuous)) | |
23803 { | |
23804 const BidirectionalIterator prevend = start; | |
23805 | |
23806 // [...Cont] Otherwise the operator increments start and continues | |
23807 // as if the most recent match was not a zero-length match. | |
23808 // ++start; | |
23809 utf_traits::codepoint_inc(start, end); | |
23810 | |
23811 flags |= regex_constants::match_prev_avail; | |
23812 | |
23813 if (regex_search(start, end, begin, match, *pregex, flags)) | |
23814 { | |
23815 // 28.12.1.4.5-6: In all cases in which the call to regex_search | |
23816 // returns true, match.prefix().first shall be equal to the previous | |
23817 // value of match[0].second, ... match[i].position() shall return | |
23818 // distance(begin, match[i].first). | |
23819 // This means that match[i].position() gives the offset from the | |
23820 // beginning of the target sequence, which is often not the same as | |
23821 // the offset from the sequence passed in the call to regex_search. | |
23822 // | |
23823 // To satisfy this: | |
23824 match.update_prefix1_(prevend); | |
23825 } | |
23826 } | |
23827 } | |
23828 } | |
23829 else | |
23830 { | |
23831 // 28.12.1.4.4: If the most recent match was not a zero-length match, | |
23832 // the operator sets flags to flags | regex_constants::match_prev_avail | |
23833 // and calls regex_search(start, end, match, *pregex, flags). [Cont...] | |
23834 flags |= regex_constants::match_prev_avail; | |
23835 | |
23836 regex_search(start, end, begin, match, *pregex, flags); | |
23837 // [...Cont] If the call returns false the iterator sets *this to | |
23838 // the end-of-sequence iterator. The iterator then returns *this. | |
23839 // | |
23840 // 28.12.1.4.5-6: In all cases in which the call to regex_search | |
23841 // returns true, match.prefix().first shall be equal to the previous | |
23842 // value of match[0].second, ... match[i].position() shall return | |
23843 // distance(begin, match[i].first). | |
23844 // This means that match[i].position() gives the offset from the | |
23845 // beginning of the target sequence, which is often not the same as | |
23846 // the offset from the sequence passed in the call to regex_search. | |
23847 // | |
23848 // These should already be done in regex_search. | |
23849 } | |
23850 } | |
23851 return *this; | |
23852 } | |
23853 | |
23854 regex_iterator operator++(int) | |
23855 { | |
23856 const regex_iterator tmp = *this; | |
23857 ++(*this); | |
23858 return tmp; | |
23859 } | |
23860 | |
23861 private: | |
23862 | |
23863 BidirectionalIterator begin; | |
23864 BidirectionalIterator end; | |
23865 const regex_type *pregex; | |
23866 regex_constants::match_flag_type flags; | |
23867 match_results<BidirectionalIterator> match; | |
23868 | |
23869 typedef typename traits::utf_traits utf_traits; | |
23870 }; | |
23871 | |
23872 typedef regex_iterator<const char *> cregex_iterator; | |
23873 typedef regex_iterator<const wchar_t *> wcregex_iterator; | |
23874 typedef regex_iterator<std::string::const_iterator> sregex_iterator; | |
23875 typedef regex_iterator<std::wstring::const_iterator> wsregex_iterator; | |
23876 | |
23877 typedef regex_iterator<const char *, typename std::iterator_traits<const char *>::value_type, u8regex_traits<typename std::iterator_traits<const char *>::value_type> > u8ccregex_iterator; | |
23878 typedef regex_iterator<std::string::const_iterator, typename std::iterator_traits<std::string::const_iterator>::value_type, u8regex_traits<typename std::iterator_traits<std::string::const_iterator>::value_type> > u8csregex_iterator; | |
23879 | |
23880 #if defined(WCHAR_MAX) | |
23881 #if WCHAR_MAX >= 0x10ffff | |
23882 typedef wcregex_iterator u32wcregex_iterator; | |
23883 typedef wsregex_iterator u32wsregex_iterator; | |
23884 typedef u32wcregex_iterator u1632wcregex_iterator; | |
23885 typedef u32wsregex_iterator u1632wsregex_iterator; | |
23886 #elif WCHAR_MAX >= 0xffff | |
23887 typedef regex_iterator<const wchar_t *, typename std::iterator_traits<const wchar_t *>::value_type, u16regex_traits<typename std::iterator_traits<const wchar_t *>::value_type> > u16wcregex_iterator; | |
23888 typedef regex_iterator<std::wstring::const_iterator, typename std::iterator_traits<std::wstring::const_iterator>::value_type, u16regex_traits<typename std::iterator_traits<std::wstring::const_iterator>::value_type> > u16wsregex_iterator; | |
23889 typedef u16wcregex_iterator u1632wcregex_iterator; | |
23890 typedef u16wsregex_iterator u1632wsregex_iterator; | |
23891 #endif | |
23892 #endif | |
23893 | |
23894 #if defined(SRELL_CPP11_CHAR1632_ENABLED) | |
23895 typedef regex_iterator<const char16_t *> u16cregex_iterator; | |
23896 typedef regex_iterator<const char32_t *> u32cregex_iterator; | |
23897 typedef regex_iterator<std::u16string::const_iterator> u16sregex_iterator; | |
23898 typedef regex_iterator<std::u32string::const_iterator> u32sregex_iterator; | |
23899 #endif | |
23900 | |
23901 #if defined(SRELL_CPP20_CHAR8_ENABLED) | |
23902 typedef regex_iterator<const char8_t *> u8cregex_iterator; | |
23903 #else | |
23904 typedef u8ccregex_iterator u8cregex_iterator; | |
23905 #endif | |
23906 #if defined(SRELL_CPP20_CHAR8_ENABLED) && SRELL_CPP20_CHAR8_ENABLED >= 2 | |
23907 typedef regex_iterator<std::u8string::const_iterator> u8sregex_iterator; | |
23908 #else // !defined(SRELL_CPP20_CHAR8_ENABLED) || SRELL_CPP20_CHAR8_ENABLED < 2 | |
23909 typedef u8csregex_iterator u8sregex_iterator; | |
23910 #endif | |
23911 | |
23912 #if !defined(SRELL_NO_APIEXT) | |
23913 | |
23914 template <typename BidirectionalIterator, typename BasicRegex = basic_regex<typename std::iterator_traits<BidirectionalIterator>::value_type, regex_traits<typename std::iterator_traits<BidirectionalIterator>::value_type> >, typename MatchResults = match_results<BidirectionalIterator> > | |
23915 class regex_iterator2 | |
23916 { | |
23917 public: | |
23918 | |
23919 typedef typename std::iterator_traits<BidirectionalIterator>::value_type char_type; | |
23920 typedef BasicRegex regex_type; | |
23921 typedef MatchResults value_type; | |
23922 typedef std::ptrdiff_t difference_type; | |
23923 typedef const value_type *pointer; | |
23924 typedef const value_type &reference; | |
23925 typedef std::input_iterator_tag iterator_category; | |
23926 | |
23927 regex_iterator2() {} | |
23928 | |
23929 regex_iterator2( | |
23930 const BidirectionalIterator b, | |
23931 const BidirectionalIterator e, | |
23932 const regex_type &re, | |
23933 const regex_constants::match_flag_type m = regex_constants::match_default) | |
23934 : begin_(b), end_(e), pregex_(&re) | |
23935 { | |
23936 rewind(m); | |
23937 } | |
23938 | |
23939 template <typename ST, typename SA> | |
23940 regex_iterator2( | |
23941 const std::basic_string<char_type, ST, SA> &s, | |
23942 const regex_type &re, | |
23943 const regex_constants::match_flag_type m = regex_constants::match_default) | |
23944 : begin_(re_detail::pos0_<char_type>(s, BidirectionalIterator())) | |
23945 , end_(re_detail::pos1_<char_type>(s, BidirectionalIterator())) | |
23946 , pregex_(&re) | |
23947 { | |
23948 rewind(m); | |
23949 } | |
23950 | |
23951 regex_iterator2(const regex_iterator2 &right) | |
23952 { | |
23953 operator=(right); | |
23954 } | |
23955 | |
23956 regex_iterator2 &operator=(const regex_iterator2 &right) | |
23957 { | |
23958 if (this != &right) | |
23959 { | |
23960 this->match_ = right.match_; | |
23961 if (this->match_.size() > 0) | |
23962 { | |
23963 this->begin_ = right.begin_; | |
23964 this->end_ = right.end_; | |
23965 this->pregex_ = right.pregex_; | |
23966 this->flags_ = right.flags_; | |
23967 this->prevmatch_empty_ = right.prevmatch_empty_; | |
23968 this->submatch_ = right.submatch_; | |
23969 } | |
23970 } | |
23971 return *this; | |
23972 } | |
23973 | |
23974 bool operator==(const regex_iterator2 &right) const | |
23975 { | |
23976 if (right.match_.size() == 0 || this->match_.size() == 0) | |
23977 return this->match_.size() == right.match_.size(); | |
23978 | |
23979 return this->begin_ == right.begin_ | |
23980 && this->end_ == right.end_ | |
23981 && this->pregex_ == right.pregex_ | |
23982 && this->flags_ == right.flags_ | |
23983 && this->match_[0] == right.match_[0]; | |
23984 } | |
23985 | |
23986 bool operator!=(const regex_iterator2 &right) const | |
23987 { | |
23988 // return !(*this == right); | |
23989 return !operator==(right); | |
23990 } | |
23991 | |
23992 const value_type &operator*() const | |
23993 { | |
23994 return match_; | |
23995 } | |
23996 | |
23997 const value_type *operator->() const | |
23998 { | |
23999 return &match_; | |
24000 } | |
24001 | |
24002 bool done() const | |
24003 { | |
24004 return match_.size() == 0; | |
24005 } | |
24006 | |
24007 bool empty() const | |
24008 { | |
24009 return begin_ == end_; | |
24010 } | |
24011 | |
24012 void assign( | |
24013 const BidirectionalIterator b, | |
24014 const BidirectionalIterator e, | |
24015 const regex_type &re, | |
24016 const regex_constants::match_flag_type m = regex_constants::match_default) | |
24017 { | |
24018 begin_ = b; | |
24019 end_ = e; | |
24020 pregex_ = &re; | |
24021 rewind(m); | |
24022 } | |
24023 template <typename ST, typename SA> | |
24024 void assign( | |
24025 const std::basic_string<char_type, ST, SA> &s, | |
24026 const regex_type &re, | |
24027 const regex_constants::match_flag_type m = regex_constants::match_default) | |
24028 { | |
24029 begin_ = re_detail::pos0_<char_type>(s, BidirectionalIterator()); | |
24030 end_ = re_detail::pos1_<char_type>(s, BidirectionalIterator()); | |
24031 pregex_ = &re; | |
24032 rewind(m); | |
24033 } | |
24034 void assign(const regex_iterator2 &right) | |
24035 { | |
24036 operator=(right); | |
24037 } | |
24038 | |
24039 void rewind(const regex_constants::match_flag_type m = regex_constants::match_default) | |
24040 { | |
24041 flags_ = m; | |
24042 | |
24043 if (regex_search(begin_, end_, begin_, match_, *pregex_, flags_)) | |
24044 { | |
24045 prevmatch_empty_ = match_[0].first == match_[0].second; | |
24046 } | |
24047 else | |
24048 match_.set_prefix1_(begin_); | |
24049 | |
24050 submatch_ = 0u; | |
24051 } | |
24052 | |
24053 regex_iterator2 &operator++() | |
24054 { | |
24055 if (match_.size()) | |
24056 { | |
24057 const BidirectionalIterator prevend = match_[0].second; | |
24058 BidirectionalIterator start = prevend; | |
24059 | |
24060 if (prevmatch_empty_) | |
24061 { | |
24062 if (start == end_) | |
24063 { | |
24064 match_.clear_(); | |
24065 return *this; | |
24066 } | |
24067 utf_traits::codepoint_inc(start, end_); | |
24068 } | |
24069 | |
24070 flags_ |= regex_constants::match_prev_avail; | |
24071 if (regex_search(start, end_, begin_, match_, *pregex_, flags_)) | |
24072 prevmatch_empty_ = match_[0].first == match_[0].second; | |
24073 | |
24074 match_.update_prefix1_(prevend); | |
24075 } | |
24076 return *this; | |
24077 } | |
24078 | |
24079 regex_iterator2 operator++(int) | |
24080 { | |
24081 const regex_iterator2 tmp = *this; | |
24082 ++(*this); | |
24083 return tmp; | |
24084 } | |
24085 | |
24086 // For replace. | |
24087 | |
24088 // Replaces [match_[0].first, match_[0].second) in | |
24089 // [entire_string.begin(), entire_string.end()) with replacement, | |
24090 // and adjusts all the internal iterators accordingly. | |
24091 template <typename ST, typename SA> | |
24092 void replace(std::basic_string<char_type, ST, SA> &entire_string, const std::basic_string<char_type, ST, SA> &replacement) | |
24093 { | |
24094 typedef std::basic_string<char_type, ST, SA> string_type; | |
24095 | |
24096 if (match_.size()) | |
24097 { | |
24098 const BidirectionalIterator oldbegin = re_detail::pos0_<char_type>(entire_string, BidirectionalIterator()); | |
24099 const typename string_type::size_type oldbeginoffset = begin_ - oldbegin; | |
24100 const typename string_type::size_type oldendoffset = end_ - oldbegin; | |
24101 const typename string_type::size_type pos = match_[0].first - oldbegin; | |
24102 const typename string_type::size_type count = match_[0].second - match_[0].first; | |
24103 const typename match_type::difference_type addition = replacement.size() - match_.length(0); | |
24104 | |
24105 entire_string.replace(pos, count, replacement); | |
24106 | |
24107 const BidirectionalIterator newbegin = re_detail::pos0_<char_type>(entire_string, BidirectionalIterator()); | |
24108 | |
24109 begin_ = newbegin + oldbeginoffset; | |
24110 end_ = newbegin + (oldendoffset + addition); // VC checks if an iterator exceeds end(). | |
24111 | |
24112 match_.update_m0_(newbegin + pos, newbegin + (pos + count + addition)); | |
24113 | |
24114 prevmatch_empty_ = count == 0; | |
24115 } | |
24116 } | |
24117 | |
24118 template <typename ST, typename SA> | |
24119 void replace(std::basic_string<char_type, ST, SA> &entire_string, const BidirectionalIterator b, const BidirectionalIterator e) | |
24120 { | |
24121 typedef std::basic_string<char_type, ST, SA> string_type; | |
24122 | |
24123 replace(entire_string, string_type(b, e)); | |
24124 } | |
24125 | |
24126 template <typename ST, typename SA> | |
24127 void replace(std::basic_string<char_type, ST, SA> &entire_string, const char_type *const replacement) | |
24128 { | |
24129 typedef std::basic_string<char_type, ST, SA> string_type; | |
24130 | |
24131 replace(entire_string, string_type(replacement)); | |
24132 } | |
24133 | |
24134 // For split. | |
24135 | |
24136 // 1. Until done() returns true, gather this->prefix() when | |
24137 // split_ready() returns true, | |
24138 // 2. Once done() becomes true, get remainder(). | |
24139 | |
24140 // Returns if this->prefix() holds a range that is worthy of being | |
24141 // treated as a split substring. | |
24142 bool split_ready() //const | |
24143 { | |
24144 if (match_.size()) | |
24145 { | |
24146 if (match_[0].first != end_) | |
24147 return match_.prefix().first != match_[0].second; | |
24148 | |
24149 // [end_, end_) is not appropriate as a split range. Invalidates the current match. | |
24150 match_.clear_(); | |
24151 } | |
24152 return false; // Iterating complete. | |
24153 } | |
24154 | |
24155 // When the only_after_match parameter is false, returns | |
24156 // [prefix().first, end); otherwise (when true) returns | |
24157 // [match_[0].second, end). | |
24158 // This function is intended to be called after iterating is | |
24159 // finished, to receive the range of suffix() of the last match. | |
24160 // If iterating is aborted during processing (e.g. pushing to a | |
24161 // list container) a captured subsequence (match_[n] where n >= 1), | |
24162 // then should be called with only_after_match being true, | |
24163 // otherwise [prefix().first, prefix().second) would be duplicated. | |
24164 const typename value_type::value_type &remainder(const bool only_after_match = false) | |
24165 { | |
24166 if (only_after_match && match_.size()) | |
24167 match_.set_prefix1_(match_[0].second); | |
24168 | |
24169 match_.update_prefix2_(end_); | |
24170 return match_.prefix(); | |
24171 } | |
24172 | |
24173 // The following 4 split_* functions are intended to be used | |
24174 // together, as follows: | |
24175 // | |
24176 // for (it.split_begin(); !it.done(); it.split_next()) { | |
24177 // if (++count == LIMIT) | |
24178 // break; | |
24179 // list.push_back(it.split_range()); | |
24180 // } | |
24181 // list.push_back(it.split_remainder()); | |
24182 | |
24183 // Moves to a first subsequence for which split_ready() returns | |
24184 // true. This should be called only once before beginning iterating | |
24185 // (or after calling rewind()). | |
24186 bool split_begin() | |
24187 { | |
24188 if (split_ready()) | |
24189 return true; | |
24190 | |
24191 operator++(); | |
24192 return split_ready(); | |
24193 } | |
24194 | |
24195 // Moves to a next subsequence for which split_ready() returns | |
24196 // true. | |
24197 // This function is intended to be used instead of the ordinary | |
24198 // increment operator (++). | |
24199 bool split_next() | |
24200 { | |
24201 if (++submatch_ >= match_.size()) | |
24202 { | |
24203 submatch_ = 0u; | |
24204 operator++(); | |
24205 return split_begin(); | |
24206 } | |
24207 return !done(); | |
24208 } | |
24209 | |
24210 // Returns a current subsequence to which the iterator points. | |
24211 const typename value_type::value_type &split_range() const | |
24212 { | |
24213 return submatch_ == 0u ? match_.prefix() : match_[submatch_]; | |
24214 } | |
24215 | |
24216 // Returns the final subsequence immediately following the last | |
24217 // match range. This should be called after iterating is complete | |
24218 // or aborted. | |
24219 // Unlike remainder() above, a boolean value corresponding to | |
24220 // only_after_match is automatically calculated. | |
24221 const typename value_type::value_type &split_remainder() | |
24222 { | |
24223 if (submatch_ > 0u) | |
24224 match_.set_prefix1_(match_[0].second); | |
24225 | |
24226 match_.update_prefix2_(end_); | |
24227 return match_.prefix(); | |
24228 } | |
24229 | |
24230 private: | |
24231 | |
24232 typedef match_results<BidirectionalIterator> match_type; | |
24233 typedef typename regex_type::traits_type::utf_traits utf_traits; | |
24234 | |
24235 BidirectionalIterator begin_; | |
24236 BidirectionalIterator end_; | |
24237 const regex_type *pregex_; | |
24238 regex_constants::match_flag_type flags_; | |
24239 match_type match_; | |
24240 bool prevmatch_empty_; | |
24241 typename match_type::size_type submatch_; | |
24242 | |
24243 }; | |
24244 | |
24245 typedef regex_iterator2<const char *> cregex_iterator2; | |
24246 typedef regex_iterator2<const wchar_t *> wcregex_iterator2; | |
24247 typedef regex_iterator2<std::string::const_iterator> sregex_iterator2; | |
24248 typedef regex_iterator2<std::wstring::const_iterator> wsregex_iterator2; | |
24249 | |
24250 typedef regex_iterator2<const char *, u8cregex> u8ccregex_iterator2; | |
24251 typedef regex_iterator2<std::string::const_iterator, u8cregex> u8csregex_iterator2; | |
24252 | |
24253 #if defined(WCHAR_MAX) | |
24254 #if (WCHAR_MAX >= 0x10ffff) | |
24255 typedef wcregex_iterator2 u32wcregex_iterator2; | |
24256 typedef wsregex_iterator2 u32wsregex_iterator2; | |
24257 typedef u32wcregex_iterator2 u1632wcregex_iterator2; | |
24258 typedef u32wsregex_iterator2 u1632wsregex_iterator2; | |
24259 #elif (WCHAR_MAX >= 0xffff) | |
24260 typedef regex_iterator2<const wchar_t *, u16wregex> u16wcregex_iterator2; | |
24261 typedef regex_iterator2<std::wstring::const_iterator, u16wregex> u16wsregex_iterator2; | |
24262 typedef u16wcregex_iterator2 u1632wcregex_iterator2; | |
24263 typedef u16wsregex_iterator2 u1632wsregex_iterator2; | |
24264 #endif | |
24265 #endif | |
24266 | |
24267 #if defined(SRELL_CPP11_CHAR1632_ENABLED) | |
24268 typedef regex_iterator2<const char16_t *> u16cregex_iterator2; | |
24269 typedef regex_iterator2<const char32_t *> u32cregex_iterator2; | |
24270 typedef regex_iterator2<std::u16string::const_iterator> u16sregex_iterator2; | |
24271 typedef regex_iterator2<std::u32string::const_iterator> u32sregex_iterator2; | |
24272 #endif | |
24273 | |
24274 #if defined(SRELL_CPP20_CHAR8_ENABLED) | |
24275 typedef regex_iterator2<const char8_t *> u8cregex_iterator2; | |
24276 #else | |
24277 typedef u8ccregex_iterator2 u8cregex_iterator2; | |
24278 #endif | |
24279 #if defined(SRELL_CPP20_CHAR8_ENABLED) && (SRELL_CPP20_CHAR8_ENABLED >= 2) | |
24280 typedef regex_iterator2<std::u8string::const_iterator> u8sregex_iterator2; | |
24281 #else // !defined(SRELL_CPP20_CHAR8_ENABLED) || (SRELL_CPP20_CHAR8_ENABLED < 2) | |
24282 typedef u8csregex_iterator2 u8sregex_iterator2; | |
24283 #endif | |
24284 | |
24285 #endif // !defined(SRELL_NO_APIEXT) | |
24286 | |
24287 // ... "regex_iterator.hpp"] | |
24288 // ["regex_algorithm.hpp" ... | |
24289 | |
24290 // 28.11.2, function template regex_match: | |
24291 // [7.11.2] Function template regex_match | |
24292 template <class BidirectionalIterator, class Allocator, class charT, class traits> | |
24293 bool regex_match( | |
24294 const BidirectionalIterator first, | |
24295 const BidirectionalIterator last, | |
24296 match_results<BidirectionalIterator, Allocator> &m, | |
24297 const basic_regex<charT, traits> &e, | |
24298 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24299 ) | |
24300 { | |
24301 return e.search(first, last, first, m, flags | regex_constants::match_continuous | regex_constants::match_match_); | |
24302 } | |
24303 | |
24304 template <class BidirectionalIterator, class charT, class traits> | |
24305 bool regex_match( | |
24306 const BidirectionalIterator first, | |
24307 const BidirectionalIterator last, | |
24308 const basic_regex<charT, traits> &e, | |
24309 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24310 ) | |
24311 { | |
24312 // 4 Effects: Behaves "as if" by constructing an instance of | |
24313 // match_results<BidirectionalIterator> what, and then returning the | |
24314 // result of regex_match(first, last, what, e, flags). | |
24315 | |
24316 match_results<BidirectionalIterator> what; | |
24317 | |
24318 return regex_match(first, last, what, e, flags); | |
24319 } | |
24320 | |
24321 template <class charT, class Allocator, class traits> | |
24322 bool regex_match( | |
24323 const charT *const str, | |
24324 match_results<const charT *, Allocator> &m, | |
24325 const basic_regex<charT, traits> &e, | |
24326 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24327 ) | |
24328 { | |
24329 return regex_match(str, str + std::char_traits<charT>::length(str), m, e, flags); | |
24330 } | |
24331 | |
24332 template <class ST, class SA, class Allocator, class charT, class traits> | |
24333 bool regex_match( | |
24334 const std::basic_string<charT, ST, SA> &s, | |
24335 match_results<typename std::basic_string<charT, ST, SA>::const_iterator, Allocator> &m, | |
24336 const basic_regex<charT, traits> &e, | |
24337 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24338 ) | |
24339 { | |
24340 return regex_match(s.begin(), s.end(), m, e, flags); | |
24341 } | |
24342 | |
24343 template <class charT, class traits> | |
24344 bool regex_match( | |
24345 const charT *const str, | |
24346 const basic_regex<charT, traits> &e, | |
24347 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24348 ) | |
24349 { | |
24350 return regex_match(str, str + std::char_traits<charT>::length(str), e, flags); | |
24351 } | |
24352 | |
24353 template <class ST, class SA, class charT, class traits> | |
24354 bool regex_match( | |
24355 const std::basic_string<charT, ST, SA> &s, | |
24356 const basic_regex<charT, traits> &e, | |
24357 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24358 ) | |
24359 { | |
24360 return regex_match(s.begin(), s.end(), e, flags); | |
24361 } | |
24362 | |
24363 template <class BidirectionalIterator, class Allocator, class charT, class traits> | |
24364 bool regex_search( | |
24365 const BidirectionalIterator first, | |
24366 const BidirectionalIterator last, | |
24367 const BidirectionalIterator lookbehind_limit, | |
24368 match_results<BidirectionalIterator, Allocator> &m, | |
24369 const basic_regex<charT, traits> &e, | |
24370 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24371 ) | |
24372 { | |
24373 return e.search(first, last, lookbehind_limit, m, flags); | |
24374 } | |
24375 | |
24376 template <class BidirectionalIterator, class charT, class traits> | |
24377 bool regex_search( | |
24378 const BidirectionalIterator first, | |
24379 const BidirectionalIterator last, | |
24380 const BidirectionalIterator lookbehind_limit, | |
24381 const basic_regex<charT, traits> &e, | |
24382 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24383 ) | |
24384 { | |
24385 // 6 Effects: Behaves "as if" by constructing an object what of type | |
24386 // match_results<iterator> and then returning the result of | |
24387 // regex_search(first, last, what, e, flags). | |
24388 | |
24389 match_results<BidirectionalIterator> what; | |
24390 return regex_search(first, last, lookbehind_limit, what, e, flags); | |
24391 } | |
24392 | |
24393 // 28.11.3, function template regex_search: | |
24394 // 7.11.3 regex_search [tr.re.alg.search] | |
24395 template <class BidirectionalIterator, class Allocator, class charT, class traits> | |
24396 bool regex_search( | |
24397 const BidirectionalIterator first, | |
24398 const BidirectionalIterator last, | |
24399 match_results<BidirectionalIterator, Allocator> &m, | |
24400 const basic_regex<charT, traits> &e, | |
24401 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24402 ) | |
24403 { | |
24404 return e.search(first, last, first, m, flags); | |
24405 } | |
24406 | |
24407 template <class BidirectionalIterator, class charT, class traits> | |
24408 bool regex_search( | |
24409 const BidirectionalIterator first, | |
24410 const BidirectionalIterator last, | |
24411 const basic_regex<charT, traits> &e, | |
24412 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24413 ) | |
24414 { | |
24415 // 6 Effects: Behaves "as if" by constructing an object what of type | |
24416 // match_results<iterator> and then returning the result of | |
24417 // regex_search(first, last, what, e, flags). | |
24418 | |
24419 match_results<BidirectionalIterator> what; | |
24420 return regex_search(first, last, what, e, flags); | |
24421 } | |
24422 | |
24423 template <class charT, class Allocator, class traits> | |
24424 bool regex_search( | |
24425 const charT *const str, | |
24426 match_results<const charT *, Allocator> &m, | |
24427 const basic_regex<charT, traits> &e, | |
24428 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24429 ) | |
24430 { | |
24431 return regex_search(str, str + std::char_traits<charT>::length(str), m, e, flags); | |
24432 } | |
24433 | |
24434 template <class charT, class traits> | |
24435 bool regex_search( | |
24436 const charT *const str, | |
24437 const basic_regex<charT, traits> &e, | |
24438 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24439 ) | |
24440 { | |
24441 return regex_search(str, str + std::char_traits<charT>::length(str), e, flags); | |
24442 } | |
24443 | |
24444 template <class ST, class SA, class charT, class traits> | |
24445 bool regex_search( | |
24446 const std::basic_string<charT, ST, SA> &s, | |
24447 const basic_regex<charT, traits> &e, | |
24448 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24449 ) | |
24450 { | |
24451 return regex_search(s.begin(), s.end(), e, flags); | |
24452 } | |
24453 | |
24454 template <class ST, class SA, class Allocator, class charT, class traits> | |
24455 bool regex_search( | |
24456 const std::basic_string<charT, ST, SA> &s, | |
24457 match_results<typename std::basic_string<charT, ST, SA>::const_iterator, Allocator> &m, | |
24458 const basic_regex<charT, traits> &e, | |
24459 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24460 ) | |
24461 { | |
24462 return regex_search(s.begin(), s.end(), m, e, flags); | |
24463 } | |
24464 | |
24465 // 28.11.4, function template regex_replace: | |
24466 // [7.11.4] Function template regex_replace | |
24467 template <class OutputIterator, class BidirectionalIterator, class traits, class charT, class ST, class SA> | |
24468 OutputIterator regex_replace( | |
24469 OutputIterator out, | |
24470 const BidirectionalIterator first, | |
24471 const BidirectionalIterator last, | |
24472 const basic_regex<charT, traits> &e, | |
24473 const std::basic_string<charT, ST, SA> &fmt, | |
24474 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24475 ) | |
24476 { | |
24477 typedef regex_iterator<BidirectionalIterator, charT, traits> iterator_type; | |
24478 | |
24479 const bool do_copy = !(flags & regex_constants::format_no_copy); | |
24480 const iterator_type eos; | |
24481 iterator_type i(first, last, e, flags); | |
24482 typename iterator_type::value_type::value_type last_m_suffix; | |
24483 | |
24484 last_m_suffix.first = first; | |
24485 last_m_suffix.second = last; | |
24486 | |
24487 for (; i != eos; ++i) | |
24488 { | |
24489 if (do_copy) | |
24490 out = std::copy(i->prefix().first, i->prefix().second, out); | |
24491 | |
24492 out = i->format(out, fmt, flags); | |
24493 last_m_suffix = i->suffix(); | |
24494 | |
24495 if (flags & regex_constants::format_first_only) | |
24496 break; | |
24497 } | |
24498 | |
24499 if (do_copy) | |
24500 out = std::copy(last_m_suffix.first, last_m_suffix.second, out); | |
24501 | |
24502 return out; | |
24503 } | |
24504 | |
24505 template <class OutputIterator, class BidirectionalIterator, class traits, class charT> | |
24506 OutputIterator regex_replace( | |
24507 OutputIterator out, | |
24508 const BidirectionalIterator first, | |
24509 const BidirectionalIterator last, | |
24510 const basic_regex<charT, traits> &e, | |
24511 const charT *const fmt, | |
24512 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24513 ) | |
24514 { | |
24515 // Strictly speaking, this should be implemented as a version different | |
24516 // from the above with changing the line i->format(out, fmt, flags) to | |
24517 // i->format(out, fmt, fmt + char_traits<charT>::length(fmt), flags). | |
24518 | |
24519 const std::basic_string<charT> fs(fmt, fmt + std::char_traits<charT>::length(fmt)); | |
24520 | |
24521 return regex_replace(out, first, last, e, fs, flags); | |
24522 } | |
24523 | |
24524 template <class traits, class charT, class ST, class SA, class FST, class FSA> | |
24525 std::basic_string<charT, ST, SA> regex_replace( | |
24526 const std::basic_string<charT, ST, SA> &s, | |
24527 const basic_regex<charT, traits> &e, | |
24528 const std::basic_string<charT, FST, FSA> &fmt, | |
24529 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24530 ) | |
24531 { | |
24532 std::basic_string<charT, ST, SA> result; | |
24533 | |
24534 regex_replace(std::back_inserter(result), s.begin(), s.end(), e, fmt, flags); | |
24535 return result; | |
24536 } | |
24537 | |
24538 template <class traits, class charT, class ST, class SA> | |
24539 std::basic_string<charT, ST, SA> regex_replace( | |
24540 const std::basic_string<charT, ST, SA> &s, | |
24541 const basic_regex<charT, traits> &e, | |
24542 const charT *const fmt, | |
24543 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24544 ) | |
24545 { | |
24546 std::basic_string<charT, ST, SA> result; | |
24547 | |
24548 regex_replace(std::back_inserter(result), s.begin(), s.end(), e, fmt, flags); | |
24549 return result; | |
24550 } | |
24551 | |
24552 template <class traits, class charT, class ST, class SA> | |
24553 std::basic_string<charT> regex_replace( | |
24554 const charT *const s, | |
24555 const basic_regex<charT, traits> &e, | |
24556 const std::basic_string<charT, ST, SA> &fmt, | |
24557 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24558 ) | |
24559 { | |
24560 std::basic_string<charT> result; | |
24561 | |
24562 regex_replace(std::back_inserter(result), s, s + std::char_traits<charT>::length(s), e, fmt, flags); | |
24563 return result; | |
24564 } | |
24565 | |
24566 template <class traits, class charT> | |
24567 std::basic_string<charT> regex_replace( | |
24568 const charT *const s, | |
24569 const basic_regex<charT, traits> &e, | |
24570 const charT *const fmt, | |
24571 const regex_constants::match_flag_type flags = regex_constants::match_default | |
24572 ) | |
24573 { | |
24574 std::basic_string<charT> result; | |
24575 | |
24576 regex_replace(std::back_inserter(result), s, s + std::char_traits<charT>::length(s), e, fmt, flags); | |
24577 return result; | |
24578 } | |
24579 | |
24580 #if !defined(SRELL_NO_APIEXT) | |
24581 | |
24582 template <typename BasicStringLike> | |
24583 struct str_clip | |
24584 { | |
24585 public: | |
24586 | |
24587 typedef BasicStringLike string_type; | |
24588 typedef typename string_type::traits_type traits_type; | |
24589 typedef typename string_type::allocator_type allocator_type; | |
24590 typedef typename string_type::size_type size_type; | |
24591 typedef typename string_type::iterator iterator; | |
24592 typedef typename string_type::const_iterator const_iterator; | |
24593 typedef typename string_type::const_pointer const_pointer; | |
24594 | |
24595 str_clip(const str_clip &s) | |
24596 : ptr_(s.ptr_), offset_(s.offset_), roffset_(s.roffset_) | |
24597 { | |
24598 } | |
24599 | |
24600 str_clip(string_type &s) | |
24601 : ptr_(&s), offset_(0), roffset_(0) | |
24602 { | |
24603 } | |
24604 | |
24605 str_clip(string_type &s, const size_type pos, const size_type count = string_type::npos) | |
24606 : ptr_(&s), offset_(pos) | |
24607 { | |
24608 const size_type remainder = s.size() - pos; | |
24609 | |
24610 roffset_ = count < remainder ? remainder - count : 0; | |
24611 } | |
24612 | |
24613 str_clip(string_type &s, const_iterator b, const_iterator e) | |
24614 : ptr_(&s), offset_(b - s.begin()), roffset_(s.end() - e) | |
24615 { | |
24616 } | |
24617 | |
24618 const str_clip &clip(const size_type pos, const size_type count = string_type::npos) | |
24619 { | |
24620 const size_type remainder = ptr_->size() - pos; | |
24621 | |
24622 offset_ = pos; | |
24623 roffset_ = count < remainder ? remainder - count : 0; | |
24624 return *this; | |
24625 } | |
24626 | |
24627 const str_clip &clip(const_iterator b, const_iterator e) | |
24628 { | |
24629 offset_ = b - ptr_->begin(); | |
24630 roffset_ = ptr_->end() - e; | |
24631 return *this; | |
24632 } | |
24633 | |
24634 const_pointer data() const | |
24635 { | |
24636 return ptr_->data() + offset_; | |
24637 } | |
24638 | |
24639 size_type size() const | |
24640 { | |
24641 return ptr_->size() - offset_ - roffset_; | |
24642 } | |
24643 | |
24644 iterator begin() const | |
24645 { | |
24646 return ptr_->begin() + offset_; | |
24647 } | |
24648 | |
24649 iterator end() const | |
24650 { | |
24651 return ptr_->end() - roffset_; | |
24652 } | |
24653 | |
24654 void replace(const size_type pos, const size_type count, const string_type &r) const | |
24655 { | |
24656 ptr_->replace(pos + offset_, count, r); | |
24657 } | |
24658 | |
24659 private: | |
24660 | |
24661 string_type *ptr_; | |
24662 size_type offset_; | |
24663 size_type roffset_; | |
24664 }; | |
24665 | |
24666 #endif // !defined(SRELL_NO_APIEXT) | |
24667 | |
24668 // ... "regex_algorithm.hpp"] | |
24669 // ["regex_token_iterator.hpp" ... | |
24670 | |
24671 // 28.12.2, class template regex_token_iterator: | |
24672 template <class BidirectionalIterator, class charT = typename std::iterator_traits<BidirectionalIterator>::value_type, class traits = regex_traits<charT> > | |
24673 class regex_token_iterator | |
24674 { | |
24675 public: | |
24676 | |
24677 typedef basic_regex<charT, traits> regex_type; | |
24678 typedef sub_match<BidirectionalIterator> value_type; | |
24679 typedef std::ptrdiff_t difference_type; | |
24680 typedef const value_type *pointer; | |
24681 typedef const value_type &reference; | |
24682 typedef std::forward_iterator_tag iterator_category; | |
24683 | |
24684 regex_token_iterator() : result_(NULL) | |
24685 { | |
24686 // Constructs the end-of-sequence iterator. | |
24687 } | |
24688 | |
24689 regex_token_iterator( | |
24690 const BidirectionalIterator a, | |
24691 const BidirectionalIterator b, | |
24692 const regex_type &re, | |
24693 int submatch = 0, | |
24694 regex_constants::match_flag_type m = regex_constants::match_default | |
24695 ) : position_(a, b, re, m), result_(NULL), subs_(1, submatch) | |
24696 { | |
24697 post_constructor_(a, b); | |
24698 } | |
24699 | |
24700 regex_token_iterator( | |
24701 const BidirectionalIterator a, | |
24702 const BidirectionalIterator b, | |
24703 const regex_type &re, | |
24704 const std::vector<int> &submatches, | |
24705 regex_constants::match_flag_type m = regex_constants::match_default | |
24706 ) : position_(a, b, re, m), result_(NULL), subs_(submatches) | |
24707 { | |
24708 post_constructor_(a, b); | |
24709 } | |
24710 | |
24711 #if defined(SRELL_CPP11_INITIALIZER_LIST_ENABLED) | |
24712 regex_token_iterator( | |
24713 const BidirectionalIterator a, | |
24714 const BidirectionalIterator b, | |
24715 const regex_type &re, | |
24716 std::initializer_list<int> submatches, | |
24717 regex_constants::match_flag_type m = regex_constants::match_default | |
24718 ) : position_(a, b, re, m), result_(NULL), subs_(submatches) | |
24719 { | |
24720 post_constructor_(a, b); | |
24721 } | |
24722 #endif | |
24723 | |
24724 template <std::size_t N> // Was R in TR1. | |
24725 regex_token_iterator( | |
24726 const BidirectionalIterator a, | |
24727 const BidirectionalIterator b, | |
24728 const regex_type &re, | |
24729 const int (&submatches)[N], | |
24730 regex_constants::match_flag_type m = regex_constants::match_default | |
24731 ) : position_(a, b, re, m), result_(NULL), subs_(submatches, submatches + N) | |
24732 { | |
24733 post_constructor_(a, b); | |
24734 } | |
24735 | |
24736 regex_token_iterator(const regex_token_iterator &that) | |
24737 { | |
24738 operator=(that); | |
24739 } | |
24740 | |
24741 regex_token_iterator &operator=(const regex_token_iterator &that) | |
24742 { | |
24743 if (this != &that) | |
24744 { | |
24745 this->result_ = that.result_; | |
24746 if (this->result_) | |
24747 { | |
24748 this->position_ = that.position_; | |
24749 this->suffix_ = that.suffix_; | |
24750 this->N_ = that.N_; | |
24751 this->subs_ = that.subs_; | |
24752 } | |
24753 } | |
24754 return *this; | |
24755 } | |
24756 | |
24757 bool operator==(const regex_token_iterator &right) | |
24758 { | |
24759 if (right.result_ == NULL || this->result_ == NULL) | |
24760 return this->result_ == right.result_; | |
24761 | |
24762 if (this->result_ == &this->suffix_ || right.result_ == &right.suffix_) | |
24763 return this->suffix_ == right.suffix_; | |
24764 | |
24765 return this->position_ == right.position_ | |
24766 && this->N_ == right.N_ | |
24767 && this->subs_ == right.subs_; | |
24768 } | |
24769 | |
24770 bool operator!=(const regex_token_iterator &right) | |
24771 { | |
24772 return !(*this == right); | |
24773 } | |
24774 | |
24775 const value_type &operator*() | |
24776 { | |
24777 return *result_; | |
24778 } | |
24779 | |
24780 const value_type *operator->() | |
24781 { | |
24782 return result_; | |
24783 } | |
24784 | |
24785 regex_token_iterator &operator++() | |
24786 { | |
24787 if (result_ == &suffix_) | |
24788 result_ = NULL; | |
24789 else if (result_ != NULL) | |
24790 { | |
24791 if (++this->N_ >= subs_.size()) | |
24792 { | |
24793 position_iterator eos_iterator; | |
24794 | |
24795 this->N_ = 0; | |
24796 suffix_ = position_->suffix(); | |
24797 if (++position_ == eos_iterator) | |
24798 { | |
24799 result_ = (suffix_.matched && minus1_in_subs_()) ? &suffix_ : NULL; | |
24800 return *this; | |
24801 } | |
24802 } | |
24803 result_ = subs_[this->N_] != -1 ? &((*position_)[subs_[this->N_]]) : &((*position_).prefix()); | |
24804 } | |
24805 return *this; | |
24806 } | |
24807 | |
24808 regex_token_iterator operator++(int) | |
24809 { | |
24810 const regex_token_iterator tmp(*this); | |
24811 ++(*this); | |
24812 return tmp; | |
24813 } | |
24814 | |
24815 private: | |
24816 | |
24817 void post_constructor_(const BidirectionalIterator a, const BidirectionalIterator b) | |
24818 { | |
24819 position_iterator eos_iterator; | |
24820 | |
24821 this->N_ = 0; | |
24822 | |
24823 if (position_ != eos_iterator && subs_.size()) | |
24824 { | |
24825 result_ = subs_[this->N_] != -1 ? &((*position_)[subs_[this->N_]]) : &((*position_).prefix()); | |
24826 return; | |
24827 } | |
24828 | |
24829 if (minus1_in_subs_()) | |
24830 { | |
24831 suffix_.matched = a != b; | |
24832 | |
24833 if (suffix_.matched) | |
24834 { | |
24835 suffix_.first = a; | |
24836 suffix_.second = b; | |
24837 result_ = &suffix_; | |
24838 return; | |
24839 } | |
24840 } | |
24841 result_ = NULL; | |
24842 } | |
24843 | |
24844 bool minus1_in_subs_() const | |
24845 { | |
24846 for (std::size_t i = 0; i < subs_.size(); ++i) | |
24847 if (subs_[i] == -1) | |
24848 return true; | |
24849 | |
24850 return false; | |
24851 } | |
24852 | |
24853 private: | |
24854 | |
24855 typedef regex_iterator<BidirectionalIterator, charT, traits> position_iterator; | |
24856 position_iterator position_; | |
24857 const value_type *result_; | |
24858 value_type suffix_; | |
24859 std::size_t N_; | |
24860 std::vector<int> subs_; | |
24861 }; | |
24862 | |
24863 typedef regex_token_iterator<const char *> cregex_token_iterator; | |
24864 typedef regex_token_iterator<const wchar_t *> wcregex_token_iterator; | |
24865 typedef regex_token_iterator<std::string::const_iterator> sregex_token_iterator; | |
24866 typedef regex_token_iterator<std::wstring::const_iterator> wsregex_token_iterator; | |
24867 | |
24868 typedef regex_token_iterator<const char *, typename std::iterator_traits<const char *>::value_type, u8regex_traits<typename std::iterator_traits<const char *>::value_type> > u8ccregex_token_iterator; | |
24869 typedef regex_token_iterator<std::string::const_iterator, typename std::iterator_traits<std::string::const_iterator>::value_type, u8regex_traits<typename std::iterator_traits<std::string::const_iterator>::value_type> > u8csregex_token_iterator; | |
24870 | |
24871 #if defined(WCHAR_MAX) | |
24872 #if WCHAR_MAX >= 0x10ffff | |
24873 typedef wcregex_token_iterator u32wcregex_token_iterator; | |
24874 typedef wsregex_token_iterator u32wsregex_token_iterator; | |
24875 typedef u32wcregex_token_iterator u1632wcregex_token_iterator; | |
24876 typedef u32wsregex_token_iterator u1632wsregex_token_iterator; | |
24877 #elif WCHAR_MAX >= 0xffff | |
24878 typedef regex_token_iterator<const wchar_t *, typename std::iterator_traits<const wchar_t *>::value_type, u16regex_traits<typename std::iterator_traits<const wchar_t *>::value_type> > u16wcregex_token_iterator; | |
24879 typedef regex_token_iterator<std::wstring::const_iterator, typename std::iterator_traits<std::wstring::const_iterator>::value_type, u16regex_traits<typename std::iterator_traits<std::wstring::const_iterator>::value_type> > u16wsregex_token_iterator; | |
24880 typedef u16wcregex_token_iterator u1632wcregex_token_iterator; | |
24881 typedef u16wsregex_token_iterator u1632wsregex_token_iterator; | |
24882 #endif | |
24883 #endif | |
24884 | |
24885 #if defined(SRELL_CPP11_CHAR1632_ENABLED) | |
24886 typedef regex_token_iterator<const char16_t *> u16cregex_token_iterator; | |
24887 typedef regex_token_iterator<const char32_t *> u32cregex_token_iterator; | |
24888 typedef regex_token_iterator<std::u16string::const_iterator> u16sregex_token_iterator; | |
24889 typedef regex_token_iterator<std::u32string::const_iterator> u32sregex_token_iterator; | |
24890 #endif | |
24891 | |
24892 #if defined(SRELL_CPP20_CHAR8_ENABLED) | |
24893 typedef regex_token_iterator<const char8_t *> u8cregex_token_iterator; | |
24894 #else | |
24895 typedef u8ccregex_token_iterator u8cregex_token_iterator; | |
24896 #endif | |
24897 #if defined(SRELL_CPP20_CHAR8_ENABLED) && SRELL_CPP20_CHAR8_ENABLED >= 2 | |
24898 typedef regex_token_iterator<std::u8string::const_iterator> u8sregex_token_iterator; | |
24899 #else // !defined(SRELL_CPP20_CHAR8_ENABLED) || SRELL_CPP20_CHAR8_ENABLED < 2 | |
24900 typedef u8csregex_token_iterator u8sregex_token_iterator; | |
24901 #endif | |
24902 | |
24903 // ... "regex_token_iterator.hpp"] | |
24904 | |
24905 } // namespace srell | |
24906 #endif // SRELL_REGEX_TEMPLATE_LIBRARY |