diff --git a/include/common.h b/include/common.h index badbbcb2..e996939e 100644 --- a/include/common.h +++ b/include/common.h @@ -694,6 +694,20 @@ typedef UINT_PTR LPARAM; */ #define MAKEWORD16(low, high) ((WORD16)(((BYTE)(low)) | (((WORD16)((BYTE)(high))) << 8))) +/** + * \def MAKEWORD32(first, second, third, fourth) + * \brief Makes a WORD32 value with four bytes. + * + * \sa MAKEWORD16, FIRSTBYTE, SECONDBYTE, THIRDBYTE, FOURTHBYTE + */ +#define MAKEDWORD32(first, second, third, fourth) \ + ((DWORD32)( \ + ((BYTE)(first)) | \ + (((DWORD32)((BYTE)(second))) << 8) | \ + (((DWORD32)((BYTE)(third))) << 16) | \ + (((DWORD32)((BYTE)(fourth))) << 24) \ + )) + /** * \def MAKEWPARAM(first, second, third, fourth) * \brief Makes a WPARAM value with four bytes. diff --git a/include/gdi.h b/include/gdi.h index 12a80874..9aabe516 100644 --- a/include/gdi.h +++ b/include/gdi.h @@ -5787,7 +5787,7 @@ typedef Uint32 Uchar32; * * For a UNICODE character, MiniGUI uses the high 16-bit for the * basic UNICODE character classifications and the possible line break - * classifications. The low byte for the basic type, and high byte for + * classifications. The low byte for the basic type, and the high byte for * the break type. * * @{ @@ -5864,153 +5864,527 @@ typedef Uint32 Uchar32; #define MCHAR_TYPE_VOWEL_ABOVE (MCHAR_TYPE_VOWEL | MCHAR_TYPE_ABOVE_MARK) #define MCHAR_TYPE_VOWEL_BELLOW (MCHAR_TYPE_VOWEL | MCHAR_TYPE_BELLOW_MARK) -/** General category "Other, Control" (Cc) */ -#define UCHAR_TYPE_CONTROL 0x00 -/** General category "Other, Format" (Cf) */ -#define UCHAR_TYPE_FORMAT 0x01 -/** General category "Other, Not Assigned" (Cn) */ -#define UCHAR_TYPE_UNASSIGNED 0x02 -/** General category "Other, Private Use" (Co) */ -#define UCHAR_TYPE_PRIVATE_USE 0x03 -/** General category "Other, Surrogate" (Cs) */ -#define UCHAR_TYPE_SURROGATE 0x04 -/** General category "Letter, Lowercase" (Ll) */ -#define UCHAR_TYPE_LOWERCASE_LETTER 0x05 -/** General category "Letter, Modifier" (Lm) */ -#define UCHAR_TYPE_MODIFIER_LETTER 0x06 -/** General category "Letter, Other" (Lo) */ -#define UCHAR_TYPE_OTHER_LETTER 0x07 -/** General category "Letter, Titlecase" (Lt) */ -#define UCHAR_TYPE_TITLECASE_LETTER 0x08 -/** General category "Letter, Uppercase" (Lu) */ -#define UCHAR_TYPE_UPPERCASE_LETTER 0x09 -/** General category "Mark, Spacing" (Mc) */ -#define UCHAR_TYPE_SPACING_MARK 0x0A -/** General category "Mark, Enclosing" (Me) */ -#define UCHAR_TYPE_ENCLOSING_MARK 0x0B -/** General category "Mark, Nonspacing" (Mn) */ -#define UCHAR_TYPE_NON_SPACING_MARK 0x0C -/** General category "Number, Decimal Digit" (Nd) */ -#define UCHAR_TYPE_DECIMAL_NUMBER 0x0D -/** General category "Number, Letter" (Nl) */ -#define UCHAR_TYPE_LETTER_NUMBER 0x0E -/** General category "Number, Other" (No) */ -#define UCHAR_TYPE_OTHER_NUMBER 0x0F -/** General category "Punctuation, Connector" (Pc) */ -#define UCHAR_TYPE_CONNECT_PUNCTUATION 0x10 -/** General category "Punctuation, Dash" (Pd) */ -#define UCHAR_TYPE_DASH_PUNCTUATION 0x11 -/** General category "Punctuation, Close" (Pe) */ -#define UCHAR_TYPE_CLOSE_PUNCTUATION 0x12 -/** General category "Punctuation, Final quote" (Pf) */ -#define UCHAR_TYPE_FINAL_PUNCTUATION 0x13 -/** General category "Punctuation, Initial quote" (Pi) */ -#define UCHAR_TYPE_INITIAL_PUNCTUATION 0x14 -/** General category "Punctuation, Other" (Po) */ -#define UCHAR_TYPE_OTHER_PUNCTUATION 0x15 -/** General category "Punctuation, Open" (Ps) */ -#define UCHAR_TYPE_OPEN_PUNCTUATION 0x16 -/** General category "Symbol, Currency" (Sc) */ -#define UCHAR_TYPE_CURRENCY_SYMBOL 0x17 -/** General category "Symbol, Modifier" (Sk) */ -#define UCHAR_TYPE_MODIFIER_SYMBOL 0x18 -/** General category "Symbol, Math" (Sm) */ -#define UCHAR_TYPE_MATH_SYMBOL 0x19 -/** General category "Symbol, Other" (So) */ -#define UCHAR_TYPE_OTHER_SYMBOL 0x1A -/** General category "Separator, Line" (Zl) */ -#define UCHAR_TYPE_LINE_SEPARATOR 0x1B -/** General category "Separator, Paragraph" (Zp) */ -#define UCHAR_TYPE_PARAGRAPH_SEPARATOR 0x1C -/** General category "Separator, Space" (Zs) */ -#define UCHAR_TYPE_SPACE_SEPARATOR 0x1D +/** + * UCharBasicType: basic type of a UNICODE character. + * + * @UCHAR_TYPE_CONTROL: General category "Other, Control" (Cc) + * @UCHAR_TYPE_FORMAT: General category "Other, Format" (Cf) + * @UCHAR_TYPE_UNASSIGNED: General category "Other, Not Assigned" (Cn) + * @UCHAR_TYPE_PRIVATE_USE: General category "Other, Private Use" (Co) + * @UCHAR_TYPE_SURROGATE: General category "Other, Surrogate" (Cs) + * @UCHAR_TYPE_LOWERCASE_LETTER: General category "Letter, Lowercase" (Ll) + * @UCHAR_TYPE_MODIFIER_LETTER: General category "Letter, Modifier" (Lm) + * @UCHAR_TYPE_OTHER_LETTER: General category "Letter, Other" (Lo) + * @UCHAR_TYPE_TITLECASE_LETTER: General category "Letter, Titlecase" (Lt) + * @UCHAR_TYPE_UPPERCASE_LETTER: General category "Letter, Uppercase" (Lu) + * @UCHAR_TYPE_SPACING_MARK: General category "Mark, Spacing" (Mc) + * @UCHAR_TYPE_ENCLOSING_MARK: General category "Mark, Enclosing" (Me) + * @UCHAR_TYPE_NON_SPACING_MARK: General category "Mark, Nonspacing" (Mn) + * @UCHAR_TYPE_DECIMAL_NUMBER: General category "Number, Decimal Digit" (Nd) + * @UCHAR_TYPE_LETTER_NUMBER: General category "Number, Letter" (Nl) + * @UCHAR_TYPE_OTHER_NUMBER: General category "Number, Other" (No) + * @UCHAR_TYPE_CONNECT_PUNCTUATION: General category "Punctuation, Connector" (Pc) + * @UCHAR_TYPE_DASH_PUNCTUATION: General category "Punctuation, Dash" (Pd) + * @UCHAR_TYPE_CLOSE_PUNCTUATION: General category "Punctuation, Close" (Pe) + * @UCHAR_TYPE_FINAL_PUNCTUATION: General category "Punctuation, Final quote" (Pf) + * @UCHAR_TYPE_INITIAL_PUNCTUATION: General category "Punctuation, Initial quote" (Pi) + * @UCHAR_TYPE_OTHER_PUNCTUATION: General category "Punctuation, Other" (Po) + * @UCHAR_TYPE_OPEN_PUNCTUATION: General category "Punctuation, Open" (Ps) + * @UCHAR_TYPE_CURRENCY_SYMBOL: General category "Symbol, Currency" (Sc) + * @UCHAR_TYPE_MODIFIER_SYMBOL: General category "Symbol, Modifier" (Sk) + * @UCHAR_TYPE_MATH_SYMBOL: General category "Symbol, Math" (Sm) + * @UCHAR_TYPE_OTHER_SYMBOL: General category "Symbol, Other" (So) + * @UCHAR_TYPE_LINE_SEPARATOR: General category "Separator, Line" (Zl) + * @UCHAR_TYPE_PARAGRAPH_SEPARATOR: General category "Separator, Paragraph" (Zp) + * @UCHAR_TYPE_SPACE_SEPARATOR: General category "Separator, Space" (Zs) + * + * These are the possible character classifications from the + * Unicode specification. + * See [Unicode Character Database](http://www.unicode.org/reports/tr44/#General_Category_Values). + */ +typedef enum { + UCHAR_TYPE_CONTROL, + UCHAR_TYPE_FORMAT, + UCHAR_TYPE_UNASSIGNED, + UCHAR_TYPE_PRIVATE_USE, + UCHAR_TYPE_SURROGATE, + UCHAR_TYPE_LOWERCASE_LETTER, + UCHAR_TYPE_MODIFIER_LETTER, + UCHAR_TYPE_OTHER_LETTER, + UCHAR_TYPE_TITLECASE_LETTER, + UCHAR_TYPE_UPPERCASE_LETTER, + UCHAR_TYPE_SPACING_MARK, + UCHAR_TYPE_ENCLOSING_MARK, + UCHAR_TYPE_NON_SPACING_MARK, + UCHAR_TYPE_DECIMAL_NUMBER, + UCHAR_TYPE_LETTER_NUMBER, + UCHAR_TYPE_OTHER_NUMBER, + UCHAR_TYPE_CONNECT_PUNCTUATION, + UCHAR_TYPE_DASH_PUNCTUATION, + UCHAR_TYPE_CLOSE_PUNCTUATION, + UCHAR_TYPE_FINAL_PUNCTUATION, + UCHAR_TYPE_INITIAL_PUNCTUATION, + UCHAR_TYPE_OTHER_PUNCTUATION, + UCHAR_TYPE_OPEN_PUNCTUATION, + UCHAR_TYPE_CURRENCY_SYMBOL, + UCHAR_TYPE_MODIFIER_SYMBOL, + UCHAR_TYPE_MATH_SYMBOL, + UCHAR_TYPE_OTHER_SYMBOL, + UCHAR_TYPE_LINE_SEPARATOR, + UCHAR_TYPE_PARAGRAPH_SEPARATOR, + UCHAR_TYPE_SPACE_SEPARATOR +} UCharBasicType; -/** Mandatory Break (BK) */ -#define UCHAR_BREAK_MANDATORY 0x00 -/** Carriage Return (CR) */ -#define UCHAR_BREAK_CARRIAGE_RETURN 0x01 -/** Line Feed (LF) */ -#define UCHAR_BREAK_LINE_FEED 0x02 -/** Attached Characters and Combining Marks (CM) */ -#define UCHAR_BREAK_COMBINING_MARK 0x03 -/** Surrogates (SG) */ -#define UCHAR_BREAK_SURROGATE 0x04 -/** Zero Width Space (ZW) */ -#define UCHAR_BREAK_ZERO_WIDTH_SPACE 0x05 -/** Inseparable (IN) */ -#define UCHAR_BREAK_INSEPARABLE 0x06 -/** Non-breaking ("Glue") (GL) */ -#define UCHAR_BREAK_NON_BREAKING_GLUE 0x07 -/** Contingent Break Opportunity (CB) */ -#define UCHAR_BREAK_CONTINGENT 0x08 -/** Space (SP) */ -#define UCHAR_BREAK_SPACE 0x09 -/** Break Opportunity After (BA) */ -#define UCHAR_BREAK_AFTER 0x0A -/** Break Opportunity Before (BB) */ -#define UCHAR_BREAK_BEFORE 0x0B -/** Break Opportunity Before and After (B2) */ -#define UCHAR_BREAK_BEFORE_AND_AFTER 0x0C -/** Hyphen (HY) */ -#define UCHAR_BREAK_HYPHEN 0x0D -/** Nonstarter (NS) */ -#define UCHAR_BREAK_NON_STARTER 0x0E -/** Opening Punctuation (OP) */ -#define UCHAR_BREAK_OPEN_PUNCTUATION 0x0F -/** Closing Punctuation (CL) */ -#define UCHAR_BREAK_CLOSE_PUNCTUATION 0x10 -/** Ambiguous Quotation (QU) */ -#define UCHAR_BREAK_QUOTATION 0x11 -/** Exclamation/Interrogation (EX) */ -#define UCHAR_BREAK_EXCLAMATION 0x12 -/** Ideographic (ID) */ -#define UCHAR_BREAK_IDEOGRAPHIC 0x13 -/** Numeric (NU) */ -#define UCHAR_BREAK_NUMERIC 0x14 -/** Infix Separator (Numeric) (IS) */ -#define UCHAR_BREAK_INFIX_SEPARATOR 0x15 -/** Symbols Allowing Break After (SY) */ -#define UCHAR_BREAK_SYMBOL 0x16 -/** Ordinary Alphabetic and Symbol Characters (AL) */ -#define UCHAR_BREAK_ALPHABETIC 0x17 -/** Prefix (Numeric) (PR) */ -#define UCHAR_BREAK_PREFIX 0x18 -/** Postfix (Numeric) (PO) */ -#define UCHAR_BREAK_POSTFIX 0x19 -/** Complex Content Dependent (South East Asian) (SA) */ -#define UCHAR_BREAK_COMPLEX_CONTEXT 0x1A -/** Ambiguous (Alphabetic or Ideographic) (AI) */ -#define UCHAR_BREAK_AMBIGUOUS 0x1B -/** Unknown (XX) */ -#define UCHAR_BREAK_UNKNOWN 0x1C -/** Next Line (NL) */ -#define UCHAR_BREAK_NEXT_LINE 0x1D -/** Word Joiner (WJ) */ -#define UCHAR_BREAK_WORD_JOINER 0x1E -/** Hangul L Jamo (JL) */ -#define UCHAR_BREAK_HANGUL_L_JAMO 0x1F -/** Hangul V Jamo (JV) */ -#define UCHAR_BREAK_HANGUL_V_JAMO 0x20 -/** Hangul T Jamo (JT) */ -#define UCHAR_BREAK_HANGUL_T_JAMO 0x21 -/** Hangul LV Syllable (H2) */ -#define UCHAR_BREAK_HANGUL_LV_SYLLABLE 0x22 -/** Hangul LVT Syllable (H3) */ -#define UCHAR_BREAK_HANGUL_LVT_SYLLABLE 0x23 -/** Closing Parenthesis (CP). */ -#define UCHAR_BREAK_CLOSE_PARANTHESIS 0x24 -/** onditional Japanese Starter (CJ) */ -#define UCHAR_BREAK_CONDITIONAL_JAPANESE_STARTER 0x25 -/** Hebrew Letter (HL) */ -#define UCHAR_BREAK_HEBREW_LETTER 0x26 -/** Regional Indicator (RI) */ -#define UCHAR_BREAK_REGIONAL_INDICATOR 0x27 -/** Emoji Base (EB). */ -#define UCHAR_BREAK_EMOJI_BASE 0x28 -/** Emoji Modifier (EM). */ -#define UCHAR_BREAK_EMOJI_MODIFIER 0x29 -/** Zero Width Joiner (ZWJ) */ -#define UCHAR_BREAK_ZERO_WIDTH_JOINER 0x2A +/** + * UCharBreakType: The break type of a UNICODE character. + * + * @UCHAR_BREAK_MANDATORY: Mandatory Break (BK) + * @UCHAR_BREAK_CARRIAGE_RETURN: Carriage Return (CR) + * @UCHAR_BREAK_LINE_FEED: Line Feed (LF) + * @UCHAR_BREAK_COMBINING_MARK: Attached Characters and Combining Marks (CM) + * @UCHAR_BREAK_SURROGATE: Surrogates (SG) + * @UCHAR_BREAK_ZERO_WIDTH_SPACE: Zero Width Space (ZW) + * @UCHAR_BREAK_INSEPARABLE: Inseparable (IN) + * @UCHAR_BREAK_NON_BREAKING_GLUE: Non-breaking ("Glue") (GL) + * @UCHAR_BREAK_CONTINGENT: Contingent Break Opportunity (CB) + * @UCHAR_BREAK_SPACE: Space (SP) + * @UCHAR_BREAK_AFTER: Break Opportunity After (BA) + * @UCHAR_BREAK_BEFORE: Break Opportunity Before (BB) + * @UCHAR_BREAK_BEFORE_AND_AFTER: Break Opportunity Before and After (B2) + * @UCHAR_BREAK_HYPHEN: Hyphen (HY) + * @UCHAR_BREAK_NON_STARTER: Nonstarter (NS) + * @UCHAR_BREAK_OPEN_PUNCTUATION: Opening Punctuation (OP) + * @UCHAR_BREAK_CLOSE_PUNCTUATION: Closing Punctuation (CL) + * @UCHAR_BREAK_QUOTATION: Ambiguous Quotation (QU) + * @UCHAR_BREAK_EXCLAMATION: Exclamation/Interrogation (EX) + * @UCHAR_BREAK_IDEOGRAPHIC: Ideographic (ID) + * @UCHAR_BREAK_NUMERIC: Numeric (NU) + * @UCHAR_BREAK_INFIX_SEPARATOR: Infix Separator (Numeric) (IS) + * @UCHAR_BREAK_SYMBOL: Symbols Allowing Break After (SY) + * @UCHAR_BREAK_ALPHABETIC: Ordinary Alphabetic and Symbol Characters (AL) + * @UCHAR_BREAK_PREFIX: Prefix (Numeric) (PR) + * @UCHAR_BREAK_POSTFIX: Postfix (Numeric) (PO) + * @UCHAR_BREAK_COMPLEX_CONTEXT: Complex Content Dependent (South East Asian) (SA) + * @UCHAR_BREAK_AMBIGUOUS: Ambiguous (Alphabetic or Ideographic) (AI) + * @UCHAR_BREAK_UNKNOWN: Unknown (XX) + * @UCHAR_BREAK_NEXT_LINE: Next Line (NL) + * @UCHAR_BREAK_WORD_JOINER: Word Joiner (WJ) + * @UCHAR_BREAK_HANGUL_L_JAMO: Hangul L Jamo (JL) + * @UCHAR_BREAK_HANGUL_V_JAMO: Hangul V Jamo (JV) + * @UCHAR_BREAK_HANGUL_T_JAMO: Hangul T Jamo (JT) + * @UCHAR_BREAK_HANGUL_LV_SYLLABLE: Hangul LV Syllable (H2) + * @UCHAR_BREAK_HANGUL_LVT_SYLLABLE: Hangul LVT Syllable (H3) + * @UCHAR_BREAK_CLOSE_PARANTHESIS: Closing Parenthesis (CP). Since 2.28 + * @UCHAR_BREAK_CONDITIONAL_JAPANESE_STARTER: Conditional Japanese Starter (CJ). Since: 2.32 + * @UCHAR_BREAK_HEBREW_LETTER: Hebrew Letter (HL). Since: 2.32 + * @UCHAR_BREAK_REGIONAL_INDICATOR: Regional Indicator (RI). Since: 2.36 + * @UCHAR_BREAK_EMOJI_BASE: Emoji Base (EB). Since: 2.50 + * @UCHAR_BREAK_EMOJI_MODIFIER: Emoji Modifier (EM). Since: 2.50 + * @UCHAR_BREAK_ZERO_WIDTH_JOINER: Zero Width Joiner (ZWJ). Since: 2.50 + * + * These are the possible line break classifications. + * + * Since new unicode versions may add new types here, applications should be ready + * to handle unknown values. They may be regarded as %UCHAR_BREAK_UNKNOWN. + * + * See [Unicode Line Breaking Algorithm](http://www.unicode.org/unicode/reports/tr14/). + */ +typedef enum { + UCHAR_BREAK_MANDATORY, + UCHAR_BREAK_CARRIAGE_RETURN, + UCHAR_BREAK_LINE_FEED, + UCHAR_BREAK_COMBINING_MARK, + UCHAR_BREAK_SURROGATE, + UCHAR_BREAK_ZERO_WIDTH_SPACE, + UCHAR_BREAK_INSEPARABLE, + UCHAR_BREAK_NON_BREAKING_GLUE, + UCHAR_BREAK_CONTINGENT, + UCHAR_BREAK_SPACE, + UCHAR_BREAK_AFTER, + UCHAR_BREAK_BEFORE, + UCHAR_BREAK_BEFORE_AND_AFTER, + UCHAR_BREAK_HYPHEN, + UCHAR_BREAK_NON_STARTER, + UCHAR_BREAK_OPEN_PUNCTUATION, + UCHAR_BREAK_CLOSE_PUNCTUATION, + UCHAR_BREAK_QUOTATION, + UCHAR_BREAK_EXCLAMATION, + UCHAR_BREAK_IDEOGRAPHIC, + UCHAR_BREAK_NUMERIC, + UCHAR_BREAK_INFIX_SEPARATOR, + UCHAR_BREAK_SYMBOL, + UCHAR_BREAK_ALPHABETIC, + UCHAR_BREAK_PREFIX, + UCHAR_BREAK_POSTFIX, + UCHAR_BREAK_COMPLEX_CONTEXT, + UCHAR_BREAK_AMBIGUOUS, + UCHAR_BREAK_UNKNOWN, + UCHAR_BREAK_NEXT_LINE, + UCHAR_BREAK_WORD_JOINER, + UCHAR_BREAK_HANGUL_L_JAMO, + UCHAR_BREAK_HANGUL_V_JAMO, + UCHAR_BREAK_HANGUL_T_JAMO, + UCHAR_BREAK_HANGUL_LV_SYLLABLE, + UCHAR_BREAK_HANGUL_LVT_SYLLABLE, + UCHAR_BREAK_CLOSE_PARANTHESIS, + UCHAR_BREAK_CONDITIONAL_JAPANESE_STARTER, + UCHAR_BREAK_HEBREW_LETTER, + UCHAR_BREAK_REGIONAL_INDICATOR, + UCHAR_BREAK_EMOJI_BASE, + UCHAR_BREAK_EMOJI_MODIFIER, + UCHAR_BREAK_ZERO_WIDTH_JOINER +} UCharBreakType; + +/** + * UCharScriptType: The script type of a UNICODE character. + * + * @UCHAR_SCRIPT_INVALID_CODE: + * a value never returned from UCharGetScript() + * @UCHAR_SCRIPT_COMMON: a character used by multiple different scripts + * @UCHAR_SCRIPT_INHERITED: a mark glyph that takes its script from the + * base glyph to which it is attached + * @UCHAR_SCRIPT_ARABIC: Arabic + * @UCHAR_SCRIPT_ARMENIAN: Armenian + * @UCHAR_SCRIPT_BENGALI: Bengali + * @UCHAR_SCRIPT_BOPOMOFO: Bopomofo + * @UCHAR_SCRIPT_CHEROKEE: Cherokee + * @UCHAR_SCRIPT_COPTIC: Coptic + * @UCHAR_SCRIPT_CYRILLIC: Cyrillic + * @UCHAR_SCRIPT_DESERET: Deseret + * @UCHAR_SCRIPT_DEVANAGARI: Devanagari + * @UCHAR_SCRIPT_ETHIOPIC: Ethiopic + * @UCHAR_SCRIPT_GEORGIAN: Georgian + * @UCHAR_SCRIPT_GOTHIC: Gothic + * @UCHAR_SCRIPT_GREEK: Greek + * @UCHAR_SCRIPT_GUJARATI: Gujarati + * @UCHAR_SCRIPT_GURMUKHI: Gurmukhi + * @UCHAR_SCRIPT_HAN: Han + * @UCHAR_SCRIPT_HANGUL: Hangul + * @UCHAR_SCRIPT_HEBREW: Hebrew + * @UCHAR_SCRIPT_HIRAGANA: Hiragana + * @UCHAR_SCRIPT_KANNADA: Kannada + * @UCHAR_SCRIPT_KATAKANA: Katakana + * @UCHAR_SCRIPT_KHMER: Khmer + * @UCHAR_SCRIPT_LAO: Lao + * @UCHAR_SCRIPT_LATIN: Latin + * @UCHAR_SCRIPT_MALAYALAM: Malayalam + * @UCHAR_SCRIPT_MONGOLIAN: Mongolian + * @UCHAR_SCRIPT_MYANMAR: Myanmar + * @UCHAR_SCRIPT_OGHAM: Ogham + * @UCHAR_SCRIPT_OLD_ITALIC: Old Italic + * @UCHAR_SCRIPT_ORIYA: Oriya + * @UCHAR_SCRIPT_RUNIC: Runic + * @UCHAR_SCRIPT_SINHALA: Sinhala + * @UCHAR_SCRIPT_SYRIAC: Syriac + * @UCHAR_SCRIPT_TAMIL: Tamil + * @UCHAR_SCRIPT_TELUGU: Telugu + * @UCHAR_SCRIPT_THAANA: Thaana + * @UCHAR_SCRIPT_THAI: Thai + * @UCHAR_SCRIPT_TIBETAN: Tibetan + * @UCHAR_SCRIPT_CANADIAN_ABORIGINAL: + * Canadian Aboriginal + * @UCHAR_SCRIPT_YI: Yi + * @UCHAR_SCRIPT_TAGALOG: Tagalog + * @UCHAR_SCRIPT_HANUNOO: Hanunoo + * @UCHAR_SCRIPT_BUHID: Buhid + * @UCHAR_SCRIPT_TAGBANWA: Tagbanwa + * @UCHAR_SCRIPT_BRAILLE: Braille + * @UCHAR_SCRIPT_CYPRIOT: Cypriot + * @UCHAR_SCRIPT_LIMBU: Limbu + * @UCHAR_SCRIPT_OSMANYA: Osmanya + * @UCHAR_SCRIPT_SHAVIAN: Shavian + * @UCHAR_SCRIPT_LINEAR_B: Linear B + * @UCHAR_SCRIPT_TAI_LE: Tai Le + * @UCHAR_SCRIPT_UGARITIC: Ugaritic + * @UCHAR_SCRIPT_NEW_TAI_LUE: + * New Tai Lue + * @UCHAR_SCRIPT_BUGINESE: Buginese + * @UCHAR_SCRIPT_GLAGOLITIC: Glagolitic + * @UCHAR_SCRIPT_TIFINAGH: Tifinagh + * @UCHAR_SCRIPT_SYLOTI_NAGRI: + * Syloti Nagri + * @UCHAR_SCRIPT_OLD_PERSIAN: + * Old Persian + * @UCHAR_SCRIPT_KHAROSHTHI: Kharoshthi + * @UCHAR_SCRIPT_UNKNOWN: an unassigned code point + * @UCHAR_SCRIPT_BALINESE: Balinese + * @UCHAR_SCRIPT_CUNEIFORM: Cuneiform + * @UCHAR_SCRIPT_PHOENICIAN: Phoenician + * @UCHAR_SCRIPT_PHAGS_PA: Phags-pa + * @UCHAR_SCRIPT_NKO: N'Ko + * @UCHAR_SCRIPT_KAYAH_LI: Kayah Li. Since 2.16.3 + * @UCHAR_SCRIPT_LEPCHA: Lepcha. Since 2.16.3 + * @UCHAR_SCRIPT_REJANG: Rejang. Since 2.16.3 + * @UCHAR_SCRIPT_SUNDANESE: Sundanese. Since 2.16.3 + * @UCHAR_SCRIPT_SAURASHTRA: Saurashtra. Since 2.16.3 + * @UCHAR_SCRIPT_CHAM: Cham. Since 2.16.3 + * @UCHAR_SCRIPT_OL_CHIKI: Ol Chiki. Since 2.16.3 + * @UCHAR_SCRIPT_VAI: Vai. Since 2.16.3 + * @UCHAR_SCRIPT_CARIAN: Carian. Since 2.16.3 + * @UCHAR_SCRIPT_LYCIAN: Lycian. Since 2.16.3 + * @UCHAR_SCRIPT_LYDIAN: Lydian. Since 2.16.3 + * @UCHAR_SCRIPT_AVESTAN: Avestan. Since 2.26 + * @UCHAR_SCRIPT_BAMUM: Bamum. Since 2.26 + * @UCHAR_SCRIPT_EGYPTIAN_HIEROGLYPHS: + * Egyptian Hieroglpyhs. Since 2.26 + * @UCHAR_SCRIPT_IMPERIAL_ARAMAIC: + * Imperial Aramaic. Since 2.26 + * @UCHAR_SCRIPT_INSCRIPTIONAL_PAHLAVI: + * Inscriptional Pahlavi. Since 2.26 + * @UCHAR_SCRIPT_INSCRIPTIONAL_PARTHIAN: + * Inscriptional Parthian. Since 2.26 + * @UCHAR_SCRIPT_JAVANESE: Javanese. Since 2.26 + * @UCHAR_SCRIPT_KAITHI: Kaithi. Since 2.26 + * @UCHAR_SCRIPT_LISU: Lisu. Since 2.26 + * @UCHAR_SCRIPT_MEETEI_MAYEK: + * Meetei Mayek. Since 2.26 + * @UCHAR_SCRIPT_OLD_SOUTH_ARABIAN: + * Old South Arabian. Since 2.26 + * @UCHAR_SCRIPT_OLD_TURKIC: Old Turkic. Since 2.28 + * @UCHAR_SCRIPT_SAMARITAN: Samaritan. Since 2.26 + * @UCHAR_SCRIPT_TAI_THAM: Tai Tham. Since 2.26 + * @UCHAR_SCRIPT_TAI_VIET: Tai Viet. Since 2.26 + * @UCHAR_SCRIPT_BATAK: Batak. Since 2.28 + * @UCHAR_SCRIPT_BRAHMI: Brahmi. Since 2.28 + * @UCHAR_SCRIPT_MANDAIC: Mandaic. Since 2.28 + * @UCHAR_SCRIPT_CHAKMA: Chakma. Since: 2.32 + * @UCHAR_SCRIPT_MEROITIC_CURSIVE: Meroitic Cursive. Since: 2.32 + * @UCHAR_SCRIPT_MEROITIC_HIEROGLYPHS: Meroitic Hieroglyphs. Since: 2.32 + * @UCHAR_SCRIPT_MIAO: Miao. Since: 2.32 + * @UCHAR_SCRIPT_SHARADA: Sharada. Since: 2.32 + * @UCHAR_SCRIPT_SORA_SOMPENG: Sora Sompeng. Since: 2.32 + * @UCHAR_SCRIPT_TAKRI: Takri. Since: 2.32 + * @UCHAR_SCRIPT_BASSA_VAH: Bassa. Since: 2.42 + * @UCHAR_SCRIPT_CAUCASIAN_ALBANIAN: Caucasian Albanian. Since: 2.42 + * @UCHAR_SCRIPT_DUPLOYAN: Duployan. Since: 2.42 + * @UCHAR_SCRIPT_ELBASAN: Elbasan. Since: 2.42 + * @UCHAR_SCRIPT_GRANTHA: Grantha. Since: 2.42 + * @UCHAR_SCRIPT_KHOJKI: Kjohki. Since: 2.42 + * @UCHAR_SCRIPT_KHUDAWADI: Khudawadi, Sindhi. Since: 2.42 + * @UCHAR_SCRIPT_LINEAR_A: Linear A. Since: 2.42 + * @UCHAR_SCRIPT_MAHAJANI: Mahajani. Since: 2.42 + * @UCHAR_SCRIPT_MANICHAEAN: Manichaean. Since: 2.42 + * @UCHAR_SCRIPT_MENDE_KIKAKUI: Mende Kikakui. Since: 2.42 + * @UCHAR_SCRIPT_MODI: Modi. Since: 2.42 + * @UCHAR_SCRIPT_MRO: Mro. Since: 2.42 + * @UCHAR_SCRIPT_NABATAEAN: Nabataean. Since: 2.42 + * @UCHAR_SCRIPT_OLD_NORTH_ARABIAN: Old North Arabian. Since: 2.42 + * @UCHAR_SCRIPT_OLD_PERMIC: Old Permic. Since: 2.42 + * @UCHAR_SCRIPT_PAHAWH_HMONG: Pahawh Hmong. Since: 2.42 + * @UCHAR_SCRIPT_PALMYRENE: Palmyrene. Since: 2.42 + * @UCHAR_SCRIPT_PAU_CIN_HAU: Pau Cin Hau. Since: 2.42 + * @UCHAR_SCRIPT_PSALTER_PAHLAVI: Psalter Pahlavi. Since: 2.42 + * @UCHAR_SCRIPT_SIDDHAM: Siddham. Since: 2.42 + * @UCHAR_SCRIPT_TIRHUTA: Tirhuta. Since: 2.42 + * @UCHAR_SCRIPT_WARANG_CITI: Warang Citi. Since: 2.42 + * @UCHAR_SCRIPT_AHOM: Ahom. Since: 2.48 + * @UCHAR_SCRIPT_ANATOLIAN_HIEROGLYPHS: Anatolian Hieroglyphs. Since: 2.48 + * @UCHAR_SCRIPT_HATRAN: Hatran. Since: 2.48 + * @UCHAR_SCRIPT_MULTANI: Multani. Since: 2.48 + * @UCHAR_SCRIPT_OLD_HUNGARIAN: Old Hungarian. Since: 2.48 + * @UCHAR_SCRIPT_SIGNWRITING: Signwriting. Since: 2.48 + * @UCHAR_SCRIPT_ADLAM: Adlam. Since: 2.50 + * @UCHAR_SCRIPT_BHAIKSUKI: Bhaiksuki. Since: 2.50 + * @UCHAR_SCRIPT_MARCHEN: Marchen. Since: 2.50 + * @UCHAR_SCRIPT_NEWA: Newa. Since: 2.50 + * @UCHAR_SCRIPT_OSAGE: Osage. Since: 2.50 + * @UCHAR_SCRIPT_TANGUT: Tangut. Since: 2.50 + * @UCHAR_SCRIPT_MASARAM_GONDI: Masaram Gondi. Since: 2.54 + * @UCHAR_SCRIPT_NUSHU: Nushu. Since: 2.54 + * @UCHAR_SCRIPT_SOYOMBO: Soyombo. Since: 2.54 + * @UCHAR_SCRIPT_ZANABAZAR_SQUARE: Zanabazar Square. Since: 2.54 + * @UCHAR_SCRIPT_DOGRA: Dogra. Since: 2.58 + * @UCHAR_SCRIPT_GUNJALA_GONDI: Gunjala Gondi. Since: 2.58 + * @UCHAR_SCRIPT_HANIFI_ROHINGYA: Hanifi Rohingya. Since: 2.58 + * @UCHAR_SCRIPT_MAKASAR: Makasar. Since: 2.58 + * @UCHAR_SCRIPT_MEDEFAIDRIN: Medefaidrin. Since: 2.58 + * @UCHAR_SCRIPT_OLD_SOGDIAN: Old Sogdian. Since: 2.58 + * @UCHAR_SCRIPT_SOGDIAN: Sogdian. Since: 2.58 + * + * This enumeration identifies different writing + * systems. The values correspond to the names as defined in the + * Unicode standard. + * + * Note that new types may be added in the future. Applications + * should be ready to handle unknown values. + * See [Unicode Standard Annex #24: Script names](http://www.unicode.org/reports/tr24/). + */ +typedef enum { + UCHAR_SCRIPT_INVALID_CODE = -1, + UCHAR_SCRIPT_COMMON = 0, /* Zyyy */ + UCHAR_SCRIPT_INHERITED, /* Zinh (Qaai) */ + UCHAR_SCRIPT_ARABIC, /* Arab */ + UCHAR_SCRIPT_ARMENIAN, /* Armn */ + UCHAR_SCRIPT_BENGALI, /* Beng */ + UCHAR_SCRIPT_BOPOMOFO, /* Bopo */ + UCHAR_SCRIPT_CHEROKEE, /* Cher */ + UCHAR_SCRIPT_COPTIC, /* Copt (Qaac) */ + UCHAR_SCRIPT_CYRILLIC, /* Cyrl (Cyrs) */ + UCHAR_SCRIPT_DESERET, /* Dsrt */ + UCHAR_SCRIPT_DEVANAGARI, /* Deva */ + UCHAR_SCRIPT_ETHIOPIC, /* Ethi */ + UCHAR_SCRIPT_GEORGIAN, /* Geor (Geon, Geoa) */ + UCHAR_SCRIPT_GOTHIC, /* Goth */ + UCHAR_SCRIPT_GREEK, /* Grek */ + UCHAR_SCRIPT_GUJARATI, /* Gujr */ + UCHAR_SCRIPT_GURMUKHI, /* Guru */ + UCHAR_SCRIPT_HAN, /* Hani */ + UCHAR_SCRIPT_HANGUL, /* Hang */ + UCHAR_SCRIPT_HEBREW, /* Hebr */ + UCHAR_SCRIPT_HIRAGANA, /* Hira */ + UCHAR_SCRIPT_KANNADA, /* Knda */ + UCHAR_SCRIPT_KATAKANA, /* Kana */ + UCHAR_SCRIPT_KHMER, /* Khmr */ + UCHAR_SCRIPT_LAO, /* Laoo */ + UCHAR_SCRIPT_LATIN, /* Latn (Latf, Latg) */ + UCHAR_SCRIPT_MALAYALAM, /* Mlym */ + UCHAR_SCRIPT_MONGOLIAN, /* Mong */ + UCHAR_SCRIPT_MYANMAR, /* Mymr */ + UCHAR_SCRIPT_OGHAM, /* Ogam */ + UCHAR_SCRIPT_OLD_ITALIC, /* Ital */ + UCHAR_SCRIPT_ORIYA, /* Orya */ + UCHAR_SCRIPT_RUNIC, /* Runr */ + UCHAR_SCRIPT_SINHALA, /* Sinh */ + UCHAR_SCRIPT_SYRIAC, /* Syrc (Syrj, Syrn, Syre) */ + UCHAR_SCRIPT_TAMIL, /* Taml */ + UCHAR_SCRIPT_TELUGU, /* Telu */ + UCHAR_SCRIPT_THAANA, /* Thaa */ + UCHAR_SCRIPT_THAI, /* Thai */ + UCHAR_SCRIPT_TIBETAN, /* Tibt */ + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */ + UCHAR_SCRIPT_YI, /* Yiii */ + UCHAR_SCRIPT_TAGALOG, /* Tglg */ + UCHAR_SCRIPT_HANUNOO, /* Hano */ + UCHAR_SCRIPT_BUHID, /* Buhd */ + UCHAR_SCRIPT_TAGBANWA, /* Tagb */ + + /* Unicode-4.0 additions */ + UCHAR_SCRIPT_BRAILLE, /* Brai */ + UCHAR_SCRIPT_CYPRIOT, /* Cprt */ + UCHAR_SCRIPT_LIMBU, /* Limb */ + UCHAR_SCRIPT_OSMANYA, /* Osma */ + UCHAR_SCRIPT_SHAVIAN, /* Shaw */ + UCHAR_SCRIPT_LINEAR_B, /* Linb */ + UCHAR_SCRIPT_TAI_LE, /* Tale */ + UCHAR_SCRIPT_UGARITIC, /* Ugar */ + + /* Unicode-4.1 additions */ + UCHAR_SCRIPT_NEW_TAI_LUE, /* Talu */ + UCHAR_SCRIPT_BUGINESE, /* Bugi */ + UCHAR_SCRIPT_GLAGOLITIC, /* Glag */ + UCHAR_SCRIPT_TIFINAGH, /* Tfng */ + UCHAR_SCRIPT_SYLOTI_NAGRI, /* Sylo */ + UCHAR_SCRIPT_OLD_PERSIAN, /* Xpeo */ + UCHAR_SCRIPT_KHAROSHTHI, /* Khar */ + + /* Unicode-5.0 additions */ + UCHAR_SCRIPT_UNKNOWN, /* Zzzz */ + UCHAR_SCRIPT_BALINESE, /* Bali */ + UCHAR_SCRIPT_CUNEIFORM, /* Xsux */ + UCHAR_SCRIPT_PHOENICIAN, /* Phnx */ + UCHAR_SCRIPT_PHAGS_PA, /* Phag */ + UCHAR_SCRIPT_NKO, /* Nkoo */ + + /* Unicode-5.1 additions */ + UCHAR_SCRIPT_KAYAH_LI, /* Kali */ + UCHAR_SCRIPT_LEPCHA, /* Lepc */ + UCHAR_SCRIPT_REJANG, /* Rjng */ + UCHAR_SCRIPT_SUNDANESE, /* Sund */ + UCHAR_SCRIPT_SAURASHTRA, /* Saur */ + UCHAR_SCRIPT_CHAM, /* Cham */ + UCHAR_SCRIPT_OL_CHIKI, /* Olck */ + UCHAR_SCRIPT_VAI, /* Vaii */ + UCHAR_SCRIPT_CARIAN, /* Cari */ + UCHAR_SCRIPT_LYCIAN, /* Lyci */ + UCHAR_SCRIPT_LYDIAN, /* Lydi */ + + /* Unicode-5.2 additions */ + UCHAR_SCRIPT_AVESTAN, /* Avst */ + UCHAR_SCRIPT_BAMUM, /* Bamu */ + UCHAR_SCRIPT_EGYPTIAN_HIEROGLYPHS, /* Egyp */ + UCHAR_SCRIPT_IMPERIAL_ARAMAIC, /* Armi */ + UCHAR_SCRIPT_INSCRIPTIONAL_PAHLAVI, /* Phli */ + UCHAR_SCRIPT_INSCRIPTIONAL_PARTHIAN, /* Prti */ + UCHAR_SCRIPT_JAVANESE, /* Java */ + UCHAR_SCRIPT_KAITHI, /* Kthi */ + UCHAR_SCRIPT_LISU, /* Lisu */ + UCHAR_SCRIPT_MEETEI_MAYEK, /* Mtei */ + UCHAR_SCRIPT_OLD_SOUTH_ARABIAN, /* Sarb */ + UCHAR_SCRIPT_OLD_TURKIC, /* Orkh */ + UCHAR_SCRIPT_SAMARITAN, /* Samr */ + UCHAR_SCRIPT_TAI_THAM, /* Lana */ + UCHAR_SCRIPT_TAI_VIET, /* Tavt */ + + /* Unicode-6.0 additions */ + UCHAR_SCRIPT_BATAK, /* Batk */ + UCHAR_SCRIPT_BRAHMI, /* Brah */ + UCHAR_SCRIPT_MANDAIC, /* Mand */ + + /* Unicode-6.1 additions */ + UCHAR_SCRIPT_CHAKMA, /* Cakm */ + UCHAR_SCRIPT_MEROITIC_CURSIVE, /* Merc */ + UCHAR_SCRIPT_MEROITIC_HIEROGLYPHS, /* Mero */ + UCHAR_SCRIPT_MIAO, /* Plrd */ + UCHAR_SCRIPT_SHARADA, /* Shrd */ + UCHAR_SCRIPT_SORA_SOMPENG, /* Sora */ + UCHAR_SCRIPT_TAKRI, /* Takr */ + + /* Unicode 7.0 additions */ + UCHAR_SCRIPT_BASSA_VAH, /* Bass */ + UCHAR_SCRIPT_CAUCASIAN_ALBANIAN, /* Aghb */ + UCHAR_SCRIPT_DUPLOYAN, /* Dupl */ + UCHAR_SCRIPT_ELBASAN, /* Elba */ + UCHAR_SCRIPT_GRANTHA, /* Gran */ + UCHAR_SCRIPT_KHOJKI, /* Khoj */ + UCHAR_SCRIPT_KHUDAWADI, /* Sind */ + UCHAR_SCRIPT_LINEAR_A, /* Lina */ + UCHAR_SCRIPT_MAHAJANI, /* Mahj */ + UCHAR_SCRIPT_MANICHAEAN, /* Manu */ + UCHAR_SCRIPT_MENDE_KIKAKUI, /* Mend */ + UCHAR_SCRIPT_MODI, /* Modi */ + UCHAR_SCRIPT_MRO, /* Mroo */ + UCHAR_SCRIPT_NABATAEAN, /* Nbat */ + UCHAR_SCRIPT_OLD_NORTH_ARABIAN, /* Narb */ + UCHAR_SCRIPT_OLD_PERMIC, /* Perm */ + UCHAR_SCRIPT_PAHAWH_HMONG, /* Hmng */ + UCHAR_SCRIPT_PALMYRENE, /* Palm */ + UCHAR_SCRIPT_PAU_CIN_HAU, /* Pauc */ + UCHAR_SCRIPT_PSALTER_PAHLAVI, /* Phlp */ + UCHAR_SCRIPT_SIDDHAM, /* Sidd */ + UCHAR_SCRIPT_TIRHUTA, /* Tirh */ + UCHAR_SCRIPT_WARANG_CITI, /* Wara */ + + /* Unicode 8.0 additions */ + UCHAR_SCRIPT_AHOM, /* Ahom */ + UCHAR_SCRIPT_ANATOLIAN_HIEROGLYPHS, /* Hluw */ + UCHAR_SCRIPT_HATRAN, /* Hatr */ + UCHAR_SCRIPT_MULTANI, /* Mult */ + UCHAR_SCRIPT_OLD_HUNGARIAN, /* Hung */ + UCHAR_SCRIPT_SIGNWRITING, /* Sgnw */ + + /* Unicode 9.0 additions */ + UCHAR_SCRIPT_ADLAM, /* Adlm */ + UCHAR_SCRIPT_BHAIKSUKI, /* Bhks */ + UCHAR_SCRIPT_MARCHEN, /* Marc */ + UCHAR_SCRIPT_NEWA, /* Newa */ + UCHAR_SCRIPT_OSAGE, /* Osge */ + UCHAR_SCRIPT_TANGUT, /* Tang */ + + /* Unicode 10.0 additions */ + UCHAR_SCRIPT_MASARAM_GONDI, /* Gonm */ + UCHAR_SCRIPT_NUSHU, /* Nshu */ + UCHAR_SCRIPT_SOYOMBO, /* Soyo */ + UCHAR_SCRIPT_ZANABAZAR_SQUARE, /* Zanb */ + + /* Unicode 11.0 additions */ + UCHAR_SCRIPT_DOGRA, /* Dogr */ + UCHAR_SCRIPT_GUNJALA_GONDI, /* Gong */ + UCHAR_SCRIPT_HANIFI_ROHINGYA, /* Rohg */ + UCHAR_SCRIPT_MAKASAR, /* Maka */ + UCHAR_SCRIPT_MEDEFAIDRIN, /* Medf */ + UCHAR_SCRIPT_OLD_SOGDIAN, /* Sogo */ + UCHAR_SCRIPT_SOGDIAN, /* Sogd */ +} UCharScriptType; /** @} end of char_types */ @@ -7137,6 +7511,88 @@ MG_EXPORT BOOL GUIAPI UCharDecompose (Uchar32 ch, Uchar32 *a, Uchar32 *b); MG_EXPORT int GUIAPI UCharFullyDecompose (Uchar32 ch, BOOL compat, Uchar32 *result, int result_len); +/** + * UCharGetScriptType: + * @ch: a Unicode character + * + * Looks up the script code for a particular character (as defined + * by Unicode Standard Annex \#24). No check is made for @ch being a + * valid Unicode character; if you pass in invalid character, the + * result is undefined. + * + * Returns: the script code for the UNICODE character. + * + * Since: 3.4.0 + */ +MG_EXPORT int GUIAPI UCharGetScriptType (Uchar32 ch); + +/** + * UCharScriptTypeToISO15924: + * @script: a Unicode script + * + * Looks up the ISO 15924 code for @script. ISO 15924 assigns four-letter + * codes to scripts. For example, the code for Arabic is 'Arab'. The + * four letter codes are encoded as a @Uint32 by this function in a + * big-endian fashion. That is, the code returned for Arabic is + * 0x41726162 (0x41 is ASCII code for 'A', 0x72 is ASCII code for 'r', etc). + * + * See + * [Codes for the representation of names of scripts](http://unicode.org/iso15924/codelists.html) + * for details. + * + * Returns: the ISO 15924 code for @script, encoded as an integer, + * of zero if @script is %UCHAR_SCRIPT_INVALID_CODE or + * ISO 15924 code 'Zzzz' (script code for UNKNOWN) if @script is not understood. + * + * Since: 3.4.0 + */ +MG_EXPORT Uint32 GUIAPI UCharScriptTypeToISO15924 (int script); + +/** + * UCharScriptTypeFromISO15924: + * @iso15924: an encoded Unicode script code in ISO15924 + * + * Looks up the Unicode script type for @iso15924. ISO 15924 assigns four-letter + * codes to scripts. For example, the code for Arabic is 'Arab'. + * This function accepts four letter codes encoded as a @Uint32 in a + * big-endian fashion. That is, the code expected for Arabic is + * 0x41726162 (0x41 is ASCII code for 'A', 0x72 is ASCII code for 'r', etc). + * + * See + * [Codes for the representation of names of scripts](http://unicode.org/iso15924/codelists.html) + * for details. + * + * Returns: the Unicode script for @iso15924, or + * of %UCHAR_SCRIPT_INVALID_CODE if @iso15924 is zero and + * %UCHAR_SCRIPT_UNKNOWN if @iso15924 is unknown. + * + * Since: 3.4.0 + */ +MG_EXPORT int GUIAPI UCharScriptTypeFromISO15924 (Uint32 iso15924); + +/** + * UCharScriptTypeFromISO15924Code: + * @iso15924: a Unicode script type code in ISO15924 + * + * Looks up the Unicode script type for @iso15924. ISO 15924 assigns four-letter + * codes to scripts. For example, the code for Arabic is 'Arab'. + * + * See + * [Codes for the representation of names of scripts](http://unicode.org/iso15924/codelists.html) + * for details. + * + * Returns: the Unicode script for @iso15924, or + * of %UCHAR_SCRIPT_INVALID_CODE if @iso15924 is zero and + * %UCHAR_SCRIPT_UNKNOWN if @iso15924 is unknown. + * + * Since: 3.4.0 + */ +static inline int GUIAPI UCharScriptTypeFromISO15924Code (const char* iso15924) +{ + return UCharScriptTypeFromISO15924(MAKEDWORD32(iso15924[3], + iso15924[2], iso15924[1], iso15924[0])); +} + #endif /* _MGCHARSET_UNICODE */ /** @@ -9248,9 +9704,9 @@ MG_EXPORT int GUIAPI DrawGlyphString (HDC hdc, int x, int y, Glyph32* glyphs, /** * \fn Uint32 GUIAPI GetGlyphType (LOGFONT* logfont, Glyph32 glyph_value) - * \brief Retriev the basic type of a glyph. + * \brief Retrieve the basic type and break type of a glyph. * - * This function retrieves the basic type of a glyph. + * This function retrieves the basic type and break type of a glyph. * * \param logfont The logical font. * \param glyph_value The glyph value. @@ -9391,6 +9847,346 @@ MG_EXPORT int GUIAPI GetGlyphsExtent (HDC hdc, Glyph32* glyphs, int nr_glyphs, MG_EXPORT int GUIAPI GetGlyphsExtentPoint (HDC hdc, Glyph32* glyphs, int nr_glyphs, int max_extent, SIZE* size); +#ifdef _MGCHARSET_UNICODE + + /** + * \defgroup language_code Language Code + * + * The language code specifies the content lanuage for \a GetGlyphsByRules and + * \a GetGlyphsExtentPointEx. + * + * @{ + */ + +/** + * The language code. + */ +typedef enum { + /** Unknown language code */ + LANGCODE_unknown = -1, + /** Language code for Afar */ + LANGCODE_aa = 0, + /** Language code for Abkhazian */ + LANGCODE_ab, + /** Language code for Afrikaans */ + LANGCODE_af, + /** Language code for Amharic */ + LANGCODE_am, + /** Language code for Arabic */ + LANGCODE_ar, + /** Language code for Assamese */ + LANGCODE_as, + /** Language code for Aymara */ + LANGCODE_ay, + /** Language code for Azerbaijani */ + LANGCODE_az, + /** Language code for Bashkir */ + LANGCODE_ba, + /** Language code for Byelorussian */ + LANGCODE_be, + /** Language code for Bulgarian */ + LANGCODE_bg, + /** Language code for Bihari */ + LANGCODE_bh, + /** Language code for Bislama */ + LANGCODE_bi, + /** Language code for Bengali */ + LANGCODE_bn, + /** Language code for Tibetan */ + LANGCODE_bo, + /** Language code for Breton */ + LANGCODE_br, + /** Language code for Catalan */ + LANGCODE_ca, + /** Language code for Corsican */ + LANGCODE_co, + /** Language code for Czech */ + LANGCODE_cs, + /** Language code for Welch */ + LANGCODE_cy, + /** Language code for Danish */ + LANGCODE_da, + /** Language code for German */ + LANGCODE_de, + /** Language code for Bhutani */ + LANGCODE_dz, + /** Language code for Greek */ + LANGCODE_el, + /** Language code for English */ + LANGCODE_en, + /** Language code for Esperanto */ + LANGCODE_eo, + /** Language code for Spanish */ + LANGCODE_es, + /** Language code for Estonian */ + LANGCODE_et, + /** Language code for Basque */ + LANGCODE_eu, + /** Language code for Persian */ + LANGCODE_fa, + /** Language code for Finnish */ + LANGCODE_fi, + /** Language code for Fiji */ + LANGCODE_fj, + /** Language code for Faeroese */ + LANGCODE_fo, + /** Language code for French */ + LANGCODE_fr, + /** Language code for Frisian */ + LANGCODE_fy, + /** Language code for Irish */ + LANGCODE_ga, + /** Language code for Scots Gaelic */ + LANGCODE_gd, + /** Language code for Galician */ + LANGCODE_gl, + /** Language code for Guarani */ + LANGCODE_gn, + /** Language code for Gujarati */ + LANGCODE_gu, + /** Language code for Hausa */ + LANGCODE_ha, + /** Language code for Hindi */ + LANGCODE_hi, + /** Language code for Hebrew */ + LANGCODE_he, + /** Language code for Croatian */ + LANGCODE_hr, + /** Language code for Hungarian */ + LANGCODE_hu, + /** Language code for Armenian */ + LANGCODE_hy, + /** Language code for Interlingua */ + LANGCODE_ia, + /** Language code for Indonesian */ + LANGCODE_id, + /** Language code for Interlingue */ + LANGCODE_ie, + /** Language code for Inupiak */ + LANGCODE_ik, + /** Language code for former Indonesian */ + LANGCODE_in, + /** Language code for Icelandic */ + LANGCODE_is, + /** Language code for Italian */ + LANGCODE_it, + /** Language code for Inuktitut (Eskimo) */ + LANGCODE_iu, + /** Language code for former Hebrew */ + LANGCODE_iw, + /** Language code for Japanese */ + LANGCODE_ja, + /** Language code for former Yiddish */ + LANGCODE_ji, + /** Language code for Javanese */ + LANGCODE_jw, + /** Language code for Georgian */ + LANGCODE_ka, + /** Language code for Kazakh */ + LANGCODE_kk, + /** Language code for Greenlandic */ + LANGCODE_kl, + /** Language code for Cambodian */ + LANGCODE_km, + /** Language code for Kannada */ + LANGCODE_kn, + /** Language code for Korean */ + LANGCODE_ko, + /** Language code for Kashmiri */ + LANGCODE_ks, + /** Language code for Kurdish */ + LANGCODE_ku, + /** Language code for Kirghiz */ + LANGCODE_ky, + /** Language code for Latin */ + LANGCODE_la, + /** Language code for Lingala */ + LANGCODE_ln, + /** Language code for Laothian */ + LANGCODE_lo, + /** Language code for Lithuanian */ + LANGCODE_lt, + /** Language code for Latvian, Lettish */ + LANGCODE_lv, + /** Language code for Malagasy */ + LANGCODE_mg, + /** Language code for Maori */ + LANGCODE_mi, + /** Language code for Macedonian */ + LANGCODE_mk, + /** Language code for Malayalam */ + LANGCODE_ml, + /** Language code for Mongolian */ + LANGCODE_mn, + /** Language code for Moldavian */ + LANGCODE_mo, + /** Language code for Marathi */ + LANGCODE_mr, + /** Language code for Malay */ + LANGCODE_ms, + /** Language code for Maltese */ + LANGCODE_mt, + /** Language code for Burmese */ + LANGCODE_my, + /** Language code for Nauru */ + LANGCODE_na, + /** Language code for Nepali */ + LANGCODE_ne, + /** Language code for Dutch */ + LANGCODE_nl, + /** Language code for Norwegian */ + LANGCODE_no, + /** Language code for Occitan */ + LANGCODE_oc, + /** Language code for (Afan) Oromo */ + LANGCODE_om, + /** Language code for Oriya */ + LANGCODE_or, + /** Language code for Punjabi */ + LANGCODE_pa, + /** Language code for Polish */ + LANGCODE_pl, + /** Language code for Pashto, Pushto */ + LANGCODE_ps, + /** Language code for Portuguese */ + LANGCODE_pt, + /** Language code for Quechua */ + LANGCODE_qu, + /** Language code for Rhaeto-Romance */ + LANGCODE_rm, + /** Language code for Kirundi */ + LANGCODE_rn, + /** Language code for Romanian */ + LANGCODE_ro, + /** Language code for Russian */ + LANGCODE_ru, + /** Language code for Kinyarwanda */ + LANGCODE_rw, + /** Language code for Sanskrit */ + LANGCODE_sa, + /** Language code for Sindhi */ + LANGCODE_sd, + /** Language code for Sangro */ + LANGCODE_sg, + /** Language code for Serbo-Croatian */ + LANGCODE_sh, + /** Language code for Singhalese */ + LANGCODE_si, + /** Language code for Slovak */ + LANGCODE_sk, + /** Language code for Slovenian */ + LANGCODE_sl, + /** Language code for Samoan */ + LANGCODE_sm, + /** Language code for Shona */ + LANGCODE_sn, + /** Language code for Somali */ + LANGCODE_so, + /** Language code for Albanian */ + LANGCODE_sq, + /** Language code for Serbian */ + LANGCODE_sr, + /** Language code for Siswati */ + LANGCODE_ss, + /** Language code for Sesotho */ + LANGCODE_st, + /** Language code for Sudanese */ + LANGCODE_su, + /** Language code for Swedish */ + LANGCODE_sv, + /** Language code for Swahili */ + LANGCODE_sw, + /** Language code for Tamil */ + LANGCODE_ta, + /** Language code for Tegulu */ + LANGCODE_te, + /** Language code for Tajik */ + LANGCODE_tg, + /** Language code for Thai */ + LANGCODE_th, + /** Language code for Tigrinya */ + LANGCODE_ti, + /** Language code for Turkmen */ + LANGCODE_tk, + /** Language code for Tagalog */ + LANGCODE_tl, + /** Language code for Setswana */ + LANGCODE_tn, + /** Language code for Tonga */ + LANGCODE_to, + /** Language code for Turkish */ + LANGCODE_tr, + /** Language code for Tsonga */ + LANGCODE_ts, + /** Language code for Tatar */ + LANGCODE_tt, + /** Language code for Twi */ + LANGCODE_tw, + /** Language code for Uigur */ + LANGCODE_ug, + /** Language code for Ukrainian */ + LANGCODE_uk, + /** Language code for Urdu */ + LANGCODE_ur, + /** Language code for Uzbek */ + LANGCODE_uz, + /** Language code for Vietnamese */ + LANGCODE_vi, + /** Language code for Volapuk */ + LANGCODE_vo, + /** Language code for Wolof */ + LANGCODE_wo, + /** Language code for Xhosa */ + LANGCODE_xh, + /** Language code for Yiddish */ + LANGCODE_yi, + /** Language code for Yoruba */ + LANGCODE_yo, + /** Language code for Zhuang */ + LANGCODE_za, + /** Language code for Chinese */ + LANGCODE_zh, + /** Language code for Zulu */ + LANGCODE_zu, +} LanguageCode; + +/** + * LanuageCodeFromISO639s1: + * @iso639_1: An encoded language code in ISO639-1. + * + * Looks up the language code for ISO639-1. ISO639-1 assigns two-letter + * codes to languages. For example, the code for Arabic is 'ar'. + * This function accepts two letter codes encoded as a @Uint16 in a + * big-endian fashion. That is, the code expected for Arabic is + * 0x6172 (0x61 is ASCII code for 'a', 0x72 is ASCII code for 'r', etc). + * + * Returns: the language code for @iso639_1, or + * of %LANGCODE_unknown if @iso639_1 is invalid. + * + * Since: 3.4.0 + */ +MG_EXPORT int GUIAPI LanguageCodeFromISO639s1 (Uint16 iso639_1); + +/** + * LanguageCodeFromISO639s1Code: + * @iso639_1: A language code in ISO639-1. + * + * Looks up the language code for ISO639-1. ISO639-1 assigns two-letter + * codes to languages. For example, the code for Arabic is 'ar'. + * + * Returns: the language code for @iso639_1, or + * of %LANGCODE_unknown if @iso639_1 is invalid. + * + * Since: 3.4.0 + */ +static inline int GUIAPI LanguageCodeFromISO639s1Code (const char* iso639_1) +{ + return LanguageCodeFromISO639s1(MAKEWORD16(iso639_1[1], + iso639_1[0])); +} + + /** @} end of language_code */ + /** * \defgroup white_space_rule White Space Rules * @@ -9541,6 +10337,8 @@ MG_EXPORT int GUIAPI GetGlyphsExtentPoint (HDC hdc, Glyph32* glyphs, * The function will return if it encounters any hard line break or the null character. * The hard line break will be included in the returned glyphs if there was one. * + * Note that you are responsible for freeing the glyph string allocated by this function. + * * \param logfont The logfont used to parse the string. * \param mstr The pointer to the multi-byte string. * \param mstr_len The length of \a mstr in bytes. @@ -9715,6 +10513,8 @@ MG_EXPORT int GUIAPI GetGlyphsExtentPointEx (LOGFONT* logfont, int x, int y, MG_EXPORT int GUIAPI DrawGlyphStringEx (HDC hdc, const Glyph32* glyphs, int nr_glyphs, const POINT* pts); +#endif /* _MGCHARSET_UNICODE */ + /* * Define some bit masks, that character types are based on, each one has * only one bit on. @@ -10211,8 +11011,11 @@ typedef void (*CB_COMP_PUTHLINE) (COMP_CTXT* comp_ctxt, gal_uint8* src, int bkmo * * \sa GetRasterOperation, SetRasterOperation, COMP_CTXT * */ -MG_EXPORT int GUIAPI SetUserCompositionOps (HDC hdc, CB_COMP_SETPIXEL comp_setpixel, - CB_COMP_SETHLINE comp_sethline, CB_COMP_PUTHLINE comp_puthline, void* user_comp_ctxt); +MG_EXPORT int GUIAPI SetUserCompositionOps (HDC hdc, + CB_COMP_SETPIXEL comp_setpixel, + CB_COMP_SETHLINE comp_sethline, + CB_COMP_PUTHLINE comp_puthline, + void* user_comp_ctxt); /** @} end of gdi_fns */ @@ -10227,24 +11030,6 @@ MG_EXPORT int hi3560SetScreenAttr (Uint8 siAttr, void* pValue); #endif /* _MGGAL_HI3560 */ -MG_EXPORT int GUIAPI GetTextMCharInfo (PLOGFONT log_font, const char* mstr, int len, - int* pos_chars); -MG_EXPORT int GUIAPI GetTextWordInfo (PLOGFONT log_font, const char* mstr, int len, - int* pos_words, WORDINFO* info_words); -MG_EXPORT int GUIAPI GetFirstMCharLen (PLOGFONT log_font, const char* mstr, int len); -MG_EXPORT int GUIAPI GetLastMCharLen (PLOGFONT log_font, const char* mstr, int len); -MG_EXPORT int GUIAPI GetFirstWord (PLOGFONT log_font, const char* mstr, int len, - WORDINFO* word_info); -MG_EXPORT int GUIAPI MB2WCEx (PLOGFONT log_font, void* dest, BOOL wc32, - const unsigned char* mchar, int n); -MG_EXPORT int GUIAPI WC2MBEx (PLOGFONT log_font, unsigned char *s, Uchar32 wc); -MG_EXPORT int GUIAPI MBS2WCSEx (PLOGFONT log_font, void* dest, BOOL wc32, - const unsigned char* mstr, int mstr_len, int n, - int* conved_mstr_len); -MG_EXPORT int GUIAPI WCS2MBSEx (PLOGFONT log_font, unsigned char* dest, - const void *wcs, int wcs_len, BOOL wc32, int n, - int* conved_wcs_len); - #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/src/font/Makefile.am b/src/font/Makefile.am index a5e08182..7d264738 100644 --- a/src/font/Makefile.am +++ b/src/font/Makefile.am @@ -2,7 +2,8 @@ SUBDIRS = in-core noinst_LTLIBRARIES = libfont.la -SRC_FILES = charset.c charset-arabic.c charset-bidi.c unicode-comp.c \ +SRC_FILES = charset.c charset-arabic.c charset-bidi.c \ + unicode-comp.c unicode-script.c language-code.c \ sysfont.c logfont.c devfont.c fontname.c \ rawbitmap.c varbitmap.c qpf.c upf.c \ fontcache.c freetype2.c font-engines.c\ diff --git a/src/font/language-code.c b/src/font/language-code.c new file mode 100644 index 00000000..afb91779 --- /dev/null +++ b/src/font/language-code.c @@ -0,0 +1,217 @@ +/* + * This file is part of MiniGUI, a mature cross-platform windowing + * and Graphics User Interface (GUI) support system for embedded systems + * and smart IoT devices. + * + * Copyright (C) 2002~2018, Beijing FMSoft Technologies Co., Ltd. + * Copyright (C) 1998~2002, WEI Yongming + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Or, + * + * As this program is a library, any link to this program must follow + * GNU General Public License version 3 (GPLv3). If you cannot accept + * GPLv3, you need to be licensed from FMSoft. + * + * If you have got a commercial license of this program, please use it + * under the terms and conditions of the commercial license. + * + * For more information about the commercial license, please refer to + * . + */ + +#include +#include +#include + +#include "common.h" +#include "minigui.h" +#include "gdi.h" + +#ifdef _MGCHARSET_UNICODE + +static const Uint16 iso639_1_codes[] = +{ +#define PACK(a,b) ((Uint16)((((Uint8)(a))<<8)|((Uint8)(b)))) + PACK('a', 'a'), // Afar + PACK('a', 'b'), // Abkhazian + PACK('a', 'f'), // Afrikaans + PACK('a', 'm'), // Amharic + PACK('a', 'r'), // Arabic + PACK('a', 's'), // Assamese + PACK('a', 'y'), // Aymara + PACK('a', 'z'), // Azerbaijani + PACK('b', 'a'), // Bashkir + PACK('b', 'e'), // Byelorussian + PACK('b', 'g'), // Bulgarian + PACK('b', 'h'), // Bihari + PACK('b', 'i'), // Bislama + PACK('b', 'n'), // Bengali + PACK('b', 'o'), // Tibetan + PACK('b', 'r'), // Breton + PACK('c', 'a'), // Catalan + PACK('c', 'o'), // Corsican + PACK('c', 's'), // Czech + PACK('c', 'y'), // Welch + PACK('d', 'a'), // Danish + PACK('d', 'e'), // German + PACK('d', 'z'), // Bhutani + PACK('e', 'l'), // Greek + PACK('e', 'n'), // English + PACK('e', 'o'), // Esperanto + PACK('e', 's'), // Spanish + PACK('e', 't'), // Estonian + PACK('e', 'u'), // Basque + PACK('f', 'a'), // Persian + PACK('f', 'i'), // Finnish + PACK('f', 'j'), // Fiji + PACK('f', 'o'), // Faeroese + PACK('f', 'r'), // French + PACK('f', 'y'), // Frisian + PACK('g', 'a'), // Irish + PACK('g', 'd'), // Scots Gaelic + PACK('g', 'l'), // Galician + PACK('g', 'n'), // Guarani + PACK('g', 'u'), // Gujarati + PACK('h', 'a'), // Hausa + PACK('h', 'i'), // Hindi + PACK('h', 'e'), // Hebrew + PACK('h', 'r'), // Croatian + PACK('h', 'u'), // Hungarian + PACK('h', 'y'), // Armenian + PACK('i', 'a'), // Interlingua + PACK('i', 'd'), // Indonesian + PACK('i', 'e'), // Interlingue + PACK('i', 'k'), // Inupiak + PACK('i', 'n'), // former Indonesian + PACK('i', 's'), // Icelandic + PACK('i', 't'), // Italian + PACK('i', 'u'), // Inuktitut (Eskimo) + PACK('i', 'w'), // former Hebrew + PACK('j', 'a'), // Japanese + PACK('j', 'i'), // former Yiddish + PACK('j', 'w'), // Javanese + PACK('k', 'a'), // Georgian + PACK('k', 'k'), // Kazakh + PACK('k', 'l'), // Greenlandic + PACK('k', 'm'), // Cambodian + PACK('k', 'n'), // Kannada + PACK('k', 'o'), // Korean + PACK('k', 's'), // Kashmiri + PACK('k', 'u'), // Kurdish + PACK('k', 'y'), // Kirghiz + PACK('l', 'a'), // Latin + PACK('l', 'n'), // Lingala + PACK('l', 'o'), // Laothian + PACK('l', 't'), // Lithuanian + PACK('l', 'v'), // Latvian, Lettish + PACK('m', 'g'), // Malagasy + PACK('m', 'i'), // Maori + PACK('m', 'k'), // Macedonian + PACK('m', 'l'), // Malayalam + PACK('m', 'n'), // Mongolian + PACK('m', 'o'), // Moldavian + PACK('m', 'r'), // Marathi + PACK('m', 's'), // Malay + PACK('m', 't'), // Maltese + PACK('m', 'y'), // Burmese + PACK('n', 'a'), // Nauru + PACK('n', 'e'), // Nepali + PACK('n', 'l'), // Dutch + PACK('n', 'o'), // Norwegian + PACK('o', 'c'), // Occitan + PACK('o', 'm'), // (Afan) Oromo + PACK('o', 'r'), // Oriya + PACK('p', 'a'), // Punjabi + PACK('p', 'l'), // Polish + PACK('p', 's'), // Pashto, Pushto + PACK('p', 't'), // Portuguese + PACK('q', 'u'), // Quechua + PACK('r', 'm'), // Rhaeto-Romance + PACK('r', 'n'), // Kirundi + PACK('r', 'o'), // Romanian + PACK('r', 'u'), // Russian + PACK('r', 'w'), // Kinyarwanda + PACK('s', 'a'), // Sanskrit + PACK('s', 'd'), // Sindhi + PACK('s', 'g'), // Sangro + PACK('s', 'h'), // Serbo-Croatian + PACK('s', 'i'), // Singhalese + PACK('s', 'k'), // Slovak + PACK('s', 'l'), // Slovenian + PACK('s', 'm'), // Samoan + PACK('s', 'n'), // Shona + PACK('s', 'o'), // Somali + PACK('s', 'q'), // Albanian + PACK('s', 'r'), // Serbian + PACK('s', 's'), // Siswati + PACK('s', 't'), // Sesotho + PACK('s', 'u'), // Sudanese + PACK('s', 'v'), // Swedish + PACK('s', 'w'), // Swahili + PACK('t', 'a'), // Tamil + PACK('t', 'e'), // Tegulu + PACK('t', 'g'), // Tajik + PACK('t', 'h'), // Thai + PACK('t', 'i'), // Tigrinya + PACK('t', 'k'), // Turkmen + PACK('t', 'l'), // Tagalog + PACK('t', 'n'), // Setswana + PACK('t', 'o'), // Tonga + PACK('t', 'r'), // Turkish + PACK('t', 's'), // Tsonga + PACK('t', 't'), // Tatar + PACK('t', 'w'), // Twi + PACK('u', 'g'), // Uigur + PACK('u', 'k'), // Ukrainian + PACK('u', 'r'), // Urdu + PACK('u', 'z'), // Uzbek + PACK('v', 'i'), // Vietnamese + PACK('v', 'o'), // Volapuk + PACK('w', 'o'), // Wolof + PACK('x', 'h'), // Xhosa + PACK('y', 'i'), // Yiddish + PACK('y', 'o'), // Yoruba + PACK('z', 'a'), // Zhuang + PACK('z', 'h'), // Chinese + PACK('z', 'u'), // Zulu +#undef PACK +}; + +int GUIAPI LanguageCodeFromISO639s1 (Uint16 iso639_1) +{ + unsigned int lower = 0; + unsigned int upper = TABLESIZE (iso639_1_codes) - 1; + unsigned int mid = TABLESIZE (iso639_1_codes) / 2; + + if (!iso639_1) + return LANGCODE_unknown; + + do { + if (iso639_1 < iso639_1_codes[mid]) + upper = mid - 1; + else if (iso639_1 > iso639_1_codes[mid]) + lower = mid + 1; + else + return (int)mid; + + mid = (lower + upper) / 2; + } while (lower <= upper); + + return LANGCODE_unknown; +} + +#endif /* _MGCHARSET_UNICODE */ + diff --git a/src/font/unicode-break.h b/src/font/unicode-break.h index 6e585b34..67ed6134 100644 --- a/src/font/unicode-break.h +++ b/src/font/unicode-break.h @@ -1,36 +1,8 @@ /* - * This file is part of MiniGUI, a mature cross-platform windowing - * and Graphics User Interface (GUI) support system for embedded systems - * and smart IoT devices. - * - * Copyright (C) 2002~2018, Beijing FMSoft Technologies Co., Ltd. - * Copyright (C) 1998~2002, WEI Yongming - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Or, - * - * As this program is a library, any link to this program must follow - * GNU General Public License version 3 (GPLv3). If you cannot accept - * GPLv3, you need to be licensed from FMSoft. - * - * If you have got a commercial license of this program, please use it - * under the terms and conditions of the commercial license. - * - * For more information about the commercial license, please refer to - * . + * This file is copied from LGPL'd glib 2.59. + * It is automatically generated by gen-unicode-tables.pl */ + #ifndef BREAKTABLES_H #define BREAKTABLES_H diff --git a/src/font/unicode-comp.h b/src/font/unicode-comp.h index 9d7deda0..fd39bfb9 100644 --- a/src/font/unicode-comp.h +++ b/src/font/unicode-comp.h @@ -1,3 +1,8 @@ +/* + * This file is copied from LGPL'd glib 2.59. + * It is automatically generated by gen-unicode-tables.pl + */ + #define COMPOSE_FIRST_START 1 #define COMPOSE_FIRST_SINGLE_START 149 #define COMPOSE_SECOND_START 377 diff --git a/src/font/unicode-decomp.h b/src/font/unicode-decomp.h index 5debc89d..d3c01b20 100644 --- a/src/font/unicode-decomp.h +++ b/src/font/unicode-decomp.h @@ -1,4 +1,7 @@ -/* This file is automatically generated. DO NOT EDIT! */ +/* + * This file is copied from LGPL'd glib 2.59. + * It is automatically generated by gen-unicode-tables.pl + */ #ifndef DECOMP_H #define DECOMP_H diff --git a/src/font/unicode-misc.h b/src/font/unicode-misc.h deleted file mode 100644 index b24ffaf3..00000000 --- a/src/font/unicode-misc.h +++ /dev/null @@ -1,201 +0,0 @@ -/* - * This file is part of MiniGUI, a mature cross-platform windowing - * and Graphics User Interface (GUI) support system for embedded systems - * and smart IoT devices. - * - * Copyright (C) 2002~2018, Beijing FMSoft Technologies Co., Ltd. - * Copyright (C) 1998~2002, WEI Yongming - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Or, - * - * As this program is a library, any link to this program must follow - * GNU General Public License version 3 (GPLv3). If you cannot accept - * GPLv3, you need to be licensed from FMSoft. - * - * If you have got a commercial license of this program, please use it - * under the terms and conditions of the commercial license. - * - * For more information about the commercial license, please refer to - * . - */ - -#ifndef __UCHAR_TYPE_H__ -#define __UCHAR_TYPE_H__ - - -/* These are the possible character classifications. - * See http://www.unicode.org/Public/UNIDATA/UCD.html#General_Category_Values - */ -#if 0 /* VincentWei: Moved to gid.h */ -typedef enum -{ - UCHAR_TYPE_CONTROL, - UCHAR_TYPE_FORMAT, - UCHAR_TYPE_UNASSIGNED, - UCHAR_TYPE_PRIVATE_USE, - UCHAR_TYPE_SURROGATE, - UCHAR_TYPE_LOWERCASE_LETTER, - UCHAR_TYPE_MODIFIER_LETTER, - UCHAR_TYPE_OTHER_LETTER, - UCHAR_TYPE_TITLECASE_LETTER, - UCHAR_TYPE_UPPERCASE_LETTER, - UCHAR_TYPE_COMBINING_MARK, - UCHAR_TYPE_ENCLOSING_MARK, - UCHAR_TYPE_NON_SPACING_MARK, - UCHAR_TYPE_DECIMAL_NUMBER, - UCHAR_TYPE_LETTER_NUMBER, - UCHAR_TYPE_OTHER_NUMBER, - UCHAR_TYPE_CONNECT_PUNCTUATION, - UCHAR_TYPE_DASH_PUNCTUATION, - UCHAR_TYPE_CLOSE_PUNCTUATION, - UCHAR_TYPE_FINAL_PUNCTUATION, - UCHAR_TYPE_INITIAL_PUNCTUATION, - UCHAR_TYPE_OTHER_PUNCTUATION, - UCHAR_TYPE_OPEN_PUNCTUATION, - UCHAR_TYPE_CURRENCY_SYMBOL, - UCHAR_TYPE_MODIFIER_SYMBOL, - UCHAR_TYPE_MATH_SYMBOL, - UCHAR_TYPE_OTHER_SYMBOL, - UCHAR_TYPE_LINE_SEPARATOR, - UCHAR_TYPE_PARAGRAPH_SEPARATOR, - UCHAR_TYPE_SPACE_SEPARATOR -} GUnicodeType; - -/* These are the possible line break classifications. - * Note that new types may be added in the future. - * Implementations may regard unknown values like UCHAR_BREAK_UNKNOWN - * See http://www.unicode.org/unicode/reports/tr14/ - */ -typedef enum -{ - UCHAR_BREAK_MANDATORY, - UCHAR_BREAK_CARRIAGE_RETURN, - UCHAR_BREAK_LINE_FEED, - UCHAR_BREAK_COMBINING_MARK, - UCHAR_BREAK_SURROGATE, - UCHAR_BREAK_ZERO_WIDTH_SPACE, - UCHAR_BREAK_INSEPARABLE, - UCHAR_BREAK_NON_BREAKING_GLUE, - UCHAR_BREAK_CONTINGENT, - UCHAR_BREAK_SPACE, - UCHAR_BREAK_AFTER, - UCHAR_BREAK_BEFORE, - UCHAR_BREAK_BEFORE_AND_AFTER, - UCHAR_BREAK_HYPHEN, - UCHAR_BREAK_NON_STARTER, - UCHAR_BREAK_OPEN_PUNCTUATION, - UCHAR_BREAK_CLOSE_PUNCTUATION, - UCHAR_BREAK_QUOTATION, - UCHAR_BREAK_EXCLAMATION, - UCHAR_BREAK_IDEOGRAPHIC, - UCHAR_BREAK_NUMERIC, - UCHAR_BREAK_INFIX_SEPARATOR, - UCHAR_BREAK_SYMBOL, - UCHAR_BREAK_ALPHABETIC, - UCHAR_BREAK_PREFIX, - UCHAR_BREAK_POSTFIX, - UCHAR_BREAK_COMPLEX_CONTEXT, - UCHAR_BREAK_AMBIGUOUS, - UCHAR_BREAK_UNKNOWN, - UCHAR_BREAK_NEXT_LINE, - UCHAR_BREAK_WORD_JOINER, - UCHAR_BREAK_HANGUL_L_JAMO, - UCHAR_BREAK_HANGUL_V_JAMO, - UCHAR_BREAK_HANGUL_T_JAMO, - UCHAR_BREAK_HANGUL_LV_SYLLABLE, - UCHAR_BREAK_HANGUL_LVT_SYLLABLE -} GUnicodeBreakType; -#endif /* VincentWei: Moved to gid.h */ - -typedef enum -{ /* ISO 15924 code */ - UCHAR_TYPE_SCRIPT_INVALID_CODE = -1, - UCHAR_TYPE_SCRIPT_COMMON = 0, /* Zyyy */ - UCHAR_TYPE_SCRIPT_INHERITED, /* Qaai */ - UCHAR_TYPE_SCRIPT_ARABIC, /* Arab */ - UCHAR_TYPE_SCRIPT_ARMENIAN, /* Armn */ - UCHAR_TYPE_SCRIPT_BENGALI, /* Beng */ - UCHAR_TYPE_SCRIPT_BOPOMOFO, /* Bopo */ - UCHAR_TYPE_SCRIPT_CHEROKEE, /* Cher */ - UCHAR_TYPE_SCRIPT_COPTIC, /* Qaac */ - UCHAR_TYPE_SCRIPT_CYRILLIC, /* Cyrl (Cyrs) */ - UCHAR_TYPE_SCRIPT_DESERET, /* Dsrt */ - UCHAR_TYPE_SCRIPT_DEVANAGARI, /* Deva */ - UCHAR_TYPE_SCRIPT_ETHIOPIC, /* Ethi */ - UCHAR_TYPE_SCRIPT_GEORGIAN, /* Geor (Geon, Geoa) */ - UCHAR_TYPE_SCRIPT_GOTHIC, /* Goth */ - UCHAR_TYPE_SCRIPT_GREEK, /* Grek */ - UCHAR_TYPE_SCRIPT_GUJARATI, /* Gujr */ - UCHAR_TYPE_SCRIPT_GURMUKHI, /* Guru */ - UCHAR_TYPE_SCRIPT_HAN, /* Hani */ - UCHAR_TYPE_SCRIPT_HANGUL, /* Hang */ - UCHAR_TYPE_SCRIPT_HEBREW, /* Hebr */ - UCHAR_TYPE_SCRIPT_HIRAGANA, /* Hira */ - UCHAR_TYPE_SCRIPT_KANNADA, /* Knda */ - UCHAR_TYPE_SCRIPT_KATAKANA, /* Kana */ - UCHAR_TYPE_SCRIPT_KHMER, /* Khmr */ - UCHAR_TYPE_SCRIPT_LAO, /* Laoo */ - UCHAR_TYPE_SCRIPT_LATIN, /* Latn (Latf, Latg) */ - UCHAR_TYPE_SCRIPT_MALAYALAM, /* Mlym */ - UCHAR_TYPE_SCRIPT_MONGOLIAN, /* Mong */ - UCHAR_TYPE_SCRIPT_MYANMAR, /* Mymr */ - UCHAR_TYPE_SCRIPT_OGHAM, /* Ogam */ - UCHAR_TYPE_SCRIPT_OLD_ITALIC, /* Ital */ - UCHAR_TYPE_SCRIPT_ORIYA, /* Orya */ - UCHAR_TYPE_SCRIPT_RUNIC, /* Runr */ - UCHAR_TYPE_SCRIPT_SINHALA, /* Sinh */ - UCHAR_TYPE_SCRIPT_SYRIAC, /* Syrc (Syrj, Syrn, Syre) */ - UCHAR_TYPE_SCRIPT_TAMIL, /* Taml */ - UCHAR_TYPE_SCRIPT_TELUGU, /* Telu */ - UCHAR_TYPE_SCRIPT_THAANA, /* Thaa */ - UCHAR_TYPE_SCRIPT_THAI, /* Thai */ - UCHAR_TYPE_SCRIPT_TIBETAN, /* Tibt */ - UCHAR_TYPE_SCRIPT_CANADIAN_ABORIGINAL, /* Cans */ - UCHAR_TYPE_SCRIPT_YI, /* Yiii */ - UCHAR_TYPE_SCRIPT_TAGALOG, /* Tglg */ - UCHAR_TYPE_SCRIPT_HANUNOO, /* Hano */ - UCHAR_TYPE_SCRIPT_BUHID, /* Buhd */ - UCHAR_TYPE_SCRIPT_TAGBANWA, /* Tagb */ - - /* Unicode-4.0 additions */ - UCHAR_TYPE_SCRIPT_BRAILLE, /* Brai */ - UCHAR_TYPE_SCRIPT_CYPRIOT, /* Cprt */ - UCHAR_TYPE_SCRIPT_LIMBU, /* Limb */ - UCHAR_TYPE_SCRIPT_OSMANYA, /* Osma */ - UCHAR_TYPE_SCRIPT_SHAVIAN, /* Shaw */ - UCHAR_TYPE_SCRIPT_LINEAR_B, /* Linb */ - UCHAR_TYPE_SCRIPT_TAI_LE, /* Tale */ - UCHAR_TYPE_SCRIPT_UGARITIC, /* Ugar */ - - /* Unicode-4.1 additions */ - UCHAR_TYPE_SCRIPT_NEW_TAI_LUE, /* Talu */ - UCHAR_TYPE_SCRIPT_BUGINESE, /* Bugi */ - UCHAR_TYPE_SCRIPT_GLAGOLITIC, /* Glag */ - UCHAR_TYPE_SCRIPT_TIFINAGH, /* Tfng */ - UCHAR_TYPE_SCRIPT_SYLOTI_NAGRI, /* Sylo */ - UCHAR_TYPE_SCRIPT_OLD_PERSIAN, /* Xpeo */ - UCHAR_TYPE_SCRIPT_KHAROSHTHI, /* Khar */ - - /* Unicode-5.0 additions */ - UCHAR_TYPE_SCRIPT_UNKNOWN, /* Zzzz */ - UCHAR_TYPE_SCRIPT_BALINESE, /* Bali */ - UCHAR_TYPE_SCRIPT_CUNEIFORM, /* Xsux */ - UCHAR_TYPE_SCRIPT_PHOENICIAN, /* Phnx */ - UCHAR_TYPE_SCRIPT_PHAGS_PA, /* Phag */ - UCHAR_TYPE_SCRIPT_NKO /* Nkoo */ -} GUnicodeScript; - -#endif /* __UCHAR_TYPE_H__ */ diff --git a/src/font/unicode-script.c b/src/font/unicode-script.c new file mode 100644 index 00000000..77ef90b5 --- /dev/null +++ b/src/font/unicode-script.c @@ -0,0 +1,287 @@ +/* + * This file is part of MiniGUI, a mature cross-platform windowing + * and Graphics User Interface (GUI) support system for embedded systems + * and smart IoT devices. + * + * Copyright (C) 2002~2018, Beijing FMSoft Technologies Co., Ltd. + * Copyright (C) 1998~2002, WEI Yongming + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * Or, + * + * As this program is a library, any link to this program must follow + * GNU General Public License version 3 (GPLv3). If you cannot accept + * GPLv3, you need to be licensed from FMSoft. + * + * If you have got a commercial license of this program, please use it + * under the terms and conditions of the commercial license. + * + * For more information about the commercial license, please refer to + * . + */ + +#include +#include +#include +#include + +#include "common.h" +#include "minigui.h" +#include "gdi.h" + +#ifdef _MGCHARSET_UNICODE + +#include "unicode-scripttable.h" + +#define G_SCRIPT_TABLE_MIDPOINT (TABLESIZE (g_script_table) / 2) + +static inline int g_unichar_get_script_bsearch (Uchar32 ch) +{ + int lower = 0; + int upper = (int)TABLESIZE (g_script_table) - 1; + static int saved_mid = G_SCRIPT_TABLE_MIDPOINT; + int mid = saved_mid; + + do { + if (ch < g_script_table[mid].start) + upper = mid - 1; + else if (ch >= g_script_table[mid].start + g_script_table[mid].chars) + lower = mid + 1; + else + return g_script_table[saved_mid = mid].script; + + mid = (lower + upper) / 2; + + } while (lower <= upper); + + return UCHAR_SCRIPT_UNKNOWN; +} + +int GUIAPI UCharGetScriptType (Uchar32 ch) +{ + if (ch < G_EASY_SCRIPTS_RANGE) + return g_script_easy_table[ch]; + else + return g_unichar_get_script_bsearch (ch); +} + +/* http://unicode.org/iso15924/ */ +static const Uint32 iso15924_tags[] = +{ +#define PACK(a,b,c,d) ((Uint32)((((Uint8)(a))<<24)|(((Uint8)(b))<<16)|(((Uint8)(c))<<8)|((Uint8)(d)))) + + PACK ('Z','y','y','y'), /* UCHAR_SCRIPT_COMMON */ + PACK ('Z','i','n','h'), /* UCHAR_SCRIPT_INHERITED */ + PACK ('A','r','a','b'), /* UCHAR_SCRIPT_ARABIC */ + PACK ('A','r','m','n'), /* UCHAR_SCRIPT_ARMENIAN */ + PACK ('B','e','n','g'), /* UCHAR_SCRIPT_BENGALI */ + PACK ('B','o','p','o'), /* UCHAR_SCRIPT_BOPOMOFO */ + PACK ('C','h','e','r'), /* UCHAR_SCRIPT_CHEROKEE */ + PACK ('C','o','p','t'), /* UCHAR_SCRIPT_COPTIC */ + PACK ('C','y','r','l'), /* UCHAR_SCRIPT_CYRILLIC */ + PACK ('D','s','r','t'), /* UCHAR_SCRIPT_DESERET */ + PACK ('D','e','v','a'), /* UCHAR_SCRIPT_DEVANAGARI */ + PACK ('E','t','h','i'), /* UCHAR_SCRIPT_ETHIOPIC */ + PACK ('G','e','o','r'), /* UCHAR_SCRIPT_GEORGIAN */ + PACK ('G','o','t','h'), /* UCHAR_SCRIPT_GOTHIC */ + PACK ('G','r','e','k'), /* UCHAR_SCRIPT_GREEK */ + PACK ('G','u','j','r'), /* UCHAR_SCRIPT_GUJARATI */ + PACK ('G','u','r','u'), /* UCHAR_SCRIPT_GURMUKHI */ + PACK ('H','a','n','i'), /* UCHAR_SCRIPT_HAN */ + PACK ('H','a','n','g'), /* UCHAR_SCRIPT_HANGUL */ + PACK ('H','e','b','r'), /* UCHAR_SCRIPT_HEBREW */ + PACK ('H','i','r','a'), /* UCHAR_SCRIPT_HIRAGANA */ + PACK ('K','n','d','a'), /* UCHAR_SCRIPT_KANNADA */ + PACK ('K','a','n','a'), /* UCHAR_SCRIPT_KATAKANA */ + PACK ('K','h','m','r'), /* UCHAR_SCRIPT_KHMER */ + PACK ('L','a','o','o'), /* UCHAR_SCRIPT_LAO */ + PACK ('L','a','t','n'), /* UCHAR_SCRIPT_LATIN */ + PACK ('M','l','y','m'), /* UCHAR_SCRIPT_MALAYALAM */ + PACK ('M','o','n','g'), /* UCHAR_SCRIPT_MONGOLIAN */ + PACK ('M','y','m','r'), /* UCHAR_SCRIPT_MYANMAR */ + PACK ('O','g','a','m'), /* UCHAR_SCRIPT_OGHAM */ + PACK ('I','t','a','l'), /* UCHAR_SCRIPT_OLD_ITALIC */ + PACK ('O','r','y','a'), /* UCHAR_SCRIPT_ORIYA */ + PACK ('R','u','n','r'), /* UCHAR_SCRIPT_RUNIC */ + PACK ('S','i','n','h'), /* UCHAR_SCRIPT_SINHALA */ + PACK ('S','y','r','c'), /* UCHAR_SCRIPT_SYRIAC */ + PACK ('T','a','m','l'), /* UCHAR_SCRIPT_TAMIL */ + PACK ('T','e','l','u'), /* UCHAR_SCRIPT_TELUGU */ + PACK ('T','h','a','a'), /* UCHAR_SCRIPT_THAANA */ + PACK ('T','h','a','i'), /* UCHAR_SCRIPT_THAI */ + PACK ('T','i','b','t'), /* UCHAR_SCRIPT_TIBETAN */ + PACK ('C','a','n','s'), /* UCHAR_SCRIPT_CANADIAN_ABORIGINAL */ + PACK ('Y','i','i','i'), /* UCHAR_SCRIPT_YI */ + PACK ('T','g','l','g'), /* UCHAR_SCRIPT_TAGALOG */ + PACK ('H','a','n','o'), /* UCHAR_SCRIPT_HANUNOO */ + PACK ('B','u','h','d'), /* UCHAR_SCRIPT_BUHID */ + PACK ('T','a','g','b'), /* UCHAR_SCRIPT_TAGBANWA */ + + /* Unicode-4.0 additions */ + PACK ('B','r','a','i'), /* UCHAR_SCRIPT_BRAILLE */ + PACK ('C','p','r','t'), /* UCHAR_SCRIPT_CYPRIOT */ + PACK ('L','i','m','b'), /* UCHAR_SCRIPT_LIMBU */ + PACK ('O','s','m','a'), /* UCHAR_SCRIPT_OSMANYA */ + PACK ('S','h','a','w'), /* UCHAR_SCRIPT_SHAVIAN */ + PACK ('L','i','n','b'), /* UCHAR_SCRIPT_LINEAR_B */ + PACK ('T','a','l','e'), /* UCHAR_SCRIPT_TAI_LE */ + PACK ('U','g','a','r'), /* UCHAR_SCRIPT_UGARITIC */ + + /* Unicode-4.1 additions */ + PACK ('T','a','l','u'), /* UCHAR_SCRIPT_NEW_TAI_LUE */ + PACK ('B','u','g','i'), /* UCHAR_SCRIPT_BUGINESE */ + PACK ('G','l','a','g'), /* UCHAR_SCRIPT_GLAGOLITIC */ + PACK ('T','f','n','g'), /* UCHAR_SCRIPT_TIFINAGH */ + PACK ('S','y','l','o'), /* UCHAR_SCRIPT_SYLOTI_NAGRI */ + PACK ('X','p','e','o'), /* UCHAR_SCRIPT_OLD_PERSIAN */ + PACK ('K','h','a','r'), /* UCHAR_SCRIPT_KHAROSHTHI */ + + /* Unicode-5.0 additions */ + PACK ('Z','z','z','z'), /* UCHAR_SCRIPT_UNKNOWN */ + PACK ('B','a','l','i'), /* UCHAR_SCRIPT_BALINESE */ + PACK ('X','s','u','x'), /* UCHAR_SCRIPT_CUNEIFORM */ + PACK ('P','h','n','x'), /* UCHAR_SCRIPT_PHOENICIAN */ + PACK ('P','h','a','g'), /* UCHAR_SCRIPT_PHAGS_PA */ + PACK ('N','k','o','o'), /* UCHAR_SCRIPT_NKO */ + + /* Unicode-5.1 additions */ + PACK ('K','a','l','i'), /* UCHAR_SCRIPT_KAYAH_LI */ + PACK ('L','e','p','c'), /* UCHAR_SCRIPT_LEPCHA */ + PACK ('R','j','n','g'), /* UCHAR_SCRIPT_REJANG */ + PACK ('S','u','n','d'), /* UCHAR_SCRIPT_SUNDANESE */ + PACK ('S','a','u','r'), /* UCHAR_SCRIPT_SAURASHTRA */ + PACK ('C','h','a','m'), /* UCHAR_SCRIPT_CHAM */ + PACK ('O','l','c','k'), /* UCHAR_SCRIPT_OL_CHIKI */ + PACK ('V','a','i','i'), /* UCHAR_SCRIPT_VAI */ + PACK ('C','a','r','i'), /* UCHAR_SCRIPT_CARIAN */ + PACK ('L','y','c','i'), /* UCHAR_SCRIPT_LYCIAN */ + PACK ('L','y','d','i'), /* UCHAR_SCRIPT_LYDIAN */ + + /* Unicode-5.2 additions */ + PACK ('A','v','s','t'), /* UCHAR_SCRIPT_AVESTAN */ + PACK ('B','a','m','u'), /* UCHAR_SCRIPT_BAMUM */ + PACK ('E','g','y','p'), /* UCHAR_SCRIPT_EGYPTIAN_HIEROGLYPHS */ + PACK ('A','r','m','i'), /* UCHAR_SCRIPT_IMPERIAL_ARAMAIC */ + PACK ('P','h','l','i'), /* UCHAR_SCRIPT_INSCRIPTIONAL_PAHLAVI */ + PACK ('P','r','t','i'), /* UCHAR_SCRIPT_INSCRIPTIONAL_PARTHIAN */ + PACK ('J','a','v','a'), /* UCHAR_SCRIPT_JAVANESE */ + PACK ('K','t','h','i'), /* UCHAR_SCRIPT_KAITHI */ + PACK ('L','i','s','u'), /* UCHAR_SCRIPT_LISU */ + PACK ('M','t','e','i'), /* UCHAR_SCRIPT_MEETEI_MAYEK */ + PACK ('S','a','r','b'), /* UCHAR_SCRIPT_OLD_SOUTH_ARABIAN */ + PACK ('O','r','k','h'), /* UCHAR_SCRIPT_OLD_TURKIC */ + PACK ('S','a','m','r'), /* UCHAR_SCRIPT_SAMARITAN */ + PACK ('L','a','n','a'), /* UCHAR_SCRIPT_TAI_THAM */ + PACK ('T','a','v','t'), /* UCHAR_SCRIPT_TAI_VIET */ + + /* Unicode-6.0 additions */ + PACK ('B','a','t','k'), /* UCHAR_SCRIPT_BATAK */ + PACK ('B','r','a','h'), /* UCHAR_SCRIPT_BRAHMI */ + PACK ('M','a','n','d'), /* UCHAR_SCRIPT_MANDAIC */ + + /* Unicode-6.1 additions */ + PACK ('C','a','k','m'), /* UCHAR_SCRIPT_CHAKMA */ + PACK ('M','e','r','c'), /* UCHAR_SCRIPT_MEROITIC_CURSIVE */ + PACK ('M','e','r','o'), /* UCHAR_SCRIPT_MEROITIC_HIEROGLYPHS */ + PACK ('P','l','r','d'), /* UCHAR_SCRIPT_MIAO */ + PACK ('S','h','r','d'), /* UCHAR_SCRIPT_SHARADA */ + PACK ('S','o','r','a'), /* UCHAR_SCRIPT_SORA_SOMPENG */ + PACK ('T','a','k','r'), /* UCHAR_SCRIPT_TAKRI */ + + /* Unicode 7.0 additions */ + PACK ('B','a','s','s'), /* UCHAR_SCRIPT_BASSA_VAH */ + PACK ('A','g','h','b'), /* UCHAR_SCRIPT_CAUCASIAN_ALBANIAN */ + PACK ('D','u','p','l'), /* UCHAR_SCRIPT_DUPLOYAN */ + PACK ('E','l','b','a'), /* UCHAR_SCRIPT_ELBASAN */ + PACK ('G','r','a','n'), /* UCHAR_SCRIPT_GRANTHA */ + PACK ('K','h','o','j'), /* UCHAR_SCRIPT_KHOJKI*/ + PACK ('S','i','n','d'), /* UCHAR_SCRIPT_KHUDAWADI */ + PACK ('L','i','n','a'), /* UCHAR_SCRIPT_LINEAR_A */ + PACK ('M','a','h','j'), /* UCHAR_SCRIPT_MAHAJANI */ + PACK ('M','a','n','u'), /* UCHAR_SCRIPT_MANICHAEAN */ + PACK ('M','e','n','d'), /* UCHAR_SCRIPT_MENDE_KIKAKUI */ + PACK ('M','o','d','i'), /* UCHAR_SCRIPT_MODI */ + PACK ('M','r','o','o'), /* UCHAR_SCRIPT_MRO */ + PACK ('N','b','a','t'), /* UCHAR_SCRIPT_NABATAEAN */ + PACK ('N','a','r','b'), /* UCHAR_SCRIPT_OLD_NORTH_ARABIAN */ + PACK ('P','e','r','m'), /* UCHAR_SCRIPT_OLD_PERMIC */ + PACK ('H','m','n','g'), /* UCHAR_SCRIPT_PAHAWH_HMONG */ + PACK ('P','a','l','m'), /* UCHAR_SCRIPT_PALMYRENE */ + PACK ('P','a','u','c'), /* UCHAR_SCRIPT_PAU_CIN_HAU */ + PACK ('P','h','l','p'), /* UCHAR_SCRIPT_PSALTER_PAHLAVI */ + PACK ('S','i','d','d'), /* UCHAR_SCRIPT_SIDDHAM */ + PACK ('T','i','r','h'), /* UCHAR_SCRIPT_TIRHUTA */ + PACK ('W','a','r','a'), /* UCHAR_SCRIPT_WARANG_CITI */ + + /* Unicode 8.0 additions */ + PACK ('A','h','o','m'), /* UCHAR_SCRIPT_AHOM */ + PACK ('H','l','u','w'), /* UCHAR_SCRIPT_ANATOLIAN_HIEROGLYPHS */ + PACK ('H','a','t','r'), /* UCHAR_SCRIPT_HATRAN */ + PACK ('M','u','l','t'), /* UCHAR_SCRIPT_MULTANI */ + PACK ('H','u','n','g'), /* UCHAR_SCRIPT_OLD_HUNGARIAN */ + PACK ('S','g','n','w'), /* UCHAR_SCRIPT_SIGNWRITING */ + + /* Unicode 9.0 additions */ + PACK ('A','d','l','m'), /* UCHAR_SCRIPT_ADLAM */ + PACK ('B','h','k','s'), /* UCHAR_SCRIPT_BHAIKSUKI */ + PACK ('M','a','r','c'), /* UCHAR_SCRIPT_MARCHEN */ + PACK ('N','e','w','a'), /* UCHAR_SCRIPT_NEWA */ + PACK ('O','s','g','e'), /* UCHAR_SCRIPT_OSAGE */ + PACK ('T','a','n','g'), /* UCHAR_SCRIPT_TANGUT */ + + /* Unicode 10.0 additions */ + PACK ('G','o','n','m'), /* UCHAR_SCRIPT_MASARAM_GONDI */ + PACK ('N','s','h','u'), /* UCHAR_SCRIPT_NUSHU */ + PACK ('S','o','y','o'), /* UCHAR_SCRIPT_SOYOMBO */ + PACK ('Z','a','n','b'), /* UCHAR_SCRIPT_ZANABAZAR_SQUARE */ + + /* Unicode 11.0 additions */ + PACK ('D','o','g','r'), /* UCHAR_SCRIPT_DOGRA */ + PACK ('G','o','n','g'), /* UCHAR_SCRIPT_GUNJALA_GONDI */ + PACK ('R','o','h','g'), /* UCHAR_SCRIPT_HANIFI_ROHINGYA */ + PACK ('M','a','k','a'), /* UCHAR_SCRIPT_MAKASAR */ + PACK ('M','e','d','f'), /* UCHAR_SCRIPT_MEDEFAIDRIN */ + PACK ('S','o','g','o'), /* UCHAR_SCRIPT_OLD_SOGDIAN */ + PACK ('S','o','g','d'), /* UCHAR_SCRIPT_SOGDIAN */ +#undef PACK +}; + +Uint32 GUIAPI UCharScriptTypeToISO15924 (int script) +{ + if (script == UCHAR_SCRIPT_INVALID_CODE) + return 0; + + if (script < 0 || script >= (int) TABLESIZE (iso15924_tags)) + return 0x5A7A7A7A; + + return iso15924_tags[script]; +} + +int GUIAPI UCharScriptTypeFromISO15924 (Uint32 iso15924) +{ + unsigned int i; + + if (!iso15924) + return UCHAR_SCRIPT_INVALID_CODE; + + for (i = 0; i < TABLESIZE (iso15924_tags); i++) + if (iso15924_tags[i] == iso15924) + return (int) i; + + return UCHAR_SCRIPT_UNKNOWN; +} + +#endif /* _MGCHARSET_UNICODE */ + diff --git a/src/font/unicode-scripttable.h b/src/font/unicode-scripttable.h new file mode 100644 index 00000000..15ea1d80 --- /dev/null +++ b/src/font/unicode-scripttable.h @@ -0,0 +1,3272 @@ +/* + * This file is copied from LGPL'd glib 2.59. + * It is automatically generated by gen-unicode-tables.pl + */ + +#ifndef SCRIPTTABLES_H +#define SCRIPTTABLES_H + +#define G_EASY_SCRIPTS_RANGE 8192 + +static const unsigned char g_script_easy_table[8192] = { + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_BOPOMOFO, + UCHAR_SCRIPT_BOPOMOFO, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_COPTIC, UCHAR_SCRIPT_COPTIC, + UCHAR_SCRIPT_COPTIC, UCHAR_SCRIPT_COPTIC, UCHAR_SCRIPT_COPTIC, + UCHAR_SCRIPT_COPTIC, UCHAR_SCRIPT_COPTIC, UCHAR_SCRIPT_COPTIC, + UCHAR_SCRIPT_COPTIC, UCHAR_SCRIPT_COPTIC, UCHAR_SCRIPT_COPTIC, + UCHAR_SCRIPT_COPTIC, UCHAR_SCRIPT_COPTIC, UCHAR_SCRIPT_COPTIC, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ARMENIAN, + UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_ARMENIAN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_HEBREW, + UCHAR_SCRIPT_HEBREW, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, + UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_THAANA, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_NKO, + UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_NKO, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, + UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_SAMARITAN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, + UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, + UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, + UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, + UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, + UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, + UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, + UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, + UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_MANDAIC, + UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_MANDAIC, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_SYRIAC, + UCHAR_SCRIPT_SYRIAC, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, UCHAR_SCRIPT_ARABIC, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, + UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_DEVANAGARI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, UCHAR_SCRIPT_BENGALI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, UCHAR_SCRIPT_GURMUKHI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, + UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_GUJARATI, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, + UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_ORIYA, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_TAMIL, + UCHAR_SCRIPT_TAMIL, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, + UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_TELUGU, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KANNADA, UCHAR_SCRIPT_KANNADA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, UCHAR_SCRIPT_MALAYALAM, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, UCHAR_SCRIPT_SINHALA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_THAI, + UCHAR_SCRIPT_THAI, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_LAO, + UCHAR_SCRIPT_LAO, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_TIBETAN, UCHAR_SCRIPT_TIBETAN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, + UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_MYANMAR, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, UCHAR_SCRIPT_HANGUL, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, + UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_ETHIOPIC, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, UCHAR_SCRIPT_CHEROKEE, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, + UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, + UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, + UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, + UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, + UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, + UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, + UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, + UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, + UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_OGHAM, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_RUNIC, + UCHAR_SCRIPT_RUNIC, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAGALOG, + UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, + UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, + UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, + UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, + UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, + UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_TAGALOG, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, + UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, + UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, + UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, + UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, + UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, + UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_HANUNOO, + UCHAR_SCRIPT_HANUNOO, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, + UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, + UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, + UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, + UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, + UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, + UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_BUHID, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAGBANWA, + UCHAR_SCRIPT_TAGBANWA, UCHAR_SCRIPT_TAGBANWA, UCHAR_SCRIPT_TAGBANWA, + UCHAR_SCRIPT_TAGBANWA, UCHAR_SCRIPT_TAGBANWA, UCHAR_SCRIPT_TAGBANWA, + UCHAR_SCRIPT_TAGBANWA, UCHAR_SCRIPT_TAGBANWA, UCHAR_SCRIPT_TAGBANWA, + UCHAR_SCRIPT_TAGBANWA, UCHAR_SCRIPT_TAGBANWA, UCHAR_SCRIPT_TAGBANWA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAGBANWA, UCHAR_SCRIPT_TAGBANWA, + UCHAR_SCRIPT_TAGBANWA, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAGBANWA, + UCHAR_SCRIPT_TAGBANWA, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, UCHAR_SCRIPT_MONGOLIAN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, UCHAR_SCRIPT_CANADIAN_ABORIGINAL, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, UCHAR_SCRIPT_LIMBU, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_TAI_LE, + UCHAR_SCRIPT_TAI_LE, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_NEW_TAI_LUE, UCHAR_SCRIPT_NEW_TAI_LUE, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, + UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_KHMER, UCHAR_SCRIPT_BUGINESE, + UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, + UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, + UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, + UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, + UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, + UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, + UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, + UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, + UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_BUGINESE, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BUGINESE, + UCHAR_SCRIPT_BUGINESE, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, + UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_TAI_THAM, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, + UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_BALINESE, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_BATAK, + UCHAR_SCRIPT_BATAK, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, UCHAR_SCRIPT_LEPCHA, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, UCHAR_SCRIPT_OL_CHIKI, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_GEORGIAN, + UCHAR_SCRIPT_GEORGIAN, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, UCHAR_SCRIPT_SUNDANESE, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, UCHAR_SCRIPT_COMMON, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_CYRILLIC, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_CYRILLIC, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, UCHAR_SCRIPT_INHERITED, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_LATIN, + UCHAR_SCRIPT_LATIN, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_UNKNOWN, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_UNKNOWN, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_GREEK, + UCHAR_SCRIPT_GREEK, UCHAR_SCRIPT_UNKNOWN, +}; + +static const struct { + unsigned int start; + unsigned short chars; + unsigned short script; +} g_script_table[] = { + { 0x2000, 12, UCHAR_SCRIPT_COMMON }, + { 0x200c, 2, UCHAR_SCRIPT_INHERITED }, + { 0x200e, 87, UCHAR_SCRIPT_COMMON }, + { 0x2066, 11, UCHAR_SCRIPT_COMMON }, + { 0x2071, 1, UCHAR_SCRIPT_LATIN }, + { 0x2074, 11, UCHAR_SCRIPT_COMMON }, + { 0x207f, 1, UCHAR_SCRIPT_LATIN }, + { 0x2080, 15, UCHAR_SCRIPT_COMMON }, + { 0x2090, 13, UCHAR_SCRIPT_LATIN }, + { 0x20a0, 32, UCHAR_SCRIPT_COMMON }, + { 0x20d0, 33, UCHAR_SCRIPT_INHERITED }, + { 0x2100, 38, UCHAR_SCRIPT_COMMON }, + { 0x2126, 1, UCHAR_SCRIPT_GREEK }, + { 0x2127, 3, UCHAR_SCRIPT_COMMON }, + { 0x212a, 2, UCHAR_SCRIPT_LATIN }, + { 0x212c, 6, UCHAR_SCRIPT_COMMON }, + { 0x2132, 1, UCHAR_SCRIPT_LATIN }, + { 0x2133, 27, UCHAR_SCRIPT_COMMON }, + { 0x214e, 1, UCHAR_SCRIPT_LATIN }, + { 0x214f, 17, UCHAR_SCRIPT_COMMON }, + { 0x2160, 41, UCHAR_SCRIPT_LATIN }, + { 0x2189, 3, UCHAR_SCRIPT_COMMON }, + { 0x2190, 663, UCHAR_SCRIPT_COMMON }, + { 0x2440, 11, UCHAR_SCRIPT_COMMON }, + { 0x2460, 928, UCHAR_SCRIPT_COMMON }, + { 0x2800, 256, UCHAR_SCRIPT_BRAILLE }, + { 0x2900, 628, UCHAR_SCRIPT_COMMON }, + { 0x2b76, 32, UCHAR_SCRIPT_COMMON }, + { 0x2b98, 49, UCHAR_SCRIPT_COMMON }, + { 0x2bca, 53, UCHAR_SCRIPT_COMMON }, + { 0x2c00, 47, UCHAR_SCRIPT_GLAGOLITIC }, + { 0x2c30, 47, UCHAR_SCRIPT_GLAGOLITIC }, + { 0x2c60, 32, UCHAR_SCRIPT_LATIN }, + { 0x2c80, 116, UCHAR_SCRIPT_COPTIC }, + { 0x2cf9, 7, UCHAR_SCRIPT_COPTIC }, + { 0x2d00, 38, UCHAR_SCRIPT_GEORGIAN }, + { 0x2d27, 1, UCHAR_SCRIPT_GEORGIAN }, + { 0x2d2d, 1, UCHAR_SCRIPT_GEORGIAN }, + { 0x2d30, 56, UCHAR_SCRIPT_TIFINAGH }, + { 0x2d6f, 2, UCHAR_SCRIPT_TIFINAGH }, + { 0x2d7f, 1, UCHAR_SCRIPT_TIFINAGH }, + { 0x2d80, 23, UCHAR_SCRIPT_ETHIOPIC }, + { 0x2da0, 7, UCHAR_SCRIPT_ETHIOPIC }, + { 0x2da8, 7, UCHAR_SCRIPT_ETHIOPIC }, + { 0x2db0, 7, UCHAR_SCRIPT_ETHIOPIC }, + { 0x2db8, 7, UCHAR_SCRIPT_ETHIOPIC }, + { 0x2dc0, 7, UCHAR_SCRIPT_ETHIOPIC }, + { 0x2dc8, 7, UCHAR_SCRIPT_ETHIOPIC }, + { 0x2dd0, 7, UCHAR_SCRIPT_ETHIOPIC }, + { 0x2dd8, 7, UCHAR_SCRIPT_ETHIOPIC }, + { 0x2de0, 32, UCHAR_SCRIPT_CYRILLIC }, + { 0x2e00, 79, UCHAR_SCRIPT_COMMON }, + { 0x2e80, 26, UCHAR_SCRIPT_HAN }, + { 0x2e9b, 89, UCHAR_SCRIPT_HAN }, + { 0x2f00, 214, UCHAR_SCRIPT_HAN }, + { 0x2ff0, 12, UCHAR_SCRIPT_COMMON }, + { 0x3000, 5, UCHAR_SCRIPT_COMMON }, + { 0x3005, 1, UCHAR_SCRIPT_HAN }, + { 0x3006, 1, UCHAR_SCRIPT_COMMON }, + { 0x3007, 1, UCHAR_SCRIPT_HAN }, + { 0x3008, 25, UCHAR_SCRIPT_COMMON }, + { 0x3021, 9, UCHAR_SCRIPT_HAN }, + { 0x302a, 4, UCHAR_SCRIPT_INHERITED }, + { 0x302e, 2, UCHAR_SCRIPT_HANGUL }, + { 0x3030, 8, UCHAR_SCRIPT_COMMON }, + { 0x3038, 4, UCHAR_SCRIPT_HAN }, + { 0x303c, 4, UCHAR_SCRIPT_COMMON }, + { 0x3041, 86, UCHAR_SCRIPT_HIRAGANA }, + { 0x3099, 2, UCHAR_SCRIPT_INHERITED }, + { 0x309b, 2, UCHAR_SCRIPT_COMMON }, + { 0x309d, 3, UCHAR_SCRIPT_HIRAGANA }, + { 0x30a0, 1, UCHAR_SCRIPT_COMMON }, + { 0x30a1, 90, UCHAR_SCRIPT_KATAKANA }, + { 0x30fb, 2, UCHAR_SCRIPT_COMMON }, + { 0x30fd, 3, UCHAR_SCRIPT_KATAKANA }, + { 0x3105, 43, UCHAR_SCRIPT_BOPOMOFO }, + { 0x3131, 94, UCHAR_SCRIPT_HANGUL }, + { 0x3190, 16, UCHAR_SCRIPT_COMMON }, + { 0x31a0, 27, UCHAR_SCRIPT_BOPOMOFO }, + { 0x31c0, 36, UCHAR_SCRIPT_COMMON }, + { 0x31f0, 16, UCHAR_SCRIPT_KATAKANA }, + { 0x3200, 31, UCHAR_SCRIPT_HANGUL }, + { 0x3220, 64, UCHAR_SCRIPT_COMMON }, + { 0x3260, 31, UCHAR_SCRIPT_HANGUL }, + { 0x327f, 81, UCHAR_SCRIPT_COMMON }, + { 0x32d0, 47, UCHAR_SCRIPT_KATAKANA }, + { 0x3300, 88, UCHAR_SCRIPT_KATAKANA }, + { 0x3358, 168, UCHAR_SCRIPT_COMMON }, + { 0x3400, 6582, UCHAR_SCRIPT_HAN }, + { 0x4dc0, 64, UCHAR_SCRIPT_COMMON }, + { 0x4e00, 20976, UCHAR_SCRIPT_HAN }, + { 0xa000, 1165, UCHAR_SCRIPT_YI }, + { 0xa490, 55, UCHAR_SCRIPT_YI }, + { 0xa4d0, 48, UCHAR_SCRIPT_LISU }, + { 0xa500, 300, UCHAR_SCRIPT_VAI }, + { 0xa640, 96, UCHAR_SCRIPT_CYRILLIC }, + { 0xa6a0, 88, UCHAR_SCRIPT_BAMUM }, + { 0xa700, 34, UCHAR_SCRIPT_COMMON }, + { 0xa722, 102, UCHAR_SCRIPT_LATIN }, + { 0xa788, 3, UCHAR_SCRIPT_COMMON }, + { 0xa78b, 47, UCHAR_SCRIPT_LATIN }, + { 0xa7f7, 9, UCHAR_SCRIPT_LATIN }, + { 0xa800, 44, UCHAR_SCRIPT_SYLOTI_NAGRI }, + { 0xa830, 10, UCHAR_SCRIPT_COMMON }, + { 0xa840, 56, UCHAR_SCRIPT_PHAGS_PA }, + { 0xa880, 70, UCHAR_SCRIPT_SAURASHTRA }, + { 0xa8ce, 12, UCHAR_SCRIPT_SAURASHTRA }, + { 0xa8e0, 32, UCHAR_SCRIPT_DEVANAGARI }, + { 0xa900, 46, UCHAR_SCRIPT_KAYAH_LI }, + { 0xa92e, 1, UCHAR_SCRIPT_COMMON }, + { 0xa92f, 1, UCHAR_SCRIPT_KAYAH_LI }, + { 0xa930, 36, UCHAR_SCRIPT_REJANG }, + { 0xa95f, 1, UCHAR_SCRIPT_REJANG }, + { 0xa960, 29, UCHAR_SCRIPT_HANGUL }, + { 0xa980, 78, UCHAR_SCRIPT_JAVANESE }, + { 0xa9cf, 1, UCHAR_SCRIPT_COMMON }, + { 0xa9d0, 10, UCHAR_SCRIPT_JAVANESE }, + { 0xa9de, 2, UCHAR_SCRIPT_JAVANESE }, + { 0xa9e0, 31, UCHAR_SCRIPT_MYANMAR }, + { 0xaa00, 55, UCHAR_SCRIPT_CHAM }, + { 0xaa40, 14, UCHAR_SCRIPT_CHAM }, + { 0xaa50, 10, UCHAR_SCRIPT_CHAM }, + { 0xaa5c, 4, UCHAR_SCRIPT_CHAM }, + { 0xaa60, 32, UCHAR_SCRIPT_MYANMAR }, + { 0xaa80, 67, UCHAR_SCRIPT_TAI_VIET }, + { 0xaadb, 5, UCHAR_SCRIPT_TAI_VIET }, + { 0xaae0, 23, UCHAR_SCRIPT_MEETEI_MAYEK }, + { 0xab01, 6, UCHAR_SCRIPT_ETHIOPIC }, + { 0xab09, 6, UCHAR_SCRIPT_ETHIOPIC }, + { 0xab11, 6, UCHAR_SCRIPT_ETHIOPIC }, + { 0xab20, 7, UCHAR_SCRIPT_ETHIOPIC }, + { 0xab28, 7, UCHAR_SCRIPT_ETHIOPIC }, + { 0xab30, 43, UCHAR_SCRIPT_LATIN }, + { 0xab5b, 1, UCHAR_SCRIPT_COMMON }, + { 0xab5c, 9, UCHAR_SCRIPT_LATIN }, + { 0xab65, 1, UCHAR_SCRIPT_GREEK }, + { 0xab70, 80, UCHAR_SCRIPT_CHEROKEE }, + { 0xabc0, 46, UCHAR_SCRIPT_MEETEI_MAYEK }, + { 0xabf0, 10, UCHAR_SCRIPT_MEETEI_MAYEK }, + { 0xac00, 11172, UCHAR_SCRIPT_HANGUL }, + { 0xd7b0, 23, UCHAR_SCRIPT_HANGUL }, + { 0xd7cb, 49, UCHAR_SCRIPT_HANGUL }, + { 0xf900, 366, UCHAR_SCRIPT_HAN }, + { 0xfa70, 106, UCHAR_SCRIPT_HAN }, + { 0xfb00, 7, UCHAR_SCRIPT_LATIN }, + { 0xfb13, 5, UCHAR_SCRIPT_ARMENIAN }, + { 0xfb1d, 26, UCHAR_SCRIPT_HEBREW }, + { 0xfb38, 5, UCHAR_SCRIPT_HEBREW }, + { 0xfb3e, 1, UCHAR_SCRIPT_HEBREW }, + { 0xfb40, 2, UCHAR_SCRIPT_HEBREW }, + { 0xfb43, 2, UCHAR_SCRIPT_HEBREW }, + { 0xfb46, 10, UCHAR_SCRIPT_HEBREW }, + { 0xfb50, 114, UCHAR_SCRIPT_ARABIC }, + { 0xfbd3, 363, UCHAR_SCRIPT_ARABIC }, + { 0xfd3e, 2, UCHAR_SCRIPT_COMMON }, + { 0xfd50, 64, UCHAR_SCRIPT_ARABIC }, + { 0xfd92, 54, UCHAR_SCRIPT_ARABIC }, + { 0xfdf0, 14, UCHAR_SCRIPT_ARABIC }, + { 0xfe00, 16, UCHAR_SCRIPT_INHERITED }, + { 0xfe10, 10, UCHAR_SCRIPT_COMMON }, + { 0xfe20, 14, UCHAR_SCRIPT_INHERITED }, + { 0xfe2e, 2, UCHAR_SCRIPT_CYRILLIC }, + { 0xfe30, 35, UCHAR_SCRIPT_COMMON }, + { 0xfe54, 19, UCHAR_SCRIPT_COMMON }, + { 0xfe68, 4, UCHAR_SCRIPT_COMMON }, + { 0xfe70, 5, UCHAR_SCRIPT_ARABIC }, + { 0xfe76, 135, UCHAR_SCRIPT_ARABIC }, + { 0xfeff, 1, UCHAR_SCRIPT_COMMON }, + { 0xff01, 32, UCHAR_SCRIPT_COMMON }, + { 0xff21, 26, UCHAR_SCRIPT_LATIN }, + { 0xff3b, 6, UCHAR_SCRIPT_COMMON }, + { 0xff41, 26, UCHAR_SCRIPT_LATIN }, + { 0xff5b, 11, UCHAR_SCRIPT_COMMON }, + { 0xff66, 10, UCHAR_SCRIPT_KATAKANA }, + { 0xff70, 1, UCHAR_SCRIPT_COMMON }, + { 0xff71, 45, UCHAR_SCRIPT_KATAKANA }, + { 0xff9e, 2, UCHAR_SCRIPT_COMMON }, + { 0xffa0, 31, UCHAR_SCRIPT_HANGUL }, + { 0xffc2, 6, UCHAR_SCRIPT_HANGUL }, + { 0xffca, 6, UCHAR_SCRIPT_HANGUL }, + { 0xffd2, 6, UCHAR_SCRIPT_HANGUL }, + { 0xffda, 3, UCHAR_SCRIPT_HANGUL }, + { 0xffe0, 7, UCHAR_SCRIPT_COMMON }, + { 0xffe8, 7, UCHAR_SCRIPT_COMMON }, + { 0xfff9, 5, UCHAR_SCRIPT_COMMON }, + { 0x10000, 12, UCHAR_SCRIPT_LINEAR_B }, + { 0x1000d, 26, UCHAR_SCRIPT_LINEAR_B }, + { 0x10028, 19, UCHAR_SCRIPT_LINEAR_B }, + { 0x1003c, 2, UCHAR_SCRIPT_LINEAR_B }, + { 0x1003f, 15, UCHAR_SCRIPT_LINEAR_B }, + { 0x10050, 14, UCHAR_SCRIPT_LINEAR_B }, + { 0x10080, 123, UCHAR_SCRIPT_LINEAR_B }, + { 0x10100, 3, UCHAR_SCRIPT_COMMON }, + { 0x10107, 45, UCHAR_SCRIPT_COMMON }, + { 0x10137, 9, UCHAR_SCRIPT_COMMON }, + { 0x10140, 79, UCHAR_SCRIPT_GREEK }, + { 0x10190, 12, UCHAR_SCRIPT_COMMON }, + { 0x101a0, 1, UCHAR_SCRIPT_GREEK }, + { 0x101d0, 45, UCHAR_SCRIPT_COMMON }, + { 0x101fd, 1, UCHAR_SCRIPT_INHERITED }, + { 0x10280, 29, UCHAR_SCRIPT_LYCIAN }, + { 0x102a0, 49, UCHAR_SCRIPT_CARIAN }, + { 0x102e0, 1, UCHAR_SCRIPT_INHERITED }, + { 0x102e1, 27, UCHAR_SCRIPT_COMMON }, + { 0x10300, 36, UCHAR_SCRIPT_OLD_ITALIC }, + { 0x1032d, 3, UCHAR_SCRIPT_OLD_ITALIC }, + { 0x10330, 27, UCHAR_SCRIPT_GOTHIC }, + { 0x10350, 43, UCHAR_SCRIPT_OLD_PERMIC }, + { 0x10380, 30, UCHAR_SCRIPT_UGARITIC }, + { 0x1039f, 1, UCHAR_SCRIPT_UGARITIC }, + { 0x103a0, 36, UCHAR_SCRIPT_OLD_PERSIAN }, + { 0x103c8, 14, UCHAR_SCRIPT_OLD_PERSIAN }, + { 0x10400, 80, UCHAR_SCRIPT_DESERET }, + { 0x10450, 48, UCHAR_SCRIPT_SHAVIAN }, + { 0x10480, 30, UCHAR_SCRIPT_OSMANYA }, + { 0x104a0, 10, UCHAR_SCRIPT_OSMANYA }, + { 0x104b0, 36, UCHAR_SCRIPT_OSAGE }, + { 0x104d8, 36, UCHAR_SCRIPT_OSAGE }, + { 0x10500, 40, UCHAR_SCRIPT_ELBASAN }, + { 0x10530, 52, UCHAR_SCRIPT_CAUCASIAN_ALBANIAN }, + { 0x1056f, 1, UCHAR_SCRIPT_CAUCASIAN_ALBANIAN }, + { 0x10600, 311, UCHAR_SCRIPT_LINEAR_A }, + { 0x10740, 22, UCHAR_SCRIPT_LINEAR_A }, + { 0x10760, 8, UCHAR_SCRIPT_LINEAR_A }, + { 0x10800, 6, UCHAR_SCRIPT_CYPRIOT }, + { 0x10808, 1, UCHAR_SCRIPT_CYPRIOT }, + { 0x1080a, 44, UCHAR_SCRIPT_CYPRIOT }, + { 0x10837, 2, UCHAR_SCRIPT_CYPRIOT }, + { 0x1083c, 1, UCHAR_SCRIPT_CYPRIOT }, + { 0x1083f, 1, UCHAR_SCRIPT_CYPRIOT }, + { 0x10840, 22, UCHAR_SCRIPT_IMPERIAL_ARAMAIC }, + { 0x10857, 9, UCHAR_SCRIPT_IMPERIAL_ARAMAIC }, + { 0x10860, 32, UCHAR_SCRIPT_PALMYRENE }, + { 0x10880, 31, UCHAR_SCRIPT_NABATAEAN }, + { 0x108a7, 9, UCHAR_SCRIPT_NABATAEAN }, + { 0x108e0, 19, UCHAR_SCRIPT_HATRAN }, + { 0x108f4, 2, UCHAR_SCRIPT_HATRAN }, + { 0x108fb, 5, UCHAR_SCRIPT_HATRAN }, + { 0x10900, 28, UCHAR_SCRIPT_PHOENICIAN }, + { 0x1091f, 1, UCHAR_SCRIPT_PHOENICIAN }, + { 0x10920, 26, UCHAR_SCRIPT_LYDIAN }, + { 0x1093f, 1, UCHAR_SCRIPT_LYDIAN }, + { 0x10980, 32, UCHAR_SCRIPT_MEROITIC_HIEROGLYPHS }, + { 0x109a0, 24, UCHAR_SCRIPT_MEROITIC_CURSIVE }, + { 0x109bc, 20, UCHAR_SCRIPT_MEROITIC_CURSIVE }, + { 0x109d2, 46, UCHAR_SCRIPT_MEROITIC_CURSIVE }, + { 0x10a00, 4, UCHAR_SCRIPT_KHAROSHTHI }, + { 0x10a05, 2, UCHAR_SCRIPT_KHAROSHTHI }, + { 0x10a0c, 8, UCHAR_SCRIPT_KHAROSHTHI }, + { 0x10a15, 3, UCHAR_SCRIPT_KHAROSHTHI }, + { 0x10a19, 29, UCHAR_SCRIPT_KHAROSHTHI }, + { 0x10a38, 3, UCHAR_SCRIPT_KHAROSHTHI }, + { 0x10a3f, 10, UCHAR_SCRIPT_KHAROSHTHI }, + { 0x10a50, 9, UCHAR_SCRIPT_KHAROSHTHI }, + { 0x10a60, 32, UCHAR_SCRIPT_OLD_SOUTH_ARABIAN }, + { 0x10a80, 32, UCHAR_SCRIPT_OLD_NORTH_ARABIAN }, + { 0x10ac0, 39, UCHAR_SCRIPT_MANICHAEAN }, + { 0x10aeb, 12, UCHAR_SCRIPT_MANICHAEAN }, + { 0x10b00, 54, UCHAR_SCRIPT_AVESTAN }, + { 0x10b39, 7, UCHAR_SCRIPT_AVESTAN }, + { 0x10b40, 22, UCHAR_SCRIPT_INSCRIPTIONAL_PARTHIAN }, + { 0x10b58, 8, UCHAR_SCRIPT_INSCRIPTIONAL_PARTHIAN }, + { 0x10b60, 19, UCHAR_SCRIPT_INSCRIPTIONAL_PAHLAVI }, + { 0x10b78, 8, UCHAR_SCRIPT_INSCRIPTIONAL_PAHLAVI }, + { 0x10b80, 18, UCHAR_SCRIPT_PSALTER_PAHLAVI }, + { 0x10b99, 4, UCHAR_SCRIPT_PSALTER_PAHLAVI }, + { 0x10ba9, 7, UCHAR_SCRIPT_PSALTER_PAHLAVI }, + { 0x10c00, 73, UCHAR_SCRIPT_OLD_TURKIC }, + { 0x10c80, 51, UCHAR_SCRIPT_OLD_HUNGARIAN }, + { 0x10cc0, 51, UCHAR_SCRIPT_OLD_HUNGARIAN }, + { 0x10cfa, 6, UCHAR_SCRIPT_OLD_HUNGARIAN }, + { 0x10d00, 40, UCHAR_SCRIPT_HANIFI_ROHINGYA }, + { 0x10d30, 10, UCHAR_SCRIPT_HANIFI_ROHINGYA }, + { 0x10e60, 31, UCHAR_SCRIPT_ARABIC }, + { 0x10f00, 40, UCHAR_SCRIPT_OLD_SOGDIAN }, + { 0x10f30, 42, UCHAR_SCRIPT_SOGDIAN }, + { 0x11000, 78, UCHAR_SCRIPT_BRAHMI }, + { 0x11052, 30, UCHAR_SCRIPT_BRAHMI }, + { 0x1107f, 1, UCHAR_SCRIPT_BRAHMI }, + { 0x11080, 66, UCHAR_SCRIPT_KAITHI }, + { 0x110cd, 1, UCHAR_SCRIPT_KAITHI }, + { 0x110d0, 25, UCHAR_SCRIPT_SORA_SOMPENG }, + { 0x110f0, 10, UCHAR_SCRIPT_SORA_SOMPENG }, + { 0x11100, 53, UCHAR_SCRIPT_CHAKMA }, + { 0x11136, 17, UCHAR_SCRIPT_CHAKMA }, + { 0x11150, 39, UCHAR_SCRIPT_MAHAJANI }, + { 0x11180, 78, UCHAR_SCRIPT_SHARADA }, + { 0x111d0, 16, UCHAR_SCRIPT_SHARADA }, + { 0x111e1, 20, UCHAR_SCRIPT_SINHALA }, + { 0x11200, 18, UCHAR_SCRIPT_KHOJKI }, + { 0x11213, 44, UCHAR_SCRIPT_KHOJKI }, + { 0x11280, 7, UCHAR_SCRIPT_MULTANI }, + { 0x11288, 1, UCHAR_SCRIPT_MULTANI }, + { 0x1128a, 4, UCHAR_SCRIPT_MULTANI }, + { 0x1128f, 15, UCHAR_SCRIPT_MULTANI }, + { 0x1129f, 11, UCHAR_SCRIPT_MULTANI }, + { 0x112b0, 59, UCHAR_SCRIPT_KHUDAWADI }, + { 0x112f0, 10, UCHAR_SCRIPT_KHUDAWADI }, + { 0x11300, 4, UCHAR_SCRIPT_GRANTHA }, + { 0x11305, 8, UCHAR_SCRIPT_GRANTHA }, + { 0x1130f, 2, UCHAR_SCRIPT_GRANTHA }, + { 0x11313, 22, UCHAR_SCRIPT_GRANTHA }, + { 0x1132a, 7, UCHAR_SCRIPT_GRANTHA }, + { 0x11332, 2, UCHAR_SCRIPT_GRANTHA }, + { 0x11335, 5, UCHAR_SCRIPT_GRANTHA }, + { 0x1133b, 1, UCHAR_SCRIPT_INHERITED }, + { 0x1133c, 9, UCHAR_SCRIPT_GRANTHA }, + { 0x11347, 2, UCHAR_SCRIPT_GRANTHA }, + { 0x1134b, 3, UCHAR_SCRIPT_GRANTHA }, + { 0x11350, 1, UCHAR_SCRIPT_GRANTHA }, + { 0x11357, 1, UCHAR_SCRIPT_GRANTHA }, + { 0x1135d, 7, UCHAR_SCRIPT_GRANTHA }, + { 0x11366, 7, UCHAR_SCRIPT_GRANTHA }, + { 0x11370, 5, UCHAR_SCRIPT_GRANTHA }, + { 0x11400, 90, UCHAR_SCRIPT_NEWA }, + { 0x1145b, 1, UCHAR_SCRIPT_NEWA }, + { 0x1145d, 2, UCHAR_SCRIPT_NEWA }, + { 0x11480, 72, UCHAR_SCRIPT_TIRHUTA }, + { 0x114d0, 10, UCHAR_SCRIPT_TIRHUTA }, + { 0x11580, 54, UCHAR_SCRIPT_SIDDHAM }, + { 0x115b8, 38, UCHAR_SCRIPT_SIDDHAM }, + { 0x11600, 69, UCHAR_SCRIPT_MODI }, + { 0x11650, 10, UCHAR_SCRIPT_MODI }, + { 0x11660, 13, UCHAR_SCRIPT_MONGOLIAN }, + { 0x11680, 56, UCHAR_SCRIPT_TAKRI }, + { 0x116c0, 10, UCHAR_SCRIPT_TAKRI }, + { 0x11700, 27, UCHAR_SCRIPT_AHOM }, + { 0x1171d, 15, UCHAR_SCRIPT_AHOM }, + { 0x11730, 16, UCHAR_SCRIPT_AHOM }, + { 0x11800, 60, UCHAR_SCRIPT_DOGRA }, + { 0x118a0, 83, UCHAR_SCRIPT_WARANG_CITI }, + { 0x118ff, 1, UCHAR_SCRIPT_WARANG_CITI }, + { 0x11a00, 72, UCHAR_SCRIPT_ZANABAZAR_SQUARE }, + { 0x11a50, 52, UCHAR_SCRIPT_SOYOMBO }, + { 0x11a86, 29, UCHAR_SCRIPT_SOYOMBO }, + { 0x11ac0, 57, UCHAR_SCRIPT_PAU_CIN_HAU }, + { 0x11c00, 9, UCHAR_SCRIPT_BHAIKSUKI }, + { 0x11c0a, 45, UCHAR_SCRIPT_BHAIKSUKI }, + { 0x11c38, 14, UCHAR_SCRIPT_BHAIKSUKI }, + { 0x11c50, 29, UCHAR_SCRIPT_BHAIKSUKI }, + { 0x11c70, 32, UCHAR_SCRIPT_MARCHEN }, + { 0x11c92, 22, UCHAR_SCRIPT_MARCHEN }, + { 0x11ca9, 14, UCHAR_SCRIPT_MARCHEN }, + { 0x11d00, 7, UCHAR_SCRIPT_MASARAM_GONDI }, + { 0x11d08, 2, UCHAR_SCRIPT_MASARAM_GONDI }, + { 0x11d0b, 44, UCHAR_SCRIPT_MASARAM_GONDI }, + { 0x11d3a, 1, UCHAR_SCRIPT_MASARAM_GONDI }, + { 0x11d3c, 2, UCHAR_SCRIPT_MASARAM_GONDI }, + { 0x11d3f, 9, UCHAR_SCRIPT_MASARAM_GONDI }, + { 0x11d50, 10, UCHAR_SCRIPT_MASARAM_GONDI }, + { 0x11d60, 6, UCHAR_SCRIPT_GUNJALA_GONDI }, + { 0x11d67, 2, UCHAR_SCRIPT_GUNJALA_GONDI }, + { 0x11d6a, 37, UCHAR_SCRIPT_GUNJALA_GONDI }, + { 0x11d90, 2, UCHAR_SCRIPT_GUNJALA_GONDI }, + { 0x11d93, 6, UCHAR_SCRIPT_GUNJALA_GONDI }, + { 0x11da0, 10, UCHAR_SCRIPT_GUNJALA_GONDI }, + { 0x11ee0, 25, UCHAR_SCRIPT_MAKASAR }, + { 0x12000, 922, UCHAR_SCRIPT_CUNEIFORM }, + { 0x12400, 111, UCHAR_SCRIPT_CUNEIFORM }, + { 0x12470, 5, UCHAR_SCRIPT_CUNEIFORM }, + { 0x12480, 196, UCHAR_SCRIPT_CUNEIFORM }, + { 0x13000, 1071, UCHAR_SCRIPT_EGYPTIAN_HIEROGLYPHS }, + { 0x14400, 583, UCHAR_SCRIPT_ANATOLIAN_HIEROGLYPHS }, + { 0x16800, 569, UCHAR_SCRIPT_BAMUM }, + { 0x16a40, 31, UCHAR_SCRIPT_MRO }, + { 0x16a60, 10, UCHAR_SCRIPT_MRO }, + { 0x16a6e, 2, UCHAR_SCRIPT_MRO }, + { 0x16ad0, 30, UCHAR_SCRIPT_BASSA_VAH }, + { 0x16af0, 6, UCHAR_SCRIPT_BASSA_VAH }, + { 0x16b00, 70, UCHAR_SCRIPT_PAHAWH_HMONG }, + { 0x16b50, 10, UCHAR_SCRIPT_PAHAWH_HMONG }, + { 0x16b5b, 7, UCHAR_SCRIPT_PAHAWH_HMONG }, + { 0x16b63, 21, UCHAR_SCRIPT_PAHAWH_HMONG }, + { 0x16b7d, 19, UCHAR_SCRIPT_PAHAWH_HMONG }, + { 0x16e40, 91, UCHAR_SCRIPT_MEDEFAIDRIN }, + { 0x16f00, 69, UCHAR_SCRIPT_MIAO }, + { 0x16f50, 47, UCHAR_SCRIPT_MIAO }, + { 0x16f8f, 17, UCHAR_SCRIPT_MIAO }, + { 0x16fe0, 1, UCHAR_SCRIPT_TANGUT }, + { 0x16fe1, 1, UCHAR_SCRIPT_NUSHU }, + { 0x17000, 6130, UCHAR_SCRIPT_TANGUT }, + { 0x18800, 755, UCHAR_SCRIPT_TANGUT }, + { 0x1b000, 1, UCHAR_SCRIPT_KATAKANA }, + { 0x1b001, 286, UCHAR_SCRIPT_HIRAGANA }, + { 0x1b170, 396, UCHAR_SCRIPT_NUSHU }, + { 0x1bc00, 107, UCHAR_SCRIPT_DUPLOYAN }, + { 0x1bc70, 13, UCHAR_SCRIPT_DUPLOYAN }, + { 0x1bc80, 9, UCHAR_SCRIPT_DUPLOYAN }, + { 0x1bc90, 10, UCHAR_SCRIPT_DUPLOYAN }, + { 0x1bc9c, 4, UCHAR_SCRIPT_DUPLOYAN }, + { 0x1bca0, 4, UCHAR_SCRIPT_COMMON }, + { 0x1d000, 246, UCHAR_SCRIPT_COMMON }, + { 0x1d100, 39, UCHAR_SCRIPT_COMMON }, + { 0x1d129, 62, UCHAR_SCRIPT_COMMON }, + { 0x1d167, 3, UCHAR_SCRIPT_INHERITED }, + { 0x1d16a, 17, UCHAR_SCRIPT_COMMON }, + { 0x1d17b, 8, UCHAR_SCRIPT_INHERITED }, + { 0x1d183, 2, UCHAR_SCRIPT_COMMON }, + { 0x1d185, 7, UCHAR_SCRIPT_INHERITED }, + { 0x1d18c, 30, UCHAR_SCRIPT_COMMON }, + { 0x1d1aa, 4, UCHAR_SCRIPT_INHERITED }, + { 0x1d1ae, 59, UCHAR_SCRIPT_COMMON }, + { 0x1d200, 70, UCHAR_SCRIPT_GREEK }, + { 0x1d2e0, 20, UCHAR_SCRIPT_COMMON }, + { 0x1d300, 87, UCHAR_SCRIPT_COMMON }, + { 0x1d360, 25, UCHAR_SCRIPT_COMMON }, + { 0x1d400, 85, UCHAR_SCRIPT_COMMON }, + { 0x1d456, 71, UCHAR_SCRIPT_COMMON }, + { 0x1d49e, 2, UCHAR_SCRIPT_COMMON }, + { 0x1d4a2, 1, UCHAR_SCRIPT_COMMON }, + { 0x1d4a5, 2, UCHAR_SCRIPT_COMMON }, + { 0x1d4a9, 4, UCHAR_SCRIPT_COMMON }, + { 0x1d4ae, 12, UCHAR_SCRIPT_COMMON }, + { 0x1d4bb, 1, UCHAR_SCRIPT_COMMON }, + { 0x1d4bd, 7, UCHAR_SCRIPT_COMMON }, + { 0x1d4c5, 65, UCHAR_SCRIPT_COMMON }, + { 0x1d507, 4, UCHAR_SCRIPT_COMMON }, + { 0x1d50d, 8, UCHAR_SCRIPT_COMMON }, + { 0x1d516, 7, UCHAR_SCRIPT_COMMON }, + { 0x1d51e, 28, UCHAR_SCRIPT_COMMON }, + { 0x1d53b, 4, UCHAR_SCRIPT_COMMON }, + { 0x1d540, 5, UCHAR_SCRIPT_COMMON }, + { 0x1d546, 1, UCHAR_SCRIPT_COMMON }, + { 0x1d54a, 7, UCHAR_SCRIPT_COMMON }, + { 0x1d552, 340, UCHAR_SCRIPT_COMMON }, + { 0x1d6a8, 292, UCHAR_SCRIPT_COMMON }, + { 0x1d7ce, 50, UCHAR_SCRIPT_COMMON }, + { 0x1d800, 652, UCHAR_SCRIPT_SIGNWRITING }, + { 0x1da9b, 5, UCHAR_SCRIPT_SIGNWRITING }, + { 0x1daa1, 15, UCHAR_SCRIPT_SIGNWRITING }, + { 0x1e000, 7, UCHAR_SCRIPT_GLAGOLITIC }, + { 0x1e008, 17, UCHAR_SCRIPT_GLAGOLITIC }, + { 0x1e01b, 7, UCHAR_SCRIPT_GLAGOLITIC }, + { 0x1e023, 2, UCHAR_SCRIPT_GLAGOLITIC }, + { 0x1e026, 5, UCHAR_SCRIPT_GLAGOLITIC }, + { 0x1e800, 197, UCHAR_SCRIPT_MENDE_KIKAKUI }, + { 0x1e8c7, 16, UCHAR_SCRIPT_MENDE_KIKAKUI }, + { 0x1e900, 75, UCHAR_SCRIPT_ADLAM }, + { 0x1e950, 10, UCHAR_SCRIPT_ADLAM }, + { 0x1e95e, 2, UCHAR_SCRIPT_ADLAM }, + { 0x1ec71, 68, UCHAR_SCRIPT_COMMON }, + { 0x1ee00, 4, UCHAR_SCRIPT_ARABIC }, + { 0x1ee05, 27, UCHAR_SCRIPT_ARABIC }, + { 0x1ee21, 2, UCHAR_SCRIPT_ARABIC }, + { 0x1ee24, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee27, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee29, 10, UCHAR_SCRIPT_ARABIC }, + { 0x1ee34, 4, UCHAR_SCRIPT_ARABIC }, + { 0x1ee39, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee3b, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee42, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee47, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee49, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee4b, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee4d, 3, UCHAR_SCRIPT_ARABIC }, + { 0x1ee51, 2, UCHAR_SCRIPT_ARABIC }, + { 0x1ee54, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee57, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee59, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee5b, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee5d, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee5f, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee61, 2, UCHAR_SCRIPT_ARABIC }, + { 0x1ee64, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee67, 4, UCHAR_SCRIPT_ARABIC }, + { 0x1ee6c, 7, UCHAR_SCRIPT_ARABIC }, + { 0x1ee74, 4, UCHAR_SCRIPT_ARABIC }, + { 0x1ee79, 4, UCHAR_SCRIPT_ARABIC }, + { 0x1ee7e, 1, UCHAR_SCRIPT_ARABIC }, + { 0x1ee80, 10, UCHAR_SCRIPT_ARABIC }, + { 0x1ee8b, 17, UCHAR_SCRIPT_ARABIC }, + { 0x1eea1, 3, UCHAR_SCRIPT_ARABIC }, + { 0x1eea5, 5, UCHAR_SCRIPT_ARABIC }, + { 0x1eeab, 17, UCHAR_SCRIPT_ARABIC }, + { 0x1eef0, 2, UCHAR_SCRIPT_ARABIC }, + { 0x1f000, 44, UCHAR_SCRIPT_COMMON }, + { 0x1f030, 100, UCHAR_SCRIPT_COMMON }, + { 0x1f0a0, 15, UCHAR_SCRIPT_COMMON }, + { 0x1f0b1, 15, UCHAR_SCRIPT_COMMON }, + { 0x1f0c1, 15, UCHAR_SCRIPT_COMMON }, + { 0x1f0d1, 37, UCHAR_SCRIPT_COMMON }, + { 0x1f100, 13, UCHAR_SCRIPT_COMMON }, + { 0x1f110, 92, UCHAR_SCRIPT_COMMON }, + { 0x1f170, 61, UCHAR_SCRIPT_COMMON }, + { 0x1f1e6, 26, UCHAR_SCRIPT_COMMON }, + { 0x1f200, 1, UCHAR_SCRIPT_HIRAGANA }, + { 0x1f201, 2, UCHAR_SCRIPT_COMMON }, + { 0x1f210, 44, UCHAR_SCRIPT_COMMON }, + { 0x1f240, 9, UCHAR_SCRIPT_COMMON }, + { 0x1f250, 2, UCHAR_SCRIPT_COMMON }, + { 0x1f260, 6, UCHAR_SCRIPT_COMMON }, + { 0x1f300, 981, UCHAR_SCRIPT_COMMON }, + { 0x1f6e0, 13, UCHAR_SCRIPT_COMMON }, + { 0x1f6f0, 10, UCHAR_SCRIPT_COMMON }, + { 0x1f700, 116, UCHAR_SCRIPT_COMMON }, + { 0x1f780, 89, UCHAR_SCRIPT_COMMON }, + { 0x1f800, 12, UCHAR_SCRIPT_COMMON }, + { 0x1f810, 56, UCHAR_SCRIPT_COMMON }, + { 0x1f850, 10, UCHAR_SCRIPT_COMMON }, + { 0x1f860, 40, UCHAR_SCRIPT_COMMON }, + { 0x1f890, 30, UCHAR_SCRIPT_COMMON }, + { 0x1f900, 12, UCHAR_SCRIPT_COMMON }, + { 0x1f910, 47, UCHAR_SCRIPT_COMMON }, + { 0x1f940, 49, UCHAR_SCRIPT_COMMON }, + { 0x1f973, 4, UCHAR_SCRIPT_COMMON }, + { 0x1f97a, 1, UCHAR_SCRIPT_COMMON }, + { 0x1f97c, 39, UCHAR_SCRIPT_COMMON }, + { 0x1f9b0, 10, UCHAR_SCRIPT_COMMON }, + { 0x1f9c0, 3, UCHAR_SCRIPT_COMMON }, + { 0x1f9d0, 48, UCHAR_SCRIPT_COMMON }, + { 0x1fa60, 14, UCHAR_SCRIPT_COMMON }, + { 0x20000, 42711, UCHAR_SCRIPT_HAN }, + { 0x2a700, 4149, UCHAR_SCRIPT_HAN }, + { 0x2b740, 222, UCHAR_SCRIPT_HAN }, + { 0x2b820, 5762, UCHAR_SCRIPT_HAN }, + { 0x2ceb0, 7473, UCHAR_SCRIPT_HAN }, + { 0x2f800, 542, UCHAR_SCRIPT_HAN }, + { 0xe0001, 1, UCHAR_SCRIPT_COMMON }, + { 0xe0020, 96, UCHAR_SCRIPT_COMMON }, + { 0xe0100, 240, UCHAR_SCRIPT_INHERITED }, +}; + +#endif /* SCRIPTTABLES_H */ diff --git a/src/font/unicode-tables.h b/src/font/unicode-tables.h index a8b5e36b..37bfef2a 100644 --- a/src/font/unicode-tables.h +++ b/src/font/unicode-tables.h @@ -1,35 +1,6 @@ /* - * This file is part of MiniGUI, a mature cross-platform windowing - * and Graphics User Interface (GUI) support system for embedded systems - * and smart IoT devices. - * - * Copyright (C) 2002~2018, Beijing FMSoft Technologies Co., Ltd. - * Copyright (C) 1998~2002, WEI Yongming - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * Or, - * - * As this program is a library, any link to this program must follow - * GNU General Public License version 3 (GPLv3). If you cannot accept - * GPLv3, you need to be licensed from FMSoft. - * - * If you have got a commercial license of this program, please use it - * under the terms and conditions of the commercial license. - * - * For more information about the commercial license, please refer to - * . + * This file is copied from LGPL'd glib 2.59. + * It is automatically generated by gen-unicode-tables.pl */ #ifndef CHARTABLES_H diff --git a/src/font/utils/gen-unicode-tables.pl b/src/font/utils/gen-unicode-tables.pl new file mode 100755 index 00000000..f61ab2c3 --- /dev/null +++ b/src/font/utils/gen-unicode-tables.pl @@ -0,0 +1,1552 @@ +#! /usr/bin/perl -w + +# Copyright (C) 1998, 1999 Tom Tromey +# Copyright (C) 2001 Red Hat Software + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . + +# Contributer(s): +# Andrew Taylor + +# gen-unicode-tables.pl - Generate tables for libunicode from Unicode data. +# See http://www.unicode.org/Public/UNIDATA/UnicodeCharacterDatabase.html +# I consider the output of this program to be unrestricted. Use it as +# you will. + +# FIXME: +# * For decomp table it might make sense to use a shift count other +# than 8. We could easily compute the perfect shift count. + +# we use some perl unicode features +require 5.006; + +use bytes; + +use vars qw($CODE $NAME $CATEGORY $COMBINING_CLASSES $BIDI_CATEGORY $DECOMPOSITION $DECIMAL_VALUE $DIGIT_VALUE $NUMERIC_VALUE $MIRRORED $OLD_NAME $COMMENT $UPPER $LOWER $TITLE $BREAK_CODE $BREAK_CATEGORY $BREAK_NAME $CASE_CODE $CASE_LOWER $CASE_TITLE $CASE_UPPER $CASE_CONDITION); + + +# Names of fields in Unicode data table. +$CODE = 0; +$NAME = 1; +$CATEGORY = 2; +$COMBINING_CLASSES = 3; +$BIDI_CATEGORY = 4; +$DECOMPOSITION = 5; +$DECIMAL_VALUE = 6; +$DIGIT_VALUE = 7; +$NUMERIC_VALUE = 8; +$MIRRORED = 9; +$OLD_NAME = 10; +$COMMENT = 11; +$UPPER = 12; +$LOWER = 13; +$TITLE = 14; + +# Names of fields in the line break table +$BREAK_CODE = 0; +$BREAK_PROPERTY = 1; + +# Names of fields in the SpecialCasing table +$CASE_CODE = 0; +$CASE_LOWER = 1; +$CASE_TITLE = 2; +$CASE_UPPER = 3; +$CASE_CONDITION = 4; + +# Names of fields in the CaseFolding table +$FOLDING_CODE = 0; +$FOLDING_STATUS = 1; +$FOLDING_MAPPING = 2; + +# Map general category code onto symbolic name. +%mappings = + ( + # Normative. + 'Lu' => "UCHAR_TYPE_UPPERCASE_LETTER", + 'Ll' => "UCHAR_TYPE_LOWERCASE_LETTER", + 'Lt' => "UCHAR_TYPE_TITLECASE_LETTER", + 'Mn' => "UCHAR_TYPE_NON_SPACING_MARK", + 'Mc' => "UCHAR_TYPE_SPACING_MARK", + 'Me' => "UCHAR_TYPE_ENCLOSING_MARK", + 'Nd' => "UCHAR_TYPE_DECIMAL_NUMBER", + 'Nl' => "UCHAR_TYPE_LETTER_NUMBER", + 'No' => "UCHAR_TYPE_OTHER_NUMBER", + 'Zs' => "UCHAR_TYPE_SPACE_SEPARATOR", + 'Zl' => "UCHAR_TYPE_LINE_SEPARATOR", + 'Zp' => "UCHAR_TYPE_PARAGRAPH_SEPARATOR", + 'Cc' => "UCHAR_TYPE_CONTROL", + 'Cf' => "UCHAR_TYPE_FORMAT", + 'Cs' => "UCHAR_TYPE_SURROGATE", + 'Co' => "UCHAR_TYPE_PRIVATE_USE", + 'Cn' => "UCHAR_TYPE_UNASSIGNED", + + # Informative. + 'Lm' => "UCHAR_TYPE_MODIFIER_LETTER", + 'Lo' => "UCHAR_TYPE_OTHER_LETTER", + 'Pc' => "UCHAR_TYPE_CONNECT_PUNCTUATION", + 'Pd' => "UCHAR_TYPE_DASH_PUNCTUATION", + 'Ps' => "UCHAR_TYPE_OPEN_PUNCTUATION", + 'Pe' => "UCHAR_TYPE_CLOSE_PUNCTUATION", + 'Pi' => "UCHAR_TYPE_INITIAL_PUNCTUATION", + 'Pf' => "UCHAR_TYPE_FINAL_PUNCTUATION", + 'Po' => "UCHAR_TYPE_OTHER_PUNCTUATION", + 'Sm' => "UCHAR_TYPE_MATH_SYMBOL", + 'Sc' => "UCHAR_TYPE_CURRENCY_SYMBOL", + 'Sk' => "UCHAR_TYPE_MODIFIER_SYMBOL", + 'So' => "UCHAR_TYPE_OTHER_SYMBOL" + ); + +%break_mappings = + ( + 'AI' => "UCHAR_BREAK_AMBIGUOUS", + 'AL' => "UCHAR_BREAK_ALPHABETIC", + 'B2' => "UCHAR_BREAK_BEFORE_AND_AFTER", + 'BA' => "UCHAR_BREAK_AFTER", + 'BB' => "UCHAR_BREAK_BEFORE", + 'BK' => "UCHAR_BREAK_MANDATORY", + 'CB' => "UCHAR_BREAK_CONTINGENT", + 'CJ' => "UCHAR_BREAK_CONDITIONAL_JAPANESE_STARTER", + 'CL' => "UCHAR_BREAK_CLOSE_PUNCTUATION", + 'CM' => "UCHAR_BREAK_COMBINING_MARK", + 'CP' => "UCHAR_BREAK_CLOSE_PARANTHESIS", + 'CR' => "UCHAR_BREAK_CARRIAGE_RETURN", + 'EB' => "UCHAR_BREAK_EMOJI_BASE", + 'EM' => "UCHAR_BREAK_EMOJI_MODIFIER", + 'EX' => "UCHAR_BREAK_EXCLAMATION", + 'GL' => "UCHAR_BREAK_NON_BREAKING_GLUE", + 'H2' => "UCHAR_BREAK_HANGUL_LV_SYLLABLE", + 'H3' => "UCHAR_BREAK_HANGUL_LVT_SYLLABLE", + 'HL' => "UCHAR_BREAK_HEBREW_LETTER", + 'HY' => "UCHAR_BREAK_HYPHEN", + 'ID' => "UCHAR_BREAK_IDEOGRAPHIC", + 'IN' => "UCHAR_BREAK_INSEPARABLE", + 'IS' => "UCHAR_BREAK_INFIX_SEPARATOR", + 'JL' => "UCHAR_BREAK_HANGUL_L_JAMO", + 'JT' => "UCHAR_BREAK_HANGUL_T_JAMO", + 'JV' => "UCHAR_BREAK_HANGUL_V_JAMO", + 'LF' => "UCHAR_BREAK_LINE_FEED", + 'NL' => "UCHAR_BREAK_NEXT_LINE", + 'NS' => "UCHAR_BREAK_NON_STARTER", + 'NU' => "UCHAR_BREAK_NUMERIC", + 'OP' => "UCHAR_BREAK_OPEN_PUNCTUATION", + 'PO' => "UCHAR_BREAK_POSTFIX", + 'PR' => "UCHAR_BREAK_PREFIX", + 'QU' => "UCHAR_BREAK_QUOTATION", + 'RI' => "UCHAR_BREAK_REGIONAL_INDICATOR", + 'SA' => "UCHAR_BREAK_COMPLEX_CONTEXT", + 'SG' => "UCHAR_BREAK_SURROGATE", + 'SP' => "UCHAR_BREAK_SPACE", + 'SY' => "UCHAR_BREAK_SYMBOL", + 'WJ' => "UCHAR_BREAK_WORD_JOINER", + 'XX' => "UCHAR_BREAK_UNKNOWN", + 'ZW' => "UCHAR_BREAK_ZERO_WIDTH_SPACE", + 'ZWJ' => "UCHAR_BREAK_ZERO_WIDTH_JOINER" + ); + +# Title case mappings. +%title_to_lower = (); +%title_to_upper = (); + +# Maximum length of special-case strings + +my @special_cases; +my @special_case_offsets; +my $special_case_offset = 0; + +# Scripts + +my @scripts; + +# East asian widths + +my @eawidths; + +$do_decomp = 0; +$do_props = 1; +$do_scripts = 1; +if (@ARGV && $ARGV[0] eq '-decomp') +{ + $do_decomp = 1; + $do_props = 0; + shift @ARGV; +} +elsif (@ARGV && $ARGV[0] eq '-both') +{ + $do_decomp = 1; + shift @ARGV; +} + +if (@ARGV != 2) { + $0 =~ s@.*/@@; + die "\nUsage: $0 [-decomp | -both] UNICODE-VERSION DIRECTORY\n\n DIRECTORY should contain the following Unicode data files:\n UnicodeData.txt, LineBreak.txt, SpecialCasing.txt, CaseFolding.txt,\n CompositionExclusions.txt Scripts.txt extracted/DerivedEastAsianWidth.txt \n\n"; +} + +my ($unicodedatatxt, $linebreaktxt, $specialcasingtxt, $casefoldingtxt, $compositionexclusionstxt, + $scriptstxt, $derivedeastasianwidth); + +my $d = $ARGV[1]; +opendir (my $dir, $d) or die "Cannot open Unicode data dir $d: $!\n"; +for my $f (readdir ($dir)) +{ + $unicodedatatxt = "$d/$f" if ($f =~ /^UnicodeData.*\.txt/); + $linebreaktxt = "$d/$f" if ($f =~ /^LineBreak.*\.txt/); + $specialcasingtxt = "$d/$f" if ($f =~ /^SpecialCasing.*\.txt/); + $casefoldingtxt = "$d/$f" if ($f =~ /^CaseFolding.*\.txt/); + $compositionexclusionstxt = "$d/$f" if ($f =~ /^CompositionExclusions.*\.txt/); + $scriptstxt = "$d/$f" if ($f =~ /^Scripts.*\.txt/); +} + +my $extd = $ARGV[1] . "/extracted"; +opendir (my $extdir, $extd) or die "Cannot open Unicode/extracted data dir $extd: $!\n"; +for my $f (readdir ($extdir)) +{ + $derivedeastasianwidthtxt = "$extd/$f" if ($f =~ /^DerivedEastAsianWidth.*\.txt/); +} + +defined $unicodedatatxt or die "Did not find UnicodeData file"; +defined $linebreaktxt or die "Did not find LineBreak file"; +defined $specialcasingtxt or die "Did not find SpecialCasing file"; +defined $casefoldingtxt or die "Did not find CaseFolding file"; +defined $compositionexclusionstxt or die "Did not find CompositionExclusions file"; +defined $scriptstxt or die "Did not find Scripts file"; +defined $derivedeastasianwidthtxt or die "Did not find DerivedEastAsianWidth file"; + +print "Creating decomp table\n" if ($do_decomp); +print "Creating property table\n" if ($do_props); + +print "Composition exlusions from $compositionexclusionstxt\n"; + +open (INPUT, "< $compositionexclusionstxt") || exit 1; + +while () { + + chop; + + next if /^#/; + next if /^\s*$/; + + s/\s*#.*//; + + s/^\s*//; + s/\s*$//; + + $composition_exclusions{hex($_)} = 1; +} + +close INPUT; + +print "Unicode data from $unicodedatatxt\n"; + +open (INPUT, "< $unicodedatatxt") || exit 1; + +# we save memory by skipping the huge empty area before U+E0000 +my $pages_before_e0000; + +$last_code = -1; +while () +{ + chop; + @fields = split (';', $_, 30); + if ($#fields != 14) + { + printf STDERR ("Entry for $fields[$CODE] has wrong number of fields (%d)\n", $#fields); + } + + $code = hex ($fields[$CODE]); + + if ($code >= 0xE0000 and $last_code < 0xE0000) + { + $pages_before_e0000 = ($last_code >> 8) + 1; + } + + if ($code > $last_code + 1) + { + # Found a gap. + if ($fields[$NAME] =~ /Last>/) + { + # Fill the gap with the last character read, + # since this was a range specified in the char database + @gfields = @fields; + } + else + { + # The gap represents undefined characters. Only the type + # matters. + @gfields = ('', '', 'Cn', '0', '', '', '', '', '', '', '', + '', '', '', ''); + } + for (++$last_code; $last_code < $code; ++$last_code) + { + $gfields{$CODE} = sprintf ("%04x", $last_code); + &process_one ($last_code, @gfields); + } + } + &process_one ($code, @fields); + $last_code = $code; +} + +close INPUT; + +@gfields = ('', '', 'Cn', '0', '', '', '', '', '', '', '', + '', '', '', ''); +for (++$last_code; $last_code <= 0x10FFFF; ++$last_code) +{ + $gfields{$CODE} = sprintf ("%04x", $last_code); + &process_one ($last_code, @gfields); +} +--$last_code; # Want last to be 0x10FFFF. + +print "Creating line break table\n"; + +print "Line break data from $linebreaktxt\n"; + +open (INPUT, "< $linebreaktxt") || exit 1; + +$last_code = -1; +while () +{ + my ($start_code, $end_code); + + chop; + + next if /^#/; + next if /^$/; + + s/\s*#.*//; + + @fields = split (';', $_, 30); + if ($#fields != 1) + { + printf STDERR ("Entry for $fields[$CODE] has wrong number of fields (%d)\n", $#fields); + next; + } + + if ($fields[$CODE] =~ /([A-F0-9]{4,6})\.\.([A-F0-9]{4,6})/) + { + $start_code = hex ($1); + $end_code = hex ($2); + } else { + $start_code = $end_code = hex ($fields[$CODE]); + + } + + if ($start_code > $last_code + 1) + { + # The gap represents undefined characters. If assigned, + # they are AL, if not assigned, XX + for (++$last_code; $last_code < $start_code; ++$last_code) + { + if ($type[$last_code] eq 'Cn') + { + $break_props[$last_code] = 'XX'; + } + else + { + $break_props[$last_code] = 'AL'; + } + } + } + + for ($last_code = $start_code; $last_code <= $end_code; $last_code++) + { + $break_props[$last_code] = $fields[$BREAK_PROPERTY]; + } + + $last_code = $end_code; +} + +close INPUT; + +for (++$last_code; $last_code <= 0x10FFFF; ++$last_code) +{ + if ($type[$last_code] eq 'Cn') + { + $break_props[$last_code] = 'XX'; + } + else + { + $break_props[$last_code] = 'AL'; + } +} +--$last_code; # Want last to be 0x10FFFF. + +print STDERR "Last code is not 0x10FFFF" if ($last_code != 0x10FFFF); + +print "Reading special-casing table for case conversion\n"; + +open (INPUT, "< $specialcasingtxt") || exit 1; + +while () +{ + my $code; + + chop; + + next if /^#/; + next if /^\s*$/; + + s/\s*#.*//; + + @fields = split ('\s*;\s*', $_, 30); + + $raw_code = $fields[$CASE_CODE]; + $code = hex ($raw_code); + + if ($#fields != 4 && $#fields != 5) + { + printf STDERR ("Entry for $raw_code has wrong number of fields (%d)\n", $#fields); + next; + } + + if (!defined $type[$code]) + { + printf STDERR "Special case for code point: $code, which has no defined type\n"; + next; + } + + if (defined $fields[5]) { + # Ignore conditional special cases - we'll handle them in code + next; + } + + if ($type[$code] eq 'Lu') + { + (hex $fields[$CASE_UPPER] == $code) || die "$raw_code is Lu and UCD_Upper($raw_code) != $raw_code"; + + &add_special_case ($code, $value[$code], $fields[$CASE_LOWER], $fields[$CASE_TITLE]); + + } elsif ($type[$code] eq 'Lt') + { + (hex $fields[$CASE_TITLE] == $code) || die "$raw_code is Lt and UCD_Title($raw_code) != $raw_code"; + + &add_special_case ($code, undef, $fields[$CASE_LOWER], $fields[$CASE_UPPER]); + } elsif ($type[$code] eq 'Ll') + { + (hex $fields[$CASE_LOWER] == $code) || die "$raw_code is Ll and UCD_Lower($raw_code) != $raw_code"; + + &add_special_case ($code, $value[$code], $fields[$CASE_UPPER], $fields[$CASE_TITLE]); + } else { + printf STDERR "Special case for non-alphabetic code point: $raw_code\n"; + next; + } +} + +close INPUT; + +open (INPUT, "< $casefoldingtxt") || exit 1; + +my $casefoldlen = 0; +my @casefold; + +while () +{ + my $code; + + chop; + + next if /^#/; + next if /^\s*$/; + + s/\s*#.*//; + + @fields = split ('\s*;\s*', $_, 30); + + $raw_code = $fields[$FOLDING_CODE]; + $code = hex ($raw_code); + + if ($#fields != 3) + { + printf STDERR ("Entry for $raw_code has wrong number of fields (%d)\n", $#fields); + next; + } + + # we don't use Simple or Turkic rules here + next if ($fields[$FOLDING_STATUS] =~ /^[ST]$/); + + @values = map { hex ($_) } split /\s+/, $fields[$FOLDING_MAPPING]; + + # Check simple case + + if (@values == 1 && + !(defined $value[$code] && $value[$code] >= 0x1000000) && + defined $type[$code]) { + + my $lower; + if ($type[$code] eq 'Ll') + { + $lower = $code; + } elsif ($type[$code] eq 'Lt') + { + $lower = $title_to_lower{$code}; + } elsif ($type[$code] eq 'Lu') + { + $lower = $value[$code]; + } else { + $lower = $code; + } + + if ($lower == $values[0]) { + next; + } + } + + my $string = pack ("U*", @values); + + if (1 + &length_in_bytes ($string) > $casefoldlen) { + $casefoldlen = 1 + &length_in_bytes ($string); + } + + push @casefold, [ $code, &escape ($string) ]; +} + +close INPUT; + +print "Reading scripts\n"; + +open (INPUT, "< $scriptstxt") || exit 1; + +while () { + s/#.*//; + next if /^\s*$/; + if (!/^([0-9A-F]+)(?:\.\.([0-9A-F]+))?\s*;\s*([A-Za-z_]+)\s*$/) { + die "Cannot parse line: '$_'\n"; + } + + if (defined $2) { + push @scripts, [ hex $1, hex $2, uc $3 ]; + } else { + push @scripts, [ hex $1, hex $1, uc $3 ]; + } +} + +close INPUT; + +print "Reading derived east asian widths\n"; + +open (INPUT, "< $derivedeastasianwidthtxt") || exit 1; + +while () +{ + my ($start_code, $end_code); + + chop; + + s/#.*//; + next if /^\s*$/; + if (!/^([0-9A-F]+)(?:\.\.([0-9A-F]+))?\s*;\s*([A-Za-z_]+)\s*$/) { + die "Cannot parse line: '$_'\n"; + } + + if (defined $2) { + push @eawidths, [ hex $1, hex $2, $3 ]; + } else { + push @eawidths, [ hex $1, hex $1, $3 ]; + } +} + +close INPUT; + +if ($do_props) { + &print_tables ($last_code) +} +if ($do_decomp) { + &print_decomp ($last_code); + &output_composition_table; +} +&print_line_break ($last_code); + +if ($do_scripts) { + &print_scripts +} + +exit 0; + + +# perl "length" returns the length in characters +sub length_in_bytes +{ + my ($string) = @_; + + return length $string; +} + +# Process a single character. +sub process_one +{ + my ($code, @fields) = @_; + + $type[$code] = $fields[$CATEGORY]; + if ($type[$code] eq 'Nd') + { + $value[$code] = int ($fields[$DECIMAL_VALUE]); + } + elsif ($type[$code] eq 'Ll') + { + $value[$code] = hex ($fields[$UPPER]); + } + elsif ($type[$code] eq 'Lu') + { + $value[$code] = hex ($fields[$LOWER]); + } + + if ($type[$code] eq 'Lt') + { + $title_to_lower{$code} = hex ($fields[$LOWER]); + $title_to_upper{$code} = hex ($fields[$UPPER]); + } + + $cclass[$code] = $fields[$COMBINING_CLASSES]; + + # Handle decompositions. + if ($fields[$DECOMPOSITION] ne '') + { + if ($fields[$DECOMPOSITION] =~ s/\<.*\>\s*//) { + $decompose_compat[$code] = 1; + } else { + $decompose_compat[$code] = 0; + + if (!exists $composition_exclusions{$code}) { + $compositions{$code} = $fields[$DECOMPOSITION]; + } + } + $decompositions[$code] = $fields[$DECOMPOSITION]; + } +} + +sub print_tables +{ + my ($last) = @_; + my ($outfile) = "unsigned inttables.h"; + + local ($bytes_out) = 0; + + print "Writing $outfile...\n"; + + open (OUT, "> $outfile"); + + print OUT "/* This file is automatically generated. DO NOT EDIT!\n"; + print OUT " Instead, edit gen-unicode-tables.pl and re-run. */\n\n"; + + print OUT "#ifndef CHARTABLES_H\n"; + print OUT "#define CHARTABLES_H\n\n"; + + print OUT "#define UCHAR_DATA_VERSION \"$ARGV[0]\"\n\n"; + + printf OUT "#define UCHAR_LAST_CHAR 0x%04x\n\n", $last; + + printf OUT "#define UCHAR_MAX_TABLE_INDEX 10000\n\n"; + + my $last_part1 = ($pages_before_e0000 * 256) - 1; + printf OUT "#define UCHAR_LAST_CHAR_PART1 0x%04X\n\n", $last_part1; + printf OUT "#define UCHAR_LAST_PAGE_PART1 %d\n\n", $pages_before_e0000 - 1; + + $table_index = 0; + printf OUT "static const char type_data[][256] = {\n"; + for ($count = 0; $count <= $last; $count += 256) + { + $row[$count / 256] = &print_row ($count, 1, \&fetch_type); + } + printf OUT "\n};\n\n"; + + printf OUT "/* U+0000 through U+%04X */\n", $last_part1; + print OUT "static const gint16 type_table_part1[$pages_before_e0000] = {\n"; + for ($count = 0; $count <= $last_part1; $count += 256) + { + print OUT ",\n" if $count > 0; + print OUT " ", $row[$count / 256]; + $bytes_out += 2; + } + print OUT "\n};\n\n"; + + printf OUT "/* U+E0000 through U+%04X */\n", $last; + print OUT "static const gint16 type_table_part2[768] = {\n"; + for ($count = 0xE0000; $count <= $last; $count += 256) + { + print OUT ",\n" if $count > 0xE0000; + print OUT " ", $row[$count / 256]; + $bytes_out += 2; + } + print OUT "\n};\n\n"; + + + # + # Now print attribute table. + # + + $table_index = 0; + printf OUT "static const unsigned int attr_data[][256] = {\n"; + for ($count = 0; $count <= $last; $count += 256) + { + $row[$count / 256] = &print_row ($count, 4, \&fetch_attr); + } + printf OUT "\n};\n\n"; + + printf OUT "/* U+0000 through U+%04X */\n", $last_part1; + print OUT "static const gint16 attr_table_part1[$pages_before_e0000] = {\n"; + for ($count = 0; $count <= $last_part1; $count += 256) + { + print OUT ",\n" if $count > 0; + print OUT " ", $row[$count / 256]; + $bytes_out += 2; + } + print OUT "\n};\n\n"; + + printf OUT "/* U+E0000 through U+%04X */\n", $last; + print OUT "static const gint16 attr_table_part2[768] = {\n"; + for ($count = 0xE0000; $count <= $last; $count += 256) + { + print OUT ",\n" if $count > 0xE0000; + print OUT " ", $row[$count / 256]; + $bytes_out += 2; + } + print OUT "\n};\n\n"; + + # + # print title case table + # + + print OUT "static const unsigned int title_table[][3] = {\n"; + my ($item); + my ($first) = 1; + foreach $item (sort keys %title_to_lower) + { + print OUT ",\n" + unless $first; + $first = 0; + printf OUT " { 0x%04x, 0x%04x, 0x%04x }", $item, $title_to_upper{$item}, $title_to_lower{$item}; + $bytes_out += 12; + } + print OUT "\n};\n\n"; + + # + # And special case conversion table -- conversions that change length + # + &output_special_case_table (\*OUT); + &output_casefold_table (\*OUT); + + # + # And the widths tables + # + &output_width_tables (\*OUT); + + print OUT "#endif /* CHARTABLES_H */\n"; + + close (OUT); + + printf STDERR "Generated %d bytes in tables\n", $bytes_out; +} + +# A fetch function for the type table. +sub fetch_type +{ + my ($index) = @_; + return $mappings{$type[$index]}; +} + +# A fetch function for the attribute table. +sub fetch_attr +{ + my ($index) = @_; + if (defined $value[$index]) + { + return sprintf ("0x%04x", $value[$index]); + } + else + { + return "0x0000"; + } +} + +sub print_row +{ + my ($start, $typsize, $fetcher) = @_; + + my ($i); + my (@values); + my ($flag) = 1; + my ($off); + + for ($off = 0; $off < 256; ++$off) + { + $values[$off] = $fetcher->($off + $start); + if ($values[$off] ne $values[0]) + { + $flag = 0; + } + } + if ($flag) + { + return $values[0] . " + UCHAR_MAX_TABLE_INDEX"; + } + + printf OUT ",\n" if ($table_index != 0); + printf OUT " { /* page %d, index %d */\n ", $start / 256, $table_index; + my ($column) = 4; + for ($i = $start; $i < $start + 256; ++$i) + { + print OUT ", " + if $i > $start; + my ($text) = $values[$i - $start]; + if (length ($text) + $column + 2 > 78) + { + print OUT "\n "; + $column = 4; + } + print OUT $text; + $column += length ($text) + 2; + } + print OUT "\n }"; + + $bytes_out += 256 * $typsize; + + return sprintf "%d /* page %d */", $table_index++, $start / 256; +} + +sub escape +{ + my ($string) = @_; + + my $escaped = unpack("H*", $string); + $escaped =~ s/(.{2})/\\x$1/g; + + return $escaped; +} + +# Returns the offset of $decomp in the offset string. Updates the +# referenced variables as appropriate. +sub handle_decomp ($$$$) +{ + my ($decomp, $decomp_offsets_ref, $decomp_string_ref, $decomp_string_offset_ref) = @_; + my $offset = "UCHAR_NOT_PRESENT_OFFSET"; + + if (defined $decomp) + { + if (defined $decomp_offsets_ref->{$decomp}) + { + $offset = $decomp_offsets_ref->{$decomp}; + } + else + { + $offset = ${$decomp_string_offset_ref}; + $decomp_offsets_ref->{$decomp} = $offset; + ${$decomp_string_ref} .= "\n \"" . &escape ($decomp) . "\\0\" /* offset ${$decomp_string_offset_ref} */"; + ${$decomp_string_offset_ref} += &length_in_bytes ($decomp) + 1; + } + } + + return $offset; +} + +# Generate the character decomposition header. +sub print_decomp +{ + my ($last) = @_; + my ($outfile) = "gunidecomp.h"; + + local ($bytes_out) = 0; + + print "Writing $outfile...\n"; + + open (OUT, "> $outfile") || exit 1; + + print OUT "/* This file is automatically generated. DO NOT EDIT! */\n\n"; + print OUT "#ifndef DECOMP_H\n"; + print OUT "#define DECOMP_H\n\n"; + + printf OUT "#define UCHAR_LAST_CHAR 0x%04x\n\n", $last; + + printf OUT "#define UCHAR_MAX_TABLE_INDEX (0x110000 / 256)\n\n"; + + my $last_part1 = ($pages_before_e0000 * 256) - 1; + printf OUT "#define UCHAR_LAST_CHAR_PART1 0x%04X\n\n", $last_part1; + printf OUT "#define UCHAR_LAST_PAGE_PART1 %d\n\n", $pages_before_e0000 - 1; + + $NOT_PRESENT_OFFSET = 65535; + print OUT "#define UCHAR_NOT_PRESENT_OFFSET $NOT_PRESENT_OFFSET\n\n"; + + my ($count, @row); + $table_index = 0; + printf OUT "static const guchar cclass_data[][256] = {\n"; + for ($count = 0; $count <= $last; $count += 256) + { + $row[$count / 256] = &print_row ($count, 1, \&fetch_cclass); + } + printf OUT "\n};\n\n"; + + print OUT "static const gint16 combining_class_table_part1[$pages_before_e0000] = {\n"; + for ($count = 0; $count <= $last_part1; $count += 256) + { + print OUT ",\n" if $count > 0; + print OUT " ", $row[$count / 256]; + $bytes_out += 2; + } + print OUT "\n};\n\n"; + + print OUT "static const gint16 combining_class_table_part2[768] = {\n"; + for ($count = 0xE0000; $count <= $last; $count += 256) + { + print OUT ",\n" if $count > 0xE0000; + print OUT " ", $row[$count / 256]; + $bytes_out += 2; + } + print OUT "\n};\n\n"; + + print OUT "typedef struct\n{\n"; + print OUT " unsigned int ch;\n"; + print OUT " unsigned short canon_offset;\n"; + print OUT " unsigned short compat_offset;\n"; + print OUT "} decomposition;\n\n"; + + print OUT "static const decomposition decomp_table[] =\n{\n"; + my ($iter); + my ($first) = 1; + my ($decomp_string) = ""; + my ($decomp_string_offset) = 0; + for ($count = 0; $count <= $last; ++$count) + { + if (defined $decompositions[$count]) + { + print OUT ",\n" + if ! $first; + $first = 0; + + my $canon_decomp; + my $compat_decomp; + + if (!$decompose_compat[$count]) { + $canon_decomp = make_decomp ($count, 0); + } + $compat_decomp = make_decomp ($count, 1); + + if (defined $canon_decomp && $compat_decomp eq $canon_decomp) { + undef $compat_decomp; + } + + my $canon_offset = handle_decomp ($canon_decomp, \%decomp_offsets, \$decomp_string, \$decomp_string_offset); + my $compat_offset = handle_decomp ($compat_decomp, \%decomp_offsets, \$decomp_string, \$decomp_string_offset); + + die if $decomp_string_offset > $NOT_PRESENT_OFFSET; + + printf OUT qq( { 0x%04x, $canon_offset, $compat_offset }), $count; + $bytes_out += 8; + } + } + print OUT "\n};\n\n"; + $bytes_out += $decomp_string_offset + 1; + + printf OUT "static const gchar decomp_expansion_string[] = %s;\n\n", $decomp_string; + + print OUT "typedef struct\n{\n"; + print OUT " unsigned int ch;\n"; + print OUT " unsigned int a;\n"; + print OUT " unsigned int b;\n"; + print OUT "} decomposition_step;\n\n"; + + # There's lots of room to optimize the following table... + print OUT "static const decomposition_step decomp_step_table[] =\n{\n"; + $first = 1; + my @steps = (); + for ($count = 0; $count <= $last; ++$count) + { + if ((defined $decompositions[$count]) && (!$decompose_compat[$count])) + { + print OUT ",\n" + if ! $first; + $first = 0; + my @list; + @list = (split(' ', $decompositions[$count]), "0"); + printf OUT qq( { 0x%05x, 0x%05x, 0x%05x }), $count, hex($list[0]), hex($list[1]); + # don't include 1:1 in the compose table + push @steps, [ ($count, hex($list[0]), hex($list[1])) ] + if hex($list[1]) + } + } + print OUT "\n};\n\n"; + + print OUT "#endif /* DECOMP_H */\n"; + + printf STDERR "Generated %d bytes in decomp tables\n", $bytes_out; +} + +sub print_line_break +{ + my ($last) = @_; + my ($outfile) = "gunibreak.h"; + + local ($bytes_out) = 0; + + print "Writing $outfile...\n"; + + open (OUT, "> $outfile"); + + print OUT "/* This file is automatically generated. DO NOT EDIT!\n"; + print OUT " Instead, edit gen-unicode-tables.pl and re-run. */\n\n"; + + print OUT "#ifndef BREAKTABLES_H\n"; + print OUT "#define BREAKTABLES_H\n\n"; + + print OUT "#include \n"; + print OUT "#include \n\n"; + + print OUT "#define UCHAR_DATA_VERSION \"$ARGV[0]\"\n\n"; + + printf OUT "#define UCHAR_LAST_CHAR 0x%04X\n\n", $last; + + printf OUT "#define UCHAR_MAX_TABLE_INDEX 10000\n\n"; + + my $last_part1 = ($pages_before_e0000 * 256) - 1; + printf OUT "/* the last code point that should be looked up in break_property_table_part1 */\n"; + printf OUT "#define UCHAR_LAST_CHAR_PART1 0x%04X\n\n", $last_part1; + + $table_index = 0; + printf OUT "static const gint8 break_property_data[][256] = {\n"; + for ($count = 0; $count <= $last; $count += 256) + { + $row[$count / 256] = &print_row ($count, 1, \&fetch_break_type); + } + printf OUT "\n};\n\n"; + + printf OUT "/* U+0000 through U+%04X */\n", $last_part1; + print OUT "static const gint16 break_property_table_part1[$pages_before_e0000] = {\n"; + for ($count = 0; $count <= $last_part1; $count += 256) + { + print OUT ",\n" if $count > 0; + print OUT " ", $row[$count / 256]; + $bytes_out += 2; + } + print OUT "\n};\n\n"; + + printf OUT "/* U+E0000 through U+%04X */\n", $last; + print OUT "static const gint16 break_property_table_part2[768] = {\n"; + for ($count = 0xE0000; $count <= $last; $count += 256) + { + print OUT ",\n" if $count > 0xE0000; + print OUT " ", $row[$count / 256]; + $bytes_out += 2; + } + print OUT "\n};\n\n"; + + + print OUT "#endif /* BREAKTABLES_H */\n"; + + close (OUT); + + printf STDERR "Generated %d bytes in break tables\n", $bytes_out; +} + + +# A fetch function for the break properties table. +sub fetch_break_type +{ + my ($index) = @_; + return $break_mappings{$break_props[$index]}; +} + +# Fetcher for combining class. +sub fetch_cclass +{ + my ($i) = @_; + return $cclass[$i]; +} + +# Expand a character decomposition recursively. +sub expand_decomp +{ + my ($code, $compat) = @_; + + my ($iter, $val); + my (@result) = (); + foreach $iter (split (' ', $decompositions[$code])) + { + $val = hex ($iter); + if (defined $decompositions[$val] && + ($compat || !$decompose_compat[$val])) + { + push (@result, &expand_decomp ($val, $compat)); + } + else + { + push (@result, $val); + } + } + + return @result; +} + +sub make_decomp +{ + my ($code, $compat) = @_; + + my $result = ""; + foreach $iter (&expand_decomp ($code, $compat)) + { + $result .= pack ("U", $iter); # to utf-8 + } + + $result; +} +# Generate special case data string from two fields +sub add_special_case +{ + my ($code, $single, $field1, $field2) = @_; + + @values = (defined $single ? $single : (), + (map { hex ($_) } split /\s+/, $field1), + 0, + (map { hex ($_) } split /\s+/, $field2)); + + $result = ""; + + for $value (@values) { + $result .= pack ("U", $value); # to utf-8 + } + + push @special_case_offsets, $special_case_offset; + + # We encode special cases up in the 0x1000000 space + $value[$code] = 0x1000000 + $special_case_offset; + + $special_case_offset += 1 + &length_in_bytes ($result); + + push @special_cases, &escape ($result); +} + +sub output_special_case_table +{ + my $out = shift; + + print $out < $b } keys %$array) { + if ($array->{$code} == 1) { + delete $array->{$code}; + next; + } + $array->{$code} = $n++; + } + + return $n; +} + +sub output_composition_table +{ + print STDERR "Generating composition table\n"; + + local ($bytes_out) = 0; + + my %first; + my %second; + + # First we need to go through and remove decompositions + # starting with a non-starter, and single-character + # decompositions. At the same time, record + # the first and second character of each decomposition + + for $code (keys %compositions) + { + @values = map { hex ($_) } split /\s+/, $compositions{$code}; + + # non-starters + if ($cclass[$code]) { + delete $compositions{$code}; + next; + } + if ($cclass[$values[0]]) { + delete $compositions{$code}; + next; + } + + # single-character decompositions + if (@values == 1) { + delete $compositions{$code}; + next; + } + + if (@values != 2) { + die "$code has more than two elements in its decomposition!\n"; + } + + if (exists $first{$values[0]}) { + $first{$values[0]}++; + } else { + $first{$values[0]} = 1; + } + } + + # Assign integer indices, removing singletons + my $n_first = enumerate_ordered (\%first); + + # Now record the second character of each (non-singleton) decomposition + for $code (keys %compositions) { + @values = map { hex ($_) } split /\s+/, $compositions{$code}; + + if (exists $first{$values[0]}) { + if (exists $second{$values[1]}) { + $second{$values[1]}++; + } else { + $second{$values[1]} = 1; + } + } + } + + # Assign integer indices, removing duplicate + my $n_second = enumerate_ordered (\%second); + + # Build reverse table + + my @first_singletons; + my @second_singletons; + my %reverse; + for $code (keys %compositions) { + @values = map { hex ($_) } split /\s+/, $compositions{$code}; + + my $first = $first{$values[0]}; + my $second = $second{$values[1]}; + + if (defined $first && defined $second) { + $reverse{"$first|$second"} = $code; + } elsif (!defined $first) { + push @first_singletons, [ $values[0], $values[1], $code ]; + } else { + push @second_singletons, [ $values[1], $values[0], $code ]; + } + } + + @first_singletons = sort { $a->[0] <=> $b->[0] } @first_singletons; + @second_singletons = sort { $a->[0] <=> $b->[0] } @second_singletons; + + my %vals; + + open OUT, ">gunicomp.h" or die "Cannot open gunicomp.h: $!\n"; + + # Assign values in lookup table for all code points involved + + my $total = 1; + my $last = 0; + printf OUT "#define COMPOSE_FIRST_START %d\n", $total; + for $code (keys %first) { + $vals{$code} = $first{$code} + $total; + $last = $code if $code > $last; + } + $total += $n_first; + $i = 0; + printf OUT "#define COMPOSE_FIRST_SINGLE_START %d\n", $total; + for $record (@first_singletons) { + my $code = $record->[0]; + $vals{$code} = $i++ + $total; + $last = $code if $code > $last; + } + $total += @first_singletons; + printf OUT "#define COMPOSE_SECOND_START %d\n", $total; + for $code (keys %second) { + $vals{$code} = $second{$code} + $total; + $last = $code if $code > $last; + } + $total += $n_second; + $i = 0; + printf OUT "#define COMPOSE_SECOND_SINGLE_START %d\n\n", $total; + for $record (@second_singletons) { + my $code = $record->[0]; + $vals{$code} = $i++ + $total; + $last = $code if $code > $last; + } + + printf OUT "#define COMPOSE_TABLE_LAST %d\n\n", $last / 256; + + # Output lookup table + + my @row; + $table_index = 0; + printf OUT "static const unsigned short compose_data[][256] = {\n"; + for (my $count = 0; $count <= $last; $count += 256) + { + $row[$count / 256] = &print_row ($count, 2, sub { exists $vals{$_[0]} ? $vals{$_[0]} : 0; }); + } + printf OUT "\n};\n\n"; + + print OUT "static const gint16 compose_table[COMPOSE_TABLE_LAST + 1] = {\n"; + for (my $count = 0; $count <= $last; $count += 256) + { + print OUT ",\n" if $count > 0; + print OUT " ", $row[$count / 256]; + $bytes_out += 2; + } + print OUT "\n};\n\n"; + + # Output first singletons + + print OUT "static const unsigned int compose_first_single[][2] = {\n"; + $i = 0; + for $record (@first_singletons) { + print OUT ",\n" if $i++ > 0; + printf OUT " { %#06x, %#06x }", $record->[1], $record->[2]; + } + print OUT "\n};\n"; + + $bytes_out += @first_singletons * 4; + + # Output second singletons + + print OUT "static const unsigned int compose_second_single[][2] = {\n"; + $i = 0; + for $record (@second_singletons) { + print OUT ",\n" if $i++ > 0; + printf OUT " { %#06x, %#06x }", $record->[1], $record->[2]; + } + print OUT "\n};\n"; + + $bytes_out += @second_singletons * 4; + + # Output array of composition pairs + + print OUT < 0xFFFF) { + die "time to switch compose_array to unsigned int" ; + } + printf OUT "0x%04x", $reverse{"$i|$j"}; + } else { + print OUT " 0"; + } + } + print OUT " }"; + } + print OUT "\n"; + + print OUT <[0] <=> $b->[0] } @casefold; + + for $case (@casefold) + { + $code = $case->[0]; + $string = $case->[1]; + + if ($code > 0xFFFF) { + die "time to switch casefold_table to unsigned int" ; + } + + print $out sprintf(qq( { 0x%04x, "$string" },\n), $code); + + } + + print $out <[0]; + $end = $eawidths[$i]->[1]; + $wp = $eawidths[$i]->[2]; + + next if ($wp !~ $rex); + + while ($i <= $#eawidths - 1 && + $eawidths[$i + 1]->[0] == $end + 1 && + ($eawidths[$i + 1]->[2] =~ $rex)) { + $i++; + $end = $eawidths[$i]->[1]; + } + + printf $out "{0x%04X, 0x%04X},\n", $start, $end; + } + + printf $out "};\n\n"; +} + +sub output_width_tables +{ + my $out = shift; + + @eawidths = sort { $a->[0] <=> $b->[0] } @eawidths; + + print $out <unicode-scripttable.h" or die "Cannot open gscripttable.h: $!\n"; + + print OUT<[0] <=> $b->[0] } @scripts; + + $easy_range = 0x2000; + + print OUT< $end) { + $start = $scripts[$i]->[0]; + $end = $scripts[$i]->[1]; + $script = $scripts[$i]->[2]; + $i++; + } + + if ($c < $start) { + printf OUT " UCHAR_SCRIPT_UNKNOWN,"; + } else { + printf OUT " UCHAR_SCRIPT_%s,", $script; + } + } + + if ($end >= $easy_range) { + $i--; + $scripts[$i]->[0] = $easy_range; + } + + print OUT<[0]; + $end = $scripts[$i]->[1]; + $script = $scripts[$i]->[2]; + + while ($i <= $#scripts - 1 && + $scripts[$i + 1]->[0] == $end + 1 && + $scripts[$i + 1]->[2] eq $script) { + $i++; + $end = $scripts[$i]->[1]; + } + printf OUT " { %#06x, %5d, UCHAR_SCRIPT_%s },\n", $start, $end - $start + 1, $script; + } + + printf OUT<