From ec091e2e444eae63816245bb7e302faf7110f6a0 Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Mon, 10 Jan 2022 11:31:27 +0000 Subject: [PATCH] Restore lost de-duplication --- maint/GenerateUcpTables.py | 8 +- src/pcre2_ucptables.c | 839 ++++++++++++++++++------------------- 2 files changed, 416 insertions(+), 431 deletions(-) diff --git a/maint/GenerateUcpTables.py b/maint/GenerateUcpTables.py index 85206ad..2286a76 100755 --- a/maint/GenerateUcpTables.py +++ b/maint/GenerateUcpTables.py @@ -41,7 +41,8 @@ # # Note subsequent changes here: # -# 27-December_2021: Added support for 4-letter script abbreviations. +# 27-December-2021: Added support for 4-letter script abbreviations. +# xx-January-2022: Further updates for Boolean property support # ----------------------------------------------------------------------------- @@ -119,8 +120,6 @@ for name in bool_properties: utt_table.append((stdname(abbrev), name, 'PT_BOOL')) -#utt_table += list(zip(std_bool_properties, bool_properties, ['PT_BOOL'] * len(bool_properties))) - # Now add specials and synonyms. Note both the standardized and capitalized # forms are needed. @@ -133,8 +132,9 @@ utt_table.append(('xsp', 'Xsp', 'PT_SPACE')) utt_table.append(('xuc', 'Xuc', 'PT_UCNC')) utt_table.append(('xwd', 'Xwd', 'PT_WORD')) -# Sort the table. +# Remove duplicates from the table and then sort it. +utt_table = list(set(utt_table)) utt_table.sort() # Output file-specific heading diff --git a/src/pcre2_ucptables.c b/src/pcre2_ucptables.c index 5688142..bd1b67a 100644 --- a/src/pcre2_ucptables.c +++ b/src/pcre2_ucptables.c @@ -127,7 +127,6 @@ the "loose matching" rules that Unicode advises and Perl uses. */ #define STRING_cari0 STR_c STR_a STR_r STR_i "\0" #define STRING_carian0 STR_c STR_a STR_r STR_i STR_a STR_n "\0" #define STRING_cased0 STR_c STR_a STR_s STR_e STR_d "\0" -#define STRING_cased0 STR_c STR_a STR_s STR_e STR_d "\0" #define STRING_caseignorable0 STR_c STR_a STR_s STR_e STR_i STR_g STR_n STR_o STR_r STR_a STR_b STR_l STR_e "\0" #define STRING_caucasianalbanian0 STR_c STR_a STR_u STR_c STR_a STR_s STR_i STR_a STR_n STR_a STR_l STR_b STR_a STR_n STR_i STR_a STR_n "\0" #define STRING_cc0 STR_c STR_c "\0" @@ -163,7 +162,6 @@ the "loose matching" rules that Unicode advises and Perl uses. */ #define STRING_cyrillic0 STR_c STR_y STR_r STR_i STR_l STR_l STR_i STR_c "\0" #define STRING_cyrl0 STR_c STR_y STR_r STR_l "\0" #define STRING_dash0 STR_d STR_a STR_s STR_h "\0" -#define STRING_dash0 STR_d STR_a STR_s STR_h "\0" #define STRING_defaultignorablecodepoint0 STR_d STR_e STR_f STR_a STR_u STR_l STR_t STR_i STR_g STR_n STR_o STR_r STR_a STR_b STR_l STR_e STR_c STR_o STR_d STR_e STR_p STR_o STR_i STR_n STR_t "\0" #define STRING_dep0 STR_d STR_e STR_p "\0" #define STRING_deprecated0 STR_d STR_e STR_p STR_r STR_e STR_c STR_a STR_t STR_e STR_d "\0" @@ -190,7 +188,6 @@ the "loose matching" rules that Unicode advises and Perl uses. */ #define STRING_elymaic0 STR_e STR_l STR_y STR_m STR_a STR_i STR_c "\0" #define STRING_emod0 STR_e STR_m STR_o STR_d "\0" #define STRING_emoji0 STR_e STR_m STR_o STR_j STR_i "\0" -#define STRING_emoji0 STR_e STR_m STR_o STR_j STR_i "\0" #define STRING_emojicomponent0 STR_e STR_m STR_o STR_j STR_i STR_c STR_o STR_m STR_p STR_o STR_n STR_e STR_n STR_t "\0" #define STRING_emojimodifier0 STR_e STR_m STR_o STR_j STR_i STR_m STR_o STR_d STR_i STR_f STR_i STR_e STR_r "\0" #define STRING_emojimodifierbase0 STR_e STR_m STR_o STR_j STR_i STR_m STR_o STR_d STR_i STR_f STR_i STR_e STR_r STR_b STR_a STR_s STR_e "\0" @@ -324,7 +321,6 @@ the "loose matching" rules that Unicode advises and Perl uses. */ #define STRING_marchen0 STR_m STR_a STR_r STR_c STR_h STR_e STR_n "\0" #define STRING_masaramgondi0 STR_m STR_a STR_s STR_a STR_r STR_a STR_m STR_g STR_o STR_n STR_d STR_i "\0" #define STRING_math0 STR_m STR_a STR_t STR_h "\0" -#define STRING_math0 STR_m STR_a STR_t STR_h "\0" #define STRING_mc0 STR_m STR_c "\0" #define STRING_me0 STR_m STR_e "\0" #define STRING_medefaidrin0 STR_m STR_e STR_d STR_e STR_f STR_a STR_i STR_d STR_r STR_i STR_n "\0" @@ -422,7 +418,6 @@ the "loose matching" rules that Unicode advises and Perl uses. */ #define STRING_qmark0 STR_q STR_m STR_a STR_r STR_k "\0" #define STRING_quotationmark0 STR_q STR_u STR_o STR_t STR_a STR_t STR_i STR_o STR_n STR_m STR_a STR_r STR_k "\0" #define STRING_radical0 STR_r STR_a STR_d STR_i STR_c STR_a STR_l "\0" -#define STRING_radical0 STR_r STR_a STR_d STR_i STR_c STR_a STR_l "\0" #define STRING_regionalindicator0 STR_r STR_e STR_g STR_i STR_o STR_n STR_a STR_l STR_i STR_n STR_d STR_i STR_c STR_a STR_t STR_o STR_r "\0" #define STRING_rejang0 STR_r STR_e STR_j STR_a STR_n STR_g "\0" #define STRING_ri0 STR_r STR_i "\0" @@ -620,7 +615,6 @@ const char PRIV(utt_names)[] = STRING_cari0 STRING_carian0 STRING_cased0 - STRING_cased0 STRING_caseignorable0 STRING_caucasianalbanian0 STRING_cc0 @@ -656,7 +650,6 @@ const char PRIV(utt_names)[] = STRING_cyrillic0 STRING_cyrl0 STRING_dash0 - STRING_dash0 STRING_defaultignorablecodepoint0 STRING_dep0 STRING_deprecated0 @@ -683,7 +676,6 @@ const char PRIV(utt_names)[] = STRING_elymaic0 STRING_emod0 STRING_emoji0 - STRING_emoji0 STRING_emojicomponent0 STRING_emojimodifier0 STRING_emojimodifierbase0 @@ -817,7 +809,6 @@ const char PRIV(utt_names)[] = STRING_marchen0 STRING_masaramgondi0 STRING_math0 - STRING_math0 STRING_mc0 STRING_me0 STRING_medefaidrin0 @@ -915,7 +906,6 @@ const char PRIV(utt_names)[] = STRING_qmark0 STRING_quotationmark0 STRING_radical0 - STRING_radical0 STRING_regionalindicator0 STRING_rejang0 STRING_ri0 @@ -1113,423 +1103,418 @@ const ucp_type_table PRIV(utt)[] = { { 509, PT_SC, ucp_Carian }, { 514, PT_SC, ucp_Carian }, { 521, PT_BOOL, ucp_Cased }, - { 527, PT_BOOL, ucp_Cased }, - { 533, PT_BOOL, ucp_Case_Ignorable }, - { 547, PT_SC, ucp_Caucasian_Albanian }, - { 565, PT_PC, ucp_Cc }, - { 568, PT_PC, ucp_Cf }, - { 571, PT_SCX, ucp_Chakma }, - { 578, PT_SC, ucp_Cham }, - { 583, PT_BOOL, ucp_Changes_When_Casefolded }, - { 605, PT_BOOL, ucp_Changes_When_Casemapped }, - { 627, PT_BOOL, ucp_Changes_When_Lowercased }, - { 649, PT_BOOL, ucp_Changes_When_Titlecased }, - { 671, PT_BOOL, ucp_Changes_When_Uppercased }, - { 693, PT_SC, ucp_Cherokee }, - { 698, PT_SC, ucp_Cherokee }, - { 707, PT_SC, ucp_Chorasmian }, - { 718, PT_SC, ucp_Chorasmian }, - { 723, PT_BOOL, ucp_Case_Ignorable }, - { 726, PT_PC, ucp_Cn }, - { 729, PT_PC, ucp_Co }, - { 732, PT_SC, ucp_Common }, - { 739, PT_SCX, ucp_Coptic }, - { 744, PT_SCX, ucp_Coptic }, - { 751, PT_SCX, ucp_Cypro_Minoan }, - { 756, PT_SCX, ucp_Cypriot }, - { 761, PT_PC, ucp_Cs }, - { 764, PT_SC, ucp_Cuneiform }, - { 774, PT_BOOL, ucp_Changes_When_Casefolded }, - { 779, PT_BOOL, ucp_Changes_When_Casemapped }, - { 784, PT_BOOL, ucp_Changes_When_Lowercased }, - { 788, PT_BOOL, ucp_Changes_When_Titlecased }, - { 792, PT_BOOL, ucp_Changes_When_Uppercased }, - { 796, PT_SCX, ucp_Cypriot }, - { 804, PT_SCX, ucp_Cypro_Minoan }, - { 816, PT_SCX, ucp_Cyrillic }, - { 825, PT_SCX, ucp_Cyrillic }, - { 830, PT_BOOL, ucp_Dash }, - { 835, PT_BOOL, ucp_Dash }, - { 840, PT_BOOL, ucp_Default_Ignorable_Code_Point }, - { 866, PT_BOOL, ucp_Deprecated }, - { 870, PT_BOOL, ucp_Deprecated }, - { 881, PT_SC, ucp_Deseret }, - { 889, PT_SCX, ucp_Devanagari }, - { 894, PT_SCX, ucp_Devanagari }, - { 905, PT_BOOL, ucp_Default_Ignorable_Code_Point }, - { 908, PT_BOOL, ucp_Diacritic }, - { 912, PT_BOOL, ucp_Diacritic }, - { 922, PT_SC, ucp_Dives_Akuru }, - { 927, PT_SC, ucp_Dives_Akuru }, - { 938, PT_SCX, ucp_Dogra }, - { 943, PT_SCX, ucp_Dogra }, - { 949, PT_SC, ucp_Deseret }, - { 954, PT_SCX, ucp_Duployan }, - { 959, PT_SCX, ucp_Duployan }, - { 968, PT_BOOL, ucp_Emoji_Modifier_Base }, - { 974, PT_BOOL, ucp_Emoji_Component }, - { 980, PT_SC, ucp_Egyptian_Hieroglyphs }, - { 985, PT_SC, ucp_Egyptian_Hieroglyphs }, - { 1005, PT_SC, ucp_Elbasan }, - { 1010, PT_SC, ucp_Elbasan }, - { 1018, PT_SC, ucp_Elymaic }, - { 1023, PT_SC, ucp_Elymaic }, - { 1031, PT_BOOL, ucp_Emoji_Modifier }, - { 1036, PT_BOOL, ucp_Emoji }, - { 1042, PT_BOOL, ucp_Emoji }, - { 1048, PT_BOOL, ucp_Emoji_Component }, - { 1063, PT_BOOL, ucp_Emoji_Modifier }, - { 1077, PT_BOOL, ucp_Emoji_Modifier_Base }, - { 1095, PT_BOOL, ucp_Emoji_Presentation }, - { 1113, PT_BOOL, ucp_Emoji_Presentation }, - { 1119, PT_SC, ucp_Ethiopic }, - { 1124, PT_SC, ucp_Ethiopic }, - { 1133, PT_BOOL, ucp_Extender }, - { 1137, PT_BOOL, ucp_Extended_Pictographic }, - { 1158, PT_BOOL, ucp_Extender }, - { 1167, PT_BOOL, ucp_Extended_Pictographic }, - { 1175, PT_SCX, ucp_Georgian }, - { 1180, PT_SCX, ucp_Georgian }, - { 1189, PT_SCX, ucp_Glagolitic }, - { 1194, PT_SCX, ucp_Glagolitic }, - { 1205, PT_SCX, ucp_Gunjala_Gondi }, - { 1210, PT_SCX, ucp_Masaram_Gondi }, - { 1215, PT_SC, ucp_Gothic }, - { 1220, PT_SC, ucp_Gothic }, - { 1227, PT_SCX, ucp_Grantha }, - { 1232, PT_SCX, ucp_Grantha }, - { 1240, PT_BOOL, ucp_Grapheme_Base }, - { 1253, PT_BOOL, ucp_Grapheme_Extend }, - { 1268, PT_BOOL, ucp_Grapheme_Link }, - { 1281, PT_BOOL, ucp_Grapheme_Base }, - { 1288, PT_SCX, ucp_Greek }, - { 1294, PT_SCX, ucp_Greek }, - { 1299, PT_BOOL, ucp_Grapheme_Extend }, - { 1305, PT_BOOL, ucp_Grapheme_Link }, - { 1312, PT_SCX, ucp_Gujarati }, - { 1321, PT_SCX, ucp_Gujarati }, - { 1326, PT_SCX, ucp_Gunjala_Gondi }, - { 1339, PT_SCX, ucp_Gurmukhi }, - { 1348, PT_SCX, ucp_Gurmukhi }, - { 1353, PT_SCX, ucp_Han }, - { 1357, PT_SCX, ucp_Hangul }, - { 1362, PT_SCX, ucp_Hangul }, - { 1369, PT_SCX, ucp_Han }, - { 1374, PT_SCX, ucp_Hanifi_Rohingya }, - { 1389, PT_SCX, ucp_Hanunoo }, - { 1394, PT_SCX, ucp_Hanunoo }, - { 1402, PT_SC, ucp_Hatran }, - { 1407, PT_SC, ucp_Hatran }, - { 1414, PT_SC, ucp_Hebrew }, - { 1419, PT_SC, ucp_Hebrew }, - { 1426, PT_BOOL, ucp_Hex_Digit }, - { 1430, PT_BOOL, ucp_Hex_Digit }, - { 1439, PT_SCX, ucp_Hiragana }, - { 1444, PT_SCX, ucp_Hiragana }, - { 1453, PT_SC, ucp_Anatolian_Hieroglyphs }, - { 1458, PT_SC, ucp_Pahawh_Hmong }, - { 1463, PT_SC, ucp_Nyiakeng_Puachue_Hmong }, - { 1468, PT_SC, ucp_Old_Hungarian }, - { 1473, PT_BOOL, ucp_ID_Continue }, - { 1477, PT_BOOL, ucp_ID_Continue }, - { 1488, PT_BOOL, ucp_Ideographic }, - { 1493, PT_BOOL, ucp_Ideographic }, - { 1505, PT_BOOL, ucp_ID_Start }, - { 1509, PT_BOOL, ucp_IDS_Binary_Operator }, - { 1514, PT_BOOL, ucp_IDS_Binary_Operator }, - { 1532, PT_BOOL, ucp_IDS_Trinary_Operator }, - { 1537, PT_BOOL, ucp_ID_Start }, - { 1545, PT_BOOL, ucp_IDS_Trinary_Operator }, - { 1564, PT_SC, ucp_Imperial_Aramaic }, - { 1580, PT_SC, ucp_Inherited }, - { 1590, PT_SC, ucp_Inscriptional_Pahlavi }, - { 1611, PT_SC, ucp_Inscriptional_Parthian }, - { 1633, PT_SC, ucp_Old_Italic }, - { 1638, PT_SCX, ucp_Javanese }, - { 1643, PT_SCX, ucp_Javanese }, - { 1652, PT_BOOL, ucp_Join_Control }, - { 1658, PT_BOOL, ucp_Join_Control }, - { 1670, PT_SCX, ucp_Kaithi }, - { 1677, PT_SCX, ucp_Kayah_Li }, - { 1682, PT_SCX, ucp_Katakana }, - { 1687, PT_SCX, ucp_Kannada }, - { 1695, PT_SCX, ucp_Katakana }, - { 1704, PT_SCX, ucp_Kayah_Li }, - { 1712, PT_SC, ucp_Kharoshthi }, - { 1717, PT_SC, ucp_Kharoshthi }, - { 1728, PT_SC, ucp_Khitan_Small_Script }, - { 1746, PT_SC, ucp_Khmer }, - { 1752, PT_SC, ucp_Khmer }, - { 1757, PT_SCX, ucp_Khojki }, - { 1762, PT_SCX, ucp_Khojki }, - { 1769, PT_SCX, ucp_Khudawadi }, - { 1779, PT_SC, ucp_Khitan_Small_Script }, - { 1784, PT_SCX, ucp_Kannada }, - { 1789, PT_SCX, ucp_Kaithi }, - { 1794, PT_GC, ucp_L }, - { 1796, PT_LAMP, 0 }, - { 1799, PT_SC, ucp_Tai_Tham }, - { 1804, PT_SC, ucp_Lao }, - { 1808, PT_SC, ucp_Lao }, - { 1813, PT_SCX, ucp_Latin }, - { 1819, PT_SCX, ucp_Latin }, - { 1824, PT_LAMP, 0 }, - { 1827, PT_SC, ucp_Lepcha }, - { 1832, PT_SC, ucp_Lepcha }, - { 1839, PT_SCX, ucp_Limbu }, - { 1844, PT_SCX, ucp_Limbu }, - { 1850, PT_SCX, ucp_Linear_A }, - { 1855, PT_SCX, ucp_Linear_B }, - { 1860, PT_SCX, ucp_Linear_A }, - { 1868, PT_SCX, ucp_Linear_B }, - { 1876, PT_SC, ucp_Lisu }, - { 1881, PT_PC, ucp_Ll }, - { 1884, PT_PC, ucp_Lm }, - { 1887, PT_PC, ucp_Lo }, - { 1890, PT_BOOL, ucp_Logical_Order_Exception }, - { 1894, PT_BOOL, ucp_Logical_Order_Exception }, - { 1916, PT_BOOL, ucp_Lowercase }, - { 1922, PT_BOOL, ucp_Lowercase }, - { 1932, PT_PC, ucp_Lt }, - { 1935, PT_PC, ucp_Lu }, - { 1938, PT_SC, ucp_Lycian }, - { 1943, PT_SC, ucp_Lycian }, - { 1950, PT_SC, ucp_Lydian }, - { 1955, PT_SC, ucp_Lydian }, - { 1962, PT_GC, ucp_M }, - { 1964, PT_SCX, ucp_Mahajani }, - { 1973, PT_SCX, ucp_Mahajani }, - { 1978, PT_SC, ucp_Makasar }, - { 1983, PT_SC, ucp_Makasar }, - { 1991, PT_SCX, ucp_Malayalam }, - { 2001, PT_SCX, ucp_Mandaic }, - { 2006, PT_SCX, ucp_Mandaic }, - { 2014, PT_SCX, ucp_Manichaean }, - { 2019, PT_SCX, ucp_Manichaean }, - { 2030, PT_SC, ucp_Marchen }, - { 2035, PT_SC, ucp_Marchen }, - { 2043, PT_SCX, ucp_Masaram_Gondi }, - { 2056, PT_BOOL, ucp_Math }, - { 2061, PT_BOOL, ucp_Math }, - { 2066, PT_PC, ucp_Mc }, - { 2069, PT_PC, ucp_Me }, - { 2072, PT_SC, ucp_Medefaidrin }, - { 2084, PT_SC, ucp_Medefaidrin }, - { 2089, PT_SC, ucp_Meetei_Mayek }, - { 2101, PT_SC, ucp_Mende_Kikakui }, - { 2106, PT_SC, ucp_Mende_Kikakui }, - { 2119, PT_SC, ucp_Meroitic_Cursive }, - { 2124, PT_SC, ucp_Meroitic_Hieroglyphs }, - { 2129, PT_SC, ucp_Meroitic_Cursive }, - { 2145, PT_SC, ucp_Meroitic_Hieroglyphs }, - { 2165, PT_SC, ucp_Miao }, - { 2170, PT_SCX, ucp_Malayalam }, - { 2175, PT_PC, ucp_Mn }, - { 2178, PT_SCX, ucp_Modi }, - { 2183, PT_SCX, ucp_Mongolian }, - { 2188, PT_SCX, ucp_Mongolian }, - { 2198, PT_SC, ucp_Mro }, - { 2202, PT_SC, ucp_Mro }, - { 2207, PT_SC, ucp_Meetei_Mayek }, - { 2212, PT_SCX, ucp_Multani }, - { 2217, PT_SCX, ucp_Multani }, - { 2225, PT_SCX, ucp_Myanmar }, - { 2233, PT_SCX, ucp_Myanmar }, - { 2238, PT_GC, ucp_N }, - { 2240, PT_SC, ucp_Nabataean }, - { 2250, PT_SCX, ucp_Nandinagari }, - { 2255, PT_SCX, ucp_Nandinagari }, - { 2267, PT_SC, ucp_Old_North_Arabian }, - { 2272, PT_SC, ucp_Nabataean }, - { 2277, PT_BOOL, ucp_Noncharacter_Code_Point }, - { 2283, PT_PC, ucp_Nd }, - { 2286, PT_SC, ucp_Newa }, - { 2291, PT_SC, ucp_New_Tai_Lue }, - { 2301, PT_SCX, ucp_Nko }, - { 2305, PT_SCX, ucp_Nko }, - { 2310, PT_PC, ucp_Nl }, - { 2313, PT_PC, ucp_No }, - { 2316, PT_BOOL, ucp_Noncharacter_Code_Point }, - { 2338, PT_SC, ucp_Nushu }, - { 2343, PT_SC, ucp_Nushu }, - { 2349, PT_SC, ucp_Nyiakeng_Puachue_Hmong }, - { 2370, PT_SC, ucp_Ogham }, - { 2375, PT_SC, ucp_Ogham }, - { 2381, PT_SC, ucp_Ol_Chiki }, - { 2389, PT_SC, ucp_Ol_Chiki }, - { 2394, PT_SC, ucp_Old_Hungarian }, - { 2407, PT_SC, ucp_Old_Italic }, - { 2417, PT_SC, ucp_Old_North_Arabian }, - { 2433, PT_SCX, ucp_Old_Permic }, - { 2443, PT_SC, ucp_Old_Persian }, - { 2454, PT_SC, ucp_Old_Sogdian }, - { 2465, PT_SC, ucp_Old_South_Arabian }, - { 2481, PT_SC, ucp_Old_Turkic }, - { 2491, PT_SCX, ucp_Old_Uyghur }, - { 2501, PT_SCX, ucp_Oriya }, - { 2507, PT_SC, ucp_Old_Turkic }, - { 2512, PT_SCX, ucp_Oriya }, - { 2517, PT_SC, ucp_Osage }, - { 2523, PT_SC, ucp_Osage }, - { 2528, PT_SC, ucp_Osmanya }, - { 2533, PT_SC, ucp_Osmanya }, - { 2541, PT_SCX, ucp_Old_Uyghur }, - { 2546, PT_GC, ucp_P }, - { 2548, PT_SC, ucp_Pahawh_Hmong }, - { 2560, PT_SC, ucp_Palmyrene }, - { 2565, PT_SC, ucp_Palmyrene }, - { 2575, PT_BOOL, ucp_Pattern_Syntax }, - { 2582, PT_BOOL, ucp_Pattern_Syntax }, - { 2596, PT_BOOL, ucp_Pattern_White_Space }, - { 2614, PT_BOOL, ucp_Pattern_White_Space }, - { 2620, PT_SC, ucp_Pau_Cin_Hau }, - { 2625, PT_SC, ucp_Pau_Cin_Hau }, - { 2635, PT_PC, ucp_Pc }, - { 2638, PT_BOOL, ucp_Prepended_Concatenation_Mark }, - { 2642, PT_PC, ucp_Pd }, - { 2645, PT_PC, ucp_Pe }, - { 2648, PT_SCX, ucp_Old_Permic }, - { 2653, PT_PC, ucp_Pf }, - { 2656, PT_SCX, ucp_Phags_Pa }, - { 2661, PT_SCX, ucp_Phags_Pa }, - { 2669, PT_SC, ucp_Inscriptional_Pahlavi }, - { 2674, PT_SCX, ucp_Psalter_Pahlavi }, - { 2679, PT_SC, ucp_Phoenician }, - { 2684, PT_SC, ucp_Phoenician }, - { 2695, PT_PC, ucp_Pi }, - { 2698, PT_SC, ucp_Miao }, - { 2703, PT_PC, ucp_Po }, - { 2706, PT_BOOL, ucp_Prepended_Concatenation_Mark }, - { 2733, PT_SC, ucp_Inscriptional_Parthian }, - { 2738, PT_PC, ucp_Ps }, - { 2741, PT_SCX, ucp_Psalter_Pahlavi }, - { 2756, PT_SCX, ucp_Coptic }, - { 2761, PT_SC, ucp_Inherited }, - { 2766, PT_BOOL, ucp_Quotation_Mark }, - { 2772, PT_BOOL, ucp_Quotation_Mark }, - { 2786, PT_BOOL, ucp_Radical }, - { 2794, PT_BOOL, ucp_Radical }, - { 2802, PT_BOOL, ucp_Regional_Indicator }, - { 2820, PT_SC, ucp_Rejang }, - { 2827, PT_BOOL, ucp_Regional_Indicator }, - { 2830, PT_SC, ucp_Rejang }, - { 2835, PT_SCX, ucp_Hanifi_Rohingya }, - { 2840, PT_SC, ucp_Runic }, - { 2846, PT_SC, ucp_Runic }, - { 2851, PT_GC, ucp_S }, - { 2853, PT_SC, ucp_Samaritan }, - { 2863, PT_SC, ucp_Samaritan }, - { 2868, PT_SC, ucp_Old_South_Arabian }, - { 2873, PT_SC, ucp_Saurashtra }, - { 2878, PT_SC, ucp_Saurashtra }, - { 2889, PT_PC, ucp_Sc }, - { 2892, PT_BOOL, ucp_Soft_Dotted }, - { 2895, PT_BOOL, ucp_Sentence_Terminal }, - { 2912, PT_SC, ucp_SignWriting }, - { 2917, PT_SCX, ucp_Sharada }, - { 2925, PT_SC, ucp_Shavian }, - { 2933, PT_SC, ucp_Shavian }, - { 2938, PT_SCX, ucp_Sharada }, - { 2943, PT_SC, ucp_Siddham }, - { 2948, PT_SC, ucp_Siddham }, - { 2956, PT_SC, ucp_SignWriting }, - { 2968, PT_SCX, ucp_Khudawadi }, - { 2973, PT_SCX, ucp_Sinhala }, - { 2978, PT_SCX, ucp_Sinhala }, - { 2986, PT_PC, ucp_Sk }, - { 2989, PT_PC, ucp_Sm }, - { 2992, PT_PC, ucp_So }, - { 2995, PT_BOOL, ucp_Soft_Dotted }, - { 3006, PT_SCX, ucp_Sogdian }, - { 3011, PT_SCX, ucp_Sogdian }, - { 3019, PT_SC, ucp_Old_Sogdian }, - { 3024, PT_SC, ucp_Sora_Sompeng }, - { 3029, PT_SC, ucp_Sora_Sompeng }, - { 3041, PT_SC, ucp_Soyombo }, - { 3046, PT_SC, ucp_Soyombo }, - { 3054, PT_BOOL, ucp_White_Space }, - { 3060, PT_BOOL, ucp_Sentence_Terminal }, - { 3066, PT_SC, ucp_Sundanese }, - { 3071, PT_SC, ucp_Sundanese }, - { 3081, PT_SCX, ucp_Syloti_Nagri }, - { 3086, PT_SCX, ucp_Syloti_Nagri }, - { 3098, PT_SCX, ucp_Syriac }, - { 3103, PT_SCX, ucp_Syriac }, - { 3110, PT_SCX, ucp_Tagalog }, - { 3118, PT_SCX, ucp_Tagbanwa }, - { 3123, PT_SCX, ucp_Tagbanwa }, - { 3132, PT_SCX, ucp_Tai_Le }, - { 3138, PT_SC, ucp_Tai_Tham }, - { 3146, PT_SC, ucp_Tai_Viet }, - { 3154, PT_SCX, ucp_Takri }, - { 3159, PT_SCX, ucp_Takri }, - { 3165, PT_SCX, ucp_Tai_Le }, - { 3170, PT_SC, ucp_New_Tai_Lue }, - { 3175, PT_SCX, ucp_Tamil }, - { 3181, PT_SCX, ucp_Tamil }, - { 3186, PT_SC, ucp_Tangut }, - { 3191, PT_SC, ucp_Tangsa }, - { 3198, PT_SC, ucp_Tangut }, - { 3205, PT_SC, ucp_Tai_Viet }, - { 3210, PT_SCX, ucp_Telugu }, - { 3215, PT_SCX, ucp_Telugu }, - { 3222, PT_BOOL, ucp_Terminal_Punctuation }, - { 3227, PT_BOOL, ucp_Terminal_Punctuation }, - { 3247, PT_SC, ucp_Tifinagh }, - { 3252, PT_SCX, ucp_Tagalog }, - { 3257, PT_SCX, ucp_Thaana }, - { 3262, PT_SCX, ucp_Thaana }, - { 3269, PT_SC, ucp_Thai }, - { 3274, PT_SC, ucp_Tibetan }, - { 3282, PT_SC, ucp_Tibetan }, - { 3287, PT_SC, ucp_Tifinagh }, - { 3296, PT_SCX, ucp_Tirhuta }, - { 3301, PT_SCX, ucp_Tirhuta }, - { 3309, PT_SC, ucp_Tangsa }, - { 3314, PT_SC, ucp_Toto }, - { 3319, PT_SC, ucp_Ugaritic }, - { 3324, PT_SC, ucp_Ugaritic }, - { 3333, PT_BOOL, ucp_Unified_Ideograph }, - { 3339, PT_BOOL, ucp_Unified_Ideograph }, - { 3356, PT_SC, ucp_Unknown }, - { 3364, PT_BOOL, ucp_Uppercase }, - { 3370, PT_BOOL, ucp_Uppercase }, - { 3380, PT_SC, ucp_Vai }, - { 3384, PT_SC, ucp_Vai }, - { 3389, PT_BOOL, ucp_Variation_Selector }, - { 3407, PT_SC, ucp_Vithkuqi }, - { 3412, PT_SC, ucp_Vithkuqi }, - { 3421, PT_BOOL, ucp_Variation_Selector }, - { 3424, PT_SC, ucp_Wancho }, - { 3431, PT_SC, ucp_Warang_Citi }, - { 3436, PT_SC, ucp_Warang_Citi }, - { 3447, PT_SC, ucp_Wancho }, - { 3452, PT_BOOL, ucp_White_Space }, - { 3463, PT_BOOL, ucp_White_Space }, - { 3470, PT_ALNUM, 0 }, - { 3474, PT_BOOL, ucp_XID_Continue }, - { 3479, PT_BOOL, ucp_XID_Continue }, - { 3491, PT_BOOL, ucp_XID_Start }, - { 3496, PT_BOOL, ucp_XID_Start }, - { 3505, PT_SC, ucp_Old_Persian }, - { 3510, PT_PXSPACE, 0 }, - { 3514, PT_SPACE, 0 }, - { 3518, PT_SC, ucp_Cuneiform }, - { 3523, PT_UCNC, 0 }, - { 3527, PT_WORD, 0 }, - { 3531, PT_SCX, ucp_Yezidi }, - { 3536, PT_SCX, ucp_Yezidi }, - { 3543, PT_SCX, ucp_Yi }, - { 3546, PT_SCX, ucp_Yi }, - { 3551, PT_GC, ucp_Z }, - { 3553, PT_SC, ucp_Zanabazar_Square }, - { 3569, PT_SC, ucp_Zanabazar_Square }, - { 3574, PT_SC, ucp_Inherited }, - { 3579, PT_PC, ucp_Zl }, - { 3582, PT_PC, ucp_Zp }, - { 3585, PT_PC, ucp_Zs }, - { 3588, PT_SC, ucp_Common }, - { 3593, PT_SC, ucp_Unknown } + { 527, PT_BOOL, ucp_Case_Ignorable }, + { 541, PT_SC, ucp_Caucasian_Albanian }, + { 559, PT_PC, ucp_Cc }, + { 562, PT_PC, ucp_Cf }, + { 565, PT_SCX, ucp_Chakma }, + { 572, PT_SC, ucp_Cham }, + { 577, PT_BOOL, ucp_Changes_When_Casefolded }, + { 599, PT_BOOL, ucp_Changes_When_Casemapped }, + { 621, PT_BOOL, ucp_Changes_When_Lowercased }, + { 643, PT_BOOL, ucp_Changes_When_Titlecased }, + { 665, PT_BOOL, ucp_Changes_When_Uppercased }, + { 687, PT_SC, ucp_Cherokee }, + { 692, PT_SC, ucp_Cherokee }, + { 701, PT_SC, ucp_Chorasmian }, + { 712, PT_SC, ucp_Chorasmian }, + { 717, PT_BOOL, ucp_Case_Ignorable }, + { 720, PT_PC, ucp_Cn }, + { 723, PT_PC, ucp_Co }, + { 726, PT_SC, ucp_Common }, + { 733, PT_SCX, ucp_Coptic }, + { 738, PT_SCX, ucp_Coptic }, + { 745, PT_SCX, ucp_Cypro_Minoan }, + { 750, PT_SCX, ucp_Cypriot }, + { 755, PT_PC, ucp_Cs }, + { 758, PT_SC, ucp_Cuneiform }, + { 768, PT_BOOL, ucp_Changes_When_Casefolded }, + { 773, PT_BOOL, ucp_Changes_When_Casemapped }, + { 778, PT_BOOL, ucp_Changes_When_Lowercased }, + { 782, PT_BOOL, ucp_Changes_When_Titlecased }, + { 786, PT_BOOL, ucp_Changes_When_Uppercased }, + { 790, PT_SCX, ucp_Cypriot }, + { 798, PT_SCX, ucp_Cypro_Minoan }, + { 810, PT_SCX, ucp_Cyrillic }, + { 819, PT_SCX, ucp_Cyrillic }, + { 824, PT_BOOL, ucp_Dash }, + { 829, PT_BOOL, ucp_Default_Ignorable_Code_Point }, + { 855, PT_BOOL, ucp_Deprecated }, + { 859, PT_BOOL, ucp_Deprecated }, + { 870, PT_SC, ucp_Deseret }, + { 878, PT_SCX, ucp_Devanagari }, + { 883, PT_SCX, ucp_Devanagari }, + { 894, PT_BOOL, ucp_Default_Ignorable_Code_Point }, + { 897, PT_BOOL, ucp_Diacritic }, + { 901, PT_BOOL, ucp_Diacritic }, + { 911, PT_SC, ucp_Dives_Akuru }, + { 916, PT_SC, ucp_Dives_Akuru }, + { 927, PT_SCX, ucp_Dogra }, + { 932, PT_SCX, ucp_Dogra }, + { 938, PT_SC, ucp_Deseret }, + { 943, PT_SCX, ucp_Duployan }, + { 948, PT_SCX, ucp_Duployan }, + { 957, PT_BOOL, ucp_Emoji_Modifier_Base }, + { 963, PT_BOOL, ucp_Emoji_Component }, + { 969, PT_SC, ucp_Egyptian_Hieroglyphs }, + { 974, PT_SC, ucp_Egyptian_Hieroglyphs }, + { 994, PT_SC, ucp_Elbasan }, + { 999, PT_SC, ucp_Elbasan }, + { 1007, PT_SC, ucp_Elymaic }, + { 1012, PT_SC, ucp_Elymaic }, + { 1020, PT_BOOL, ucp_Emoji_Modifier }, + { 1025, PT_BOOL, ucp_Emoji }, + { 1031, PT_BOOL, ucp_Emoji_Component }, + { 1046, PT_BOOL, ucp_Emoji_Modifier }, + { 1060, PT_BOOL, ucp_Emoji_Modifier_Base }, + { 1078, PT_BOOL, ucp_Emoji_Presentation }, + { 1096, PT_BOOL, ucp_Emoji_Presentation }, + { 1102, PT_SC, ucp_Ethiopic }, + { 1107, PT_SC, ucp_Ethiopic }, + { 1116, PT_BOOL, ucp_Extender }, + { 1120, PT_BOOL, ucp_Extended_Pictographic }, + { 1141, PT_BOOL, ucp_Extender }, + { 1150, PT_BOOL, ucp_Extended_Pictographic }, + { 1158, PT_SCX, ucp_Georgian }, + { 1163, PT_SCX, ucp_Georgian }, + { 1172, PT_SCX, ucp_Glagolitic }, + { 1177, PT_SCX, ucp_Glagolitic }, + { 1188, PT_SCX, ucp_Gunjala_Gondi }, + { 1193, PT_SCX, ucp_Masaram_Gondi }, + { 1198, PT_SC, ucp_Gothic }, + { 1203, PT_SC, ucp_Gothic }, + { 1210, PT_SCX, ucp_Grantha }, + { 1215, PT_SCX, ucp_Grantha }, + { 1223, PT_BOOL, ucp_Grapheme_Base }, + { 1236, PT_BOOL, ucp_Grapheme_Extend }, + { 1251, PT_BOOL, ucp_Grapheme_Link }, + { 1264, PT_BOOL, ucp_Grapheme_Base }, + { 1271, PT_SCX, ucp_Greek }, + { 1277, PT_SCX, ucp_Greek }, + { 1282, PT_BOOL, ucp_Grapheme_Extend }, + { 1288, PT_BOOL, ucp_Grapheme_Link }, + { 1295, PT_SCX, ucp_Gujarati }, + { 1304, PT_SCX, ucp_Gujarati }, + { 1309, PT_SCX, ucp_Gunjala_Gondi }, + { 1322, PT_SCX, ucp_Gurmukhi }, + { 1331, PT_SCX, ucp_Gurmukhi }, + { 1336, PT_SCX, ucp_Han }, + { 1340, PT_SCX, ucp_Hangul }, + { 1345, PT_SCX, ucp_Hangul }, + { 1352, PT_SCX, ucp_Han }, + { 1357, PT_SCX, ucp_Hanifi_Rohingya }, + { 1372, PT_SCX, ucp_Hanunoo }, + { 1377, PT_SCX, ucp_Hanunoo }, + { 1385, PT_SC, ucp_Hatran }, + { 1390, PT_SC, ucp_Hatran }, + { 1397, PT_SC, ucp_Hebrew }, + { 1402, PT_SC, ucp_Hebrew }, + { 1409, PT_BOOL, ucp_Hex_Digit }, + { 1413, PT_BOOL, ucp_Hex_Digit }, + { 1422, PT_SCX, ucp_Hiragana }, + { 1427, PT_SCX, ucp_Hiragana }, + { 1436, PT_SC, ucp_Anatolian_Hieroglyphs }, + { 1441, PT_SC, ucp_Pahawh_Hmong }, + { 1446, PT_SC, ucp_Nyiakeng_Puachue_Hmong }, + { 1451, PT_SC, ucp_Old_Hungarian }, + { 1456, PT_BOOL, ucp_ID_Continue }, + { 1460, PT_BOOL, ucp_ID_Continue }, + { 1471, PT_BOOL, ucp_Ideographic }, + { 1476, PT_BOOL, ucp_Ideographic }, + { 1488, PT_BOOL, ucp_ID_Start }, + { 1492, PT_BOOL, ucp_IDS_Binary_Operator }, + { 1497, PT_BOOL, ucp_IDS_Binary_Operator }, + { 1515, PT_BOOL, ucp_IDS_Trinary_Operator }, + { 1520, PT_BOOL, ucp_ID_Start }, + { 1528, PT_BOOL, ucp_IDS_Trinary_Operator }, + { 1547, PT_SC, ucp_Imperial_Aramaic }, + { 1563, PT_SC, ucp_Inherited }, + { 1573, PT_SC, ucp_Inscriptional_Pahlavi }, + { 1594, PT_SC, ucp_Inscriptional_Parthian }, + { 1616, PT_SC, ucp_Old_Italic }, + { 1621, PT_SCX, ucp_Javanese }, + { 1626, PT_SCX, ucp_Javanese }, + { 1635, PT_BOOL, ucp_Join_Control }, + { 1641, PT_BOOL, ucp_Join_Control }, + { 1653, PT_SCX, ucp_Kaithi }, + { 1660, PT_SCX, ucp_Kayah_Li }, + { 1665, PT_SCX, ucp_Katakana }, + { 1670, PT_SCX, ucp_Kannada }, + { 1678, PT_SCX, ucp_Katakana }, + { 1687, PT_SCX, ucp_Kayah_Li }, + { 1695, PT_SC, ucp_Kharoshthi }, + { 1700, PT_SC, ucp_Kharoshthi }, + { 1711, PT_SC, ucp_Khitan_Small_Script }, + { 1729, PT_SC, ucp_Khmer }, + { 1735, PT_SC, ucp_Khmer }, + { 1740, PT_SCX, ucp_Khojki }, + { 1745, PT_SCX, ucp_Khojki }, + { 1752, PT_SCX, ucp_Khudawadi }, + { 1762, PT_SC, ucp_Khitan_Small_Script }, + { 1767, PT_SCX, ucp_Kannada }, + { 1772, PT_SCX, ucp_Kaithi }, + { 1777, PT_GC, ucp_L }, + { 1779, PT_LAMP, 0 }, + { 1782, PT_SC, ucp_Tai_Tham }, + { 1787, PT_SC, ucp_Lao }, + { 1791, PT_SC, ucp_Lao }, + { 1796, PT_SCX, ucp_Latin }, + { 1802, PT_SCX, ucp_Latin }, + { 1807, PT_LAMP, 0 }, + { 1810, PT_SC, ucp_Lepcha }, + { 1815, PT_SC, ucp_Lepcha }, + { 1822, PT_SCX, ucp_Limbu }, + { 1827, PT_SCX, ucp_Limbu }, + { 1833, PT_SCX, ucp_Linear_A }, + { 1838, PT_SCX, ucp_Linear_B }, + { 1843, PT_SCX, ucp_Linear_A }, + { 1851, PT_SCX, ucp_Linear_B }, + { 1859, PT_SC, ucp_Lisu }, + { 1864, PT_PC, ucp_Ll }, + { 1867, PT_PC, ucp_Lm }, + { 1870, PT_PC, ucp_Lo }, + { 1873, PT_BOOL, ucp_Logical_Order_Exception }, + { 1877, PT_BOOL, ucp_Logical_Order_Exception }, + { 1899, PT_BOOL, ucp_Lowercase }, + { 1905, PT_BOOL, ucp_Lowercase }, + { 1915, PT_PC, ucp_Lt }, + { 1918, PT_PC, ucp_Lu }, + { 1921, PT_SC, ucp_Lycian }, + { 1926, PT_SC, ucp_Lycian }, + { 1933, PT_SC, ucp_Lydian }, + { 1938, PT_SC, ucp_Lydian }, + { 1945, PT_GC, ucp_M }, + { 1947, PT_SCX, ucp_Mahajani }, + { 1956, PT_SCX, ucp_Mahajani }, + { 1961, PT_SC, ucp_Makasar }, + { 1966, PT_SC, ucp_Makasar }, + { 1974, PT_SCX, ucp_Malayalam }, + { 1984, PT_SCX, ucp_Mandaic }, + { 1989, PT_SCX, ucp_Mandaic }, + { 1997, PT_SCX, ucp_Manichaean }, + { 2002, PT_SCX, ucp_Manichaean }, + { 2013, PT_SC, ucp_Marchen }, + { 2018, PT_SC, ucp_Marchen }, + { 2026, PT_SCX, ucp_Masaram_Gondi }, + { 2039, PT_BOOL, ucp_Math }, + { 2044, PT_PC, ucp_Mc }, + { 2047, PT_PC, ucp_Me }, + { 2050, PT_SC, ucp_Medefaidrin }, + { 2062, PT_SC, ucp_Medefaidrin }, + { 2067, PT_SC, ucp_Meetei_Mayek }, + { 2079, PT_SC, ucp_Mende_Kikakui }, + { 2084, PT_SC, ucp_Mende_Kikakui }, + { 2097, PT_SC, ucp_Meroitic_Cursive }, + { 2102, PT_SC, ucp_Meroitic_Hieroglyphs }, + { 2107, PT_SC, ucp_Meroitic_Cursive }, + { 2123, PT_SC, ucp_Meroitic_Hieroglyphs }, + { 2143, PT_SC, ucp_Miao }, + { 2148, PT_SCX, ucp_Malayalam }, + { 2153, PT_PC, ucp_Mn }, + { 2156, PT_SCX, ucp_Modi }, + { 2161, PT_SCX, ucp_Mongolian }, + { 2166, PT_SCX, ucp_Mongolian }, + { 2176, PT_SC, ucp_Mro }, + { 2180, PT_SC, ucp_Mro }, + { 2185, PT_SC, ucp_Meetei_Mayek }, + { 2190, PT_SCX, ucp_Multani }, + { 2195, PT_SCX, ucp_Multani }, + { 2203, PT_SCX, ucp_Myanmar }, + { 2211, PT_SCX, ucp_Myanmar }, + { 2216, PT_GC, ucp_N }, + { 2218, PT_SC, ucp_Nabataean }, + { 2228, PT_SCX, ucp_Nandinagari }, + { 2233, PT_SCX, ucp_Nandinagari }, + { 2245, PT_SC, ucp_Old_North_Arabian }, + { 2250, PT_SC, ucp_Nabataean }, + { 2255, PT_BOOL, ucp_Noncharacter_Code_Point }, + { 2261, PT_PC, ucp_Nd }, + { 2264, PT_SC, ucp_Newa }, + { 2269, PT_SC, ucp_New_Tai_Lue }, + { 2279, PT_SCX, ucp_Nko }, + { 2283, PT_SCX, ucp_Nko }, + { 2288, PT_PC, ucp_Nl }, + { 2291, PT_PC, ucp_No }, + { 2294, PT_BOOL, ucp_Noncharacter_Code_Point }, + { 2316, PT_SC, ucp_Nushu }, + { 2321, PT_SC, ucp_Nushu }, + { 2327, PT_SC, ucp_Nyiakeng_Puachue_Hmong }, + { 2348, PT_SC, ucp_Ogham }, + { 2353, PT_SC, ucp_Ogham }, + { 2359, PT_SC, ucp_Ol_Chiki }, + { 2367, PT_SC, ucp_Ol_Chiki }, + { 2372, PT_SC, ucp_Old_Hungarian }, + { 2385, PT_SC, ucp_Old_Italic }, + { 2395, PT_SC, ucp_Old_North_Arabian }, + { 2411, PT_SCX, ucp_Old_Permic }, + { 2421, PT_SC, ucp_Old_Persian }, + { 2432, PT_SC, ucp_Old_Sogdian }, + { 2443, PT_SC, ucp_Old_South_Arabian }, + { 2459, PT_SC, ucp_Old_Turkic }, + { 2469, PT_SCX, ucp_Old_Uyghur }, + { 2479, PT_SCX, ucp_Oriya }, + { 2485, PT_SC, ucp_Old_Turkic }, + { 2490, PT_SCX, ucp_Oriya }, + { 2495, PT_SC, ucp_Osage }, + { 2501, PT_SC, ucp_Osage }, + { 2506, PT_SC, ucp_Osmanya }, + { 2511, PT_SC, ucp_Osmanya }, + { 2519, PT_SCX, ucp_Old_Uyghur }, + { 2524, PT_GC, ucp_P }, + { 2526, PT_SC, ucp_Pahawh_Hmong }, + { 2538, PT_SC, ucp_Palmyrene }, + { 2543, PT_SC, ucp_Palmyrene }, + { 2553, PT_BOOL, ucp_Pattern_Syntax }, + { 2560, PT_BOOL, ucp_Pattern_Syntax }, + { 2574, PT_BOOL, ucp_Pattern_White_Space }, + { 2592, PT_BOOL, ucp_Pattern_White_Space }, + { 2598, PT_SC, ucp_Pau_Cin_Hau }, + { 2603, PT_SC, ucp_Pau_Cin_Hau }, + { 2613, PT_PC, ucp_Pc }, + { 2616, PT_BOOL, ucp_Prepended_Concatenation_Mark }, + { 2620, PT_PC, ucp_Pd }, + { 2623, PT_PC, ucp_Pe }, + { 2626, PT_SCX, ucp_Old_Permic }, + { 2631, PT_PC, ucp_Pf }, + { 2634, PT_SCX, ucp_Phags_Pa }, + { 2639, PT_SCX, ucp_Phags_Pa }, + { 2647, PT_SC, ucp_Inscriptional_Pahlavi }, + { 2652, PT_SCX, ucp_Psalter_Pahlavi }, + { 2657, PT_SC, ucp_Phoenician }, + { 2662, PT_SC, ucp_Phoenician }, + { 2673, PT_PC, ucp_Pi }, + { 2676, PT_SC, ucp_Miao }, + { 2681, PT_PC, ucp_Po }, + { 2684, PT_BOOL, ucp_Prepended_Concatenation_Mark }, + { 2711, PT_SC, ucp_Inscriptional_Parthian }, + { 2716, PT_PC, ucp_Ps }, + { 2719, PT_SCX, ucp_Psalter_Pahlavi }, + { 2734, PT_SCX, ucp_Coptic }, + { 2739, PT_SC, ucp_Inherited }, + { 2744, PT_BOOL, ucp_Quotation_Mark }, + { 2750, PT_BOOL, ucp_Quotation_Mark }, + { 2764, PT_BOOL, ucp_Radical }, + { 2772, PT_BOOL, ucp_Regional_Indicator }, + { 2790, PT_SC, ucp_Rejang }, + { 2797, PT_BOOL, ucp_Regional_Indicator }, + { 2800, PT_SC, ucp_Rejang }, + { 2805, PT_SCX, ucp_Hanifi_Rohingya }, + { 2810, PT_SC, ucp_Runic }, + { 2816, PT_SC, ucp_Runic }, + { 2821, PT_GC, ucp_S }, + { 2823, PT_SC, ucp_Samaritan }, + { 2833, PT_SC, ucp_Samaritan }, + { 2838, PT_SC, ucp_Old_South_Arabian }, + { 2843, PT_SC, ucp_Saurashtra }, + { 2848, PT_SC, ucp_Saurashtra }, + { 2859, PT_PC, ucp_Sc }, + { 2862, PT_BOOL, ucp_Soft_Dotted }, + { 2865, PT_BOOL, ucp_Sentence_Terminal }, + { 2882, PT_SC, ucp_SignWriting }, + { 2887, PT_SCX, ucp_Sharada }, + { 2895, PT_SC, ucp_Shavian }, + { 2903, PT_SC, ucp_Shavian }, + { 2908, PT_SCX, ucp_Sharada }, + { 2913, PT_SC, ucp_Siddham }, + { 2918, PT_SC, ucp_Siddham }, + { 2926, PT_SC, ucp_SignWriting }, + { 2938, PT_SCX, ucp_Khudawadi }, + { 2943, PT_SCX, ucp_Sinhala }, + { 2948, PT_SCX, ucp_Sinhala }, + { 2956, PT_PC, ucp_Sk }, + { 2959, PT_PC, ucp_Sm }, + { 2962, PT_PC, ucp_So }, + { 2965, PT_BOOL, ucp_Soft_Dotted }, + { 2976, PT_SCX, ucp_Sogdian }, + { 2981, PT_SCX, ucp_Sogdian }, + { 2989, PT_SC, ucp_Old_Sogdian }, + { 2994, PT_SC, ucp_Sora_Sompeng }, + { 2999, PT_SC, ucp_Sora_Sompeng }, + { 3011, PT_SC, ucp_Soyombo }, + { 3016, PT_SC, ucp_Soyombo }, + { 3024, PT_BOOL, ucp_White_Space }, + { 3030, PT_BOOL, ucp_Sentence_Terminal }, + { 3036, PT_SC, ucp_Sundanese }, + { 3041, PT_SC, ucp_Sundanese }, + { 3051, PT_SCX, ucp_Syloti_Nagri }, + { 3056, PT_SCX, ucp_Syloti_Nagri }, + { 3068, PT_SCX, ucp_Syriac }, + { 3073, PT_SCX, ucp_Syriac }, + { 3080, PT_SCX, ucp_Tagalog }, + { 3088, PT_SCX, ucp_Tagbanwa }, + { 3093, PT_SCX, ucp_Tagbanwa }, + { 3102, PT_SCX, ucp_Tai_Le }, + { 3108, PT_SC, ucp_Tai_Tham }, + { 3116, PT_SC, ucp_Tai_Viet }, + { 3124, PT_SCX, ucp_Takri }, + { 3129, PT_SCX, ucp_Takri }, + { 3135, PT_SCX, ucp_Tai_Le }, + { 3140, PT_SC, ucp_New_Tai_Lue }, + { 3145, PT_SCX, ucp_Tamil }, + { 3151, PT_SCX, ucp_Tamil }, + { 3156, PT_SC, ucp_Tangut }, + { 3161, PT_SC, ucp_Tangsa }, + { 3168, PT_SC, ucp_Tangut }, + { 3175, PT_SC, ucp_Tai_Viet }, + { 3180, PT_SCX, ucp_Telugu }, + { 3185, PT_SCX, ucp_Telugu }, + { 3192, PT_BOOL, ucp_Terminal_Punctuation }, + { 3197, PT_BOOL, ucp_Terminal_Punctuation }, + { 3217, PT_SC, ucp_Tifinagh }, + { 3222, PT_SCX, ucp_Tagalog }, + { 3227, PT_SCX, ucp_Thaana }, + { 3232, PT_SCX, ucp_Thaana }, + { 3239, PT_SC, ucp_Thai }, + { 3244, PT_SC, ucp_Tibetan }, + { 3252, PT_SC, ucp_Tibetan }, + { 3257, PT_SC, ucp_Tifinagh }, + { 3266, PT_SCX, ucp_Tirhuta }, + { 3271, PT_SCX, ucp_Tirhuta }, + { 3279, PT_SC, ucp_Tangsa }, + { 3284, PT_SC, ucp_Toto }, + { 3289, PT_SC, ucp_Ugaritic }, + { 3294, PT_SC, ucp_Ugaritic }, + { 3303, PT_BOOL, ucp_Unified_Ideograph }, + { 3309, PT_BOOL, ucp_Unified_Ideograph }, + { 3326, PT_SC, ucp_Unknown }, + { 3334, PT_BOOL, ucp_Uppercase }, + { 3340, PT_BOOL, ucp_Uppercase }, + { 3350, PT_SC, ucp_Vai }, + { 3354, PT_SC, ucp_Vai }, + { 3359, PT_BOOL, ucp_Variation_Selector }, + { 3377, PT_SC, ucp_Vithkuqi }, + { 3382, PT_SC, ucp_Vithkuqi }, + { 3391, PT_BOOL, ucp_Variation_Selector }, + { 3394, PT_SC, ucp_Wancho }, + { 3401, PT_SC, ucp_Warang_Citi }, + { 3406, PT_SC, ucp_Warang_Citi }, + { 3417, PT_SC, ucp_Wancho }, + { 3422, PT_BOOL, ucp_White_Space }, + { 3433, PT_BOOL, ucp_White_Space }, + { 3440, PT_ALNUM, 0 }, + { 3444, PT_BOOL, ucp_XID_Continue }, + { 3449, PT_BOOL, ucp_XID_Continue }, + { 3461, PT_BOOL, ucp_XID_Start }, + { 3466, PT_BOOL, ucp_XID_Start }, + { 3475, PT_SC, ucp_Old_Persian }, + { 3480, PT_PXSPACE, 0 }, + { 3484, PT_SPACE, 0 }, + { 3488, PT_SC, ucp_Cuneiform }, + { 3493, PT_UCNC, 0 }, + { 3497, PT_WORD, 0 }, + { 3501, PT_SCX, ucp_Yezidi }, + { 3506, PT_SCX, ucp_Yezidi }, + { 3513, PT_SCX, ucp_Yi }, + { 3516, PT_SCX, ucp_Yi }, + { 3521, PT_GC, ucp_Z }, + { 3523, PT_SC, ucp_Zanabazar_Square }, + { 3539, PT_SC, ucp_Zanabazar_Square }, + { 3544, PT_SC, ucp_Inherited }, + { 3549, PT_PC, ucp_Zl }, + { 3552, PT_PC, ucp_Zp }, + { 3555, PT_PC, ucp_Zs }, + { 3558, PT_SC, ucp_Common }, + { 3563, PT_SC, ucp_Unknown } }; const size_t PRIV(utt_size) = sizeof(PRIV(utt)) / sizeof(ucp_type_table);