From e9fe8db3d023b16861a4931bfdbb3d985a435397 Mon Sep 17 00:00:00 2001 From: Alex New Date: Tue, 25 Aug 2026 21:17:32 +0300 Subject: [PATCH] add cyrilic to t114 --- examples/companion_radio/ui-new/UITask.cpp | 8 +- src/helpers/ui/CyrillicFont.cpp | 74 + src/helpers/ui/CyrillicFont.h | 32 + src/helpers/ui/CyrillicFontData.cpp | 1843 ++++++++++++++++++++ src/helpers/ui/DisplayDriver.h | 6 +- src/helpers/ui/OLEDDisplay.cpp | 4 +- src/helpers/ui/ST7789Display.cpp | 30 +- src/helpers/ui/ST7789Display.h | 3 + tools/gen_cyrillic_font.py | 237 +++ variants/heltec_t114/platformio.ini | 6 + 10 files changed, 2234 insertions(+), 9 deletions(-) create mode 100644 src/helpers/ui/CyrillicFont.cpp create mode 100644 src/helpers/ui/CyrillicFont.h create mode 100644 src/helpers/ui/CyrillicFontData.cpp create mode 100644 tools/gen_cyrillic_font.py diff --git a/examples/companion_radio/ui-new/UITask.cpp b/examples/companion_radio/ui-new/UITask.cpp index 051f3b31ea..3de7a11649 100644 --- a/examples/companion_radio/ui-new/UITask.cpp +++ b/examples/companion_radio/ui-new/UITask.cpp @@ -490,10 +490,16 @@ class MsgPreviewScreen : public UIScreen { UITask* _task; mesh::RTCClock* _rtc; + // a text message is up to MAX_TEXT_LEN (160) bytes on the wire, so size the + // preview for that. A shorter buffer truncates by *bytes*, which cuts a + // Cyrillic (or any multi-byte UTF-8) message at half the character count a + // Latin one would show -- the 240px x 4 lines here fit a full 160-byte message. + #define MAX_MSG_PREVIEW_LEN 160 + struct MsgEntry { uint32_t timestamp; char origin[62]; - char msg[78]; + char msg[MAX_MSG_PREVIEW_LEN + 1]; }; #define MAX_UNREAD_MSGS 32 int num_unread; diff --git a/src/helpers/ui/CyrillicFont.cpp b/src/helpers/ui/CyrillicFont.cpp new file mode 100644 index 0000000000..88c423c6c6 --- /dev/null +++ b/src/helpers/ui/CyrillicFont.cpp @@ -0,0 +1,74 @@ +#include "CyrillicFont.h" + +#include + +// Windows-1251 has no room for the Latin-1 accented letters (Cyrillic occupies +// 0xC0..0xFF), so fold U+00C0..U+00FF down to their unaccented ASCII base. That +// keeps European names readable instead of turning them into Cyrillic mojibake. +static const char LATIN1_FOLD[] PROGMEM = + "AAAAAAACEEEEIIIIDNOOOOOxOUUUUYPs" // U+00C0 .. U+00DF + "aaaaaaaceeeeiiiidnooooo/ouuuuypy"; // U+00E0 .. U+00FF + +static uint8_t unicodeToCp1251(uint32_t cp) { + if (cp >= 0x0410 && cp <= 0x044F) { // А..я, the contiguous bulk of the alphabet + return (uint8_t)(0xC0 + (cp - 0x0410)); + } + if (cp >= 0x00C0 && cp <= 0x00FF) { + return (uint8_t) pgm_read_byte(LATIN1_FOLD + (cp - 0x00C0)); + } + if (cp > 0xFFFF) return 0; + + // binary search the generated table for everything else (Ё, ё, №, °, «, », + // the dashes and quotes, and the non-Russian Cyrillic letters) + uint16_t lo = 0, hi = CYRILLIC_MAP_LEN; + while (lo < hi) { + uint16_t mid = (lo + hi) / 2; + uint16_t val = pgm_read_word(CYRILLIC_UNICODE + mid); + if (val == cp) return (uint8_t) pgm_read_byte(CYRILLIC_CP1251 + mid); + if (val < cp) lo = mid + 1; else hi = mid; + } + return 0; +} + +char cyrillicFontLookup(const uint8_t ch) { + static uint8_t remaining = 0; // continuation bytes still expected + static uint32_t cp = 0; // code point accumulated so far + + if (ch < 0x80) { // plain ASCII, also resets a truncated sequence + remaining = 0; + return (char) ch; + } + + if ((ch & 0xC0) == 0x80) { // continuation byte + if (remaining == 0) return 0; // stray - drop it + cp = (cp << 6) | (ch & 0x3F); + if (--remaining > 0) return 0; + return (char) unicodeToCp1251(cp); + } + + if ((ch & 0xE0) == 0xC0) { cp = ch & 0x1F; remaining = 1; } + else if ((ch & 0xF0) == 0xE0) { cp = ch & 0x0F; remaining = 2; } + else if ((ch & 0xF8) == 0xF0) { cp = ch & 0x07; remaining = 3; } + else { remaining = 0; } // invalid lead byte + return 0; +} + +void cyrillicCopyUTF8(char* dest, const char* src, size_t dest_size) { + size_t j = 0; + for (size_t i = 0; src[i] != 0; ) { + uint8_t c = (uint8_t) src[i]; + if (c < 32 || c == 127) { i++; continue; } // control character + if ((c & 0xC0) == 0x80) { i++; continue; } // stray continuation byte + + size_t len = (c < 0x80) ? 1 : (c < 0xE0) ? 2 : (c < 0xF0) ? 3 : 4; + size_t have = 1; + while (have < len && ((uint8_t) src[i + have] & 0xC0) == 0x80) have++; + if (have < len) break; // sequence cut short in src + + if (j + len >= dest_size) break; // leave room for the NUL + memcpy(&dest[j], &src[i], len); + j += len; + i += len; + } + dest[j] = 0; +} diff --git a/src/helpers/ui/CyrillicFont.h b/src/helpers/ui/CyrillicFont.h new file mode 100644 index 0000000000..6cd99509e4 --- /dev/null +++ b/src/helpers/ui/CyrillicFont.h @@ -0,0 +1,32 @@ +#pragma once + +#include +#include + +#ifdef ARDUINO + #include +#else + #define PROGMEM +#endif + +// Arial font tables whose upper half (0x80..0xFF) is laid out as Windows-1251 +// instead of ISO-8859-1, so they carry the full Cyrillic alphabet. Codes +// 0x20..0x7F are identical to the stock ArialMT_Plain_* tables. +// Generated by tools/gen_cyrillic_font.py. +extern const uint8_t ArialMT_Plain_16_Cyr[] PROGMEM; +extern const uint8_t ArialMT_Plain_24_Cyr[] PROGMEM; + +// Unicode -> Windows-1251 lookup tables, sorted by code point. +extern const uint16_t CYRILLIC_UNICODE[] PROGMEM; +extern const uint8_t CYRILLIC_CP1251[] PROGMEM; +extern const uint16_t CYRILLIC_MAP_LEN; + +// OLEDDisplay FontTableLookupFunction that decodes UTF-8 into the tables above. +// Feed it one byte at a time (it is stateful across a multi-byte sequence) and +// it returns the font table index, or 0 for "nothing to draw yet / unsupported". +char cyrillicFontLookup(const uint8_t ch); + +// Copies UTF-8 `src` into `dest`, dropping control characters and never cutting +// a multi-byte sequence in half. Replaces DisplayDriver::translateUTF8ToBlocks() +// for drivers using the fonts above, which need the UTF-8 left intact. +void cyrillicCopyUTF8(char* dest, const char* src, size_t dest_size); diff --git a/src/helpers/ui/CyrillicFontData.cpp b/src/helpers/ui/CyrillicFontData.cpp new file mode 100644 index 0000000000..d58f6df723 --- /dev/null +++ b/src/helpers/ui/CyrillicFontData.cpp @@ -0,0 +1,1843 @@ +// Windows-1251 (Cyrillic) variants of the stock ThingPulse Arial fonts. +// +// GENERATED FILE -- regenerate with tools/gen_cyrillic_font.py, do not hand edit. +// +// Codes 0x20..0x7F hold the stock ArialMT_Plain_* glyphs byte-for-byte, so Latin +// text is pixel-identical to the stock fonts. Codes 0x80..0xFF follow Windows-1251, +// which covers the whole Cyrillic alphabet. Feed UTF-8 text in through +// cyrillicFontLookup() -- see CyrillicFont.cpp. + +#include "CyrillicFont.h" + + +// Unicode -> Windows-1251, sorted by code point (see cyrillicFontLookup). +const uint16_t CYRILLIC_UNICODE[] PROGMEM = { + 0x00A0,0x00A4,0x00A6,0x00A7,0x00A9,0x00AB,0x00AC,0x00AD, + 0x00AE,0x00B0,0x00B1,0x00B5,0x00B6,0x00B7,0x00BB,0x0401, + 0x0402,0x0403,0x0404,0x0405,0x0406,0x0407,0x0408,0x0409, + 0x040A,0x040B,0x040C,0x040E,0x040F,0x0410,0x0411,0x0412, + 0x0413,0x0414,0x0415,0x0416,0x0417,0x0418,0x0419,0x041A, + 0x041B,0x041C,0x041D,0x041E,0x041F,0x0420,0x0421,0x0422, + 0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042A, + 0x042B,0x042C,0x042D,0x042E,0x042F,0x0430,0x0431,0x0432, + 0x0433,0x0434,0x0435,0x0436,0x0437,0x0438,0x0439,0x043A, + 0x043B,0x043C,0x043D,0x043E,0x043F,0x0440,0x0441,0x0442, + 0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,0x044A, + 0x044B,0x044C,0x044D,0x044E,0x044F,0x0451,0x0452,0x0453, + 0x0454,0x0455,0x0456,0x0457,0x0458,0x0459,0x045A,0x045B, + 0x045C,0x045E,0x045F,0x0490,0x0491,0x2013,0x2014,0x2018, + 0x2019,0x201A,0x201C,0x201D,0x201E,0x2020,0x2021,0x2022, + 0x2026,0x2030,0x2039,0x203A,0x20AC,0x2116,0x2122 +}; + +const uint8_t CYRILLIC_CP1251[] PROGMEM = { + 0xA0,0xA4,0xA6,0xA7,0xA9,0xAB,0xAC,0xAD,0xAE,0xB0,0xB1,0xB5, + 0xB6,0xB7,0xBB,0xA8,0x80,0x81,0xAA,0xBD,0xB2,0xAF,0xA3,0x8A, + 0x8C,0x8E,0x8D,0xA1,0x8F,0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6, + 0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,0xD0,0xD1,0xD2, + 0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE, + 0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA, + 0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6, + 0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0xB8,0x90,0x83, + 0xBA,0xBE,0xB3,0xBF,0xBC,0x9A,0x9C,0x9E,0x9D,0xA2,0x9F,0xA5, + 0xB4,0x96,0x97,0x91,0x92,0x82,0x93,0x94,0x84,0x86,0x87,0x95, + 0x85,0x89,0x8B,0x9B,0x88,0xB9,0x99 +}; + +const uint16_t CYRILLIC_MAP_LEN = 127; + +const uint8_t ArialMT_Plain_16_Cyr[] PROGMEM = { + 0x11, // Width: 17 + 0x13, // Height: 19 + 0x20, // First Char: 32 + 0xE0, // Numbers of Chars: 224 + + // Jump Table: + 0xFF, 0xFF, 0x00, 0x04, // 32:65535 + 0x00, 0x00, 0x08, 0x04, // 33:0 + 0x00, 0x08, 0x0D, 0x06, // 34:8 + 0x00, 0x15, 0x1A, 0x09, // 35:21 + 0x00, 0x2F, 0x17, 0x09, // 36:47 + 0x00, 0x46, 0x26, 0x0E, // 37:70 + 0x00, 0x6C, 0x1D, 0x0B, // 38:108 + 0x00, 0x89, 0x04, 0x03, // 39:137 + 0x00, 0x8D, 0x0C, 0x05, // 40:141 + 0x00, 0x99, 0x0B, 0x05, // 41:153 + 0x00, 0xA4, 0x0D, 0x06, // 42:164 + 0x00, 0xB1, 0x17, 0x09, // 43:177 + 0x00, 0xC8, 0x09, 0x04, // 44:200 + 0x00, 0xD1, 0x0B, 0x05, // 45:209 + 0x00, 0xDC, 0x08, 0x04, // 46:220 + 0x00, 0xE4, 0x0A, 0x04, // 47:228 + 0x00, 0xEE, 0x17, 0x09, // 48:238 + 0x01, 0x05, 0x11, 0x09, // 49:261 + 0x01, 0x16, 0x17, 0x09, // 50:278 + 0x01, 0x2D, 0x17, 0x09, // 51:301 + 0x01, 0x44, 0x17, 0x09, // 52:324 + 0x01, 0x5B, 0x17, 0x09, // 53:347 + 0x01, 0x72, 0x17, 0x09, // 54:370 + 0x01, 0x89, 0x16, 0x09, // 55:393 + 0x01, 0x9F, 0x17, 0x09, // 56:415 + 0x01, 0xB6, 0x17, 0x09, // 57:438 + 0x01, 0xCD, 0x05, 0x04, // 58:461 + 0x01, 0xD2, 0x06, 0x04, // 59:466 + 0x01, 0xD8, 0x17, 0x09, // 60:472 + 0x01, 0xEF, 0x17, 0x09, // 61:495 + 0x02, 0x06, 0x17, 0x09, // 62:518 + 0x02, 0x1D, 0x16, 0x09, // 63:541 + 0x02, 0x33, 0x2F, 0x10, // 64:563 + 0x02, 0x62, 0x1D, 0x0B, // 65:610 + 0x02, 0x7F, 0x1D, 0x0B, // 66:639 + 0x02, 0x9C, 0x20, 0x0C, // 67:668 + 0x02, 0xBC, 0x20, 0x0C, // 68:700 + 0x02, 0xDC, 0x1D, 0x0B, // 69:732 + 0x02, 0xF9, 0x19, 0x0A, // 70:761 + 0x03, 0x12, 0x20, 0x0C, // 71:786 + 0x03, 0x32, 0x1D, 0x0C, // 72:818 + 0x03, 0x4F, 0x05, 0x04, // 73:847 + 0x03, 0x54, 0x14, 0x08, // 74:852 + 0x03, 0x68, 0x1D, 0x0B, // 75:872 + 0x03, 0x85, 0x17, 0x09, // 76:901 + 0x03, 0x9C, 0x23, 0x0D, // 77:924 + 0x03, 0xBF, 0x1D, 0x0C, // 78:959 + 0x03, 0xDC, 0x20, 0x0C, // 79:988 + 0x03, 0xFC, 0x1C, 0x0B, // 80:1020 + 0x04, 0x18, 0x20, 0x0C, // 81:1048 + 0x04, 0x38, 0x1D, 0x0C, // 82:1080 + 0x04, 0x55, 0x1D, 0x0B, // 83:1109 + 0x04, 0x72, 0x19, 0x0A, // 84:1138 + 0x04, 0x8B, 0x1D, 0x0C, // 85:1163 + 0x04, 0xA8, 0x1C, 0x0B, // 86:1192 + 0x04, 0xC4, 0x2B, 0x0F, // 87:1220 + 0x04, 0xEF, 0x20, 0x0B, // 88:1263 + 0x05, 0x0F, 0x19, 0x0B, // 89:1295 + 0x05, 0x28, 0x1A, 0x0A, // 90:1320 + 0x05, 0x42, 0x0C, 0x04, // 91:1346 + 0x05, 0x4E, 0x0B, 0x04, // 92:1358 + 0x05, 0x59, 0x09, 0x04, // 93:1369 + 0x05, 0x62, 0x14, 0x08, // 94:1378 + 0x05, 0x76, 0x1B, 0x09, // 95:1398 + 0x05, 0x91, 0x07, 0x05, // 96:1425 + 0x05, 0x98, 0x17, 0x09, // 97:1432 + 0x05, 0xAF, 0x17, 0x09, // 98:1455 + 0x05, 0xC6, 0x14, 0x08, // 99:1478 + 0x05, 0xDA, 0x17, 0x09, // 100:1498 + 0x05, 0xF1, 0x17, 0x09, // 101:1521 + 0x06, 0x08, 0x0A, 0x04, // 102:1544 + 0x06, 0x12, 0x17, 0x09, // 103:1554 + 0x06, 0x29, 0x14, 0x09, // 104:1577 + 0x06, 0x3D, 0x05, 0x04, // 105:1597 + 0x06, 0x42, 0x06, 0x04, // 106:1602 + 0x06, 0x48, 0x17, 0x08, // 107:1608 + 0x06, 0x5F, 0x05, 0x04, // 108:1631 + 0x06, 0x64, 0x23, 0x0D, // 109:1636 + 0x06, 0x87, 0x14, 0x09, // 110:1671 + 0x06, 0x9B, 0x17, 0x09, // 111:1691 + 0x06, 0xB2, 0x17, 0x09, // 112:1714 + 0x06, 0xC9, 0x18, 0x09, // 113:1737 + 0x06, 0xE1, 0x0D, 0x05, // 114:1761 + 0x06, 0xEE, 0x14, 0x08, // 115:1774 + 0x07, 0x02, 0x0B, 0x04, // 116:1794 + 0x07, 0x0D, 0x14, 0x09, // 117:1805 + 0x07, 0x21, 0x13, 0x08, // 118:1825 + 0x07, 0x34, 0x1F, 0x0C, // 119:1844 + 0x07, 0x53, 0x14, 0x08, // 120:1875 + 0x07, 0x67, 0x13, 0x08, // 121:1895 + 0x07, 0x7A, 0x14, 0x08, // 122:1914 + 0x07, 0x8E, 0x0F, 0x05, // 123:1934 + 0x07, 0x9D, 0x06, 0x04, // 124:1949 + 0x07, 0xA3, 0x0E, 0x05, // 125:1955 + 0x07, 0xB1, 0x17, 0x09, // 126:1969 + 0xFF, 0xFF, 0x00, 0x00, // 127:65535 + 0x07, 0xC8, 0x26, 0x0E, // 128:1992 Ђ + 0x07, 0xEE, 0x19, 0x09, // 129:2030 Ѓ + 0x08, 0x07, 0x06, 0x04, // 130:2055 ‚ + 0x08, 0x0D, 0x10, 0x06, // 131:2061 ѓ + 0x08, 0x1D, 0x09, 0x05, // 132:2077 „ + 0x08, 0x26, 0x26, 0x10, // 133:2086 … + 0x08, 0x4C, 0x16, 0x09, // 134:2124 † + 0x08, 0x62, 0x17, 0x09, // 135:2146 ‡ + 0x08, 0x79, 0x17, 0x09, // 136:2169 € + 0x08, 0x90, 0x2F, 0x10, // 137:2192 ‰ + 0x08, 0xBF, 0x2F, 0x11, // 138:2239 Љ + 0x08, 0xEE, 0x0B, 0x05, // 139:2286 ‹ + 0x08, 0xF9, 0x2C, 0x10, // 140:2297 Њ + 0x09, 0x25, 0x1A, 0x09, // 141:2341 Ќ + 0x09, 0x3F, 0x23, 0x0E, // 142:2367 Ћ + 0x09, 0x62, 0x1D, 0x0C, // 143:2402 Џ + 0x09, 0x7F, 0x15, 0x09, // 144:2431 ђ + 0x09, 0x94, 0x04, 0x04, // 145:2452 ‘ + 0x09, 0x98, 0x04, 0x04, // 146:2456 ’ + 0x09, 0x9C, 0x07, 0x05, // 147:2460 “ + 0x09, 0xA3, 0x0A, 0x05, // 148:2467 ” + 0x09, 0xAD, 0x0E, 0x06, // 149:2477 • + 0x09, 0xBB, 0x1A, 0x09, // 150:2491 – + 0x09, 0xD5, 0x2F, 0x10, // 151:2517 — + 0xFF, 0xFF, 0x00, 0x00, // 152:65535 + 0x0A, 0x04, 0x2C, 0x10, // 153:2564 ™ + 0x0A, 0x30, 0x29, 0x0F, // 154:2608 љ + 0x0A, 0x59, 0x0B, 0x05, // 155:2649 › + 0x0A, 0x64, 0x23, 0x0D, // 156:2660 њ + 0x0A, 0x87, 0x14, 0x07, // 157:2695 ќ + 0x0A, 0x9B, 0x14, 0x09, // 158:2715 ћ + 0x0A, 0xAF, 0x14, 0x09, // 159:2735 џ + 0xFF, 0xFF, 0x00, 0x04, // 160:65535 + 0x0A, 0xC3, 0x1C, 0x0A, // 161:2755 Ў + 0x0A, 0xDF, 0x10, 0x08, // 162:2783 ў + 0x0A, 0xEF, 0x14, 0x08, // 163:2799 Ј + 0x0B, 0x03, 0x14, 0x09, // 164:2819 ¤ + 0x0B, 0x17, 0x16, 0x08, // 165:2839 Ґ + 0x0B, 0x2D, 0x06, 0x04, // 166:2861 ¦ + 0x0B, 0x33, 0x17, 0x09, // 167:2867 § + 0x0B, 0x4A, 0x1D, 0x0B, // 168:2890 Ё + 0x0B, 0x67, 0x23, 0x0C, // 169:2919 © + 0x0B, 0x8A, 0x20, 0x0C, // 170:2954 Є + 0x0B, 0xAA, 0x14, 0x09, // 171:2986 « + 0x0B, 0xBE, 0x17, 0x09, // 172:3006 ¬ + 0x0B, 0xD5, 0x0B, 0x05, // 173:3029 + 0x0B, 0xE0, 0x23, 0x0C, // 174:3040 ® + 0x0C, 0x03, 0x07, 0x04, // 175:3075 Ї + 0x0C, 0x0A, 0x0D, 0x06, // 176:3082 ° + 0x0C, 0x17, 0x17, 0x09, // 177:3095 ± + 0x0C, 0x2E, 0x05, 0x04, // 178:3118 І + 0x0C, 0x33, 0x05, 0x04, // 179:3123 і + 0x0C, 0x38, 0x10, 0x07, // 180:3128 ґ + 0x0C, 0x48, 0x17, 0x09, // 181:3144 µ + 0x0C, 0x5F, 0x19, 0x09, // 182:3167 ¶ + 0x0C, 0x78, 0x08, 0x05, // 183:3192 · + 0x0C, 0x80, 0x17, 0x09, // 184:3200 ё + 0x0C, 0x97, 0x2F, 0x11, // 185:3223 № + 0x0C, 0xC6, 0x14, 0x08, // 186:3270 є + 0x0C, 0xDA, 0x17, 0x09, // 187:3290 » + 0x0C, 0xF1, 0x06, 0x04, // 188:3313 ј + 0x0C, 0xF7, 0x1D, 0x0B, // 189:3319 Ѕ + 0x0D, 0x14, 0x14, 0x08, // 190:3348 ѕ + 0x0D, 0x28, 0x07, 0x04, // 191:3368 ї + 0x0D, 0x2F, 0x1D, 0x0B, // 192:3375 А + 0x0D, 0x4C, 0x1D, 0x0B, // 193:3404 Б + 0x0D, 0x69, 0x1D, 0x0B, // 194:3433 В + 0x0D, 0x86, 0x19, 0x09, // 195:3462 Г + 0x0D, 0x9F, 0x1E, 0x0B, // 196:3487 Д + 0x0D, 0xBD, 0x1D, 0x0B, // 197:3517 Е + 0x0D, 0xDA, 0x29, 0x0F, // 198:3546 Ж + 0x0E, 0x03, 0x1A, 0x0A, // 199:3587 З + 0x0E, 0x1D, 0x20, 0x0C, // 200:3613 И + 0x0E, 0x3D, 0x20, 0x0C, // 201:3645 Й + 0x0E, 0x5D, 0x1A, 0x09, // 202:3677 К + 0x0E, 0x77, 0x1D, 0x0B, // 203:3703 Л + 0x0E, 0x94, 0x23, 0x0D, // 204:3732 М + 0x0E, 0xB7, 0x1D, 0x0C, // 205:3767 Н + 0x0E, 0xD4, 0x20, 0x0C, // 206:3796 О + 0x0E, 0xF4, 0x1D, 0x0C, // 207:3828 П + 0x0F, 0x11, 0x1C, 0x0B, // 208:3857 Р + 0x0F, 0x2D, 0x20, 0x0C, // 209:3885 С + 0x0F, 0x4D, 0x19, 0x0A, // 210:3917 Т + 0x0F, 0x66, 0x1C, 0x0A, // 211:3942 У + 0x0F, 0x82, 0x1D, 0x0C, // 212:3970 Ф + 0x0F, 0x9F, 0x20, 0x0B, // 213:3999 Х + 0x0F, 0xBF, 0x21, 0x0C, // 214:4031 Ц + 0x0F, 0xE0, 0x1A, 0x0B, // 215:4064 Ч + 0x0F, 0xFA, 0x23, 0x0F, // 216:4090 Ш + 0x10, 0x1D, 0x27, 0x0F, // 217:4125 Щ + 0x10, 0x44, 0x23, 0x0D, // 218:4164 Ъ + 0x10, 0x67, 0x26, 0x0E, // 219:4199 Ы + 0x10, 0x8D, 0x1D, 0x0B, // 220:4237 Ь + 0x10, 0xAA, 0x1D, 0x0C, // 221:4266 Э + 0x10, 0xC7, 0x2C, 0x10, // 222:4295 Ю + 0x10, 0xF3, 0x20, 0x0C, // 223:4339 Я + 0x11, 0x13, 0x17, 0x09, // 224:4371 а + 0x11, 0x2A, 0x17, 0x09, // 225:4394 б + 0x11, 0x41, 0x17, 0x09, // 226:4417 в + 0x11, 0x58, 0x10, 0x06, // 227:4440 г + 0x11, 0x68, 0x18, 0x09, // 228:4456 д + 0x11, 0x80, 0x17, 0x09, // 229:4480 е + 0x11, 0x97, 0x1D, 0x0B, // 230:4503 ж + 0x11, 0xB4, 0x11, 0x07, // 231:4532 з + 0x11, 0xC5, 0x14, 0x09, // 232:4549 и + 0x11, 0xD9, 0x14, 0x09, // 233:4569 й + 0x11, 0xED, 0x14, 0x07, // 234:4589 к + 0x12, 0x01, 0x14, 0x09, // 235:4609 л + 0x12, 0x15, 0x1D, 0x0B, // 236:4629 м + 0x12, 0x32, 0x14, 0x09, // 237:4658 н + 0x12, 0x46, 0x17, 0x09, // 238:4678 о + 0x12, 0x5D, 0x14, 0x09, // 239:4701 п + 0x12, 0x71, 0x17, 0x09, // 240:4721 р + 0x12, 0x88, 0x14, 0x08, // 241:4744 с + 0x12, 0x9C, 0x13, 0x07, // 242:4764 т + 0x12, 0xAF, 0x10, 0x08, // 243:4783 у + 0x12, 0xBF, 0x23, 0x0D, // 244:4799 ф + 0x12, 0xE2, 0x14, 0x08, // 245:4834 х + 0x12, 0xF6, 0x1B, 0x09, // 246:4854 ц + 0x13, 0x11, 0x14, 0x08, // 247:4881 ч + 0x13, 0x25, 0x1D, 0x0D, // 248:4901 ш + 0x13, 0x42, 0x21, 0x0D, // 249:4930 щ + 0x13, 0x63, 0x1A, 0x0A, // 250:4963 ъ + 0x13, 0x7D, 0x20, 0x0C, // 251:4989 ы + 0x13, 0x9D, 0x17, 0x08, // 252:5021 ь + 0x13, 0xB4, 0x14, 0x08, // 253:5044 э + 0x13, 0xC8, 0x20, 0x0C, // 254:5064 ю + 0x13, 0xE8, 0x17, 0x09, // 255:5096 я + + // Font Data: + 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x5F,0x00,0x00,0x00,0x78, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x80,0x08,0x00, + 0x80,0x78,0x00,0xC0,0x0F,0x00,0xB8,0x08,0x00,0x80,0x08,0x00, + 0x80,0x78,0x00,0xC0,0x0F,0x00,0xB8,0x08,0x00,0x80,0x08,0x00, + 0x00,0x00,0xE0,0x10,0x00,0x10,0x21,0x00,0x08,0x41,0x00,0xFC, + 0xFF,0x00,0x08,0x42,0x00,0x10,0x22,0x00,0x20,0x1C,0x00,0x00, + 0x00,0xF0,0x00,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x08,0x61, + 0x00,0xF0,0x18,0x00,0x00,0x06,0x00,0xC0,0x01,0x00,0x30,0x3C, + 0x00,0x08,0x42,0x00,0x00,0x42,0x00,0x00,0x42,0x00,0x00,0x3C, + 0x00,0x00,0x00,0x00,0x1C,0x00,0x70,0x22,0x00,0x88,0x41,0x00, + 0x08,0x43,0x00,0x88,0x44,0x00,0x70,0x28,0x00,0x00,0x10,0x00, + 0x00,0x28,0x00,0x00,0x44,0x00,0x00,0x00,0x78,0x00,0x00,0x00, + 0x80,0x3F,0x00,0x70,0xC0,0x01,0x08,0x00,0x02,0x00,0x00,0x00, + 0x08,0x00,0x02,0x70,0xC0,0x01,0x80,0x3F,0x10,0x00,0x00,0xD0, + 0x00,0x00,0x38,0x00,0x00,0xD0,0x00,0x00,0x10,0x00,0x00,0x00, + 0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0xC0,0x1F,0x00, + 0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xC0,0x01,0x00,0x08,0x00,0x00,0x08,0x00,0x00, + 0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40, + 0x00,0x60,0x00,0x00,0x1E,0x00,0xE0,0x01,0x00,0x18,0x00,0x00, + 0x00,0xE0,0x1F,0x00,0x10,0x20,0x00,0x08,0x40,0x00,0x08,0x40, + 0x00,0x08,0x40,0x00,0x10,0x20,0x00,0xE0,0x1F,0x00,0x00,0x00, + 0x00,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0x00,0x10,0x00,0x00, + 0xF8,0x7F,0x00,0x00,0x00,0x20,0x40,0x00,0x10,0x60,0x00,0x08, + 0x50,0x00,0x08,0x48,0x00,0x08,0x44,0x00,0x10,0x43,0x00,0xE0, + 0x40,0x00,0x00,0x00,0x20,0x10,0x00,0x10,0x20,0x00,0x08,0x41, + 0x00,0x08,0x41,0x00,0x88,0x41,0x00,0xF0,0x22,0x00,0x00,0x1C, + 0x00,0x0C,0x00,0x00,0x0A,0x00,0x00,0x09,0x00,0xC0,0x08,0x00, + 0x20,0x08,0x00,0x10,0x08,0x00,0xF8,0x7F,0x00,0x00,0x08,0x00, + 0x00,0x00,0xC0,0x11,0x00,0xB8,0x20,0x00,0x88,0x40,0x00,0x88, + 0x40,0x00,0x88,0x40,0x00,0x08,0x21,0x00,0x08,0x1E,0x00,0x00, + 0x00,0xE0,0x1F,0x00,0x10,0x21,0x00,0x88,0x40,0x00,0x88,0x40, + 0x00,0x88,0x40,0x00,0x10,0x21,0x00,0x20,0x1E,0x00,0x00,0x00, + 0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x78,0x00,0x08,0x07,0x00, + 0xC8,0x00,0x00,0x28,0x00,0x00,0x18,0x00,0x00,0x00,0x60,0x1C, + 0x00,0x90,0x22,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41, + 0x00,0x90,0x22,0x00,0x60,0x1C,0x00,0x00,0x00,0xE0,0x11,0x00, + 0x10,0x22,0x00,0x08,0x44,0x00,0x08,0x44,0x00,0x08,0x44,0x00, + 0x10,0x22,0x00,0xE0,0x1F,0x00,0x00,0x00,0x40,0x40,0x00,0x00, + 0x00,0x40,0xC0,0x01,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x05, + 0x00,0x00,0x05,0x00,0x80,0x08,0x00,0x80,0x08,0x00,0x80,0x08, + 0x00,0x40,0x10,0x00,0x00,0x00,0x80,0x08,0x00,0x80,0x08,0x00, + 0x80,0x08,0x00,0x80,0x08,0x00,0x80,0x08,0x00,0x80,0x08,0x00, + 0x80,0x08,0x00,0x00,0x00,0x40,0x10,0x00,0x80,0x08,0x00,0x80, + 0x08,0x00,0x80,0x08,0x00,0x00,0x05,0x00,0x00,0x05,0x00,0x00, + 0x02,0x00,0x00,0x00,0x60,0x00,0x00,0x10,0x00,0x00,0x08,0x00, + 0x00,0x08,0x5C,0x00,0x08,0x02,0x00,0x10,0x01,0x00,0xE0,0x00, + 0x00,0x00,0x00,0x3F,0x00,0xC0,0x40,0x00,0x20,0x80,0x00,0x10, + 0x1E,0x01,0x10,0x21,0x01,0x88,0x40,0x02,0x48,0x40,0x02,0x48, + 0x40,0x02,0x48,0x20,0x02,0x88,0x7C,0x02,0xC8,0x43,0x02,0x10, + 0x40,0x02,0x10,0x20,0x01,0x60,0x10,0x01,0x80,0x8F,0x00,0x00, + 0x00,0x00,0x60,0x00,0x00,0x1C,0x00,0x80,0x07,0x00,0x70,0x04, + 0x00,0x08,0x04,0x00,0x70,0x04,0x00,0x80,0x07,0x00,0x00,0x1C, + 0x00,0x00,0x60,0x00,0x00,0x00,0xF8,0x7F,0x00,0x08,0x41,0x00, + 0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00, + 0x08,0x41,0x00,0x90,0x22,0x00,0x60,0x1C,0x00,0x00,0x00,0xC0, + 0x0F,0x00,0x20,0x10,0x00,0x10,0x20,0x00,0x08,0x40,0x00,0x08, + 0x40,0x00,0x08,0x40,0x00,0x08,0x40,0x00,0x08,0x40,0x00,0x10, + 0x20,0x00,0x20,0x10,0x00,0x00,0x00,0xF8,0x7F,0x00,0x08,0x40, + 0x00,0x08,0x40,0x00,0x08,0x40,0x00,0x08,0x40,0x00,0x08,0x40, + 0x00,0x08,0x40,0x00,0x10,0x20,0x00,0x20,0x10,0x00,0xC0,0x0F, + 0x00,0x00,0x00,0xF8,0x7F,0x00,0x08,0x41,0x00,0x08,0x41,0x00, + 0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00, + 0x08,0x41,0x00,0x08,0x40,0x00,0x00,0x00,0xF8,0x7F,0x00,0x08, + 0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08, + 0x02,0x00,0x08,0x02,0x00,0x08,0x00,0x00,0x00,0xC0,0x0F,0x00, + 0x20,0x10,0x00,0x10,0x20,0x00,0x08,0x40,0x00,0x08,0x40,0x00, + 0x08,0x42,0x00,0x08,0x42,0x00,0x10,0x22,0x00,0x20,0x12,0x00, + 0x00,0x0E,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x01,0x00,0x00, + 0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00, + 0x01,0x00,0x00,0x01,0x00,0xF8,0x7F,0x00,0x00,0x00,0xF8,0x7F, + 0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x40,0x00,0x00,0x40,0x00, + 0x00,0x40,0x00,0x00,0x40,0x00,0xF8,0x3F,0x00,0x00,0x00,0xF8, + 0x7F,0x00,0x00,0x04,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x80, + 0x03,0x00,0x40,0x04,0x00,0x20,0x18,0x00,0x10,0x20,0x00,0x08, + 0x40,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x40,0x00,0x00,0x40, + 0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40, + 0x00,0x00,0x00,0xF8,0x7F,0x00,0x30,0x00,0x00,0xC0,0x00,0x00, + 0x00,0x03,0x00,0x00,0x1C,0x00,0x00,0x60,0x00,0x00,0x1C,0x00, + 0x00,0x03,0x00,0xC0,0x00,0x00,0x30,0x00,0x00,0xF8,0x7F,0x00, + 0x00,0x00,0xF8,0x7F,0x00,0x10,0x00,0x00,0x60,0x00,0x00,0x80, + 0x00,0x00,0x00,0x03,0x00,0x00,0x04,0x00,0x00,0x18,0x00,0x00, + 0x20,0x00,0xF8,0x7F,0x00,0x00,0x00,0xC0,0x0F,0x00,0x20,0x10, + 0x00,0x10,0x20,0x00,0x08,0x40,0x00,0x08,0x40,0x00,0x08,0x40, + 0x00,0x08,0x40,0x00,0x10,0x20,0x00,0x20,0x10,0x00,0xC0,0x0F, + 0x00,0x00,0x00,0xF8,0x7F,0x00,0x08,0x02,0x00,0x08,0x02,0x00, + 0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00, + 0x10,0x01,0x00,0xE0,0x00,0x00,0x00,0xC0,0x0F,0x00,0x20,0x10, + 0x00,0x10,0x20,0x00,0x08,0x40,0x00,0x08,0x40,0x00,0x08,0x50, + 0x00,0x08,0x50,0x00,0x10,0x20,0x00,0x20,0x70,0x00,0xC0,0x4F, + 0x00,0x00,0x00,0xF8,0x7F,0x00,0x08,0x02,0x00,0x08,0x02,0x00, + 0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x06,0x00,0x08,0x1A,0x00, + 0x10,0x21,0x00,0xE0,0x40,0x00,0x00,0x00,0x60,0x10,0x00,0x90, + 0x20,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08, + 0x42,0x00,0x08,0x42,0x00,0x10,0x22,0x00,0x20,0x1C,0x08,0x00, + 0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0xF8,0x7F, + 0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00, + 0x00,0x00,0xF8,0x1F,0x00,0x00,0x20,0x00,0x00,0x40,0x00,0x00, + 0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00, + 0x20,0x00,0xF8,0x1F,0x00,0x00,0x00,0x18,0x00,0x00,0xE0,0x00, + 0x00,0x00,0x07,0x00,0x00,0x18,0x00,0x00,0x60,0x00,0x00,0x18, + 0x00,0x00,0x07,0x00,0xE0,0x00,0x00,0x18,0x18,0x00,0x00,0xE0, + 0x01,0x00,0x00,0x1E,0x00,0x00,0x60,0x00,0x00,0x1C,0x00,0x80, + 0x03,0x00,0x70,0x00,0x00,0x08,0x00,0x00,0x70,0x00,0x00,0x80, + 0x03,0x00,0x00,0x1C,0x00,0x00,0x60,0x00,0x00,0x1E,0x00,0xE0, + 0x01,0x00,0x18,0x00,0x40,0x00,0x08,0x20,0x00,0x10,0x10,0x00, + 0x60,0x0C,0x00,0x80,0x02,0x00,0x00,0x01,0x00,0x80,0x02,0x00, + 0x60,0x0C,0x00,0x10,0x10,0x00,0x08,0x20,0x00,0x00,0x40,0x08, + 0x00,0x00,0x30,0x00,0x00,0x40,0x00,0x00,0x80,0x01,0x00,0x00, + 0x7E,0x00,0x80,0x01,0x00,0x40,0x00,0x00,0x30,0x00,0x00,0x08, + 0x00,0x40,0x00,0x08,0x60,0x00,0x08,0x58,0x00,0x08,0x44,0x00, + 0x08,0x43,0x00,0x88,0x40,0x00,0x68,0x40,0x00,0x18,0x40,0x00, + 0x08,0x40,0x00,0x00,0x00,0xF8,0xFF,0x03,0x08,0x00,0x02,0x08, + 0x00,0x02,0x18,0x00,0x00,0xE0,0x01,0x00,0x00,0x1E,0x00,0x00, + 0x60,0x08,0x00,0x02,0x08,0x00,0x02,0xF8,0xFF,0x03,0x00,0x01, + 0x00,0xC0,0x00,0x00,0x30,0x00,0x00,0x08,0x00,0x00,0x30,0x00, + 0x00,0xC0,0x00,0x00,0x00,0x01,0x00,0x00,0x02,0x00,0x00,0x02, + 0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02, + 0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x00, + 0x08,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x39,0x00,0x80,0x44, + 0x00,0x40,0x44,0x00,0x40,0x44,0x00,0x40,0x42,0x00,0x40,0x22, + 0x00,0x80,0x7F,0x00,0x00,0x00,0xF8,0x7F,0x00,0x80,0x20,0x00, + 0x40,0x40,0x00,0x40,0x40,0x00,0x40,0x40,0x00,0x80,0x20,0x00, + 0x00,0x1F,0x00,0x00,0x00,0x00,0x1F,0x00,0x80,0x20,0x00,0x40, + 0x40,0x00,0x40,0x40,0x00,0x40,0x40,0x00,0x80,0x20,0x00,0x00, + 0x00,0x00,0x1F,0x00,0x80,0x20,0x00,0x40,0x40,0x00,0x40,0x40, + 0x00,0x40,0x40,0x00,0x80,0x20,0x00,0xF8,0x7F,0x00,0x00,0x00, + 0x00,0x1F,0x00,0x80,0x24,0x00,0x40,0x44,0x00,0x40,0x44,0x00, + 0x40,0x44,0x00,0x80,0x24,0x00,0x00,0x17,0x40,0x00,0x00,0xF0, + 0x7F,0x00,0x48,0x00,0x00,0x48,0x00,0x00,0x00,0x00,0x1F,0x01, + 0x80,0x20,0x02,0x40,0x40,0x02,0x40,0x40,0x02,0x40,0x40,0x02, + 0x80,0x20,0x01,0xC0,0xFF,0x00,0x00,0x00,0xF8,0x7F,0x00,0x80, + 0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x80, + 0x7F,0x00,0x00,0x00,0xC8,0x7F,0x00,0x00,0x02,0xC8,0xFF,0x01, + 0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x08,0x00,0x00,0x04,0x00, + 0x00,0x06,0x00,0x00,0x19,0x00,0x80,0x20,0x00,0x40,0x40,0x00, + 0x00,0x00,0xF8,0x7F,0x00,0x00,0x00,0xC0,0x7F,0x00,0x80,0x00, + 0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x80,0x7F, + 0x00,0x80,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00, + 0x00,0x80,0x7F,0x00,0x00,0x00,0xC0,0x7F,0x00,0x80,0x00,0x00, + 0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x80,0x7F,0x00, + 0x00,0x00,0x00,0x1F,0x00,0x80,0x20,0x00,0x40,0x40,0x00,0x40, + 0x40,0x00,0x40,0x40,0x00,0x80,0x20,0x00,0x00,0x1F,0x00,0x00, + 0x00,0xC0,0xFF,0x03,0x80,0x20,0x00,0x40,0x40,0x00,0x40,0x40, + 0x00,0x40,0x40,0x00,0x80,0x20,0x00,0x00,0x1F,0x00,0x00,0x00, + 0x00,0x1F,0x00,0x80,0x20,0x00,0x40,0x40,0x00,0x40,0x40,0x00, + 0x40,0x40,0x00,0x80,0x20,0x00,0xC0,0xFF,0x03,0x00,0x00,0x00, + 0xC0,0x7F,0x00,0x80,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00, + 0x00,0x80,0x23,0x00,0x40,0x44,0x00,0x40,0x44,0x00,0x40,0x44, + 0x00,0x40,0x44,0x00,0x80,0x38,0x40,0x00,0x00,0xF0,0x7F,0x00, + 0x40,0x40,0x00,0x40,0x40,0x00,0x00,0x00,0xC0,0x3F,0x00,0x00, + 0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0xC0, + 0x7F,0xC0,0x00,0x00,0x00,0x03,0x00,0x00,0x1C,0x00,0x00,0x60, + 0x00,0x00,0x1C,0x00,0x00,0x03,0x00,0xC0,0xC0,0x00,0x00,0x00, + 0x1F,0x00,0x00,0x60,0x00,0x00,0x1C,0x00,0x00,0x03,0x00,0xC0, + 0x00,0x00,0x00,0x03,0x00,0x00,0x1C,0x00,0x00,0x60,0x00,0x00, + 0x1F,0x00,0xC0,0x40,0x40,0x00,0x80,0x20,0x00,0x00,0x1B,0x00, + 0x00,0x04,0x00,0x00,0x1B,0x00,0x80,0x20,0x00,0x40,0x40,0xC0, + 0x01,0x00,0x00,0x06,0x02,0x00,0x38,0x02,0x00,0xE0,0x01,0x00, + 0x38,0x00,0x00,0x07,0x00,0xC0,0x40,0x40,0x00,0x40,0x60,0x00, + 0x40,0x58,0x00,0x40,0x44,0x00,0x40,0x43,0x00,0xC0,0x40,0x00, + 0x40,0x40,0x00,0x04,0x00,0x00,0x04,0x00,0xF0,0xFB,0x01,0x08, + 0x00,0x02,0x08,0x00,0x02,0x00,0x00,0x00,0xF8,0xFF,0x03,0x08, + 0x00,0x02,0x08,0x00,0x02,0xF0,0xFB,0x01,0x00,0x04,0x00,0x00, + 0x04,0x00,0x02,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01, + 0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x01, + 0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00, + 0xF8,0x7F,0x00,0x08,0x02,0x00,0x08,0x01,0x00,0x08,0x41,0x00, + 0x08,0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00, + 0x00,0x3E,0x00,0x00,0x00,0xF8,0x7F,0x00,0x08,0x00,0x00,0x0A, + 0x00,0x00,0x09,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08, + 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00, + 0xC0,0x7F,0x00,0x40,0x00,0x00,0x50,0x00,0x00,0x48,0x00,0x00, + 0x40,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40, + 0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00, + 0xF8,0xFF,0x03,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00, + 0x00,0x40,0x40,0x00,0x40,0x40,0x00,0x40,0x40,0x00,0xF8,0xFF, + 0x03,0x40,0x40,0x00,0x40,0x40,0x00,0x40,0x40,0x00,0x05,0x00, + 0xC0,0x1F,0x00,0x20,0x25,0x00,0x10,0x45,0x00,0x08,0x45,0x00, + 0x08,0x45,0x00,0x08,0x45,0x00,0x10,0x20,0xF0,0x00,0x00,0x08, + 0x01,0x00,0x08,0x01,0x00,0x08,0x71,0x00,0xF0,0x0C,0x00,0x00, + 0x03,0x00,0xE0,0x3C,0x00,0x18,0x42,0x00,0x00,0x42,0x00,0x00, + 0x42,0x00,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00, + 0x42,0x00,0x00,0x42,0x00,0x00,0x42,0x00,0x40,0x00,0x00,0x40, + 0x00,0xF8,0x3F,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00, + 0x00,0x08,0x00,0x00,0x08,0x00,0x00,0xF8,0x7F,0x00,0x00,0x41, + 0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41, + 0x00,0x00,0x41,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x04,0x00, + 0x00,0x1B,0x00,0x80,0x20,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00, + 0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00, + 0x01,0x00,0xF8,0x7F,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00, + 0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00, + 0x3E,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x01,0x00,0x00,0x01, + 0x00,0x82,0x02,0x00,0x61,0x04,0x00,0x10,0x08,0x00,0x08,0x30, + 0x00,0x08,0x40,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00, + 0x08,0x00,0x00,0xF8,0x7F,0x00,0x08,0x02,0x00,0x08,0x01,0x00, + 0x08,0x01,0x00,0x08,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00, + 0x00,0x7E,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x40,0x00,0x00, + 0x40,0x00,0x00,0x40,0x00,0x00,0xC0,0x03,0x00,0x40,0x00,0x00, + 0x40,0x00,0x00,0x40,0x00,0xF8,0x7F,0x10,0x00,0x00,0xF8,0x7F, + 0x00,0x90,0x00,0x00,0x50,0x00,0x00,0x50,0x00,0x00,0x40,0x00, + 0x02,0x80,0xFF,0x03,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x38, + 0x38,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x38,0x00, + 0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x03,0x00,0x80, + 0x07,0x00,0x80,0x07,0x00,0x00,0x03,0x00,0x04,0x00,0x00,0x04, + 0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04, + 0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x04,0x00, + 0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00, + 0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00, + 0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00, + 0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,0x00, + 0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0xF8,0x01,0x00,0x08, + 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0x18, + 0x00,0x00,0xE0,0x00,0x00,0x00,0x01,0x00,0xE0,0x00,0x00,0x18, + 0x00,0x00,0xF8,0x01,0x00,0x40,0x00,0x00,0x40,0x00,0xC0,0x3F, + 0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00, + 0x00,0xC0,0x7F,0x00,0x00,0x44,0x00,0x00,0x44,0x00,0x00,0x44, + 0x00,0x00,0x44,0x00,0x00,0x44,0x00,0x00,0x38,0x00,0x00,0x00, + 0x80,0x20,0x00,0x00,0x1B,0x00,0x00,0x04,0x00,0x00,0x00,0xC0, + 0x7F,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00, + 0x04,0x00,0xC0,0x7F,0x00,0x00,0x44,0x00,0x00,0x44,0x00,0x00, + 0x44,0x00,0x00,0x44,0x00,0x00,0x38,0x00,0x00,0x00,0xC0,0x7F, + 0x00,0x00,0x04,0x00,0x10,0x04,0x00,0x08,0x1B,0x00,0x80,0x20, + 0x00,0x40,0x40,0x10,0x00,0x00,0xF8,0x7F,0x00,0x90,0x00,0x00, + 0x50,0x00,0x00,0x50,0x00,0x00,0x40,0x00,0x00,0x80,0x7F,0x00, + 0x00,0x00,0xC0,0x7F,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00, + 0xC0,0x03,0x00,0x40,0x00,0xC0,0x7F,0x00,0x00,0x00,0x18,0x00, + 0x00,0x60,0x40,0x00,0x81,0x41,0x00,0x02,0x66,0x00,0x02,0x18, + 0x00,0x02,0x06,0x00,0x81,0x01,0x00,0x60,0x00,0x00,0x18,0x08, + 0x06,0x02,0x10,0x38,0x02,0x10,0xC0,0x01,0x10,0x78,0x00,0x08, + 0x07,0x00,0xC0,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x40,0x00, + 0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0xF8,0x3F,0x00, + 0x00,0x00,0x40,0x0B,0x00,0x80,0x04,0x00,0x40,0x08,0x00,0x40, + 0x08,0x00,0x80,0x04,0x00,0x40,0x0B,0x00,0x00,0x00,0xF8,0x7F, + 0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00, + 0x00,0x08,0x00,0x00,0x0F,0x00,0x00,0x00,0xF8,0xF1,0x03,0x00, + 0x86,0x00,0x70,0x09,0x01,0xC8,0x10,0x02,0x88,0x10,0x02,0x08, + 0x21,0x02,0x08,0x61,0x02,0x30,0xD2,0x01,0x00,0x0C,0x00,0x00, + 0x00,0xF8,0x7F,0x00,0x08,0x41,0x00,0x0A,0x41,0x00,0x08,0x41, + 0x00,0x0A,0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41, + 0x00,0x08,0x40,0xC0,0x0F,0x00,0x20,0x10,0x00,0x10,0x20,0x00, + 0xC8,0x47,0x00,0x28,0x48,0x00,0x28,0x48,0x00,0x28,0x48,0x00, + 0x28,0x48,0x00,0x48,0x44,0x00,0x10,0x20,0x00,0x20,0x10,0x00, + 0xC0,0x0F,0x00,0x00,0x00,0xC0,0x0F,0x00,0x20,0x11,0x00,0x10, + 0x21,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08, + 0x40,0x00,0x08,0x40,0x00,0x10,0x20,0x00,0x20,0x10,0x00,0x00, + 0x00,0x00,0x04,0x00,0x00,0x1B,0x00,0x80,0x20,0x00,0x00,0x04, + 0x00,0x00,0x1B,0x00,0x80,0x20,0x00,0x00,0x00,0x80,0x00,0x00, + 0x80,0x00,0x00,0x80,0x00,0x00,0x80,0x00,0x00,0x80,0x00,0x00, + 0x80,0x00,0x00,0x80,0x0F,0x00,0x08,0x00,0x00,0x08,0x00,0x00, + 0x08,0x00,0x00,0x08,0xC0,0x0F,0x00,0x20,0x10,0x00,0x10,0x20, + 0x00,0xE8,0x4F,0x00,0x28,0x41,0x00,0x28,0x41,0x00,0x28,0x43, + 0x00,0x28,0x45,0x00,0xC8,0x48,0x00,0x10,0x20,0x00,0x20,0x10, + 0x00,0xC0,0x0F,0x02,0x00,0x00,0xF8,0x7F,0x00,0x02,0x00,0x00, + 0x00,0x30,0x00,0x00,0x48,0x00,0x00,0x48,0x00,0x00,0x30,0x00, + 0x00,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0xE0, + 0x4F,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00, + 0x00,0xF8,0x7F,0x00,0x00,0x00,0xC8,0x7F,0x00,0x00,0x00,0xC0, + 0x7F,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x78, + 0x00,0x00,0x00,0xC0,0xFF,0x03,0x00,0x20,0x00,0x00,0x40,0x00, + 0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x20,0x00,0xC0,0x7F,0xF0, + 0x00,0x00,0xF8,0x00,0x00,0xF8,0x01,0x00,0xF8,0x01,0x00,0xF8, + 0xFF,0x03,0x08,0x00,0x00,0x08,0x00,0x00,0xF8,0xFF,0x03,0x08, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00, + 0x1F,0x00,0x80,0x24,0x00,0x50,0x44,0x00,0x40,0x44,0x00,0x50, + 0x44,0x00,0x80,0x24,0x00,0x00,0x17,0x00,0x00,0x00,0xF8,0x7F, + 0x00,0x20,0x00,0x00,0xC0,0x00,0x00,0x00,0x01,0x00,0x00,0x06, + 0x00,0x00,0x08,0x00,0x00,0x10,0x00,0xF8,0x7F,0x00,0x00,0x00, + 0x00,0x80,0x27,0x00,0x40,0x28,0x00,0x40,0x28,0x00,0x40,0x28, + 0x00,0x40,0x28,0x00,0x80,0x27,0x00,0x00,0x00,0x00,0x1F,0x00, + 0x80,0x24,0x00,0x40,0x44,0x00,0x40,0x44,0x00,0x80,0x20,0x00, + 0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x20,0x00,0x00, + 0x1B,0x00,0x00,0x04,0x00,0x80,0x20,0x00,0x00,0x1B,0x00,0x00, + 0x04,0x00,0x00,0x02,0xC8,0xFF,0x01,0x00,0x00,0x00,0x60,0x10, + 0x00,0x90,0x20,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41, + 0x00,0x08,0x42,0x00,0x08,0x42,0x00,0x10,0x22,0x00,0x20,0x1C, + 0x00,0x00,0x00,0x80,0x23,0x00,0x40,0x44,0x00,0x40,0x44,0x00, + 0x40,0x44,0x00,0x40,0x44,0x00,0x80,0x38,0x10,0x00,0x00,0xC0, + 0x7F,0x00,0x10,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x1C,0x00, + 0x80,0x07,0x00,0x70,0x04,0x00,0x08,0x04,0x00,0x70,0x04,0x00, + 0x80,0x07,0x00,0x00,0x1C,0x00,0x00,0x60,0x00,0x00,0x00,0xF8, + 0x7F,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08, + 0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x00, + 0x3E,0x00,0x00,0x00,0xF8,0x7F,0x00,0x08,0x41,0x00,0x08,0x41, + 0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41, + 0x00,0x90,0x22,0x00,0x60,0x1C,0x00,0x00,0x00,0xF8,0x7F,0x00, + 0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00, + 0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0xC0,0x03,0x00,0x60, + 0x00,0x00,0x5C,0x00,0xF8,0x43,0x00,0x08,0x40,0x00,0x08,0x40, + 0x00,0x08,0x40,0x00,0x08,0x40,0x00,0xF8,0x7F,0x00,0x00,0xC0, + 0x03,0x00,0x00,0x00,0xF8,0x7F,0x00,0x08,0x41,0x00,0x08,0x41, + 0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41,0x00,0x08,0x41, + 0x00,0x08,0x41,0x00,0x08,0x40,0x08,0x30,0x00,0x10,0x08,0x00, + 0x60,0x04,0x00,0x80,0x02,0x00,0x00,0x01,0x00,0x00,0x01,0x00, + 0xF8,0x7F,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x80,0x02,0x00, + 0x60,0x04,0x00,0x10,0x08,0x00,0x08,0x30,0x00,0x08,0x40,0x00, + 0x00,0x00,0x20,0x10,0x00,0x10,0x20,0x00,0x08,0x40,0x00,0x08, + 0x41,0x00,0x08,0x41,0x00,0x88,0x42,0x00,0x70,0x42,0x00,0x00, + 0x3C,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x30,0x00,0x00,0x08, + 0x00,0x00,0x04,0x00,0x00,0x02,0x00,0x00,0x01,0x00,0x80,0x00, + 0x00,0x40,0x00,0x00,0x30,0x00,0x00,0xF8,0x7F,0x00,0x00,0x00, + 0xF8,0x7F,0x00,0x00,0x30,0x00,0x00,0x08,0x00,0x01,0x04,0x00, + 0x02,0x02,0x00,0x02,0x01,0x00,0x82,0x00,0x00,0x41,0x00,0x00, + 0x30,0x00,0x00,0xF8,0x7F,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00, + 0x01,0x00,0x00,0x01,0x00,0x80,0x02,0x00,0x60,0x04,0x00,0x10, + 0x08,0x00,0x08,0x30,0x00,0x08,0x40,0x00,0x40,0x00,0x00,0x40, + 0x00,0xF8,0x3F,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00, + 0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0xF8,0x7F, + 0x00,0x00,0x00,0xF8,0x7F,0x00,0x30,0x00,0x00,0xC0,0x00,0x00, + 0x00,0x03,0x00,0x00,0x1C,0x00,0x00,0x60,0x00,0x00,0x1C,0x00, + 0x00,0x03,0x00,0xC0,0x00,0x00,0x30,0x00,0x00,0xF8,0x7F,0x00, + 0x00,0x00,0xF8,0x7F,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00, + 0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x01,0x00,0x00, + 0x01,0x00,0xF8,0x7F,0x00,0x00,0x00,0xC0,0x0F,0x00,0x20,0x10, + 0x00,0x10,0x20,0x00,0x08,0x40,0x00,0x08,0x40,0x00,0x08,0x40, + 0x00,0x08,0x40,0x00,0x10,0x20,0x00,0x20,0x10,0x00,0xC0,0x0F, + 0x00,0x00,0x00,0xF8,0x7F,0x00,0x08,0x00,0x00,0x08,0x00,0x00, + 0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00, + 0x08,0x00,0x00,0xF8,0x7F,0x00,0x00,0x00,0xF8,0x7F,0x00,0x08, + 0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08, + 0x02,0x00,0x08,0x02,0x00,0x10,0x01,0x00,0xE0,0x00,0x00,0x00, + 0xC0,0x0F,0x00,0x20,0x10,0x00,0x10,0x20,0x00,0x08,0x40,0x00, + 0x08,0x40,0x00,0x08,0x40,0x00,0x08,0x40,0x00,0x08,0x40,0x00, + 0x10,0x20,0x00,0x20,0x10,0x08,0x00,0x00,0x08,0x00,0x00,0x08, + 0x00,0x00,0x08,0x00,0x00,0xF8,0x7F,0x00,0x08,0x00,0x00,0x08, + 0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x00,0x18,0x00,0x00, + 0x60,0x40,0x00,0x80,0x41,0x00,0x00,0x66,0x00,0x00,0x18,0x00, + 0x00,0x06,0x00,0x80,0x01,0x00,0x60,0x00,0x00,0x18,0x00,0x00, + 0x00,0x80,0x07,0x00,0x40,0x08,0x00,0x20,0x10,0x00,0x20,0x10, + 0x00,0xF8,0x7F,0x00,0x20,0x10,0x00,0x20,0x10,0x00,0x40,0x08, + 0x00,0x80,0x07,0x00,0x40,0x00,0x08,0x20,0x00,0x10,0x10,0x00, + 0x60,0x0C,0x00,0x80,0x02,0x00,0x00,0x01,0x00,0x80,0x02,0x00, + 0x60,0x0C,0x00,0x10,0x10,0x00,0x08,0x20,0x00,0x00,0x40,0x00, + 0x00,0x00,0xF8,0x7F,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00, + 0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00, + 0x40,0x00,0xF8,0x7F,0x00,0x00,0xC0,0x03,0x00,0x00,0x00,0xF8, + 0x03,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00, + 0x04,0x00,0x00,0x04,0x00,0x00,0x02,0x00,0xF8,0x7F,0x00,0x00, + 0x00,0xF8,0x7F,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40, + 0x00,0x00,0x40,0x00,0xF8,0x7F,0x00,0x00,0x40,0x00,0x00,0x40, + 0x00,0x00,0x40,0x00,0x00,0x40,0x00,0xF8,0x7F,0x00,0x00,0x00, + 0xF8,0x7F,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00, + 0x00,0x40,0x00,0xF8,0x7F,0x00,0x00,0x40,0x00,0x00,0x40,0x00, + 0x00,0x40,0x00,0x00,0x40,0x00,0xF8,0x7F,0x00,0x00,0xC0,0x03, + 0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0xF8,0x7F,0x00, + 0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00, + 0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x3E,0x00, + 0x00,0x00,0xF8,0x7F,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00, + 0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00, + 0x41,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8, + 0x7F,0x00,0x00,0x00,0xF8,0x7F,0x00,0x00,0x41,0x00,0x00,0x41, + 0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41,0x00,0x00,0x41, + 0x00,0x00,0x41,0x00,0x00,0x3E,0x20,0x10,0x00,0x10,0x20,0x00, + 0x08,0x40,0x00,0x08,0x40,0x00,0x08,0x41,0x00,0x08,0x41,0x00, + 0x08,0x41,0x00,0x10,0x21,0x00,0x20,0x11,0x00,0xC0,0x0F,0x00, + 0x00,0x00,0xF8,0x7F,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00, + 0x02,0x00,0xC0,0x0F,0x00,0x20,0x10,0x00,0x10,0x20,0x00,0x08, + 0x40,0x00,0x08,0x40,0x00,0x08,0x40,0x00,0x08,0x40,0x00,0x10, + 0x20,0x00,0x20,0x10,0x00,0xC0,0x0F,0x00,0x00,0x00,0x00,0x00, + 0x00,0xE0,0x40,0x00,0x10,0x21,0x00,0x08,0x1A,0x00,0x08,0x06, + 0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02,0x00,0x08,0x02, + 0x00,0xF8,0x7F,0x00,0x00,0x00,0x00,0x39,0x00,0x80,0x44,0x00, + 0x40,0x44,0x00,0x40,0x44,0x00,0x40,0x42,0x00,0x40,0x22,0x00, + 0x80,0x7F,0x00,0x00,0x00,0xE0,0x1F,0x00,0x90,0x20,0x00,0x48, + 0x40,0x00,0x48,0x40,0x00,0x48,0x40,0x00,0x88,0x20,0x00,0x08, + 0x1F,0x00,0x00,0x00,0xC0,0x7F,0x00,0x40,0x44,0x00,0x40,0x44, + 0x00,0x40,0x44,0x00,0x40,0x44,0x00,0x40,0x44,0x00,0x80,0x3B, + 0x00,0x00,0x00,0xC0,0x7F,0x00,0x40,0x00,0x00,0x40,0x00,0x00, + 0x40,0x00,0x00,0x40,0x00,0xC0,0x01,0x00,0x70,0x00,0xC0,0x4F, + 0x00,0x40,0x40,0x00,0x40,0x40,0x00,0x40,0x40,0x00,0xC0,0x7F, + 0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0x00,0x1F,0x00,0x80,0x24, + 0x00,0x40,0x44,0x00,0x40,0x44,0x00,0x40,0x44,0x00,0x80,0x24, + 0x00,0x00,0x17,0xC0,0x20,0x00,0x00,0x1B,0x00,0x00,0x04,0x00, + 0x00,0x04,0x00,0xC0,0x7F,0x00,0x00,0x04,0x00,0x00,0x04,0x00, + 0x00,0x1B,0x00,0xC0,0x20,0x00,0x40,0x40,0x80,0x20,0x00,0x40, + 0x40,0x00,0x40,0x44,0x00,0x40,0x44,0x00,0x40,0x44,0x00,0x80, + 0x3B,0x00,0x00,0x00,0xC0,0x7F,0x00,0x00,0x30,0x00,0x00,0x0C, + 0x00,0x00,0x02,0x00,0x80,0x01,0x00,0xC0,0x7F,0x00,0x00,0x00, + 0xC0,0x7F,0x00,0x08,0x30,0x00,0x10,0x0C,0x00,0x10,0x02,0x00, + 0x90,0x01,0x00,0xC8,0x7F,0x00,0x00,0x00,0xC0,0x7F,0x00,0x00, + 0x04,0x00,0x00,0x04,0x00,0x00,0x1B,0x00,0x80,0x20,0x00,0x40, + 0x40,0x00,0x40,0x00,0xC0,0x3F,0x00,0x40,0x00,0x00,0x40,0x00, + 0x00,0x40,0x00,0x00,0x40,0x00,0x00,0xC0,0x7F,0x00,0x00,0x00, + 0xC0,0x7F,0x00,0xC0,0x01,0x00,0x00,0x06,0x00,0x00,0x18,0x00, + 0x00,0x60,0x00,0x00,0x18,0x00,0x00,0x06,0x00,0xC0,0x01,0x00, + 0xC0,0x7F,0x00,0x00,0x00,0xC0,0x7F,0x00,0x00,0x04,0x00,0x00, + 0x04,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0xC0,0x7F,0x00,0x00, + 0x00,0x00,0x1F,0x00,0x80,0x20,0x00,0x40,0x40,0x00,0x40,0x40, + 0x00,0x40,0x40,0x00,0x80,0x20,0x00,0x00,0x1F,0x00,0x00,0x00, + 0xC0,0x7F,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00, + 0x40,0x00,0x00,0xC0,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x03,0x80, + 0x60,0x00,0x40,0x40,0x00,0x40,0x40,0x00,0x40,0x40,0x00,0x80, + 0x20,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x1F,0x00,0x80,0x20, + 0x00,0x40,0x40,0x00,0x40,0x40,0x00,0x40,0x40,0x00,0x80,0x20, + 0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0xC0,0x7F,0x00, + 0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x06,0x02,0x00,0x38, + 0x02,0x00,0xC0,0x01,0x00,0x78,0x00,0x00,0x07,0x00,0xC0,0x00, + 0x00,0x00,0x00,0x1F,0x00,0x80,0x20,0x00,0x40,0x40,0x00,0x40, + 0x40,0x00,0x80,0x20,0x00,0xF8,0xFF,0x03,0x80,0x20,0x00,0x40, + 0x40,0x00,0x40,0x40,0x00,0x80,0x20,0x00,0x00,0x1F,0x40,0x40, + 0x00,0x80,0x20,0x00,0x00,0x1B,0x00,0x00,0x04,0x00,0x00,0x1B, + 0x00,0x80,0x20,0x00,0x40,0x40,0x00,0x00,0x00,0xC0,0x7F,0x00, + 0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00, + 0x00,0x40,0x00,0xC0,0x7F,0x00,0x00,0xC0,0x03,0x00,0x00,0x00, + 0xC0,0x03,0x00,0x00,0x04,0x00,0x00,0x08,0x00,0x00,0x08,0x00, + 0x00,0x08,0x00,0xC0,0x7F,0x00,0x00,0x00,0xC0,0x7F,0x00,0x00, + 0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0xC0,0x7F,0x00,0x00, + 0x40,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0xC0,0x7F,0x00,0x00, + 0x00,0xC0,0x7F,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40, + 0x00,0xC0,0x7F,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0x40, + 0x00,0xC0,0x7F,0x00,0x00,0xC0,0x03,0x00,0x00,0x00,0x40,0x00, + 0x00,0x40,0x00,0x00,0xC0,0x7F,0x00,0x00,0x44,0x00,0x00,0x44, + 0x00,0x00,0x44,0x00,0x00,0x44,0x00,0x00,0x38,0x00,0x00,0x00, + 0xC0,0x7F,0x00,0x00,0x44,0x00,0x00,0x44,0x00,0x00,0x44,0x00, + 0x00,0x44,0x00,0x00,0x44,0x00,0x00,0x38,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xC0,0x7F,0x00,0x00,0x00,0xC0,0x7F,0x00,0x00, + 0x44,0x00,0x00,0x44,0x00,0x00,0x44,0x00,0x00,0x44,0x00,0x00, + 0x44,0x00,0x00,0x38,0x00,0x00,0x00,0x00,0x11,0x00,0x80,0x20, + 0x00,0x40,0x44,0x00,0x40,0x44,0x00,0x80,0x24,0x00,0x00,0x1F, + 0x00,0x00,0x00,0xC0,0x7F,0x00,0x00,0x04,0x00,0x00,0x04,0x00, + 0x00,0x1F,0x00,0x80,0x20,0x00,0x40,0x40,0x00,0x40,0x40,0x00, + 0x40,0x40,0x00,0x80,0x20,0x00,0x00,0x1F,0x00,0x00,0x00,0x80, + 0x63,0x00,0x40,0x14,0x00,0x40,0x0C,0x00,0x40,0x04,0x00,0x40, + 0x04,0x00,0x40,0x04,0x00,0xC0,0x7F +}; + +const uint8_t ArialMT_Plain_24_Cyr[] PROGMEM = { + 0x1A, // Width: 26 + 0x1C, // Height: 28 + 0x20, // First Char: 32 + 0xE0, // Numbers of Chars: 224 + + // Jump Table: + 0xFF, 0xFF, 0x00, 0x07, // 32:65535 + 0x00, 0x00, 0x13, 0x07, // 33:0 + 0x00, 0x13, 0x1A, 0x09, // 34:19 + 0x00, 0x2D, 0x33, 0x0D, // 35:45 + 0x00, 0x60, 0x2F, 0x0D, // 36:96 + 0x00, 0x8F, 0x4F, 0x15, // 37:143 + 0x00, 0xDE, 0x3B, 0x10, // 38:222 + 0x01, 0x19, 0x0A, 0x05, // 39:281 + 0x01, 0x23, 0x1C, 0x08, // 40:291 + 0x01, 0x3F, 0x1B, 0x08, // 41:319 + 0x01, 0x5A, 0x21, 0x09, // 42:346 + 0x01, 0x7B, 0x32, 0x0E, // 43:379 + 0x01, 0xAD, 0x10, 0x07, // 44:429 + 0x01, 0xBD, 0x1B, 0x08, // 45:445 + 0x01, 0xD8, 0x0F, 0x07, // 46:472 + 0x01, 0xE7, 0x19, 0x07, // 47:487 + 0x02, 0x00, 0x2F, 0x0D, // 48:512 + 0x02, 0x2F, 0x23, 0x0D, // 49:559 + 0x02, 0x52, 0x2F, 0x0D, // 50:594 + 0x02, 0x81, 0x2F, 0x0D, // 51:641 + 0x02, 0xB0, 0x2F, 0x0D, // 52:688 + 0x02, 0xDF, 0x2F, 0x0D, // 53:735 + 0x03, 0x0E, 0x2F, 0x0D, // 54:782 + 0x03, 0x3D, 0x2D, 0x0D, // 55:829 + 0x03, 0x6A, 0x2F, 0x0D, // 56:874 + 0x03, 0x99, 0x2F, 0x0D, // 57:921 + 0x03, 0xC8, 0x0F, 0x07, // 58:968 + 0x03, 0xD7, 0x10, 0x07, // 59:983 + 0x03, 0xE7, 0x2F, 0x0E, // 60:999 + 0x04, 0x16, 0x2F, 0x0E, // 61:1046 + 0x04, 0x45, 0x2E, 0x0E, // 62:1093 + 0x04, 0x73, 0x2E, 0x0D, // 63:1139 + 0x04, 0xA1, 0x5B, 0x18, // 64:1185 + 0x04, 0xFC, 0x3B, 0x10, // 65:1276 + 0x05, 0x37, 0x3B, 0x10, // 66:1335 + 0x05, 0x72, 0x3F, 0x11, // 67:1394 + 0x05, 0xB1, 0x3F, 0x11, // 68:1457 + 0x05, 0xF0, 0x3B, 0x10, // 69:1520 + 0x06, 0x2B, 0x35, 0x0F, // 70:1579 + 0x06, 0x60, 0x43, 0x13, // 71:1632 + 0x06, 0xA3, 0x3B, 0x11, // 72:1699 + 0x06, 0xDE, 0x0F, 0x07, // 73:1758 + 0x06, 0xED, 0x27, 0x0C, // 74:1773 + 0x07, 0x14, 0x3F, 0x10, // 75:1812 + 0x07, 0x53, 0x2F, 0x0D, // 76:1875 + 0x07, 0x82, 0x43, 0x14, // 77:1922 + 0x07, 0xC5, 0x3B, 0x11, // 78:1989 + 0x08, 0x00, 0x47, 0x13, // 79:2048 + 0x08, 0x47, 0x3A, 0x10, // 80:2119 + 0x08, 0x81, 0x47, 0x13, // 81:2177 + 0x08, 0xC8, 0x3F, 0x11, // 82:2248 + 0x09, 0x07, 0x3B, 0x10, // 83:2311 + 0x09, 0x42, 0x35, 0x0F, // 84:2370 + 0x09, 0x77, 0x3B, 0x11, // 85:2423 + 0x09, 0xB2, 0x39, 0x10, // 86:2482 + 0x09, 0xEB, 0x59, 0x17, // 87:2539 + 0x0A, 0x44, 0x3B, 0x10, // 88:2628 + 0x0A, 0x7F, 0x3D, 0x10, // 89:2687 + 0x0A, 0xBC, 0x37, 0x0F, // 90:2748 + 0x0A, 0xF3, 0x14, 0x07, // 91:2803 + 0x0B, 0x07, 0x1B, 0x07, // 92:2823 + 0x0B, 0x22, 0x18, 0x07, // 93:2850 + 0x0B, 0x3A, 0x2A, 0x0B, // 94:2874 + 0x0B, 0x64, 0x34, 0x0D, // 95:2916 + 0x0B, 0x98, 0x11, 0x08, // 96:2968 + 0x0B, 0xA9, 0x2F, 0x0D, // 97:2985 + 0x0B, 0xD8, 0x33, 0x0D, // 98:3032 + 0x0C, 0x0B, 0x2B, 0x0C, // 99:3083 + 0x0C, 0x36, 0x2F, 0x0D, // 100:3126 + 0x0C, 0x65, 0x2F, 0x0D, // 101:3173 + 0x0C, 0x94, 0x1A, 0x07, // 102:3220 + 0x0C, 0xAE, 0x2F, 0x0D, // 103:3246 + 0x0C, 0xDD, 0x2F, 0x0D, // 104:3293 + 0x0D, 0x0C, 0x0F, 0x05, // 105:3340 + 0x0D, 0x1B, 0x10, 0x05, // 106:3355 + 0x0D, 0x2B, 0x2F, 0x0C, // 107:3371 + 0x0D, 0x5A, 0x0F, 0x05, // 108:3418 + 0x0D, 0x69, 0x47, 0x14, // 109:3433 + 0x0D, 0xB0, 0x2F, 0x0D, // 110:3504 + 0x0D, 0xDF, 0x2F, 0x0D, // 111:3551 + 0x0E, 0x0E, 0x33, 0x0D, // 112:3598 + 0x0E, 0x41, 0x30, 0x0D, // 113:3649 + 0x0E, 0x71, 0x1E, 0x08, // 114:3697 + 0x0E, 0x8F, 0x2B, 0x0C, // 115:3727 + 0x0E, 0xBA, 0x1B, 0x07, // 116:3770 + 0x0E, 0xD5, 0x2F, 0x0D, // 117:3797 + 0x0F, 0x04, 0x2A, 0x0C, // 118:3844 + 0x0F, 0x2E, 0x42, 0x11, // 119:3886 + 0x0F, 0x70, 0x2B, 0x0C, // 120:3952 + 0x0F, 0x9B, 0x2A, 0x0C, // 121:3995 + 0x0F, 0xC5, 0x2B, 0x0C, // 122:4037 + 0x0F, 0xF0, 0x1C, 0x08, // 123:4080 + 0x10, 0x0C, 0x10, 0x06, // 124:4108 + 0x10, 0x1C, 0x1B, 0x08, // 125:4124 + 0x10, 0x37, 0x32, 0x0E, // 126:4151 + 0xFF, 0xFF, 0x00, 0x00, // 127:65535 + 0x10, 0x69, 0x4F, 0x15, // 128:4201 Ђ + 0x10, 0xB8, 0x31, 0x0D, // 129:4280 Ѓ + 0x10, 0xE9, 0x0C, 0x05, // 130:4329 ‚ + 0x10, 0xF5, 0x22, 0x09, // 131:4341 ѓ + 0x11, 0x17, 0x1C, 0x08, // 132:4375 „ + 0x11, 0x33, 0x4B, 0x18, // 133:4403 … + 0x11, 0x7E, 0x32, 0x0D, // 134:4478 † + 0x11, 0xB0, 0x33, 0x0D, // 135:4528 ‡ + 0x11, 0xE3, 0x2F, 0x0D, // 136:4579 € + 0x12, 0x12, 0x5F, 0x18, // 137:4626 ‰ + 0x12, 0x71, 0x5F, 0x19, // 138:4721 Љ + 0x12, 0xD0, 0x17, 0x08, // 139:4816 ‹ + 0x12, 0xE7, 0x5B, 0x18, // 140:4839 Њ + 0x13, 0x42, 0x37, 0x0E, // 141:4930 Ќ + 0x13, 0x79, 0x4F, 0x15, // 142:4985 Ћ + 0x13, 0xC8, 0x3B, 0x11, // 143:5064 Џ + 0x14, 0x03, 0x30, 0x0D, // 144:5123 ђ + 0x14, 0x33, 0x0A, 0x05, // 145:5171 ‘ + 0x14, 0x3D, 0x0A, 0x05, // 146:5181 ’ + 0x14, 0x47, 0x1A, 0x08, // 147:5191 “ + 0x14, 0x61, 0x1A, 0x08, // 148:5217 ” + 0x14, 0x7B, 0x1A, 0x08, // 149:5243 • + 0x14, 0x95, 0x33, 0x0D, // 150:5269 – + 0x14, 0xC8, 0x5F, 0x18, // 151:5320 — + 0xFF, 0xFF, 0x00, 0x00, // 152:65535 + 0x15, 0x27, 0x5A, 0x18, // 153:5415 ™ + 0x15, 0x81, 0x53, 0x16, // 154:5505 љ + 0x15, 0xD4, 0x1A, 0x08, // 155:5588 › + 0x15, 0xEE, 0x4B, 0x14, // 156:5614 њ + 0x16, 0x39, 0x2B, 0x0B, // 157:5689 ќ + 0x16, 0x64, 0x2F, 0x0D, // 158:5732 ћ + 0x16, 0x93, 0x2F, 0x0D, // 159:5779 џ + 0xFF, 0xFF, 0x00, 0x07, // 160:65535 + 0x16, 0xC2, 0x35, 0x0F, // 161:5826 Ў + 0x16, 0xF7, 0x2A, 0x0C, // 162:5879 ў + 0x17, 0x21, 0x27, 0x0C, // 163:5921 Ј + 0x17, 0x48, 0x33, 0x0D, // 164:5960 ¤ + 0x17, 0x7B, 0x29, 0x0C, // 165:6011 Ґ + 0x17, 0xA4, 0x10, 0x06, // 166:6052 ¦ + 0x17, 0xB4, 0x2F, 0x0D, // 167:6068 § + 0x17, 0xE3, 0x3B, 0x10, // 168:6115 Ё + 0x18, 0x1E, 0x46, 0x12, // 169:6174 © + 0x18, 0x64, 0x3F, 0x11, // 170:6244 Є + 0x18, 0xA3, 0x27, 0x0D, // 171:6307 « + 0x18, 0xCA, 0x2F, 0x0E, // 172:6346 ¬ + 0x18, 0xF9, 0x1B, 0x08, // 173:6393 + 0x19, 0x14, 0x46, 0x12, // 174:6420 ® + 0x19, 0x5A, 0x15, 0x07, // 175:6490 Ї + 0x19, 0x6F, 0x1E, 0x0A, // 176:6511 ° + 0x19, 0x8D, 0x33, 0x0D, // 177:6541 ± + 0x19, 0xC0, 0x0F, 0x07, // 178:6592 І + 0x19, 0xCF, 0x0F, 0x05, // 179:6607 і + 0x19, 0xDE, 0x22, 0x0A, // 180:6622 ґ + 0x1A, 0x00, 0x2F, 0x0E, // 181:6656 µ + 0x1A, 0x2F, 0x31, 0x0D, // 182:6703 ¶ + 0x1A, 0x60, 0x12, 0x08, // 183:6752 · + 0x1A, 0x72, 0x2F, 0x0D, // 184:6770 ё + 0x1A, 0xA1, 0x63, 0x1A, // 185:6817 № + 0x1B, 0x04, 0x2B, 0x0C, // 186:6916 є + 0x1B, 0x2F, 0x2E, 0x0D, // 187:6959 » + 0x1B, 0x5D, 0x0C, 0x05, // 188:7005 ј + 0x1B, 0x69, 0x3B, 0x10, // 189:7017 Ѕ + 0x1B, 0xA4, 0x2B, 0x0C, // 190:7076 ѕ + 0x1B, 0xCF, 0x15, 0x07, // 191:7119 ї + 0x1B, 0xE4, 0x37, 0x10, // 192:7140 А + 0x1C, 0x1B, 0x3B, 0x10, // 193:7195 Б + 0x1C, 0x56, 0x3B, 0x10, // 194:7254 В + 0x1C, 0x91, 0x31, 0x0D, // 195:7313 Г + 0x1C, 0xC2, 0x40, 0x10, // 196:7362 Д + 0x1D, 0x02, 0x3B, 0x10, // 197:7426 Е + 0x1D, 0x3D, 0x57, 0x16, // 198:7485 Ж + 0x1D, 0x94, 0x37, 0x0F, // 199:7572 З + 0x1D, 0xCB, 0x3B, 0x11, // 200:7627 И + 0x1E, 0x06, 0x3B, 0x11, // 201:7686 Й + 0x1E, 0x41, 0x37, 0x0E, // 202:7745 К + 0x1E, 0x78, 0x37, 0x10, // 203:7800 Л + 0x1E, 0xAF, 0x43, 0x14, // 204:7855 М + 0x1E, 0xF2, 0x3B, 0x11, // 205:7922 Н + 0x1F, 0x2D, 0x47, 0x13, // 206:7981 О + 0x1F, 0x74, 0x3B, 0x11, // 207:8052 П + 0x1F, 0xAF, 0x3A, 0x10, // 208:8111 Р + 0x1F, 0xE9, 0x3F, 0x11, // 209:8169 С + 0x20, 0x28, 0x35, 0x0F, // 210:8232 Т + 0x20, 0x5D, 0x35, 0x0F, // 211:8285 У + 0x20, 0x92, 0x42, 0x12, // 212:8338 Ф + 0x20, 0xD4, 0x3B, 0x10, // 213:8404 Х + 0x21, 0x0F, 0x44, 0x12, // 214:8463 Ц + 0x21, 0x53, 0x37, 0x10, // 215:8531 Ч + 0x21, 0x8A, 0x53, 0x16, // 216:8586 Ш + 0x21, 0xDD, 0x5C, 0x17, // 217:8669 Щ + 0x22, 0x39, 0x47, 0x13, // 218:8761 Ъ + 0x22, 0x80, 0x4B, 0x15, // 219:8832 Ы + 0x22, 0xCB, 0x3B, 0x10, // 220:8907 Ь + 0x23, 0x06, 0x3F, 0x11, // 221:8966 Э + 0x23, 0x45, 0x5B, 0x18, // 222:9029 Ю + 0x23, 0xA0, 0x3B, 0x11, // 223:9120 Я + 0x23, 0xDB, 0x2F, 0x0D, // 224:9179 а + 0x24, 0x0A, 0x33, 0x0E, // 225:9226 б + 0x24, 0x3D, 0x2F, 0x0D, // 226:9277 в + 0x24, 0x6C, 0x22, 0x09, // 227:9324 г + 0x24, 0x8E, 0x34, 0x0E, // 228:9358 д + 0x24, 0xC2, 0x2F, 0x0D, // 229:9410 е + 0x24, 0xF1, 0x3B, 0x10, // 230:9457 ж + 0x25, 0x2C, 0x27, 0x0B, // 231:9516 з + 0x25, 0x53, 0x2F, 0x0D, // 232:9555 и + 0x25, 0x82, 0x2F, 0x0D, // 233:9602 й + 0x25, 0xB1, 0x2B, 0x0B, // 234:9649 к + 0x25, 0xDC, 0x2F, 0x0E, // 235:9692 л + 0x26, 0x0B, 0x3B, 0x11, // 236:9739 м + 0x26, 0x46, 0x2F, 0x0D, // 237:9798 н + 0x26, 0x75, 0x2F, 0x0D, // 238:9845 о + 0x26, 0xA4, 0x2F, 0x0D, // 239:9892 п + 0x26, 0xD3, 0x33, 0x0D, // 240:9939 р + 0x27, 0x06, 0x2B, 0x0C, // 241:9990 с + 0x27, 0x31, 0x26, 0x0B, // 242:10033 т + 0x27, 0x57, 0x2A, 0x0C, // 243:10071 у + 0x27, 0x81, 0x4B, 0x14, // 244:10113 ф + 0x27, 0xCC, 0x2B, 0x0C, // 245:10188 х + 0x27, 0xF7, 0x34, 0x0E, // 246:10231 ц + 0x28, 0x2B, 0x2B, 0x0D, // 247:10283 ч + 0x28, 0x56, 0x47, 0x13, // 248:10326 ш + 0x28, 0x9D, 0x4C, 0x14, // 249:10397 щ + 0x28, 0xE9, 0x37, 0x0F, // 250:10473 ъ + 0x29, 0x20, 0x3B, 0x11, // 251:10528 ы + 0x29, 0x5B, 0x2F, 0x0D, // 252:10587 ь + 0x29, 0x8A, 0x2B, 0x0C, // 253:10634 э + 0x29, 0xB5, 0x43, 0x12, // 254:10677 ю + 0x29, 0xF8, 0x2B, 0x0D, // 255:10744 я + + // Font Data: + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xE0,0xFF,0x33,0x00,0xE0,0xFF,0x33,0x00,0x00,0x00,0x00,0xE0, + 0x07,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0xE0,0x07,0x00,0x0C,0x03, + 0x00,0x00,0x0C,0x33,0x00,0x00,0x0C,0x3F,0x00,0x00,0xFC,0x0F, + 0x00,0x80,0xFF,0x03,0x00,0xE0,0x0F,0x03,0x00,0x60,0x0C,0x33, + 0x00,0x00,0x0C,0x3F,0x00,0x00,0xFC,0x0F,0x00,0x80,0xFF,0x03, + 0x00,0xE0,0x0F,0x03,0x00,0x60,0x0C,0x03,0x00,0x00,0x0C,0x03, + 0x00,0x00,0x00,0x00,0x80,0x07,0x06,0x00,0xC0,0x0F,0x1E,0x00, + 0xC0,0x18,0x1C,0x00,0x60,0x18,0x38,0x00,0x60,0x30,0x30,0x00, + 0xF0,0xFF,0xFF,0x00,0x60,0x30,0x30,0x00,0x60,0x60,0x38,0x00, + 0xC0,0x60,0x18,0x00,0xC0,0xC1,0x1F,0x00,0x00,0x81,0x07,0x00, + 0x00,0x00,0x00,0x80,0x0F,0x00,0x00,0xC0,0x1F,0x00,0x00,0x60, + 0x30,0x00,0x00,0x20,0x20,0x00,0x00,0x20,0x20,0x20,0x00,0x60, + 0x30,0x38,0x00,0xC0,0x1F,0x1E,0x00,0x80,0x8F,0x0F,0x00,0x00, + 0xC0,0x03,0x00,0x00,0xF0,0x00,0x00,0x00,0x3C,0x00,0x00,0x00, + 0x8F,0x0F,0x00,0xC0,0xC3,0x1F,0x00,0xE0,0x60,0x30,0x00,0x20, + 0x20,0x20,0x00,0x00,0x20,0x20,0x00,0x00,0x60,0x30,0x00,0x00, + 0xC0,0x1F,0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0x00,0x00,0x80, + 0x07,0x00,0x00,0xC0,0x0F,0x00,0x80,0xE3,0x1C,0x00,0xC0,0x77, + 0x38,0x00,0xE0,0x3C,0x30,0x00,0x60,0x38,0x30,0x00,0x60,0x78, + 0x30,0x00,0xE0,0xEC,0x38,0x00,0xC0,0x8F,0x1B,0x00,0x80,0x03, + 0x1F,0x00,0x00,0x00,0x0F,0x00,0x00,0xC0,0x1F,0x00,0x00,0xC0, + 0x38,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0xE0,0x07,0x00, + 0x00,0xE0,0x07,0x00,0x00,0x00,0x00,0x00,0xF0,0x0F,0x00,0x00, + 0xFE,0x7F,0x00,0x80,0x0F,0xF0,0x01,0xC0,0x01,0x80,0x03,0x60, + 0x00,0x00,0x06,0x20,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x20, + 0x00,0x00,0x04,0x60,0x00,0x00,0x06,0xC0,0x01,0x80,0x03,0x80, + 0x0F,0xF0,0x01,0x00,0xFE,0x7F,0x00,0x00,0xF0,0x0F,0x00,0x00, + 0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x04,0x00,0x00,0x80,0x0F, + 0x00,0x00,0xE0,0x03,0x00,0x00,0xE0,0x03,0x00,0x00,0x80,0x0F, + 0x00,0x00,0x80,0x04,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xFF,0x0F,0x00,0x00, + 0xFF,0x0F,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0xF0, + 0x01,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01, + 0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01, + 0x00,0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00, + 0x00,0x3E,0x00,0x00,0xE0,0x0F,0x00,0x00,0xFC,0x01,0x00,0x80, + 0x3F,0x00,0x00,0xE0,0x03,0x00,0x00,0x60,0x00,0x00,0x00,0x00, + 0x00,0xFE,0x03,0x00,0x80,0xFF,0x0F,0x00,0xC0,0x01,0x1C,0x00, + 0xE0,0x00,0x38,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00, + 0x60,0x00,0x30,0x00,0xE0,0x00,0x38,0x00,0xC0,0x01,0x1C,0x00, + 0x80,0xFF,0x0F,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00, + 0x07,0x00,0x00,0x00,0x03,0x00,0x00,0x80,0x01,0x00,0x00,0xE0, + 0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x03, + 0x30,0x00,0xC0,0x03,0x38,0x00,0xC0,0x00,0x3C,0x00,0x60,0x00, + 0x36,0x00,0x60,0x00,0x33,0x00,0x60,0x80,0x31,0x00,0x60,0xC0, + 0x30,0x00,0x60,0x60,0x30,0x00,0xC0,0x30,0x30,0x00,0xC0,0x1F, + 0x30,0x00,0x00,0x0F,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x06, + 0x00,0xC0,0x01,0x0E,0x00,0xC0,0x00,0x1C,0x00,0x60,0x00,0x30, + 0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30, + 0x00,0xC0,0x38,0x30,0x00,0xC0,0x6F,0x18,0x00,0x80,0xC7,0x0F, + 0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00, + 0x00,0xC0,0x03,0x00,0x00,0xF0,0x03,0x00,0x00,0x3C,0x03,0x00, + 0x00,0x0E,0x03,0x00,0x80,0x07,0x03,0x00,0xC0,0x01,0x03,0x00, + 0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x03,0x00, + 0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x30,0x06,0x00,0x80, + 0x3F,0x0E,0x00,0xE0,0x1F,0x18,0x00,0x60,0x08,0x30,0x00,0x60, + 0x0C,0x30,0x00,0x60,0x0C,0x30,0x00,0x60,0x0C,0x30,0x00,0x60, + 0x0C,0x30,0x00,0x60,0x18,0x1C,0x00,0x60,0xF0,0x0F,0x00,0x00, + 0xE0,0x03,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x80,0xFF, + 0x0F,0x00,0xC0,0x63,0x1C,0x00,0xC0,0x30,0x38,0x00,0x60,0x18, + 0x30,0x00,0x60,0x18,0x30,0x00,0x60,0x18,0x30,0x00,0x60,0x18, + 0x30,0x00,0xE0,0x30,0x18,0x00,0xC0,0xF1,0x0F,0x00,0x80,0xC1, + 0x07,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x3C,0x00,0x60,0x80,0x3F, + 0x00,0x60,0xE0,0x03,0x00,0x60,0x78,0x00,0x00,0x60,0x0E,0x00, + 0x00,0x60,0x03,0x00,0x00,0xE0,0x01,0x00,0x00,0x60,0x00,0x00, + 0x00,0x00,0x00,0x80,0x07,0x00,0x80,0xC7,0x1F,0x00,0xC0,0x6F, + 0x18,0x00,0xE0,0x38,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30, + 0x30,0x00,0x60,0x30,0x30,0x00,0xE0,0x38,0x30,0x00,0xC0,0x6F, + 0x18,0x00,0x80,0xC7,0x1F,0x00,0x00,0x80,0x07,0x00,0x00,0x00, + 0x00,0x00,0x1F,0x0C,0x00,0x80,0x7F,0x1C,0x00,0xC0,0x61,0x38, + 0x00,0x60,0xC0,0x30,0x00,0x60,0xC0,0x30,0x00,0x60,0xC0,0x30, + 0x00,0x60,0xC0,0x30,0x00,0x60,0x60,0x18,0x00,0xC0,0x31,0x1E, + 0x00,0x80,0xFF,0x0F,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x30,0x03,0x00, + 0x06,0xF0,0x01,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x70,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0xD8,0x00,0x00,0x00, + 0xD8,0x00,0x00,0x00,0x8C,0x01,0x00,0x00,0x8C,0x01,0x00,0x00, + 0x04,0x01,0x00,0x00,0x06,0x03,0x00,0x00,0x06,0x03,0x00,0x00, + 0x03,0x06,0x00,0x00,0x00,0x00,0x00,0x8C,0x01,0x00,0x00,0x8C, + 0x01,0x00,0x00,0x8C,0x01,0x00,0x00,0x8C,0x01,0x00,0x00,0x8C, + 0x01,0x00,0x00,0x8C,0x01,0x00,0x00,0x8C,0x01,0x00,0x00,0x8C, + 0x01,0x00,0x00,0x8C,0x01,0x00,0x00,0x8C,0x01,0x00,0x00,0x8C, + 0x01,0x00,0x00,0x00,0x00,0x00,0x03,0x06,0x00,0x00,0x06,0x03, + 0x00,0x00,0x06,0x03,0x00,0x00,0x04,0x01,0x00,0x00,0x8C,0x01, + 0x00,0x00,0x8C,0x01,0x00,0x00,0xD8,0x00,0x00,0x00,0xD8,0x00, + 0x00,0x00,0x50,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x20,0x00, + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x80,0x03,0x00,0x00,0xC0, + 0x01,0x00,0x00,0xE0,0x00,0x00,0x00,0x60,0x80,0x33,0x00,0x60, + 0xC0,0x33,0x00,0x60,0xE0,0x00,0x00,0x60,0x30,0x00,0x00,0xC0, + 0x38,0x00,0x00,0xC0,0x1F,0x00,0x00,0x00,0x07,0x00,0x00,0x00, + 0x00,0x00,0xE0,0x0F,0x00,0x00,0xF8,0x3F,0x00,0x00,0x1E,0xF0, + 0x00,0x00,0x07,0xC0,0x01,0x80,0xC3,0x87,0x01,0xC0,0xF1,0x9F, + 0x03,0xC0,0x38,0x18,0x03,0xC0,0x0C,0x30,0x03,0x60,0x0E,0x30, + 0x06,0x60,0x06,0x30,0x06,0x60,0x06,0x18,0x06,0x60,0x06,0x0C, + 0x06,0x60,0x0C,0x1E,0x06,0x60,0xF8,0x3F,0x06,0xE0,0xFE,0x31, + 0x06,0xC0,0x0E,0x30,0x06,0xC0,0x01,0x18,0x03,0x80,0x03,0x1C, + 0x03,0x00,0x07,0x8F,0x01,0x00,0xFE,0x87,0x01,0x00,0xF8,0xC1, + 0x00,0x00,0x00,0x40,0x00,0x00,0x30,0x00,0x00,0x00,0x3E,0x00, + 0x00,0x80,0x0F,0x00,0x00,0xF0,0x03,0x00,0x00,0xFE,0x01,0x00, + 0x80,0x8F,0x01,0x00,0xE0,0x83,0x01,0x00,0x60,0x80,0x01,0x00, + 0xE0,0x83,0x01,0x00,0x80,0x8F,0x01,0x00,0x00,0xFE,0x01,0x00, + 0x00,0xF0,0x03,0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0x3E,0x00, + 0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0, + 0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x60,0x30,0x30,0x00,0x60, + 0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60, + 0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0xC0, + 0x78,0x30,0x00,0xC0,0xFF,0x18,0x00,0x80,0xC7,0x1F,0x00,0x00, + 0x80,0x07,0x00,0x00,0x00,0x00,0x00,0xFC,0x01,0x00,0x00,0xFF, + 0x07,0x00,0x80,0x07,0x0F,0x00,0xC0,0x01,0x1C,0x00,0xC0,0x00, + 0x18,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00, + 0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00, + 0x30,0x00,0xC0,0x00,0x18,0x00,0xC0,0x01,0x1C,0x00,0x80,0x03, + 0x0F,0x00,0x00,0x02,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x60,0x00,0x30, + 0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30, + 0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30, + 0x00,0xE0,0x00,0x18,0x00,0xC0,0x01,0x1C,0x00,0x80,0x03,0x0E, + 0x00,0x00,0xFF,0x07,0x00,0x00,0xFC,0x01,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00, + 0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00, + 0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00, + 0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00, + 0x60,0x30,0x30,0x00,0x60,0x00,0x30,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x60, + 0x30,0x00,0x00,0x60,0x30,0x00,0x00,0x60,0x30,0x00,0x00,0x60, + 0x30,0x00,0x00,0x60,0x30,0x00,0x00,0x60,0x30,0x00,0x00,0x60, + 0x30,0x00,0x00,0x60,0x30,0x00,0x00,0x60,0x30,0x00,0x00,0x60, + 0x00,0x00,0x00,0x00,0x00,0xFC,0x01,0x00,0x00,0xFF,0x07,0x00, + 0x80,0x07,0x0F,0x00,0xC0,0x01,0x1C,0x00,0xC0,0x00,0x18,0x00, + 0xE0,0x00,0x18,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00, + 0x60,0x00,0x30,0x00,0x60,0x60,0x30,0x00,0x60,0x60,0x30,0x00, + 0xE0,0x60,0x38,0x00,0xC0,0x60,0x18,0x00,0xC0,0x61,0x18,0x00, + 0x80,0xE3,0x0F,0x00,0x00,0xE2,0x0F,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0xE0, + 0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00, + 0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x38, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x38,0x00,0xE0,0xFF,0x1F,0x00,0xE0,0xFF,0x0F, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00, + 0xE0,0xFF,0x3F,0x00,0x00,0xE0,0x00,0x00,0x00,0x70,0x00,0x00, + 0x00,0x38,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0xFE,0x00,0x00, + 0x00,0xE7,0x01,0x00,0x80,0x83,0x07,0x00,0xC0,0x01,0x0F,0x00, + 0xE0,0x00,0x1E,0x00,0x60,0x00,0x38,0x00,0x20,0x00,0x30,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0, + 0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF, + 0x3F,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0x01,0x00,0x00,0xC0,0x0F, + 0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0x00, + 0x3F,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3F,0x00,0x00,0xE0, + 0x07,0x00,0x00,0xFE,0x00,0x00,0xC0,0x0F,0x00,0x00,0xE0,0x01, + 0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F, + 0x00,0xC0,0x01,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x0E,0x00, + 0x00,0x00,0x3C,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xE0,0x01, + 0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x1C, + 0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00, + 0x00,0xFC,0x01,0x00,0x00,0xFF,0x07,0x00,0x80,0x07,0x0F,0x00, + 0xC0,0x01,0x1C,0x00,0xC0,0x00,0x18,0x00,0xE0,0x00,0x38,0x00, + 0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00, + 0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0xE0,0x00,0x38,0x00, + 0xC0,0x00,0x18,0x00,0xC0,0x01,0x1C,0x00,0x80,0x07,0x0F,0x00, + 0x00,0xFF,0x07,0x00,0x00,0xFC,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x60, + 0x60,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00,0x00,0x60, + 0x60,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00,0x00,0x60, + 0x60,0x00,0x00,0x60,0x60,0x00,0x00,0xC0,0x30,0x00,0x00,0xC0, + 0x3F,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0xFC,0x01, + 0x00,0x00,0xFF,0x07,0x00,0x80,0x07,0x0F,0x00,0xC0,0x01,0x0C, + 0x00,0xC0,0x00,0x18,0x00,0xE0,0x00,0x18,0x00,0x60,0x00,0x30, + 0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x36, + 0x00,0x60,0x00,0x36,0x00,0xE0,0x00,0x3C,0x00,0xC0,0x00,0x1C, + 0x00,0xC0,0x01,0x1C,0x00,0x80,0x07,0x3F,0x00,0x00,0xFF,0x77, + 0x00,0x00,0xFC,0x61,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x60,0x30,0x00,0x00, + 0x60,0x30,0x00,0x00,0x60,0x30,0x00,0x00,0x60,0x30,0x00,0x00, + 0x60,0x70,0x00,0x00,0x60,0xF0,0x00,0x00,0x60,0xF0,0x03,0x00, + 0x60,0xB0,0x07,0x00,0xE0,0x18,0x1F,0x00,0xC0,0x1F,0x3C,0x00, + 0x80,0x0F,0x30,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00, + 0x00,0x03,0x00,0x00,0x07,0x0F,0x00,0xC0,0x1F,0x1C,0x00,0xC0, + 0x18,0x18,0x00,0x60,0x38,0x38,0x00,0x60,0x30,0x30,0x00,0x60, + 0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60, + 0x70,0x30,0x00,0xC0,0x60,0x18,0x00,0xC0,0xE1,0x18,0x00,0x80, + 0xC3,0x0F,0x00,0x00,0x83,0x07,0x60,0x00,0x00,0x00,0x60,0x00, + 0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00, + 0x00,0x00,0x60,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF, + 0x3F,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00, + 0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x03,0x00,0xE0, + 0xFF,0x0F,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x38,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x38,0x00,0x00, + 0x00,0x1C,0x00,0xE0,0xFF,0x0F,0x00,0xE0,0xFF,0x03,0x20,0x00, + 0x00,0x00,0xE0,0x01,0x00,0x00,0xC0,0x0F,0x00,0x00,0x00,0x3E, + 0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0xC0,0x0F,0x00,0x00,0x00, + 0x3E,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3E,0x00,0x00,0xC0, + 0x0F,0x00,0x00,0xF8,0x01,0x00,0x00,0x3E,0x00,0x00,0xC0,0x0F, + 0x00,0x00,0xE0,0x01,0x00,0x00,0x20,0x60,0x00,0x00,0x00,0xE0, + 0x07,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0xF8,0x0F,0x00,0x00, + 0x80,0x3F,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x3F,0x00,0x00, + 0xE0,0x0F,0x00,0x00,0xFC,0x01,0x00,0x80,0x1F,0x00,0x00,0xE0, + 0x03,0x00,0x00,0x60,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x80, + 0x1F,0x00,0x00,0x00,0xFC,0x01,0x00,0x00,0xE0,0x0F,0x00,0x00, + 0x00,0x3F,0x00,0x00,0x00,0x30,0x00,0x00,0x80,0x3F,0x00,0x00, + 0xF8,0x0F,0x00,0x80,0xFF,0x00,0x00,0xE0,0x07,0x00,0x00,0x60, + 0x00,0x00,0x20,0x00,0x20,0x00,0x30,0x00,0x60,0x00,0x3C,0x00, + 0xE0,0x01,0x1E,0x00,0xC0,0x83,0x07,0x00,0x00,0xCF,0x03,0x00, + 0x00,0xFE,0x01,0x00,0x00,0x38,0x00,0x00,0x00,0xFE,0x01,0x00, + 0x00,0xCF,0x03,0x00,0xC0,0x03,0x07,0x00,0xE0,0x01,0x1E,0x00, + 0x60,0x00,0x3C,0x00,0x20,0x00,0x30,0x00,0x00,0x00,0x20,0x20, + 0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x80, + 0x03,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x1E,0x00,0x00,0x00, + 0x3C,0x00,0x00,0x00,0xF0,0x3F,0x00,0x00,0xF0,0x3F,0x00,0x00, + 0x3C,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x07,0x00,0x00,0xC0, + 0x03,0x00,0x00,0xE0,0x01,0x00,0x00,0x60,0x00,0x00,0x00,0x20, + 0x00,0x00,0x30,0x00,0x60,0x00,0x38,0x00,0x60,0x00,0x3C,0x00, + 0x60,0x00,0x37,0x00,0x60,0x80,0x33,0x00,0x60,0xC0,0x31,0x00, + 0x60,0xE0,0x30,0x00,0x60,0x38,0x30,0x00,0x60,0x1C,0x30,0x00, + 0x60,0x0E,0x30,0x00,0x60,0x07,0x30,0x00,0xE0,0x01,0x30,0x00, + 0xE0,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x00,0x00,0x00,0xE0, + 0xFF,0xFF,0x07,0xE0,0xFF,0xFF,0x07,0x60,0x00,0x00,0x06,0x60, + 0x00,0x00,0x06,0x60,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x80, + 0x3F,0x00,0x00,0x00,0xFC,0x01,0x00,0x00,0xE0,0x0F,0x00,0x00, + 0x00,0x3E,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x60,0x00,0x00,0x06,0x60,0x00,0x00,0x06,0xE0,0xFF, + 0xFF,0x07,0xE0,0xFF,0xFF,0x07,0x00,0x00,0x00,0x00,0x00,0x20, + 0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x1F,0x00,0x00,0xC0,0x07, + 0x00,0x00,0xE0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0xC0,0x07, + 0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x20, + 0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06, + 0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06, + 0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06, + 0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06, + 0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x80,0x00,0x00,0x00, + 0x00,0x00,0x18,0x0E,0x00,0x00,0x1C,0x1F,0x00,0x00,0x8C,0x39, + 0x00,0x00,0x86,0x31,0x00,0x00,0x86,0x31,0x00,0x00,0xC6,0x30, + 0x00,0x00,0xC6,0x18,0x00,0x00,0xCE,0x0C,0x00,0x00,0xFC,0x1F, + 0x00,0x00,0xF8,0x3F,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00, + 0x00,0x18,0x0C,0x00,0x00,0x0C,0x18,0x00,0x00,0x06,0x30,0x00, + 0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x0E,0x38,0x00, + 0x00,0x1C,0x1C,0x00,0x00,0xF8,0x0F,0x00,0x00,0xE0,0x03,0x00, + 0x00,0x00,0x00,0x00,0xF0,0x07,0x00,0x00,0xF8,0x0F,0x00,0x00, + 0x1C,0x1C,0x00,0x00,0x0E,0x38,0x00,0x00,0x06,0x30,0x00,0x00, + 0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x0E,0x38,0x00,0x00, + 0x1C,0x1C,0x00,0x00,0x18,0x0C,0x00,0x00,0x00,0x00,0x00,0xE0, + 0x03,0x00,0x00,0xF8,0x0F,0x00,0x00,0x1C,0x1C,0x00,0x00,0x0E, + 0x38,0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x06, + 0x30,0x00,0x00,0x0C,0x18,0x00,0x00,0x18,0x0C,0x00,0xE0,0xFF, + 0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0xE0,0x07, + 0x00,0x00,0xF8,0x0F,0x00,0x00,0xDC,0x1C,0x00,0x00,0xCE,0x38, + 0x00,0x00,0xC6,0x30,0x00,0x00,0xC6,0x30,0x00,0x00,0xC6,0x30, + 0x00,0x00,0xCE,0x38,0x00,0x00,0xDC,0x18,0x00,0x00,0xF8,0x0C, + 0x00,0x00,0xF0,0x04,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00, + 0xC0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x60,0x06,0x00,0x00, + 0x60,0x06,0x00,0x00,0x60,0x06,0x00,0x00,0x00,0x00,0x00,0xE0, + 0x83,0x01,0x00,0xF8,0x8F,0x03,0x00,0x1C,0x1C,0x07,0x00,0x0E, + 0x38,0x06,0x00,0x06,0x30,0x06,0x00,0x06,0x30,0x06,0x00,0x06, + 0x30,0x06,0x00,0x0C,0x18,0x07,0x00,0x18,0x8C,0x03,0x00,0xFE, + 0xFF,0x01,0x00,0xFE,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x18,0x00, + 0x00,0x00,0x0C,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00, + 0x00,0x00,0x06,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0xFC,0x3F, + 0x00,0x00,0xF8,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x60,0xFE,0x3F,0x00,0x60,0xFE,0x3F,0x00,0x00,0x00,0x06,0x00, + 0x00,0x00,0x06,0x60,0xFE,0xFF,0x07,0x60,0xFE,0xFF,0x03,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0, + 0xFF,0x3F,0x00,0x00,0xC0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00, + 0xF0,0x01,0x00,0x00,0x98,0x07,0x00,0x00,0x0C,0x0E,0x00,0x00, + 0x06,0x3C,0x00,0x00,0x02,0x30,0x00,0x00,0x00,0x20,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF, + 0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0xFE,0x3F,0x00,0x00,0x0C,0x00,0x00,0x00,0x04,0x00, + 0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x0E,0x00, + 0x00,0x00,0xFC,0x3F,0x00,0x00,0xF8,0x3F,0x00,0x00,0x0C,0x00, + 0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00, + 0x00,0x00,0x0E,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0xF8,0x3F, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00, + 0x00,0xFE,0x3F,0x00,0x00,0x18,0x00,0x00,0x00,0x0C,0x00,0x00, + 0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x0E,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0xF8,0x3F,0x00, + 0x00,0x00,0x00,0x00,0xF0,0x07,0x00,0x00,0xF8,0x0F,0x00,0x00, + 0x1C,0x1C,0x00,0x00,0x0E,0x38,0x00,0x00,0x06,0x30,0x00,0x00, + 0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x0E,0x38,0x00,0x00, + 0x1C,0x1C,0x00,0x00,0xF8,0x0F,0x00,0x00,0xF0,0x07,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x07,0x00,0xFE, + 0xFF,0x07,0x00,0x18,0x0C,0x00,0x00,0x0C,0x18,0x00,0x00,0x06, + 0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x0E, + 0x38,0x00,0x00,0x1C,0x1C,0x00,0x00,0xF8,0x0F,0x00,0x00,0xE0, + 0x03,0x00,0x00,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0xF8,0x0F, + 0x00,0x00,0x1C,0x1C,0x00,0x00,0x0E,0x38,0x00,0x00,0x06,0x30, + 0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x0C,0x18, + 0x00,0x00,0x18,0x0C,0x00,0x00,0xFE,0xFF,0x07,0x00,0xFE,0xFF, + 0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0xFE,0x3F,0x00,0x00,0x0C,0x00,0x00,0x00,0x06,0x00, + 0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00, + 0x38,0x0C,0x00,0x00,0x7C,0x1C,0x00,0x00,0xEE,0x38,0x00,0x00, + 0xC6,0x30,0x00,0x00,0xC6,0x30,0x00,0x00,0xC6,0x31,0x00,0x00, + 0xC6,0x31,0x00,0x00,0x8E,0x39,0x00,0x00,0x9C,0x1F,0x00,0x00, + 0x18,0x0F,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0xC0,0xFF, + 0x1F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x06,0x30,0x00,0x00,0x06, + 0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xFE,0x0F,0x00,0x00,0xFE,0x1F,0x00,0x00,0x00,0x38, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x0C,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0xFE,0x3F,0x00,0x06,0x00,0x00,0x00,0x3E,0x00,0x00, + 0x00,0xF8,0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0x1F,0x00, + 0x00,0x00,0x38,0x00,0x00,0x00,0x1F,0x00,0x00,0xC0,0x07,0x00, + 0x00,0xF8,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x06,0x00,0x0E, + 0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0xF0,0x03,0x00,0x00,0x80, + 0x1F,0x00,0x00,0x00,0x38,0x00,0x00,0x80,0x1F,0x00,0x00,0xE0, + 0x03,0x00,0x00,0x7C,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x7C, + 0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x80,0x1F,0x00,0x00,0x00, + 0x38,0x00,0x00,0x80,0x1F,0x00,0x00,0xF0,0x03,0x00,0x00,0x7E, + 0x00,0x00,0x00,0x0E,0x00,0x02,0x20,0x00,0x00,0x06,0x30,0x00, + 0x00,0x1E,0x3C,0x00,0x00,0x38,0x0E,0x00,0x00,0xF0,0x07,0x00, + 0x00,0xC0,0x01,0x00,0x00,0xE0,0x07,0x00,0x00,0x38,0x0E,0x00, + 0x00,0x1C,0x3C,0x00,0x00,0x0E,0x30,0x00,0x00,0x02,0x20,0x00, + 0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x7E,0x00,0x06,0x00, + 0xF0,0x01,0x06,0x00,0x80,0x0F,0x07,0x00,0x00,0xFE,0x03,0x00, + 0x00,0xFC,0x00,0x00,0xC0,0x1F,0x00,0x00,0xF8,0x03,0x00,0x00, + 0x3E,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x30, + 0x00,0x00,0x06,0x3C,0x00,0x00,0x06,0x3E,0x00,0x00,0x06,0x37, + 0x00,0x00,0xC6,0x33,0x00,0x00,0xE6,0x30,0x00,0x00,0x76,0x30, + 0x00,0x00,0x3E,0x30,0x00,0x00,0x1E,0x30,0x00,0x00,0x06,0x30, + 0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0xC0,0x03,0x00, + 0xC0,0x7F,0xFE,0x03,0xE0,0x3F,0xFC,0x07,0x60,0x00,0x00,0x06, + 0x60,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xE0,0xFF,0xFF,0x0F,0xE0,0xFF,0xFF,0x0F,0x00,0x00,0x00,0x00, + 0x60,0x00,0x00,0x06,0x60,0x00,0x00,0x06,0xE0,0x3F,0xFC,0x07, + 0xC0,0x7F,0xFF,0x03,0x00,0xC0,0x03,0x00,0x00,0x80,0x01,0x00, + 0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x70,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xC0,0x00,0x00,0x00, + 0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F, + 0x00,0x60,0x30,0x00,0x00,0x60,0x30,0x00,0x00,0x60,0x18,0x00, + 0x00,0x60,0x18,0x18,0x00,0x60,0x18,0x30,0x00,0x60,0x18,0x30, + 0x00,0x00,0x18,0x30,0x00,0x00,0x38,0x38,0x00,0x00,0x70,0x1C, + 0x00,0x00,0xE0,0x0F,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x68,0x00,0x00,0x00, + 0x6E,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x62,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x00,0x00,0x00,0x30,0x03,0x00,0x00,0xF0,0x01,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F, + 0x00,0x80,0x06,0x00,0x00,0xE0,0x06,0x00,0x00,0x60,0x06,0x00, + 0x00,0x20,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00, + 0x00,0x30,0x03,0x00,0x00,0xF0,0x01,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x30,0x03,0x00,0x00,0xF0,0x01,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x0C, + 0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x0C, + 0x00,0x00,0xE0,0xFF,0xFF,0x03,0xE0,0xFF,0xFF,0x03,0x00,0x0C, + 0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x0C, + 0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x06,0x30,0x00, + 0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00, + 0x00,0x06,0x30,0x00,0xE0,0xFF,0xFF,0x03,0xE0,0xFF,0xFF,0x03, + 0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00, + 0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0xCC,0x00,0x00,0x00, + 0xFE,0x01,0x00,0x80,0xFF,0x07,0x00,0x80,0xCD,0x0E,0x00,0xC0, + 0xCC,0x1C,0x00,0xC0,0xCC,0x18,0x00,0x60,0xCC,0x30,0x00,0x60, + 0xCC,0x30,0x00,0x60,0xCC,0x30,0x00,0x60,0xCC,0x30,0x00,0x60, + 0x0C,0x30,0x00,0xC0,0x00,0x18,0x00,0x00,0x00,0x00,0x80,0x0F, + 0x00,0x00,0xC0,0x1F,0x00,0x00,0x60,0x30,0x00,0x00,0x20,0x20, + 0x00,0x00,0x60,0x30,0x38,0x00,0xC0,0x1F,0x3E,0x00,0x80,0xCF, + 0x0F,0x00,0x00,0xF0,0x01,0x00,0x00,0x7C,0x00,0x00,0x80,0x8F, + 0x0F,0x00,0xE0,0xC3,0x1F,0x00,0xE0,0x60,0x30,0x00,0x00,0x20, + 0x20,0x00,0x00,0x60,0x30,0x00,0x00,0xC0,0x1F,0x00,0x00,0x80, + 0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0F,0x00,0x00,0xC0, + 0x1F,0x00,0x00,0x60,0x30,0x00,0x00,0x20,0x20,0x00,0x00,0x60, + 0x30,0x00,0x00,0xC0,0x3F,0x00,0x00,0x10,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x38,0x00,0xE0,0xFF,0x1F,0x00,0xE0,0xFF,0x0F, + 0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F, + 0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30, + 0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30, + 0x00,0x00,0x30,0x30,0x00,0x00,0x60,0x18,0x00,0x00,0xE0,0x1F, + 0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00, + 0x00,0xE0,0x03,0x00,0x00,0x78,0x0F,0x00,0x00,0x1C,0x1C,0x00, + 0x00,0x04,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0, + 0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x30,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0xE0, + 0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x30,0x30,0x00,0x00, + 0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00, + 0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00, + 0x60,0x18,0x00,0x00,0xE0,0x1F,0x00,0x00,0x80,0x07,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF, + 0x3F,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x70, + 0x00,0x00,0x08,0xD8,0x00,0x00,0x0E,0xDE,0x01,0x00,0x86,0x87, + 0x03,0x00,0xC2,0x01,0x0E,0x00,0x60,0x00,0x3C,0x00,0x60,0x00, + 0x30,0x00,0x60,0x00,0x20,0x00,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xE0,0xFF,0x3F, + 0x00,0xE0,0xFF,0x3F,0x00,0x60,0x30,0x00,0x00,0x60,0x30,0x00, + 0x00,0x60,0x18,0x00,0x00,0x60,0x18,0x00,0x00,0x60,0x18,0x00, + 0x00,0x60,0x18,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x38,0x00, + 0x00,0x00,0x70,0x00,0x00,0x00,0xF0,0x3F,0x00,0x00,0xC0,0x3F, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00, + 0xE0,0xFF,0x3F,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00, + 0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0xF0,0x07, + 0x00,0x00,0xF0,0x07,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00, + 0x00,0x00,0x30,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0xC0, + 0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0, + 0xFF,0x3F,0x00,0xC0,0x0C,0x00,0x00,0xC0,0x0C,0x00,0x00,0xC0, + 0x06,0x00,0x00,0xC0,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00, + 0x0E,0x00,0x06,0x00,0xFC,0xFF,0x07,0x00,0xF8,0xFF,0x03,0x00, + 0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x60,0x06,0x00,0x00,0x00, + 0x00,0x60,0x06,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0x00,0xC0, + 0x07,0x00,0x00,0x60,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x60,0x06,0x00,0x00,0x00, + 0x00,0x60,0x06,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x60,0x06,0x00,0x00,0xE0,0x03,0x00, + 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0xF8,0x01,0x00,0x00, + 0xF8,0x01,0x00,0x00,0xF8,0x01,0x00,0x00,0xF8,0x01,0x00,0x00, + 0xF0,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01, + 0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01, + 0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01, + 0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01, + 0x00,0x00,0x80,0x01,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, + 0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, + 0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, + 0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, + 0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, + 0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, + 0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, + 0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, + 0x00,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60, + 0x00,0x00,0x00,0xE0,0x7F,0x00,0x00,0xE0,0x7F,0x00,0x00,0x60, + 0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xE0,0x7F,0x00,0x00,0xE0,0x7F,0x00,0x00,0xE0, + 0x00,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x3C,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x3C,0x00,0x00,0x80,0x07,0x00,0x00,0xE0, + 0x00,0x00,0x00,0xE0,0x7F,0x00,0x00,0xE0,0x7F,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0xFE,0x1F,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00, + 0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00, + 0x00,0x00,0x06,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0xC0,0x30,0x00,0x00,0xC0,0x30,0x00,0x00,0xC0,0x30, + 0x00,0x00,0xC0,0x30,0x00,0x00,0xC0,0x30,0x00,0x00,0xC0,0x39, + 0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x04,0x10,0x00,0x00,0x1C,0x1C,0x00, + 0x00,0x78,0x0F,0x00,0x00,0xE0,0x03,0x00,0x00,0xC0,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE, + 0x3F,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0, + 0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xFE, + 0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0xC0,0x30,0x00,0x00,0xC0, + 0x30,0x00,0x00,0xC0,0x30,0x00,0x00,0xC0,0x30,0x00,0x00,0xC0, + 0x30,0x00,0x00,0xC0,0x39,0x00,0x00,0x80,0x1F,0x00,0x00,0x00, + 0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0xFE,0x3F,0x00,0x80,0x80,0x00,0x00,0xE0,0xC0,0x01, + 0x00,0x60,0x70,0x03,0x00,0x20,0x3C,0x0E,0x00,0x00,0x06,0x1C, + 0x00,0x00,0x06,0x38,0x00,0x00,0x00,0x20,0xC0,0x00,0x00,0x00, + 0xC0,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00, + 0xC0,0x0C,0x00,0x00,0xC0,0x0C,0x00,0x00,0xC0,0x06,0x00,0x00, + 0xC0,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x0E,0x00,0x00, + 0x00,0xFC,0x3F,0x00,0x00,0xF8,0x3F,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0xF0,0x07,0x00, + 0x00,0xF0,0x07,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00, + 0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x60,0x00, + 0x00,0x00,0xE0,0x01,0x00,0x00,0x80,0x07,0x30,0x00,0x06,0x1E, + 0x30,0x00,0x0C,0x78,0x30,0x00,0x08,0xE0,0x1D,0x00,0x08,0x80, + 0x0F,0x00,0x08,0xE0,0x01,0x00,0x0C,0x78,0x00,0x00,0x06,0x1E, + 0x00,0x00,0x80,0x07,0x00,0x00,0xE0,0x01,0x00,0x00,0x60,0x00, + 0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x7E,0x00,0x06,0x60, + 0xF0,0x03,0x06,0xC0,0x80,0x0F,0x07,0x80,0x00,0xFE,0x03,0x80, + 0x00,0xFC,0x00,0x80,0xC0,0x1F,0x00,0xC0,0xF8,0x03,0x00,0x60, + 0x7E,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x0E, + 0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x38, + 0x00,0xE0,0xFF,0x1F,0x00,0xE0,0xFF,0x0F,0x00,0x00,0x00,0x00, + 0x00,0x02,0x04,0x00,0x00,0xF7,0x0E,0x00,0x00,0xFE,0x07,0x00, + 0x00,0x0C,0x03,0x00,0x00,0x06,0x06,0x00,0x00,0x06,0x06,0x00, + 0x00,0x06,0x06,0x00,0x00,0x06,0x06,0x00,0x00,0x0C,0x03,0x00, + 0x00,0xFE,0x07,0x00,0x00,0xF7,0x0E,0x00,0x00,0x02,0x04,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0, + 0xFF,0x3F,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60, + 0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x7F, + 0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xE0,0x7F,0xF8,0x0F,0xE0,0x7F,0xF8,0x0F,0x00,0x00,0x00,0x00, + 0x00,0xE0,0x00,0x00,0x80,0xF3,0xC1,0x00,0xC0,0x1F,0xC3,0x03, + 0xE0,0x0C,0x07,0x07,0x60,0x1C,0x06,0x06,0x60,0x18,0x0C,0x06, + 0x60,0x30,0x1C,0x06,0xE0,0x70,0x38,0x07,0xC0,0xE1,0xF4,0x03, + 0x80,0xC1,0xE7,0x01,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x60, + 0x30,0x30,0x00,0x6C,0x30,0x30,0x00,0x6C,0x30,0x30,0x00,0x60, + 0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x6C,0x30,0x30,0x00,0x6C, + 0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60, + 0x30,0x30,0x00,0x60,0x00,0x30,0x00,0xF8,0x00,0x00,0x00,0xFE, + 0x03,0x00,0x00,0x07,0x07,0x00,0x80,0x01,0x0C,0x00,0xC0,0x78, + 0x1C,0x00,0xC0,0xFE,0x19,0x00,0x60,0x86,0x31,0x00,0x60,0x03, + 0x33,0x00,0x60,0x03,0x33,0x00,0x60,0x03,0x33,0x00,0x60,0x03, + 0x33,0x00,0x60,0x87,0x33,0x00,0xC0,0x86,0x19,0x00,0xC0,0x85, + 0x1C,0x00,0x80,0x01,0x0C,0x00,0x00,0x07,0x07,0x00,0x00,0xFE, + 0x03,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0xFC,0x01,0x00, + 0x00,0xFF,0x07,0x00,0x80,0x33,0x0F,0x00,0xC0,0x31,0x1C,0x00, + 0xC0,0x30,0x18,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00, + 0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x00,0x30,0x00, + 0xE0,0x00,0x38,0x00,0xC0,0x00,0x18,0x00,0xC0,0x03,0x1E,0x00, + 0x80,0x07,0x0F,0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00, + 0x80,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x78,0x0F,0x00,0x00, + 0x1C,0x1C,0x00,0x00,0x84,0x10,0x00,0x00,0xE0,0x03,0x00,0x00, + 0x78,0x0F,0x00,0x00,0x1C,0x1C,0x00,0x00,0x04,0x10,0x00,0x00, + 0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x0C, + 0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x0C, + 0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x0C, + 0x00,0x00,0x00,0xFC,0x01,0x00,0x00,0xFC,0x01,0x00,0x80,0x01, + 0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01, + 0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01, + 0x00,0xF8,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x07,0x07,0x00, + 0x80,0x01,0x0C,0x00,0xC0,0x00,0x1C,0x00,0xC0,0xFE,0x1B,0x00, + 0x60,0xFE,0x33,0x00,0x60,0x66,0x30,0x00,0x60,0x66,0x30,0x00, + 0x60,0xE6,0x30,0x00,0x60,0xFE,0x31,0x00,0x60,0x3C,0x33,0x00, + 0xC0,0x00,0x1A,0x00,0xC0,0x01,0x1C,0x00,0x80,0x01,0x0C,0x00, + 0x00,0x07,0x07,0x00,0x00,0xFE,0x03,0x00,0x00,0xF8,0x0C,0x00, + 0x00,0x00,0x0C,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF, + 0x3F,0x00,0x0C,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x80, + 0x03,0x00,0x00,0x40,0x04,0x00,0x00,0x20,0x08,0x00,0x00,0x20, + 0x08,0x00,0x00,0x20,0x08,0x00,0x00,0x40,0x04,0x00,0x00,0x80, + 0x03,0x00,0x00,0x00,0x00,0x00,0x60,0x30,0x00,0x00,0x60,0x30, + 0x00,0x00,0x60,0x30,0x00,0x00,0x60,0x30,0x00,0x00,0x60,0x30, + 0x00,0x00,0xFF,0x3F,0x00,0x00,0xFF,0x3F,0x00,0x00,0x60,0x30, + 0x00,0x00,0x60,0x30,0x00,0x00,0x60,0x30,0x00,0x00,0x60,0x30, + 0x00,0x00,0x60,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x60,0xFE,0x3F,0x00,0x60,0xFE,0x3F,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE, + 0x3F,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06, + 0x00,0x00,0xE0,0x07,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x07,0x00,0xFE,0xFF,0x07, + 0x00,0x00,0x18,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00, + 0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x18,0x00, + 0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x0F,0x00,0x00,0xC0, + 0x3F,0x00,0x00,0xC0,0x3F,0x00,0x00,0xE0,0x7F,0x00,0x00,0xE0, + 0x7F,0x00,0x00,0xE0,0xFF,0xFF,0x07,0xE0,0xFF,0xFF,0x07,0x60, + 0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xE0,0xFF,0xFF,0x07,0xE0, + 0xFF,0xFF,0x07,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x00,0x00,0xF0,0x07,0x00,0x00,0xF8, + 0x0F,0x00,0x00,0xCC,0x1C,0x00,0xC0,0xCE,0x38,0x00,0xC0,0xC6, + 0x30,0x00,0x00,0xC6,0x30,0x00,0x00,0xC6,0x30,0x00,0xC0,0xCE, + 0x38,0x00,0xC0,0xDC,0x18,0x00,0x00,0xF8,0x0C,0x00,0x00,0xF0, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F, + 0x00,0xE0,0xFF,0x3F,0x00,0xC0,0x03,0x00,0x00,0x00,0x07,0x00, + 0x00,0x00,0x0E,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x70,0x00, + 0x00,0x00,0xE0,0x01,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x07, + 0x00,0x00,0x00,0x1E,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x18, + 0x00,0x00,0xFC,0x19,0x00,0x00,0x8E,0x1B,0x00,0x00,0x06,0x1B, + 0x00,0x00,0x06,0x1B,0x00,0x00,0x8E,0x1B,0x00,0x00,0xFC,0x19, + 0x00,0x00,0xF8,0x18,0x00,0x00,0x00,0x00,0x00,0xF0,0x07,0x00, + 0x00,0xF8,0x1F,0x00,0x00,0xCC,0x1C,0x00,0x00,0xC6,0x30,0x00, + 0x00,0xC6,0x30,0x00,0x00,0xC6,0x30,0x00,0x00,0x06,0x30,0x00, + 0x00,0x0E,0x18,0x00,0x00,0x1C,0x1E,0x00,0x00,0x18,0x06,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x04,0x10,0x00,0x00,0x1C,0x1C,0x00,0x00,0x78,0x0F,0x00,0x00, + 0xE0,0x03,0x00,0x00,0x84,0x10,0x00,0x00,0x1C,0x1C,0x00,0x00, + 0x78,0x0F,0x00,0x00,0xE0,0x03,0x00,0x00,0x80,0x00,0x00,0x00, + 0x06,0x60,0xFE,0xFF,0x07,0x60,0xFE,0xFF,0x03,0x00,0x00,0x00, + 0x00,0x00,0x00,0x03,0x00,0x00,0x07,0x0F,0x00,0xC0,0x1F,0x1C, + 0x00,0xC0,0x18,0x18,0x00,0x60,0x38,0x38,0x00,0x60,0x30,0x30, + 0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x70,0x30, + 0x00,0x60,0x70,0x30,0x00,0xE0,0x60,0x18,0x00,0xC0,0xE1,0x1C, + 0x00,0x80,0xC3,0x0F,0x00,0x00,0x83,0x07,0x00,0x00,0x00,0x00, + 0x00,0x38,0x0C,0x00,0x00,0x7C,0x1C,0x00,0x00,0xEE,0x38,0x00, + 0x00,0xC6,0x30,0x00,0x00,0xC6,0x30,0x00,0x00,0xC6,0x31,0x00, + 0x00,0xC6,0x31,0x00,0x00,0x8E,0x39,0x00,0x00,0x9C,0x1F,0x00, + 0x00,0x18,0x0F,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00, + 0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0xC0,0x00,0x00,0x00,0xC0, + 0x00,0x00,0x3E,0x00,0x00,0x80,0x0F,0x00,0x00,0xF0,0x03,0x00, + 0x00,0xFE,0x01,0x00,0x80,0x8F,0x01,0x00,0xE0,0x83,0x01,0x00, + 0x60,0x80,0x01,0x00,0xE0,0x83,0x01,0x00,0x80,0x8F,0x01,0x00, + 0x00,0xFE,0x01,0x00,0x00,0xF0,0x03,0x00,0x00,0x80,0x0F,0x00, + 0x00,0x00,0x3E,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x60, + 0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60, + 0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60, + 0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x60,0x18,0x00,0x00, + 0xE0,0x1F,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x60,0x30, + 0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30, + 0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30, + 0x30,0x00,0xC0,0x78,0x30,0x00,0xC0,0xFF,0x18,0x00,0x80,0xC7, + 0x1F,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0xF0,0x03,0x00,0x00, + 0xF8,0x03,0x00,0x00,0x3C,0x00,0x00,0xC0,0x37,0x00,0xE0,0xFF, + 0x31,0x00,0xE0,0x1F,0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00, + 0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00, + 0x30,0x00,0x60,0x00,0x30,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF, + 0x3F,0x00,0x00,0x00,0xF0,0x03,0x00,0x00,0xF0,0x03,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF, + 0x3F,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30, + 0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30, + 0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30, + 0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x00,0x30,0x60,0x00,0x20, + 0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x3C,0x00,0xC0,0x01,0x0F, + 0x00,0x80,0x87,0x03,0x00,0x00,0xCE,0x01,0x00,0x00,0xF8,0x00, + 0x00,0x00,0x70,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00, + 0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x30,0x00, + 0x00,0x00,0x30,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xFC,0x00, + 0x00,0x00,0xCF,0x01,0x00,0x80,0x87,0x03,0x00,0xC0,0x01,0x0F, + 0x00,0x60,0x00,0x3C,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x20, + 0x00,0x00,0x00,0x00,0x00,0x03,0x02,0x00,0x80,0x07,0x0F,0x00, + 0xC0,0x01,0x1E,0x00,0xE0,0x00,0x18,0x00,0x60,0x00,0x38,0x00, + 0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00, + 0x60,0x30,0x30,0x00,0xC0,0x78,0x18,0x00,0xC0,0xEF,0x1C,0x00, + 0x00,0xC7,0x0F,0x00,0x00,0x80,0x07,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00, + 0x00,0x1C,0x00,0x00,0x00,0x0F,0x00,0x00,0x80,0x03,0x00,0x00, + 0xE0,0x01,0x00,0x00,0x70,0x00,0x00,0x00,0x3C,0x00,0x00,0x00, + 0x0E,0x00,0x00,0x80,0x07,0x00,0x00,0xC0,0x01,0x00,0x00,0xE0, + 0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00, + 0x1C,0x00,0x06,0x00,0x0F,0x00,0x0C,0x80,0x03,0x00,0x08,0xE0, + 0x01,0x00,0x08,0x70,0x00,0x00,0x08,0x3C,0x00,0x00,0x0C,0x0E, + 0x00,0x00,0x86,0x07,0x00,0x00,0xC0,0x01,0x00,0x00,0xE0,0xFF, + 0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x30,0x00, + 0x00,0x00,0x30,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0xD8,0x00, + 0x00,0x00,0xDE,0x01,0x00,0x80,0x87,0x03,0x00,0xC0,0x01,0x0E, + 0x00,0x60,0x00,0x3C,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x20, + 0x00,0x00,0x10,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x38,0x00, + 0xE0,0xFF,0x1F,0x00,0xE0,0xFF,0x0F,0x00,0x60,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0xE0, + 0x01,0x00,0x00,0xC0,0x0F,0x00,0x00,0x00,0xFE,0x00,0x00,0x00, + 0xE0,0x07,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x3F,0x00,0x00,0xE0,0x07,0x00,0x00,0xFE,0x00,0x00,0xC0, + 0x0F,0x00,0x00,0xE0,0x01,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0, + 0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF, + 0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x30,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF, + 0x3F,0x00,0x00,0x00,0x00,0x00,0xFC,0x01,0x00,0x00,0xFF,0x07, + 0x00,0x80,0x07,0x0F,0x00,0xC0,0x01,0x1C,0x00,0xC0,0x00,0x18, + 0x00,0xE0,0x00,0x38,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30, + 0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30, + 0x00,0xE0,0x00,0x38,0x00,0xC0,0x00,0x18,0x00,0xC0,0x01,0x1C, + 0x00,0x80,0x07,0x0F,0x00,0x00,0xFF,0x07,0x00,0x00,0xFC,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00, + 0xE0,0xFF,0x3F,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0, + 0xFF,0x3F,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00,0x00,0x60, + 0x60,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00,0x00,0x60, + 0x60,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00,0x00,0xC0, + 0x30,0x00,0x00,0xC0,0x3F,0x00,0x00,0x00,0x0F,0x00,0x00,0x00, + 0x00,0x00,0xFC,0x01,0x00,0x00,0xFF,0x07,0x00,0x80,0x03,0x0E, + 0x00,0xC0,0x01,0x1C,0x00,0xC0,0x00,0x18,0x00,0x60,0x00,0x30, + 0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30, + 0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0xC0,0x00,0x18, + 0x00,0xC0,0x01,0x1C,0x00,0x80,0x03,0x0F,0x00,0x00,0x02,0x03, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x60,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00, + 0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0xE0,0x01,0x00,0x00,0x80,0x07,0x30,0x00,0x00,0x1E,0x30, + 0x00,0x00,0x78,0x30,0x00,0x00,0xE0,0x1D,0x00,0x00,0x80,0x0F, + 0x00,0x00,0xE0,0x01,0x00,0x00,0x78,0x00,0x00,0x00,0x1E,0x00, + 0x00,0x80,0x07,0x00,0x00,0xE0,0x01,0x00,0x00,0x60,0x00,0x00, + 0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x07, + 0x07,0x00,0x00,0x03,0x06,0x00,0x80,0x03,0x0E,0x00,0x80,0x01, + 0x0C,0x00,0x80,0x01,0x0C,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF, + 0x3F,0x00,0x80,0x01,0x0C,0x00,0x80,0x01,0x0C,0x00,0x80,0x03, + 0x0E,0x00,0x00,0x03,0x06,0x00,0x00,0x07,0x07,0x00,0x00,0xFE, + 0x03,0x00,0x00,0xF8,0x00,0x00,0x20,0x00,0x20,0x00,0x30,0x00, + 0x60,0x00,0x3C,0x00,0xE0,0x01,0x1E,0x00,0xC0,0x83,0x0F,0x00, + 0x00,0xCF,0x03,0x00,0x00,0xFE,0x01,0x00,0x00,0x38,0x00,0x00, + 0x00,0xFE,0x01,0x00,0x80,0xCF,0x03,0x00,0xC0,0x83,0x07,0x00, + 0xE0,0x01,0x1E,0x00,0x60,0x00,0x3C,0x00,0x20,0x00,0x30,0x00, + 0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0, + 0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x30,0x00,0xE0,0xFF,0x3F,0x00,0xE0, + 0xFF,0x3F,0x00,0x00,0x00,0xF0,0x07,0x00,0x00,0xF0,0x07,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x1F,0x00,0x00,0xE0, + 0x7F,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xC0,0x00,0x00,0x00, + 0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00, + 0xC0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x60,0x00,0x00,0xE0, + 0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0xE0,0xFF, + 0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0xE0,0xFF, + 0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0xE0,0xFF, + 0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F, + 0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0xE0,0xFF,0x3F, + 0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0xE0,0xFF,0x3F, + 0x00,0xE0,0xFF,0x3F,0x00,0x00,0x00,0xF0,0x07,0x00,0x00,0xF0, + 0x07,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00, + 0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xE0,0xFF,0x3F, + 0x00,0xE0,0xFF,0x3F,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30, + 0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30, + 0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30, + 0x00,0x00,0x60,0x18,0x00,0x00,0xE0,0x1F,0x00,0x00,0x80,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00, + 0xE0,0xFF,0x3F,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00, + 0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00, + 0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00, + 0x00,0x60,0x18,0x00,0x00,0xE0,0x1F,0x00,0x00,0x80,0x07,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x3F,0x00, + 0xE0,0xFF,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0, + 0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x30,0x30,0x00,0x00, + 0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00, + 0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00, + 0x30,0x30,0x00,0x00,0x60,0x18,0x00,0x00,0xE0,0x1F,0x00,0x00, + 0x80,0x07,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x80,0x07, + 0x0F,0x00,0xC0,0x03,0x1E,0x00,0xC0,0x00,0x18,0x00,0xE0,0x00, + 0x38,0x00,0x60,0x00,0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30, + 0x30,0x00,0x60,0x30,0x30,0x00,0x60,0x30,0x30,0x00,0xC0,0x30, + 0x18,0x00,0xC0,0x31,0x1C,0x00,0x80,0x33,0x0F,0x00,0x00,0xFF, + 0x07,0x00,0x00,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00,0x00,0x60,0x00, + 0x00,0x00,0x60,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0xFC,0x01, + 0x00,0x00,0xFF,0x07,0x00,0x80,0x03,0x0E,0x00,0xC0,0x01,0x1C, + 0x00,0xC0,0x00,0x18,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30, + 0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30,0x00,0x60,0x00,0x30, + 0x00,0x60,0x00,0x30,0x00,0xC0,0x00,0x18,0x00,0xC0,0x01,0x1C, + 0x00,0x80,0x07,0x0F,0x00,0x00,0xFF,0x07,0x00,0x00,0xFC,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x80,0x0F,0x30,0x00, + 0xC0,0x1F,0x3C,0x00,0xE0,0x18,0x1F,0x00,0x60,0xB0,0x07,0x00, + 0x60,0xF0,0x03,0x00,0x60,0xF0,0x00,0x00,0x60,0x70,0x00,0x00, + 0x60,0x30,0x00,0x00,0x60,0x30,0x00,0x00,0x60,0x30,0x00,0x00, + 0x60,0x30,0x00,0x00,0xE0,0xFF,0x3F,0x00,0xE0,0xFF,0x3F,0x00, + 0x00,0x00,0x00,0x00,0x18,0x0E,0x00,0x00,0x1C,0x1F,0x00,0x00, + 0x8C,0x39,0x00,0x00,0x86,0x31,0x00,0x00,0x86,0x30,0x00,0x00, + 0xC6,0x30,0x00,0x00,0xC6,0x18,0x00,0x00,0xCE,0x1C,0x00,0x00, + 0xFC,0x1F,0x00,0x00,0xF8,0x3F,0x00,0x00,0x00,0x20,0x00,0x00, + 0x00,0x00,0x00,0xFE,0x03,0x00,0x80,0xFF,0x0F,0x00,0xC0,0x1C, + 0x1C,0x00,0x40,0x0C,0x38,0x00,0x60,0x06,0x30,0x00,0x60,0x06, + 0x30,0x00,0x60,0x06,0x30,0x00,0x60,0x06,0x30,0x00,0x60,0x0E, + 0x38,0x00,0x60,0x1C,0x1C,0x00,0x60,0xF8,0x0F,0x00,0x20,0xE0, + 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0xFE,0x3F,0x00,0x00,0xC6,0x30,0x00,0x00,0xC6,0x30, + 0x00,0x00,0xC6,0x30,0x00,0x00,0xC6,0x30,0x00,0x00,0xEE,0x30, + 0x00,0x00,0xFC,0x39,0x00,0x00,0xBC,0x1F,0x00,0x00,0x00,0x0F, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00, + 0x00,0xFE,0x3F,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00, + 0xF0,0x03,0x00,0x00,0xF8,0x03,0x00,0x00,0x3F,0x00,0x00,0xFE, + 0x37,0x00,0x00,0xFE,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x06, + 0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0xFE, + 0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0xF0,0x03,0x00,0x00, + 0xF0,0x03,0x00,0x00,0x00,0x00,0x00,0xF0,0x07,0x00,0x00,0xF8, + 0x0F,0x00,0x00,0xCC,0x1C,0x00,0x00,0xCE,0x38,0x00,0x00,0xC6, + 0x30,0x00,0x00,0xC6,0x30,0x00,0x00,0xC6,0x30,0x00,0x00,0xCE, + 0x38,0x00,0x00,0xDC,0x18,0x00,0x00,0xF8,0x0C,0x00,0x00,0xF0, + 0x04,0x00,0x06,0x38,0x00,0x00,0x06,0x1C,0x00,0x00,0x3E,0x0F, + 0x00,0x00,0x78,0x03,0x00,0x00,0xE0,0x01,0x00,0x00,0x80,0x00, + 0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x80,0x00, + 0x00,0x00,0xE0,0x01,0x00,0x00,0x78,0x03,0x00,0x00,0x3E,0x0E, + 0x00,0x00,0x06,0x1C,0x00,0x00,0x06,0x38,0x00,0x00,0x00,0x20, + 0x00,0x00,0x00,0x00,0x00,0x10,0x0C,0x00,0x00,0x1C,0x1C,0x00, + 0x00,0x0E,0x38,0x00,0x00,0x06,0x30,0x00,0x00,0xC6,0x30,0x00, + 0x00,0xC6,0x30,0x00,0x00,0xCE,0x39,0x00,0x00,0xFC,0x1F,0x00, + 0x00,0x38,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x3C,0x00,0x00, + 0x00,0x0F,0x00,0x00,0xC0,0x03,0x00,0x00,0xE0,0x01,0x00,0x00, + 0x78,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00, + 0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE, + 0x3F,0x00,0x00,0xFE,0x3F,0x00,0x60,0x00,0x3C,0x00,0xC0,0x00, + 0x0F,0x00,0x80,0xC0,0x03,0x00,0x80,0xE0,0x01,0x00,0x80,0x78, + 0x00,0x00,0xC0,0x1E,0x00,0x00,0x60,0xFE,0x3F,0x00,0x00,0xFE, + 0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0xFE,0x3F,0x00,0x00,0x80,0x00,0x00,0x00,0xC0,0x01, + 0x00,0x00,0x70,0x03,0x00,0x00,0x3C,0x0E,0x00,0x00,0x06,0x1C, + 0x00,0x00,0x06,0x38,0x00,0x00,0x00,0x20,0x00,0x00,0x30,0x00, + 0x00,0x00,0x30,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x1F,0x00, + 0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00, + 0x1E,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xE0,0x0F,0x00,0x00, + 0x00,0x3F,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3F,0x00,0x00, + 0xE0,0x07,0x00,0x00,0xFC,0x00,0x00,0x00,0x1E,0x00,0x00,0x00, + 0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0xFE, + 0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0, + 0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0, + 0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xFE, + 0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0xF0,0x07, + 0x00,0x00,0xF8,0x0F,0x00,0x00,0x1C,0x1C,0x00,0x00,0x0E,0x38, + 0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30, + 0x00,0x00,0x0E,0x38,0x00,0x00,0x1C,0x1C,0x00,0x00,0xF8,0x0F, + 0x00,0x00,0xF0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x06,0x00,0x00, + 0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00, + 0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0xFE,0x3F,0x00, + 0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFE,0xFF,0x07,0x00,0xFE,0xFF,0x07,0x00,0x18,0x0C,0x00,0x00, + 0x0C,0x18,0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00, + 0x06,0x30,0x00,0x00,0x0E,0x38,0x00,0x00,0x1C,0x1C,0x00,0x00, + 0xF8,0x0F,0x00,0x00,0xF0,0x03,0x00,0x00,0x00,0x00,0x00,0xF0, + 0x07,0x00,0x00,0xF8,0x0F,0x00,0x00,0x1C,0x1C,0x00,0x00,0x0E, + 0x38,0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x06, + 0x30,0x00,0x00,0x0E,0x18,0x00,0x00,0x1C,0x1C,0x00,0x00,0x18, + 0x0C,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00, + 0x00,0x00,0x06,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00, + 0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x00, + 0x7E,0x00,0x06,0x00,0xF0,0x03,0x06,0x00,0x80,0x0F,0x07,0x00, + 0x00,0xFE,0x03,0x00,0x00,0xFC,0x00,0x00,0xC0,0x1F,0x00,0x00, + 0xF8,0x03,0x00,0x00,0x7E,0x00,0x00,0x00,0x06,0x00,0x00,0x00, + 0x00,0x00,0xF0,0x07,0x00,0x00,0xF8,0x0F,0x00,0x00,0x1C,0x1C, + 0x00,0x00,0x06,0x38,0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30, + 0x00,0x00,0x06,0x30,0x00,0x00,0x1C,0x18,0x00,0xE0,0xFF,0xFF, + 0x07,0xE0,0xFF,0xFF,0x07,0x00,0x1C,0x18,0x00,0x00,0x06,0x30, + 0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x0E,0x38, + 0x00,0x00,0x1C,0x1C,0x00,0x00,0xF8,0x0F,0x00,0x00,0xF0,0x07, + 0x00,0x02,0x20,0x00,0x00,0x06,0x30,0x00,0x00,0x1E,0x3C,0x00, + 0x00,0x38,0x0E,0x00,0x00,0xF0,0x07,0x00,0x00,0xC0,0x01,0x00, + 0x00,0xE0,0x07,0x00,0x00,0x38,0x0E,0x00,0x00,0x1C,0x3C,0x00, + 0x00,0x0E,0x30,0x00,0x00,0x02,0x20,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00, + 0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00, + 0xFE,0x3F,0x00,0x00,0xFE,0xFF,0x07,0x00,0x00,0xF0,0x07,0x00, + 0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0xFE,0x01,0x00,0x00, + 0x80,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00, + 0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x80,0x03,0x00,0x00, + 0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE, + 0x3F,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00, + 0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0xFE, + 0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30, + 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0xFE,0xFF,0x07,0x00,0x00,0xF0,0x07,0x00,0x00,0x00, + 0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x06,0x00, + 0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0xC0,0x30, + 0x00,0x00,0xC0,0x30,0x00,0x00,0xC0,0x30,0x00,0x00,0xC0,0x30, + 0x00,0x00,0xC0,0x30,0x00,0x00,0xC0,0x39,0x00,0x00,0x80,0x1F, + 0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0xC0,0x30,0x00, + 0x00,0xC0,0x30,0x00,0x00,0xC0,0x30,0x00,0x00,0xC0,0x30,0x00, + 0x00,0xC0,0x30,0x00,0x00,0xC0,0x39,0x00,0x00,0x80,0x1F,0x00, + 0x00,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00, + 0x00,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xFE,0x3F,0x00,0x00,0xFE,0x3F,0x00,0x00,0xC0,0x30,0x00,0x00, + 0xC0,0x30,0x00,0x00,0xC0,0x30,0x00,0x00,0xC0,0x30,0x00,0x00, + 0xC0,0x30,0x00,0x00,0xC0,0x39,0x00,0x00,0x80,0x1F,0x00,0x00, + 0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x18,0x06,0x00,0x00,0x1C, + 0x1E,0x00,0x00,0x0E,0x18,0x00,0x00,0x06,0x30,0x00,0x00,0xC6, + 0x30,0x00,0x00,0xC6,0x30,0x00,0x00,0xC6,0x38,0x00,0x00,0xDC, + 0x1C,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF0,0x07,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F, + 0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xF0,0x07, + 0x00,0x00,0xF8,0x0F,0x00,0x00,0x1C,0x1C,0x00,0x00,0x0E,0x38, + 0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30,0x00,0x00,0x06,0x30, + 0x00,0x00,0x0E,0x38,0x00,0x00,0x1C,0x1C,0x00,0x00,0xF8,0x0F, + 0x00,0x00,0xF0,0x07,0x00,0x00,0x00,0x00,0x00,0x78,0x30,0x00, + 0x00,0xFC,0x38,0x00,0x00,0xCE,0x1E,0x00,0x00,0x86,0x06,0x00, + 0x00,0x86,0x03,0x00,0x00,0x86,0x01,0x00,0x00,0x86,0x01,0x00, + 0x00,0x86,0x01,0x00,0x00,0xFE,0x3F,0x00,0x00,0xFE,0x3F +}; diff --git a/src/helpers/ui/DisplayDriver.h b/src/helpers/ui/DisplayDriver.h index b76a1b6ca0..fbd511912e 100644 --- a/src/helpers/ui/DisplayDriver.h +++ b/src/helpers/ui/DisplayDriver.h @@ -97,7 +97,11 @@ class DisplayDriver { int str_len = strlen(temp_str); while (str_len > 0 && getTextWidth(temp_str) > max_width - ellipsis_width) { - temp_str[--str_len] = 0; + str_len--; + // step back over UTF-8 continuation bytes, so a multi-byte character is + // never cut in half (drivers that render UTF-8 directly would drop it) + while (str_len > 0 && ((unsigned char)temp_str[str_len] & 0xC0) == 0x80) str_len--; + temp_str[str_len] = 0; } strcat(temp_str, ellipsis); diff --git a/src/helpers/ui/OLEDDisplay.cpp b/src/helpers/ui/OLEDDisplay.cpp index be4912a530..61ce7c8190 100644 --- a/src/helpers/ui/OLEDDisplay.cpp +++ b/src/helpers/ui/OLEDDisplay.cpp @@ -678,7 +678,7 @@ uint16_t OLEDDisplay::drawStringMaxWidth(int16_t xMove, int16_t yMove, uint16_t uint16_t drawStringResult = 1; // later tested for 0 == error, so initialize to 1 for (uint16_t i = 0; i < length; i++) { - char c = (this->fontTableLookupFunction)(text[i]); + uint8_t c = (this->fontTableLookupFunction)(text[i]); if (c == 0) continue; strWidth += pgm_read_byte(fontData + JUMPTABLE_START + (c - firstChar) * JUMPTABLE_BYTES + JUMPTABLE_WIDTH); @@ -737,7 +737,7 @@ uint16_t OLEDDisplay::getStringWidth(const char* text, uint16_t length, bool utf uint16_t maxWidth = 0; for (uint16_t i = 0; i < length; i++) { - char c = text[i]; + uint8_t c = text[i]; if (utf8) { c = (this->fontTableLookupFunction)(c); if (c == 0) diff --git a/src/helpers/ui/ST7789Display.cpp b/src/helpers/ui/ST7789Display.cpp index 7d039a131a..d98d373b27 100644 --- a/src/helpers/ui/ST7789Display.cpp +++ b/src/helpers/ui/ST7789Display.cpp @@ -2,6 +2,15 @@ #include "ST7789Display.h" +#ifdef WITH_CYRILLIC_FONT + #include "CyrillicFont.h" + #define FONT_NORMAL ArialMT_Plain_16_Cyr + #define FONT_LARGE ArialMT_Plain_24_Cyr +#else + #define FONT_NORMAL ArialMT_Plain_16 + #define FONT_LARGE ArialMT_Plain_24 +#endif + #ifndef X_OFFSET #define X_OFFSET 0 // No offset needed for landscape #endif @@ -50,6 +59,9 @@ bool ST7789Display::begin() { digitalWrite(PIN_TFT_RST, HIGH); display.init(); + #ifdef WITH_CYRILLIC_FONT + display.setFontTableLookupFunction(cyrillicFontLookup); + #endif display.landscapeScreen(); #ifdef DISPLAY_FLIP_VERTICALLY display.flipScreenVertically(); @@ -104,19 +116,19 @@ void ST7789Display::clear() { void ST7789Display::startFrame(ColorVal bkg) { display.clear(); // TODO: use bkg setColor(UIColor::primary_txt); - display.setFont(ArialMT_Plain_16); + display.setFont(FONT_NORMAL); } void ST7789Display::setTextSize(int sz) { switch(sz) { case 1 : - display.setFont(ArialMT_Plain_16); + display.setFont(FONT_NORMAL); break; case 2 : - display.setFont(ArialMT_Plain_24); + display.setFont(FONT_LARGE); break; default: - display.setFont(ArialMT_Plain_16); + display.setFont(FONT_NORMAL); } } @@ -139,6 +151,12 @@ void ST7789Display::printWordWrap(const char* str, int max_width) { display.drawStringMaxWidth(_x, _y, max_width*SCALE_X, str); } +#ifdef WITH_CYRILLIC_FONT +void ST7789Display::translateUTF8ToBlocks(char* dest, const char* src, size_t dest_size) { + cyrillicCopyUTF8(dest, src, dest_size); // the Cyrillic font renders UTF-8 as-is +} +#endif + void ST7789Display::fillRect(int x, int y, int w, int h) { display.fillRect(x*SCALE_X + X_OFFSET, y*SCALE_Y + Y_OFFSET, w*SCALE_X, h*SCALE_Y); } @@ -184,7 +202,9 @@ void ST7789Display::drawXbm(int x, int y, const uint8_t* bits, int w, int h) { } uint16_t ST7789Display::getTextWidth(const char* str) { - return display.getStringWidth(str) / SCALE_X; + // pass utf8=true so this matches what drawString() actually renders: both then + // run the text through the font table lookup rather than counting raw bytes + return display.getStringWidth(str, strlen(str), true) / SCALE_X; } void ST7789Display::endFrame() { diff --git a/src/helpers/ui/ST7789Display.h b/src/helpers/ui/ST7789Display.h index 580ad463f6..4a3e59be4c 100644 --- a/src/helpers/ui/ST7789Display.h +++ b/src/helpers/ui/ST7789Display.h @@ -33,6 +33,9 @@ class ST7789Display : public DisplayDriver { void setCursor(int x, int y) override; void print(const char* str) override; void printWordWrap(const char* str, int max_width) override; +#ifdef WITH_CYRILLIC_FONT + void translateUTF8ToBlocks(char* dest, const char* src, size_t dest_size) override; +#endif void fillRect(int x, int y, int w, int h) override; void drawRect(int x, int y, int w, int h) override; void drawXbm(int x, int y, const uint8_t* bits, int w, int h) override; diff --git a/tools/gen_cyrillic_font.py b/tools/gen_cyrillic_font.py new file mode 100644 index 0000000000..f673f9fa9c --- /dev/null +++ b/tools/gen_cyrillic_font.py @@ -0,0 +1,237 @@ +#!/usr/bin/env python3 +"""Generate src/helpers/ui/CyrillicFontData.cpp. + +The stock ThingPulse fonts in src/helpers/ui/OLEDDisplayFonts.cpp map codes +0x80..0xFF to ISO-8859-1, which has no Cyrillic. This script re-lays the upper +half of those tables out as Windows-1251, which carries the full Cyrillic +alphabet, and emits the result as a drop-in extra font. + +Codes 0x20..0x7F are copied out of the stock tables byte-for-byte, so Latin text +renders exactly as it does today. Codes 0x80..0xFF are rasterised from Arial +with FreeType's monochrome hinted renderer, which reproduces the stock glyphs to +within 1% of pixels -- the stock tables were evidently produced the same way. + +Usage: + pip install pillow + python3 tools/gen_cyrillic_font.py [--ttf /path/to/Arial.ttf] +""" + +import argparse +import os +import re +import sys + +from PIL import Image, ImageDraw, ImageFont + +REPO = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +STOCK = os.path.join(REPO, "src/helpers/ui/OLEDDisplayFonts.cpp") +OUT = os.path.join(REPO, "src/helpers/ui/CyrillicFontData.cpp") +DEFAULT_TTF = "/System/Library/Fonts/Supplemental/Arial.ttf" + +# stock font table -> the Arial pixel size it was rasterised at +FONTS = [("ArialMT_Plain_16", 16, "ArialMT_Plain_16_Cyr"), + ("ArialMT_Plain_24", 24, "ArialMT_Plain_24_Cyr")] + +PAD = 16 # left margin when rasterising, so negative bearings do not clip + + +# -------------------------------------------------------------------------- +# stock font table parsing +# -------------------------------------------------------------------------- + +class Font: + """A ThingPulse OLEDDisplay font table. + + Layout: width, height, first char, char count, then 4 bytes per char + (offset MSB, offset LSB, data size, advance width), then the glyph data. + Each glyph is column-major, one byte per 8 rows, LSB = topmost pixel; + trailing all-zero bytes are trimmed off. + """ + + def __init__(self, values): + self.width, self.height, self.first, self.num = values[0:4] + self.jump = values[4:4 + self.num * 4] + self.data = values[4 + self.num * 4:] + self.raster = 1 + ((self.height - 1) >> 3) + + @classmethod + def parse(cls, path, name): + text = open(path).read() + m = re.search(r"const uint8_t %s\[\] PROGMEM = \{(.*?)\n\};" % name, text, re.S) + if not m: + raise SystemExit("could not find %s in %s" % (name, path)) + body = re.sub(r"//[^\n]*", "", m.group(1)) + return cls([int(v, 16) for v in re.findall(r"0x([0-9A-Fa-f]{2})", body)]) + + def glyph(self, code): + i = (code - self.first) * 4 + msb, lsb, size, width = self.jump[i:i + 4] + if msb == 0xFF and lsb == 0xFF: + return None, width + off = (msb << 8) | lsb + return self.data[off:off + size], width + + +# -------------------------------------------------------------------------- +# rasterising +# -------------------------------------------------------------------------- + +def cp1251_char(code): + try: + return bytes([code]).decode("cp1251") + except UnicodeDecodeError: + return None + + +def rasterise(ttf, char, height): + """Render one character; returns (rows, advance) or None if it has no glyph.""" + advance = round(ttf.getlength(char)) + if advance <= 0: + return None + img = Image.new("1", (2 * PAD + advance, height + 2 * PAD), 0) + draw = ImageDraw.Draw(img) + draw.fontmode = "1" # monochrome, hinted -- matches the stock tables + draw.text((PAD, 0), char, font=ttf, fill=1) + px = img.load() + return [[bool(px[PAD + x, y]) for x in range(advance)] for y in range(height)], advance + + +def encode(rows, width, height): + raster = 1 + ((height - 1) >> 3) + out = [] + for x in range(width): + for band in range(raster): + byte = 0 + for bit in range(8): + y = band * 8 + bit + if y < height and rows[y][x]: + byte |= 1 << bit + out.append(byte) + while out and out[-1] == 0: + out.pop() + return out + + +def build(stock_name, size, ttf_path): + stock = Font.parse(STOCK, stock_name) + ttf = ImageFont.truetype(ttf_path, size) + + glyphs = [] + for code in range(stock.first, stock.first + stock.num): + if code < 0x80: + data, width = stock.glyph(code) # verbatim, so Latin text does not shift + glyphs.append((code, data, width)) + continue + char = cp1251_char(code) + raster = rasterise(ttf, char, stock.height) if char else None + if raster is None: + glyphs.append((code, None, 0)) + continue + rows, width = raster + data = encode(rows, width, stock.height) + glyphs.append((code, data or None, width)) + + jump, data = [], [] + for code, glyph, width in glyphs: + if glyph is None: + jump.append((0xFF, 0xFF, 0, width)) + continue + offset = len(data) + if offset > 0xFFFF: + raise SystemExit("%s: glyph data exceeds the 16-bit jump table" % stock_name) + jump.append((offset >> 8, offset & 0xFF, len(glyph), width)) + data.extend(glyph) + return stock, jump, data, max(w for _, _, w in glyphs) + + +# -------------------------------------------------------------------------- +# emitting +# -------------------------------------------------------------------------- + +def emit_font(out, name, stock, jump, data, max_width): + out.append("const uint8_t %s[] PROGMEM = {" % name) + out.append(" 0x%02X, // Width: %d" % (max_width, max_width)) + out.append(" 0x%02X, // Height: %d" % (stock.height, stock.height)) + out.append(" 0x%02X, // First Char: %d" % (stock.first, stock.first)) + out.append(" 0x%02X, // Numbers of Chars: %d" % (stock.num, stock.num)) + out.append("") + out.append(" // Jump Table:") + for i, (msb, lsb, size, width) in enumerate(jump): + code = stock.first + i + char = cp1251_char(code) + label = "" + if char and code >= 0x80 and char.isprintable() and not char.isspace(): + label = " %s" % char + out.append(" 0x%02X, 0x%02X, 0x%02X, 0x%02X, // %d:%d%s" + % (msb, lsb, size, width, code, (msb << 8) | lsb, label)) + out.append("") + out.append(" // Font Data:") + for i in range(0, len(data), 12): + out.append(" " + "".join("0x%02X," % b for b in data[i:i + 12])) + out[-1] = out[-1].rstrip(",") + out.append("};") + out.append("") + + +def emit_unicode_map(out): + """Reverse map: Unicode code point -> Windows-1251 byte, sorted for bsearch.""" + pairs = [] + for code in range(0x80, 0x100): + char = cp1251_char(code) + if char is not None: + pairs.append((ord(char), code)) + pairs.sort() + + out.append("// Unicode -> Windows-1251, sorted by code point (see cyrillicFontLookup).") + out.append("const uint16_t CYRILLIC_UNICODE[] PROGMEM = {") + for i in range(0, len(pairs), 8): + out.append(" " + "".join("0x%04X," % u for u, _ in pairs[i:i + 8])) + out[-1] = out[-1].rstrip(",") + out.append("};") + out.append("") + out.append("const uint8_t CYRILLIC_CP1251[] PROGMEM = {") + for i in range(0, len(pairs), 12): + out.append(" " + "".join("0x%02X," % c for _, c in pairs[i:i + 12])) + out[-1] = out[-1].rstrip(",") + out.append("};") + out.append("") + out.append("const uint16_t CYRILLIC_MAP_LEN = %d;" % len(pairs)) + out.append("") + + +HEADER = """\ +// Windows-1251 (Cyrillic) variants of the stock ThingPulse Arial fonts. +// +// GENERATED FILE -- regenerate with tools/gen_cyrillic_font.py, do not hand edit. +// +// Codes 0x20..0x7F hold the stock ArialMT_Plain_* glyphs byte-for-byte, so Latin +// text is pixel-identical to the stock fonts. Codes 0x80..0xFF follow Windows-1251, +// which covers the whole Cyrillic alphabet. Feed UTF-8 text in through +// cyrillicFontLookup() -- see CyrillicFont.cpp. + +#include "CyrillicFont.h" +""" + + +def main(): + ap = argparse.ArgumentParser() + ap.add_argument("--ttf", default=DEFAULT_TTF, help="Arial TTF to rasterise from") + ap.add_argument("--out", default=OUT) + args = ap.parse_args() + + if not os.path.exists(args.ttf): + raise SystemExit("no such font file: %s (pass --ttf)" % args.ttf) + + out = [HEADER, ""] + emit_unicode_map(out) + for stock_name, size, cyr_name in FONTS: + stock, jump, data, max_width = build(stock_name, size, args.ttf) + sys.stderr.write("%s: %d glyph bytes (%s: %d), max width %d\n" + % (cyr_name, len(data), stock_name, len(stock.data), max_width)) + emit_font(out, cyr_name, stock, jump, data, max_width) + + open(args.out, "w").write("\n".join(out)) + sys.stderr.write("wrote %s\n" % args.out) + + +main() diff --git a/variants/heltec_t114/platformio.ini b/variants/heltec_t114/platformio.ini index 48fb4b0f52..ff6c19ad35 100644 --- a/variants/heltec_t114/platformio.ini +++ b/variants/heltec_t114/platformio.ini @@ -218,12 +218,15 @@ build_flags = -D MAX_GROUP_CHANNELS=40 -D BLE_PIN_CODE=123456 -D ENV_INCLUDE_GPS=1 ; enable the GPS page in UI + -D WITH_CYRILLIC_FONT=1 ; render Cyrillic on the display (Windows-1251 font) ; -D BLE_DEBUG_LOGGING=1 -D OFFLINE_QUEUE_SIZE=256 ; -D MESH_PACKET_LOGGING=1 ; -D MESH_DEBUG=1 build_src_filter = ${Heltec_t114_with_display.build_src_filter} + + + + + +<../examples/companion_radio/*.cpp> +<../examples/companion_radio/ui-new/*.cpp> lib_deps = @@ -240,12 +243,15 @@ build_flags = -D MAX_CONTACTS=350 -D MAX_GROUP_CHANNELS=40 -D ENABLE_USB_INTERFACE + -D WITH_CYRILLIC_FONT=1 ; render Cyrillic on the display (Windows-1251 font) ; -D BLE_PIN_CODE=123456 ; -D BLE_DEBUG_LOGGING=1 ; -D MESH_PACKET_LOGGING=1 ; -D MESH_DEBUG=1 build_src_filter = ${Heltec_t114_with_display.build_src_filter} + + + + + +<../examples/companion_radio/*.cpp> +<../examples/companion_radio/ui-new/*.cpp> lib_deps =