diff --git a/dlls/dwrite/Makefile.in b/dlls/dwrite/Makefile.in index 581ac535d20..32ec602ccfb 100644 --- a/dlls/dwrite/Makefile.in +++ b/dlls/dwrite/Makefile.in @@ -9,4 +9,5 @@ C_SRCS = \ layout.c \ linebreak.c \ main.c \ - opentype.c + opentype.c \ + scripts.c diff --git a/dlls/dwrite/analyzer.c b/dlls/dwrite/analyzer.c index bec0235c7a6..bbbb01870e8 100644 --- a/dlls/dwrite/analyzer.c +++ b/dlls/dwrite/analyzer.c @@ -23,248 +23,27 @@ #include "dwrite.h" #include "dwrite_private.h" +#include "scripts.h" WINE_DEFAULT_DEBUG_CHANNEL(dwrite); extern const unsigned short wine_linebreak_table[]; +extern const unsigned short wine_scripts_table[]; -enum scriptcode { - Script_Arabic = 0, - Script_Armenian = 1, - Script_Balinese = 2, - Script_Bengali = 3, - Script_Buginese = 6, - Script_Canadian = 8, - Script_Cherokee = 11, - Script_Controls = 12, - Script_Coptic = 13, - Script_Cyrillic = 16, - Script_Devanagari = 18, - Script_Ethiopic = 19, - Script_Georgian = 20, - Script_Glagolitic = 22, - Script_Greek = 23, - Script_Gujarati = 24, - Script_Gurmukhi = 25, - Script_Hangul = 27, - Script_Hebrew = 29, - Script_Kannada = 32, - Script_Khmer = 36, - Script_Lao = 37, - Script_Latin = 38, - Script_Lepcha = 39, - Script_Limbu = 40, - Script_Malayalam = 44, - Script_Mongolian = 45, - Script_Myanmar = 46, - Script_New_TaiLue = 47, - Script_NKo = 48, - Script_Ogham = 49, - Script_OlChiki = 50, - Script_Oriya = 53, - Script_Runic = 58, - Script_Sinhala = 61, - Script_Sundanese = 62, - Script_Syriac = 64, - Script_TaiLe = 67, - Script_Tamil = 68, - Script_Telugu = 69, - Script_Thaana = 70, - Script_Thai = 71, - Script_Tibetan = 72, - Script_Tifinagh = 73, - Script_Symbol = 77, - Script_Unknown = (UINT16)-1 -}; - -struct script_range { - UINT16 script; - DWORD first; - DWORD last; -}; - -static const struct script_range script_ranges[] = { - /* C0 Controls: U+0000–U+001F */ - /* ASCII punctuation and symbols: U+0020–U+002F */ - /* ASCII digits: U+0030–U+0039 */ - /* ASCII punctuation and symbols: U+003A–U+0040 */ - { Script_Symbol, 0x00, 0x040 }, - /* Latin uppercase: U+0041–U+005A */ - { Script_Latin, 0x41, 0x5a }, - /* ASCII punctuation and symbols: U+005B–U+0060 */ - { Script_Symbol, 0x5b, 0x060 }, - /* Latin lowercase: U+0061–U+007A */ - { Script_Latin, 0x61, 0x7a }, - /* ASCII punctuation and symbols, control char DEL: U+007B–U+007F */ - { Script_Symbol, 0x7b, 0x7f }, - /* C1 Controls: U+0080–U+009F */ - { Script_Controls, 0x80, 0x9f }, - /* Latin-1 Supplement: U+00A0–U+00FF */ - /* Latin Extended-A: U+0100–U+017F */ - /* Latin Extended-B: U+0180–U+024F */ - /* IPA Extensions: U+0250–U+02AF */ - /* Spacing Modifier Letters: U+02B0–U+02FF */ - { Script_Latin, 0xa0, 0x2ff }, - /* Combining Diacritical Marks: U+0300–U+036F */ - { Script_Symbol, 0x300, 0x36f }, - /* Greek: U+0370–U+03E1 */ - { Script_Greek, 0x370, 0x3e1 }, - /* Coptic: U+03E2–U+03Ef */ - { Script_Coptic, 0x3e2, 0x3ef }, - /* Greek: U+03F0–U+03FF */ - { Script_Greek, 0x3f0, 0x3ff }, - /* Cyrillic: U+0400–U+04FF */ - /* Cyrillic Supplement: U+0500–U+052F */ - /* Cyrillic Supplement range is incomplete cause it's based on Unicode 5.2 - that doesn't define some Abkhaz and Azerbaijani letters, we support Unicode 6.0 range here */ - { Script_Cyrillic, 0x400, 0x52f }, - /* Armenian: U+0530–U+058F */ - { Script_Armenian, 0x530, 0x58f }, - /* Hebrew: U+0590–U+05FF */ - { Script_Hebrew, 0x590, 0x5ff }, - /* Arabic: U+0600–U+06FF */ - { Script_Arabic, 0x600, 0x6ff }, - /* Syriac: U+0600–U+06FF */ - { Script_Syriac, 0x700, 0x74f }, - /* Arabic Supplement: U+0750–U+077F */ - { Script_Arabic, 0x750, 0x77f }, - /* Thaana: U+0780–U+07BF */ - { Script_Thaana, 0x780, 0x7bf }, - /* N'Ko: U+07C0–U+07FF */ - { Script_NKo, 0x7c0, 0x7ff }, - /* Devanagari: U+0900–U+097F */ - { Script_Devanagari, 0x900, 0x97f }, - /* Bengali: U+0980–U+09FF */ - { Script_Bengali, 0x980, 0x9ff }, - /* Gurmukhi: U+0A00–U+0A7F */ - { Script_Gurmukhi, 0xa00, 0xa7f }, - /* Gujarati: U+0A80–U+0AFF */ - { Script_Gujarati, 0xa80, 0xaff }, - /* Oriya: U+0B00–U+0B7F */ - { Script_Oriya, 0xb00, 0xb7f }, - /* Tamil: U+0B80–U+0BFF */ - { Script_Tamil, 0xb80, 0xbff }, - /* Telugu: U+0C00–U+0C7F */ - { Script_Telugu, 0xc00, 0xc7f }, - /* Kannada: U+0C80–U+0CFF */ - { Script_Kannada, 0xc80, 0xcff }, - /* Malayalam: U+0D00–U+0D7F */ - { Script_Malayalam, 0xd00, 0xd7f }, - /* Sinhala: U+0D80–U+0DFF */ - { Script_Sinhala, 0xd80, 0xdff }, - /* Thai: U+0E00–U+0E7F */ - { Script_Thai, 0xe00, 0xe7f }, - /* Lao: U+0E80–U+0EFF */ - { Script_Lao, 0xe80, 0xeff }, - /* Tibetan: U+0F00–U+0FFF */ - { Script_Tibetan, 0xf00, 0xfff }, - /* Myanmar: U+1000–U+109F */ - { Script_Myanmar, 0x1000, 0x109f }, - /* Georgian: U+10A0–U+10FF */ - { Script_Georgian, 0x10a0, 0x10ff }, - /* Hangul Jamo: U+1100–U+11FF */ - { Script_Hangul, 0x1100, 0x11ff }, - /* Ethiopic: U+1200–U+137F */ - /* Ethiopic Extensions: U+1380–U+139F */ - { Script_Ethiopic, 0x1200, 0x139f }, - /* Cherokee: U+13A0–U+13FF */ - { Script_Cherokee, 0x13a0, 0x13ff }, - /* Canadian Aboriginal Syllabics: U+1400–U+167F */ - { Script_Canadian, 0x1400, 0x167f }, - /* Ogham: U+1680–U+169F */ - { Script_Ogham, 0x1680, 0x169f }, - /* Runic: U+16A0–U+16F0 */ - { Script_Runic, 0x16a0, 0x16f0 }, - /* Khmer: U+1780–U+17FF */ - { Script_Khmer, 0x1780, 0x17ff }, - /* Mongolian: U+1800–U+18AF */ - { Script_Mongolian, 0x1800, 0x18af }, - /* Limbu: U+1900–U+194F */ - { Script_Limbu, 0x1900, 0x194f }, - /* Tai Le: U+1950–U+197F */ - { Script_TaiLe, 0x1950, 0x197f }, - /* New Tai Lue: U+1980–U+19DF */ - { Script_New_TaiLue, 0x1980, 0x19df }, - /* Khmer Symbols: U+19E0–U+19FF */ - { Script_Khmer, 0x19e0, 0x19ff }, - /* Buginese: U+1A00–U+1A1F */ - { Script_Buginese, 0x1a00, 0x1a1f }, - /* Tai Tham: U+1A20–U+1AAF */ - { Script_Symbol, 0x1a20, 0x1aaf }, - /* Balinese: U+1B00–U+1B7F */ - { Script_Balinese, 0x1b00, 0x1b7f }, - /* Sundanese: U+1B80–U+1BBF */ - { Script_Sundanese, 0x1b80, 0x1bbf }, - /* Batak: U+1BC0–U+1BFF */ - { Script_Symbol, 0x1bc0, 0x1bff }, - /* Lepcha: U+1C00–U+1C4F */ - { Script_Lepcha, 0x1c00, 0x1c4f }, - /* Ol Chiki: U+1C50–U+1C7F */ - { Script_OlChiki, 0x1c50, 0x1c7f }, - /* Sundanese Supplement: U+1CC0–U+1CCF */ - { Script_Symbol, 0x1cc0, 0x1ccf }, - /* Vedic Extensions: U+1CD0-U+1CFF */ - { Script_Devanagari, 0x1cd0, 0x1cff }, - /* Phonetic Extensions: U+1D00–U+1DBF */ - { Script_Latin, 0x1d00, 0x1dbf }, - /* Combining Diacritical Marks Supplement: U+1DC0–U+1DFF */ - { Script_Symbol, 0x1dc0, 0x1dff }, - /* Latin Extended Additional: U+1E00–U+1EFF */ - { Script_Latin, 0x1e00, 0x1eff }, - /* Greek Extended: U+1F00–U+1F00 */ - { Script_Greek, 0x1f00, 0x1fff }, - /* General Punctuation: U+2000–U+206f */ - /* Superscripts and Subscripts: U+2070–U+209f */ - /* Currency Symbols: U+20A0–U+20CF */ - /* Combining Diacritical Marks for Symbols: U+20D0–U+20FF */ - /* Letterlike Symbols: U+2100–U+214F */ - /* Number Forms: U+2150–U+218F */ - /* Arrows: U+2190–U+21FF */ - /* Mathematical Operators: U+2200–U+22FF */ - /* Miscellaneous Technical: U+2300–U+23FF */ - /* Control Pictures: U+2400–U+243F */ - /* Optical Character Recognition: U+2440–U+245F */ - /* Enclosed Alphanumerics: U+2460–U+24FF */ - /* Box Drawing: U+2500–U+25FF */ - /* Block Elements: U+2580–U+259F */ - /* Geometric Shapes: U+25A0–U+25FF */ - /* Miscellaneous Symbols: U+2600–U+26FF */ - /* Dingbats: U+2700–U+27BF */ - /* Miscellaneous Mathematical Symbols-A: U+27C0–U+27EF */ - /* Supplemental Arrows-A: U+27F0–U+27FF */ - /* Braille Patterns: U+2800–U+28FF */ - /* Supplemental Arrows-B: U+2900–U+297F */ - /* Miscellaneous Mathematical Symbols-B: U+2980–U+29FF */ - /* Supplemental Mathematical Operators: U+2A00–U+2AFF */ - /* Miscellaneous Symbols and Arrows: U+2B00–U+2BFF */ - { Script_Symbol, 0x2000, 0x2bff }, - /* Glagolitic: U+2C00–U+2C5F */ - { Script_Glagolitic, 0x2c00, 0x2c5f }, - /* Latin Extended-C: U+2C60–U+2C7F */ - { Script_Latin, 0x2c60, 0x2c7f }, - /* Coptic: U+2C80–U+2CFF */ - { Script_Coptic, 0x2c80, 0x2cff }, - /* Georgian Supplement: U+2D00–U+2D2F */ - { Script_Georgian, 0x2d00, 0x2d2f }, - /* Tifinagh: U+2D30–U+2D7F */ - { Script_Tifinagh, 0x2d30, 0x2d7f }, - /* unsupported range */ - { Script_Unknown } -}; - -static UINT16 get_char_script( WCHAR c ) +static inline unsigned short get_table_entry(const unsigned short *table, WCHAR ch) { - DWORD ch = c; - unsigned int i; + return table[table[table[ch >> 8] + ((ch >> 4) & 0x0f)] + (ch & 0xf)]; +} - for (i = 0; i < sizeof(script_ranges)/sizeof(struct script_range); i++) - { - const struct script_range *range = &script_ranges[i]; - if (range->script == Script_Unknown || (range->first <= ch && range->last >= ch)) - return range->script; +static inline UINT16 get_char_script(WCHAR c) +{ + UINT16 script = get_table_entry(wine_scripts_table, c); + if (script == Script_Unknown) { + WORD type; + if (GetStringTypeW(CT_CTYPE1, &c, 1, &type) && (type & C1_CNTRL)) + script = Script_Control; } - - return Script_Unknown; + return script; } static HRESULT analyze_script(const WCHAR *text, UINT32 len, IDWriteTextAnalysisSink *sink) @@ -283,9 +62,9 @@ static HRESULT analyze_script(const WCHAR *text, UINT32 len, IDWriteTextAnalysis { UINT16 script = get_char_script(text[i]); - /* Script_Latin_Symb script type is ignored when preceded or followed by another script */ - if (sa.script == Script_Symbol) sa.script = script; - if (script == Script_Symbol) script = sa.script; + /* Unknown type is ignored when preceded or followed by another script */ + if (sa.script == Script_Unknown) sa.script = script; + if (script == Script_Unknown && sa.script != Script_Control) script = sa.script; /* this is a length of a sequence to be reported next */ if (sa.script == script) length++; @@ -293,7 +72,7 @@ static HRESULT analyze_script(const WCHAR *text, UINT32 len, IDWriteTextAnalysis { HRESULT hr; - sa.shapes = sa.script != Script_Controls ? DWRITE_SCRIPT_SHAPES_DEFAULT : DWRITE_SCRIPT_SHAPES_NO_VISUAL; + sa.shapes = sa.script != Script_Control ? DWRITE_SCRIPT_SHAPES_DEFAULT : DWRITE_SCRIPT_SHAPES_NO_VISUAL; hr = IDWriteTextAnalysisSink_SetScriptAnalysis(sink, pos, length, &sa); if (FAILED(hr)) return hr; pos = i; @@ -303,7 +82,7 @@ static HRESULT analyze_script(const WCHAR *text, UINT32 len, IDWriteTextAnalysis } /* 1 length case or normal completion call */ - sa.shapes = sa.script != Script_Controls ? DWRITE_SCRIPT_SHAPES_DEFAULT : DWRITE_SCRIPT_SHAPES_NO_VISUAL; + sa.shapes = sa.script != Script_Control ? DWRITE_SCRIPT_SHAPES_DEFAULT : DWRITE_SCRIPT_SHAPES_NO_VISUAL; return IDWriteTextAnalysisSink_SetScriptAnalysis(sink, pos, length, &sa); } @@ -381,11 +160,6 @@ static inline void set_break_condition(UINT32 pos, enum BreakConditionLocation l } } -static inline unsigned short get_table_entry(const unsigned short *table, WCHAR ch) -{ - return table[table[table[ch >> 8] + ((ch >> 4) & 0x0f)] + (ch & 0xf)]; -} - static HRESULT analyze_linebreaks(const WCHAR *text, UINT32 count, DWRITE_LINE_BREAKPOINT *breakpoints) { struct linebreaking_state state; diff --git a/dlls/dwrite/scripts.c b/dlls/dwrite/scripts.c new file mode 100644 index 00000000000..8d27d283efa --- /dev/null +++ b/dlls/dwrite/scripts.c @@ -0,0 +1,796 @@ +/* Unicode Script IDs */ +/* generated from http://www.unicode.org/Public/7.0.0/ucd/Scripts.txt */ +/* DO NOT EDIT!! */ + +const unsigned short wine_scripts_table[6288] = +{ + /* level 1 offsets */ + 0x0100, 0x0110, 0x0120, 0x0130, 0x0140, 0x0150, 0x0160, 0x0170, + 0x0180, 0x0190, 0x01a0, 0x01b0, 0x01c0, 0x01d0, 0x01e0, 0x01f0, + 0x0200, 0x0210, 0x0220, 0x0230, 0x0240, 0x0240, 0x0250, 0x0260, + 0x0270, 0x0280, 0x0290, 0x02a0, 0x02b0, 0x02c0, 0x0110, 0x02d0, + 0x02e0, 0x02f0, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, + 0x0310, 0x0300, 0x0300, 0x0300, 0x0320, 0x0330, 0x0340, 0x0350, + 0x0360, 0x0370, 0x0380, 0x0390, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03b0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, + 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03a0, 0x03c0, + 0x03d0, 0x03d0, 0x03d0, 0x03d0, 0x03e0, 0x03f0, 0x0400, 0x0410, + 0x0420, 0x0430, 0x0440, 0x0450, 0x0210, 0x0210, 0x0210, 0x0210, + 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, + 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, + 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, + 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, + 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0460, + 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, + 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, + 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, + 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, 0x0300, + 0x0300, 0x03a0, 0x0470, 0x0480, 0x0490, 0x04a0, 0x04b0, 0x04c0, + /* level 2 offsets */ + 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04e0, 0x04f0, 0x04e0, 0x04f0, + 0x04d0, 0x04d0, 0x0500, 0x0500, 0x0510, 0x0520, 0x0510, 0x0520, + 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, + 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, + 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, + 0x0510, 0x0510, 0x0510, 0x0530, 0x04d0, 0x04d0, 0x0540, 0x04d0, + 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x0550, + 0x0560, 0x0570, 0x0580, 0x0570, 0x0570, 0x0570, 0x0590, 0x0570, + 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, + 0x05b0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, + 0x05a0, 0x05a0, 0x05a0, 0x05c0, 0x05d0, 0x05e0, 0x05c0, 0x05d0, + 0x05f0, 0x0600, 0x0610, 0x0610, 0x0620, 0x0610, 0x0630, 0x0640, + 0x0650, 0x0660, 0x0670, 0x0670, 0x0680, 0x0690, 0x06a0, 0x06b0, + 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, 0x06c0, 0x0670, 0x0670, + 0x06d0, 0x06e0, 0x06e0, 0x06e0, 0x06f0, 0x0670, 0x0670, 0x0670, + 0x0700, 0x0700, 0x0700, 0x0710, 0x0720, 0x0720, 0x0720, 0x0730, + 0x0740, 0x0740, 0x0750, 0x0760, 0x0770, 0x0780, 0x04d0, 0x04d0, + 0x04d0, 0x04d0, 0x0670, 0x0790, 0x04d0, 0x04d0, 0x07a0, 0x0670, + 0x07b0, 0x07b0, 0x07b0, 0x07b0, 0x07b0, 0x07c0, 0x07d0, 0x07b0, + 0x07e0, 0x07f0, 0x0800, 0x0810, 0x0820, 0x0830, 0x0840, 0x0850, + 0x0860, 0x0870, 0x0880, 0x0890, 0x08a0, 0x08b0, 0x08c0, 0x08d0, + 0x08e0, 0x08f0, 0x0900, 0x0910, 0x0920, 0x0930, 0x0940, 0x0950, + 0x0960, 0x0970, 0x0980, 0x0990, 0x09a0, 0x09b0, 0x09c0, 0x09d0, + 0x09e0, 0x09f0, 0x0a00, 0x0a10, 0x0a20, 0x0a30, 0x0a40, 0x0a50, + 0x0a60, 0x0a70, 0x0a80, 0x0a90, 0x0aa0, 0x0ab0, 0x0ac0, 0x0ad0, + 0x0ae0, 0x0af0, 0x0b00, 0x0b10, 0x0b20, 0x0b30, 0x0b40, 0x0b50, + 0x0b60, 0x0b70, 0x0b80, 0x0b90, 0x0ba0, 0x0bb0, 0x0bc0, 0x0bd0, + 0x0be0, 0x0bf0, 0x0c00, 0x0c10, 0x0c20, 0x0c30, 0x0c40, 0x0c50, + 0x0c60, 0x0c70, 0x0c70, 0x0c80, 0x0c70, 0x0c90, 0x04d0, 0x04d0, + 0x0ca0, 0x0cb0, 0x0cc0, 0x0cd0, 0x0ce0, 0x0cf0, 0x04d0, 0x04d0, + 0x0d00, 0x0d00, 0x0d00, 0x0d00, 0x0d10, 0x0d00, 0x0d20, 0x0d30, + 0x0d00, 0x0d10, 0x0d00, 0x0d40, 0x0d40, 0x0d50, 0x04d0, 0x04d0, + 0x0d60, 0x0d60, 0x0d60, 0x0d60, 0x0d60, 0x0d60, 0x0d60, 0x0d60, + 0x0d60, 0x0d60, 0x0d70, 0x0d70, 0x0d80, 0x0d70, 0x0d70, 0x0d90, + 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, + 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, + 0x0db0, 0x0db0, 0x0db0, 0x0db0, 0x0dc0, 0x0dd0, 0x0db0, 0x0db0, + 0x0dc0, 0x0db0, 0x0db0, 0x0de0, 0x0df0, 0x0e00, 0x0db0, 0x0db0, + 0x0db0, 0x0df0, 0x0db0, 0x0db0, 0x0db0, 0x0e10, 0x0db0, 0x0e20, + 0x0db0, 0x0e30, 0x0e40, 0x0e40, 0x0e40, 0x0e40, 0x0e40, 0x0e50, + 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, + 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, + 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0e60, + 0x0e70, 0x0e80, 0x0e90, 0x0e90, 0x0e90, 0x0e90, 0x0ea0, 0x0eb0, + 0x0ec0, 0x0ed0, 0x0ee0, 0x0ef0, 0x0f00, 0x0f10, 0x0f20, 0x0f30, + 0x0f40, 0x0f40, 0x0f40, 0x0f40, 0x0f40, 0x0f50, 0x0f60, 0x0f60, + 0x0f70, 0x0f80, 0x0f90, 0x0f90, 0x0f90, 0x0f90, 0x0f90, 0x0fa0, + 0x0f90, 0x0f90, 0x0fb0, 0x0e60, 0x0e60, 0x0e60, 0x0e60, 0x0fc0, + 0x0fd0, 0x0fe0, 0x0ff0, 0x0ff0, 0x1000, 0x1010, 0x1020, 0x1030, + 0x1040, 0x1040, 0x1050, 0x1040, 0x1060, 0x1070, 0x0f40, 0x0f40, + 0x1080, 0x1090, 0x1010, 0x1010, 0x1010, 0x10a0, 0x1010, 0x10b0, + 0x10c0, 0x10c0, 0x1020, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, + 0x10d0, 0x10d0, 0x10d0, 0x10d0, 0x10e0, 0x10d0, 0x10d0, 0x10f0, + 0x1100, 0x1100, 0x1100, 0x1100, 0x1110, 0x1110, 0x1110, 0x1120, + 0x1130, 0x1130, 0x1130, 0x1140, 0x1150, 0x1160, 0x1160, 0x1160, + 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x1170, 0x04d0, 0x04d0, 0x04d0, + 0x0510, 0x0510, 0x1180, 0x0510, 0x0510, 0x1190, 0x11a0, 0x11b0, + 0x0510, 0x0510, 0x0510, 0x11c0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, + 0x0570, 0x11d0, 0x0570, 0x0570, 0x11d0, 0x11e0, 0x0570, 0x11f0, + 0x0570, 0x0570, 0x0570, 0x1200, 0x1200, 0x1210, 0x0570, 0x1220, + 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x1230, + 0x04d0, 0x1240, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, + 0x04d0, 0x04d0, 0x1250, 0x1260, 0x1270, 0x04d0, 0x0510, 0x0510, + 0x0530, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, + 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, + 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, + 0x1280, 0x1280, 0x1280, 0x1280, 0x1280, 0x1280, 0x1280, 0x1280, + 0x1280, 0x1280, 0x1280, 0x1280, 0x1280, 0x1280, 0x1280, 0x1280, + 0x1290, 0x1290, 0x12a0, 0x1290, 0x1290, 0x12a0, 0x0510, 0x0510, + 0x12b0, 0x12b0, 0x12b0, 0x12b0, 0x12b0, 0x12b0, 0x12b0, 0x12c0, + 0x0d70, 0x0d70, 0x0d80, 0x12d0, 0x12d0, 0x12d0, 0x12e0, 0x12f0, + 0x0db0, 0x1300, 0x1310, 0x1310, 0x1310, 0x1310, 0x05a0, 0x05a0, + 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, + 0x1320, 0x1330, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1340, + 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, + 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1350, 0x04d0, 0x04d0, + 0x1360, 0x04d0, 0x1370, 0x1380, 0x1390, 0x13a0, 0x13a0, 0x13a0, + 0x13a0, 0x13b0, 0x13c0, 0x13d0, 0x13d0, 0x13d0, 0x13d0, 0x13e0, + 0x13f0, 0x1400, 0x1410, 0x1420, 0x0da0, 0x0da0, 0x0da0, 0x0da0, + 0x1430, 0x04d0, 0x1400, 0x1440, 0x04d0, 0x04d0, 0x04d0, 0x13d0, + 0x0da0, 0x1430, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x0da0, 0x1430, + 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x13d0, 0x13d0, 0x1450, + 0x13d0, 0x13d0, 0x13d0, 0x13d0, 0x13d0, 0x1460, 0x04d0, 0x04d0, + 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, + 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, + 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, + 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, + 0x1320, 0x1320, 0x1320, 0x1350, 0x04d0, 0x04d0, 0x04d0, 0x04d0, + 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, + 0x1320, 0x1320, 0x1320, 0x1320, 0x1470, 0x04d0, 0x04d0, 0x04d0, + 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, + 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, + 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, 0x1480, + 0x1490, 0x1480, 0x1480, 0x1480, 0x14a0, 0x14b0, 0x14b0, 0x14b0, + 0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14c0, + 0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14c0, 0x14c0, + 0x14c0, 0x14c0, 0x14d0, 0x04d0, 0x05a0, 0x05a0, 0x05a0, 0x05a0, + 0x05a0, 0x14e0, 0x14f0, 0x14f0, 0x14f0, 0x14f0, 0x14f0, 0x1500, + 0x04d0, 0x04d0, 0x1510, 0x0510, 0x0510, 0x0510, 0x0510, 0x0510, + 0x1520, 0x0510, 0x1530, 0x1540, 0x04d0, 0x04d0, 0x04d0, 0x1550, + 0x1560, 0x1560, 0x1570, 0x04d0, 0x1580, 0x1580, 0x1580, 0x1590, + 0x15a0, 0x15a0, 0x15a0, 0x15a0, 0x15b0, 0x15c0, 0x07b0, 0x15d0, + 0x15e0, 0x15e0, 0x15f0, 0x1600, 0x1600, 0x1610, 0x0da0, 0x1620, + 0x1630, 0x1630, 0x1630, 0x1630, 0x1640, 0x1650, 0x0d60, 0x1660, + 0x1670, 0x1670, 0x1670, 0x1680, 0x1690, 0x16a0, 0x0d60, 0x0d60, + 0x1010, 0x1010, 0x1010, 0x1010, 0x16b0, 0x16c0, 0x16d0, 0x16e0, + 0x16f0, 0x1700, 0x1310, 0x0510, 0x0510, 0x1710, 0x1720, 0x04d0, + 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x16d0, 0x16d0, 0x1730, 0x1740, + 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, 0x0da0, + 0x0da0, 0x0da0, 0x1750, 0x0da0, 0x1760, 0x0da0, 0x0da0, 0x1770, + 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1780, 0x1320, + 0x1320, 0x1320, 0x1320, 0x1320, 0x1320, 0x1790, 0x04d0, 0x04d0, + 0x17a0, 0x17b0, 0x0610, 0x17c0, 0x17d0, 0x0670, 0x0670, 0x0670, + 0x0670, 0x0670, 0x0670, 0x0670, 0x17e0, 0x17f0, 0x0670, 0x0670, + 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, + 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, + 0x0670, 0x0670, 0x0670, 0x1800, 0x04d0, 0x0670, 0x0670, 0x0670, + 0x0670, 0x1810, 0x0670, 0x0670, 0x1820, 0x04d0, 0x04d0, 0x1800, + 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x04d0, 0x1830, + 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, 0x0670, 0x1840, + 0x04d0, 0x04d0, 0x04e0, 0x04f0, 0x04e0, 0x04f0, 0x1850, 0x13c0, + 0x13d0, 0x1860, 0x0da0, 0x1430, 0x1870, 0x1880, 0x04d0, 0x04d0, + /* values */ + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0037, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0000, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x000a, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0000, 0x0023, 0x0023, 0x0023, + 0x0000, 0x0000, 0x0023, 0x0023, 0x0023, 0x0023, 0x0000, 0x0023, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0023, 0x0000, 0x0023, 0x0000, + 0x0023, 0x0023, 0x0023, 0x0000, 0x0023, 0x0000, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0000, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0000, 0x0000, 0x0018, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, + 0x0000, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0000, + 0x0000, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0000, 0x0000, 0x0003, 0x0000, 0x0000, 0x0003, 0x0003, 0x0003, + 0x0000, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, + 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, + 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, + 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, + 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, + 0x0029, 0x0029, 0x0029, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0000, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0000, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0000, 0x0000, 0x0000, 0x0002, 0x0000, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0000, 0x0002, 0x0002, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0000, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, 0x0063, + 0x0063, 0x0063, 0x0063, 0x0000, 0x0000, 0x0063, 0x0063, 0x0063, + 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, + 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, 0x006a, + 0x006a, 0x006a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, + 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, + 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, 0x004c, + 0x004c, 0x004c, 0x004c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x0000, 0x0000, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, + 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x005a, 0x0000, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, 0x0040, + 0x0040, 0x0040, 0x0040, 0x0040, 0x0000, 0x0000, 0x0040, 0x0000, + 0x0002, 0x0002, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x001a, 0x0000, 0x0000, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001a, 0x0000, 0x0000, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0000, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000, 0x0009, + 0x0009, 0x0000, 0x0000, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0000, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0000, 0x0009, 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0000, 0x0000, 0x0009, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000, 0x0009, + 0x0009, 0x0000, 0x0000, 0x0009, 0x0009, 0x0009, 0x0009, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0009, 0x0009, 0x0000, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, 0x0009, + 0x0009, 0x0009, 0x0009, 0x0009, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0025, 0x0025, 0x0025, 0x0000, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0000, 0x0000, 0x0000, 0x0000, 0x0025, + 0x0025, 0x0000, 0x0000, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0000, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0000, 0x0025, 0x0025, 0x0000, 0x0025, 0x0025, 0x0000, + 0x0025, 0x0025, 0x0000, 0x0000, 0x0025, 0x0000, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0000, 0x0000, 0x0000, 0x0000, 0x0025, + 0x0025, 0x0000, 0x0000, 0x0025, 0x0025, 0x0025, 0x0000, 0x0000, + 0x0000, 0x0025, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0025, 0x0025, 0x0025, 0x0025, 0x0000, 0x0025, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, + 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0025, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0024, 0x0024, 0x0024, 0x0000, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0000, 0x0024, + 0x0024, 0x0024, 0x0000, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0000, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0000, 0x0024, 0x0024, 0x0000, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0000, 0x0000, 0x0024, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0000, 0x0024, + 0x0024, 0x0024, 0x0000, 0x0024, 0x0024, 0x0024, 0x0000, 0x0000, + 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0000, 0x0000, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, 0x0024, + 0x0024, 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0050, 0x0050, 0x0050, 0x0000, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0000, 0x0000, 0x0050, + 0x0050, 0x0000, 0x0000, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0000, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0000, 0x0050, 0x0050, 0x0000, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0050, 0x0000, 0x0000, 0x0050, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0000, 0x0000, 0x0050, + 0x0050, 0x0000, 0x0000, 0x0050, 0x0050, 0x0050, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0050, 0x0050, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0050, 0x0050, 0x0000, 0x0050, + 0x0050, 0x0050, 0x0050, 0x0050, 0x0000, 0x0000, 0x0050, 0x0050, + 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, + 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, 0x0050, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0068, 0x0068, 0x0000, 0x0068, 0x0068, 0x0068, + 0x0068, 0x0068, 0x0068, 0x0000, 0x0000, 0x0000, 0x0068, 0x0068, + 0x0068, 0x0000, 0x0068, 0x0068, 0x0068, 0x0068, 0x0000, 0x0000, + 0x0000, 0x0068, 0x0068, 0x0000, 0x0068, 0x0000, 0x0068, 0x0068, + 0x0000, 0x0000, 0x0000, 0x0068, 0x0068, 0x0000, 0x0000, 0x0000, + 0x0068, 0x0068, 0x0068, 0x0000, 0x0000, 0x0000, 0x0068, 0x0068, + 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, + 0x0068, 0x0068, 0x0000, 0x0000, 0x0000, 0x0000, 0x0068, 0x0068, + 0x0068, 0x0068, 0x0068, 0x0000, 0x0000, 0x0000, 0x0068, 0x0068, + 0x0068, 0x0000, 0x0068, 0x0068, 0x0068, 0x0068, 0x0000, 0x0000, + 0x0068, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0068, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0068, 0x0068, + 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, + 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, 0x0068, + 0x0068, 0x0068, 0x0068, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0000, 0x0069, 0x0069, 0x0069, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0000, 0x0069, 0x0069, + 0x0069, 0x0000, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0069, 0x0000, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0069, 0x0069, 0x0000, 0x0000, 0x0000, 0x0069, 0x0069, 0x0069, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0000, 0x0069, 0x0069, + 0x0069, 0x0000, 0x0069, 0x0069, 0x0069, 0x0069, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0069, 0x0069, 0x0000, + 0x0069, 0x0069, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0000, 0x0000, 0x0069, 0x0069, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, 0x0069, + 0x0000, 0x002f, 0x002f, 0x002f, 0x0000, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x0000, 0x002f, 0x002f, + 0x002f, 0x0000, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x0000, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x0000, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x0000, 0x0000, 0x002f, 0x002f, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x0000, 0x002f, 0x002f, + 0x002f, 0x0000, 0x002f, 0x002f, 0x002f, 0x002f, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002f, 0x002f, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002f, 0x0000, + 0x002f, 0x002f, 0x002f, 0x002f, 0x0000, 0x0000, 0x002f, 0x002f, + 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, 0x002f, + 0x0000, 0x002f, 0x002f, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x003f, 0x003f, 0x003f, 0x0000, 0x003f, 0x003f, 0x003f, + 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0000, 0x003f, 0x003f, + 0x003f, 0x0000, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x003f, 0x003f, 0x003f, 0x0000, 0x0000, 0x003f, 0x003f, 0x003f, + 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0000, 0x003f, 0x003f, + 0x003f, 0x0000, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x003f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x003f, 0x003f, 0x003f, 0x003f, 0x0000, 0x0000, 0x003f, 0x003f, + 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x0000, 0x0000, + 0x0000, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, 0x003f, + 0x0000, 0x0000, 0x005f, 0x005f, 0x0000, 0x005f, 0x005f, 0x005f, + 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, + 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x0000, + 0x0000, 0x0000, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, + 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, + 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, + 0x005f, 0x005f, 0x0000, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, + 0x005f, 0x005f, 0x005f, 0x005f, 0x0000, 0x005f, 0x0000, 0x0000, + 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x0000, + 0x0000, 0x0000, 0x005f, 0x0000, 0x0000, 0x0000, 0x0000, 0x005f, + 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x0000, 0x005f, 0x0000, + 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005f, 0x005f, + 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, 0x005f, + 0x0000, 0x0000, 0x005f, 0x005f, 0x005f, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x006b, 0x006b, 0x006b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, 0x006b, + 0x006b, 0x006b, 0x006b, 0x006b, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0036, 0x0036, 0x0000, 0x0036, 0x0000, 0x0000, 0x0036, + 0x0036, 0x0000, 0x0036, 0x0000, 0x0000, 0x0036, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0000, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0000, 0x0036, 0x0036, 0x0036, 0x0000, 0x0036, 0x0000, 0x0036, + 0x0000, 0x0000, 0x0036, 0x0036, 0x0000, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0000, 0x0036, 0x0036, 0x0036, 0x0000, 0x0000, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0000, 0x0036, 0x0000, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0000, 0x0000, + 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, 0x0036, + 0x0036, 0x0036, 0x0000, 0x0000, 0x0036, 0x0036, 0x0036, 0x0036, + 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, + 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, + 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, + 0x0000, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, + 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, + 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, + 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, + 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, + 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x0000, 0x006c, 0x006c, + 0x006c, 0x006c, 0x006c, 0x006c, 0x006c, 0x0000, 0x0000, 0x0000, + 0x0000, 0x006c, 0x006c, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, + 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x0000, 0x001f, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x001f, 0x0000, 0x0000, + 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, 0x001f, + 0x001f, 0x001f, 0x001f, 0x0000, 0x001f, 0x001f, 0x001f, 0x001f, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x0000, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, 0x0000, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, + 0x001e, 0x0000, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, 0x0000, + 0x001e, 0x0000, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, 0x0000, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, + 0x001e, 0x0000, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, 0x0000, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x0000, 0x0000, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, 0x0000, 0x0000, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, + 0x001e, 0x001e, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, + 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, + 0x0014, 0x0014, 0x0014, 0x0014, 0x0014, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, + 0x004d, 0x004d, 0x004d, 0x004d, 0x004d, 0x0000, 0x0000, 0x0000, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, + 0x0059, 0x0059, 0x0059, 0x0000, 0x0000, 0x0000, 0x0059, 0x0059, + 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, 0x0059, + 0x0059, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0064, 0x0064, 0x0064, 0x0064, 0x0064, 0x0064, 0x0064, 0x0064, + 0x0064, 0x0064, 0x0064, 0x0064, 0x0064, 0x0000, 0x0064, 0x0064, + 0x0064, 0x0064, 0x0064, 0x0064, 0x0064, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, + 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, 0x000e, + 0x000e, 0x000e, 0x000e, 0x000e, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, + 0x0065, 0x0065, 0x0065, 0x0065, 0x0065, 0x0000, 0x0065, 0x0065, + 0x0065, 0x0000, 0x0065, 0x0065, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0000, 0x0000, + 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, 0x0033, + 0x0033, 0x0033, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0047, 0x0047, 0x0000, 0x0000, 0x0047, 0x0000, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0000, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, 0x0047, + 0x0047, 0x0047, 0x0047, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x000f, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0000, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0039, 0x0000, 0x0000, 0x0000, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, 0x0039, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0000, 0x0000, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, + 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, + 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, + 0x004b, 0x004b, 0x004b, 0x004b, 0x0000, 0x0000, 0x0000, 0x0000, + 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, + 0x004b, 0x004b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, 0x004b, + 0x004b, 0x004b, 0x004b, 0x0000, 0x0000, 0x0000, 0x004b, 0x004b, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, 0x000d, + 0x000d, 0x000d, 0x000d, 0x000d, 0x0000, 0x0000, 0x000d, 0x000d, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0000, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0000, 0x0000, 0x0066, + 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0066, 0x0066, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, + 0x0005, 0x0005, 0x0005, 0x0005, 0x0005, 0x0000, 0x0000, 0x0000, + 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, + 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0008, 0x0008, 0x0008, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0008, 0x0008, 0x0008, 0x0008, + 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0000, 0x0000, 0x0000, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, 0x0038, + 0x0038, 0x0038, 0x0000, 0x0000, 0x0000, 0x0038, 0x0038, 0x0038, + 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, + 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, 0x004e, + 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, 0x0061, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0018, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0023, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0037, 0x0037, 0x0037, 0x0037, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0018, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0000, 0x0000, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0000, 0x0000, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, + 0x0000, 0x0023, 0x0000, 0x0023, 0x0000, 0x0023, 0x0000, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0000, 0x0000, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0000, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0000, 0x0000, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0000, 0x0023, 0x0023, 0x0023, + 0x0000, 0x0000, 0x0023, 0x0023, 0x0023, 0x0000, 0x0023, 0x0023, + 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0023, 0x0000, + 0x0000, 0x0037, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0023, 0x0000, + 0x0000, 0x0000, 0x0037, 0x0037, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0037, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0037, 0x0000, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, 0x000c, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, + 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0000, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x0015, 0x0015, 0x0015, 0x0015, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, 0x0015, + 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, + 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, + 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, 0x006d, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006d, + 0x006d, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x006d, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, + 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0000, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0026, 0x0000, 0x0026, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0027, 0x0027, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, + 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, + 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, + 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, + 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x002a, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x002a, 0x002a, 0x002a, + 0x0000, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0000, 0x0000, 0x0030, 0x0030, 0x0030, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x0000, 0x0000, + 0x0000, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0000, + 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, 0x000a, + 0x000a, 0x000a, 0x000a, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0000, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0000, 0x0000, 0x0000, + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0000, 0x0000, 0x0000, + 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0072, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, 0x003b, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, 0x0070, + 0x0070, 0x0070, 0x0070, 0x0070, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, + 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0000, 0x0018, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, 0x0006, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0000, 0x0000, 0x0000, 0x0037, 0x0037, 0x0037, 0x0037, 0x0000, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0000, 0x0000, + 0x0037, 0x0037, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, + 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, + 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, 0x0062, + 0x0062, 0x0062, 0x0062, 0x0062, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, + 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, + 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, 0x0055, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, + 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, + 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x005b, 0x005b, + 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, 0x005b, + 0x005b, 0x005b, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, 0x001a, + 0x001a, 0x001a, 0x001a, 0x001a, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, + 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0031, 0x0000, 0x0031, + 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, + 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, 0x0058, + 0x0058, 0x0058, 0x0058, 0x0058, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0058, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0000, 0x0000, 0x0000, + 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, + 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, + 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, + 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x0000, 0x0000, + 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, 0x002d, + 0x002d, 0x002d, 0x0000, 0x0000, 0x0000, 0x0000, 0x002d, 0x002d, + 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, + 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0049, 0x0000, + 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, + 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, + 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, + 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0000, 0x0000, + 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, 0x0013, + 0x0013, 0x0013, 0x0000, 0x0000, 0x0013, 0x0013, 0x0013, 0x0013, + 0x0066, 0x0066, 0x0066, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0066, 0x0066, 0x0066, 0x0066, 0x0066, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, + 0x0000, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, + 0x0000, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x001e, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0037, 0x0037, 0x0037, 0x0000, 0x0037, 0x0037, 0x0037, 0x0037, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0037, 0x0023, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0000, 0x0000, + 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, + 0x0042, 0x0042, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0027, 0x0027, 0x0027, 0x0027, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0000, 0x0000, + 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, 0x0026, + 0x0026, 0x0026, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0037, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0003, 0x0003, 0x0003, 0x0003, 0x0003, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0029, 0x0029, 0x0029, + 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0000, + 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0000, 0x0029, 0x0000, + 0x0029, 0x0029, 0x0000, 0x0029, 0x0029, 0x0000, 0x0029, 0x0029, + 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, 0x0029, + 0x0002, 0x0002, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0000, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, + 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0000, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, + 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0030, 0x0000, 0x0000, + 0x0000, 0x0000, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0000, 0x0000, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0000, 0x0000, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, 0x0027, + 0x0000, 0x0000, 0x0027, 0x0027, 0x0027, 0x0000, 0x0000, 0x0000 +}; diff --git a/dlls/dwrite/scripts.h b/dlls/dwrite/scripts.h new file mode 100644 index 00000000000..1e27d4faadb --- /dev/null +++ b/dlls/dwrite/scripts.h @@ -0,0 +1,121 @@ +/* Unicode Script IDs */ +/* generated from http://www.unicode.org/Public/7.0.0/ucd/Scripts.txt */ +/* DO NOT EDIT!! */ + +enum unicode_script_id { + Script_Unknown = 0, + Script_Control = 1, + Script_Arabic = 2, + Script_Armenian = 3, + Script_Avestan = 4, + Script_Balinese = 5, + Script_Bamum = 6, + Script_Bassa = 7, + Script_Batak = 8, + Script_Bengali = 9, + Script_Bopomofo = 10, + Script_Brahmi = 11, + Script_Braille = 12, + Script_Buginese = 13, + Script_Buhid = 14, + Script_Canadian = 15, + Script_Carian = 16, + Script_Caucasian = 17, + Script_Chakma = 18, + Script_Cham = 19, + Script_Cherokee = 20, + Script_Coptic = 21, + Script_Cuneiform = 22, + Script_Cypriot = 23, + Script_Cyrillic = 24, + Script_Deseret = 25, + Script_Devanagari = 26, + Script_Duployan = 27, + Script_Egyptian = 28, + Script_Elbasan = 29, + Script_Ethiopic = 30, + Script_Georgian = 31, + Script_Glagolitic = 32, + Script_Gothic = 33, + Script_Grantha = 34, + Script_Greek = 35, + Script_Gujarati = 36, + Script_Gurmukhi = 37, + Script_Han = 38, + Script_Hangul = 39, + Script_Hanunoo = 40, + Script_Hebrew = 41, + Script_Hiragana = 42, + Script_Imperial = 43, + Script_Inscriptional = 44, + Script_Javanese = 45, + Script_Kaithi = 46, + Script_Kannada = 47, + Script_Katakana = 48, + Script_Kayah = 49, + Script_Kharoshthi = 50, + Script_Khmer = 51, + Script_Khojki = 52, + Script_Khudawadi = 53, + Script_Lao = 54, + Script_Latin = 55, + Script_Lepcha = 56, + Script_Limbu = 57, + Script_Linear = 58, + Script_Lisu = 59, + Script_Lycian = 60, + Script_Lydian = 61, + Script_Mahajani = 62, + Script_Malayalam = 63, + Script_Mandaic = 64, + Script_Manichaean = 65, + Script_Meetei = 66, + Script_Mende = 67, + Script_Meroitic = 68, + Script_Miao = 69, + Script_Modi = 70, + Script_Mongolian = 71, + Script_Mro = 72, + Script_Myanmar = 73, + Script_Nabataean = 74, + Script_New = 75, + Script_Nko = 76, + Script_Ogham = 77, + Script_Ol = 78, + Script_Old = 79, + Script_Oriya = 80, + Script_Osmanya = 81, + Script_Pahawh = 82, + Script_Palmyrene = 83, + Script_Pau = 84, + Script_Phags = 85, + Script_Phoenician = 86, + Script_Psalter = 87, + Script_Rejang = 88, + Script_Runic = 89, + Script_Samaritan = 90, + Script_Saurashtra = 91, + Script_Sharada = 92, + Script_Shavian = 93, + Script_Siddham = 94, + Script_Sinhala = 95, + Script_Sora = 96, + Script_Sundanese = 97, + Script_Syloti = 98, + Script_Syriac = 99, + Script_Tagalog = 100, + Script_Tagbanwa = 101, + Script_Tai = 102, + Script_Takri = 103, + Script_Tamil = 104, + Script_Telugu = 105, + Script_Thaana = 106, + Script_Thai = 107, + Script_Tibetan = 108, + Script_Tifinagh = 109, + Script_Tirhuta = 110, + Script_Ugaritic = 111, + Script_Vai = 112, + Script_Warang = 113, + Script_Yi = 114, +}; diff --git a/tools/make_unicode b/tools/make_unicode index 9e4f7d4a439..255239ad4ca 100755 --- a/tools/make_unicode +++ b/tools/make_unicode @@ -1172,7 +1172,7 @@ sub get_lb_ranges() sub dump_indic($) { my $filename = shift; - my @indic_table = ($indic_types{'Other'}) x 65536;; + my @indic_table = ($indic_types{'Other'}) x 65536; my $INPUT = open_data_file( $UNIDATA, "IndicSyllabicCategory.txt" ); while (<$INPUT>) @@ -1252,7 +1252,7 @@ sub dump_indic($) sub dump_linebreak($) { my $filename = shift; - my @break_table = ($break_types{'XX'}) x 65536;; + my @break_table = ($break_types{'XX'}) x 65536; my $next_group = 0; my $INPUT = open_data_file( $UNIDATA, "LineBreak.txt" ); @@ -1294,6 +1294,118 @@ sub dump_linebreak($) save_file($filename); } +################################################################ +# dump Script IDs table +sub dump_scripts($) +{ + my $filename = shift; + my $header = $filename; + my @scripts_table = (0) x 65536; # 0 means unknown script + my $next_group = 0; + my %scripts; + my $i; + + my $INPUT = open_data_file( $UNIDATA, "Scripts.txt" ); + while (<$INPUT>) + { + my $type = ""; + + next if /^\#/; # skip comments + next if /^\s*$/; # skip empty lines + next if /\x1a/; # skip ^Z + if (/^\s*([0-9a-fA-F]+)\s*;\s*([a-zA-Z]+)\s*/) + { + $type = $2; + } + elsif (/^\s*([0-9a-fA-F]+)..\s*([0-9a-fA-F]+)\s*;\s*([a-zA-Z]+)\s*/) + { + $type = $3; + } + else + { + die "malformed line $_"; + } + + # ignore some scripts + if ($type eq "" || $type eq "Common" || $type eq "Inherited") + { + next; + } + + $scripts{$type} = -1; + } + + $i = 2; + foreach my $script (sort keys %scripts) { + $scripts{$script} = $i; + $i++; + } + + # now fill a table + seek $INPUT, 0, 0; + while (<$INPUT>) + { + my $type = ""; + + next if /^\#/; # skip comments + next if /^\s*$/; # skip empty lines + next if /\x1a/; # skip ^Z + if (/^\s*([0-9a-fA-F]+)\s*;\s*([a-zA-Z]+)\s*/) + { + $type = $2; + if (defined $scripts{$type}) + { + $scripts_table[hex $1] = $scripts{$type}; + } + next; + } + elsif (/^\s*([0-9a-fA-F]+)..\s*([0-9a-fA-F]+)\s*;\s*([a-zA-Z]+)\s*/) + { + $type = $3; + if (defined $scripts{$type}) + { + foreach my $i (hex $1 .. hex $2) + { + $scripts_table[$i] = $scripts{$type}; + } + } + next; + } + } + + close $INPUT; + + $header = "$filename.h"; + open OUTPUT,">$header.new" or die "Cannot create $header"; + print "Building $header\n"; + print OUTPUT "/* Unicode Script IDs */\n"; + print OUTPUT "/* generated from $UNIDATA/Scripts.txt */\n"; + print OUTPUT "/* DO NOT EDIT!! */\n\n"; + + # reserve Unknown and Control ids + print OUTPUT "enum unicode_script_id {\n"; + print OUTPUT " Script_Unknown = 0,\n"; + print OUTPUT " Script_Control = 1,\n"; + foreach my $script (sort keys %scripts) + { + print OUTPUT " Script_$script = $scripts{$script},\n"; + } + print OUTPUT "};\n"; + + close OUTPUT; + save_file($header); + + $filename = "$filename.c"; + open OUTPUT,">$filename.new" or die "Cannot create $header"; + print "Building $filename\n"; + print OUTPUT "/* Unicode Script IDs */\n"; + print OUTPUT "/* generated from $UNIDATA/Scripts.txt */\n"; + print OUTPUT "/* DO NOT EDIT!! */\n\n"; + + dump_two_level_mapping( "wine_scripts_table", @scripts_table); + close OUTPUT; + save_file($filename); +} ################################################################ # dump the BiDi mirroring table @@ -1333,7 +1445,7 @@ sub dump_mirroring($) sub dump_bracket($) { my $filename = shift; - my @bracket_table = (0) x 65536;; + my @bracket_table = (0) x 65536; my $INPUT = open_data_file( $UNIDATA, "BidiBrackets.txt" ); while (<$INPUT>) @@ -2275,6 +2387,7 @@ dump_bracket( "dlls/usp10/bracket.c" ); dump_shaping( "dlls/usp10/shaping.c" ); dump_linebreak( "dlls/usp10/linebreak.c" ); dump_linebreak( "dlls/dwrite/linebreak.c" ); +dump_scripts( "dlls/dwrite/scripts" ); dump_indic( "dlls/usp10/indicsyllable.c" ); dump_intl_nls("loader/l_intl.nls"); dump_vertical( "dlls/gdi32/vertical.c" );