diff --git a/README.txt b/README.txt index 73f418a..590940a 100644 --- a/README.txt +++ b/README.txt @@ -1,6 +1,6 @@ REminiscence README -Release version: 0.3.4 +Release version: 0.3.5 ------------------------------------------------------------------------------- @@ -45,7 +45,12 @@ directory. These paths can be changed using command line switches : --levelnum=NUM Level to start from (default '0') --fullscreen Fullscreen display --scaler=NAME@X Graphics scaler (default 'scale@3') - --language=LANG Language (fr,en,de,sp,it) + --language=LANG Language (fr,en,de,sp,it,jp) + +The scaler option specifies the algorithm used to smoothen the image in +addition to a scaling factor. External scalers are also supported, the +suffix shall be used as the name. Eg. If you have scaler_xbrz.dll, you can +pass '--scaler xbrz@2' to use that algorithm with a window size 512x448. In-game hotkeys : diff --git a/cutscene.cpp b/cutscene.cpp index 364db4d..ca090bf 100644 --- a/cutscene.cpp +++ b/cutscene.cpp @@ -89,12 +89,17 @@ void Cutscene::setRotationTransform(uint16_t a, uint16_t b, uint16_t c) { // ide _rotMat[3] /* .y2 */ = (-sin_c * cos_a) >> 8; } +static bool isNewLineChar(uint8_t chr, Resource *res) { + const uint8_t nl = (res->_lang == LANG_JP) ? 0xD1 : 0x7C; + return chr == nl; +} + uint16_t Cutscene::findTextSeparators(const uint8_t *p) { uint8_t *q = _textSep; uint16_t ret = 0; uint16_t pos = 0; for (; *p != 0xA && *p; ++p) { - if (*p == 0x7C) { + if (isNewLineChar(*p, _res)) { *q++ = pos; if (pos > ret) { ret = pos; @@ -115,6 +120,7 @@ uint16_t Cutscene::findTextSeparators(const uint8_t *p) { void Cutscene::drawText(int16_t x, int16_t y, const uint8_t *p, uint16_t color, uint8_t *page, uint8_t n) { debug(DBG_CUT, "Cutscene::drawText(x=%d, y=%d, c=%d)", x, y, color); Video::drawCharFunc dcf = _vid->_drawChar; + const uint8_t *fnt = (_res->_lang == LANG_JP) ? Video::_font8Jp : _res->_fnt; uint16_t last_sep = 0; if (n != 0) { last_sep = findTextSeparators(p); @@ -131,7 +137,7 @@ void Cutscene::drawText(int16_t x, int16_t y, const uint8_t *p, uint16_t color, xx += ((last_sep - *sep++) & 0xFE) * 4; } for (; *p != 0xA && *p; ++p) { - if (*p == 0x7C) { + if (isNewLineChar(*p, _res)) { yy += 8; xx = x; if (n != 0) { @@ -143,7 +149,7 @@ void Cutscene::drawText(int16_t x, int16_t y, const uint8_t *p, uint16_t color, // ignore tab } else { uint8_t *dst = page + 256 * yy + xx; - (_vid->*dcf)(dst, 256, _res->_fnt, color, *p); + (_vid->*dcf)(dst, 256, fnt, color, *p); xx += 8; } } diff --git a/game.cpp b/game.cpp index 2044706..952ce3d 100644 --- a/game.cpp +++ b/game.cpp @@ -452,25 +452,36 @@ bool Game::handleConfigPanel() { _vid._charFrontColor = 0xEE; _vid._charTransparentColor = 0xFF; - _vid.PC_drawChar(0x81, y, x); + // the panel background is drawn using special characters from FB_TXT.FNT + static const bool kUseDefaultFont = true; + + // top-left rounded corder + _vid.PC_drawChar(0x81, y, x, kUseDefaultFont); + // top horizontal line for (int i = 1; i < w; ++i) { - _vid.PC_drawChar(0x85, y, x + i); + _vid.PC_drawChar(0x85, y, x + i, kUseDefaultFont); } - _vid.PC_drawChar(0x82, y, x + w); + // top-right rounded corner + _vid.PC_drawChar(0x82, y, x + w, kUseDefaultFont); for (int j = 1; j < h; ++j) { - _vid.PC_drawChar(0x86, y + j, x); + // left vertical line + _vid.PC_drawChar(0x86, y + j, x, kUseDefaultFont); for (int i = 1; i < w; ++i) { _vid._charTransparentColor = 0xE2; - _vid.PC_drawChar(0x20, y + j, x + i); + _vid.PC_drawChar(0x20, y + j, x + i, kUseDefaultFont); } _vid._charTransparentColor = 0xFF; - _vid.PC_drawChar(0x87, y + j, x + w); + // right vertical line + _vid.PC_drawChar(0x87, y + j, x + w, kUseDefaultFont); } - _vid.PC_drawChar(0x83, y + h, x); + // bottom-left rounded corner + _vid.PC_drawChar(0x83, y + h, x, kUseDefaultFont); + // bottom horizontal line for (int i = 1; i < w; ++i) { - _vid.PC_drawChar(0x88, y + h, x + i); + _vid.PC_drawChar(0x88, y + h, x + i, kUseDefaultFont); } - _vid.PC_drawChar(0x84, y + h, x + w); + // bottom-right rounded corner + _vid.PC_drawChar(0x84, y + h, x + w, kUseDefaultFont); _menu._charVar3 = 0xE4; _menu._charVar4 = 0xE5; @@ -727,7 +738,7 @@ void Game::drawLevelTexts() { uint8_t icon_num = obj - 1; drawIcon(icon_num, 80, 8, 0xA); uint8_t txt_num = pge->init_PGE->text_num; - const char *str = (const char *)_res.getTextString(txt_num); + const char *str = (const char *)_res.getTextString(_currentLevel, txt_num); _vid.drawString(str, (176 - strlen(str) * 8) / 2, 26, 0xE6); if (icon_num == 2) { printSaveStateCompleted(); @@ -740,23 +751,48 @@ void Game::drawLevelTexts() { _saveStateCompleted = false; } +static int getLineLength(const uint8_t *str) { + int len = 0; + while (*str && *str != 0xB && *str != 0xA) { + ++str; + ++len; + } + return len; +} + void Game::drawStoryTexts() { if (_textToDisplay != 0xFFFF) { - uint16_t text_col_mask = 0xE8; + uint8_t textColor = 0xE8; const uint8_t *str = _res.getGameString(_textToDisplay); memcpy(_vid._tempLayer, _vid._frontLayer, _vid._layerSize); int textSpeechSegment = 0; while (!_stub->_pi.quit) { drawIcon(_currentInventoryIconNum, 80, 8, 0xA); if (*str == 0xFF) { - text_col_mask = READ_LE_UINT16(str + 1); - str += 3; + if (_res._lang == LANG_JP) { + switch (str[1]) { + case 0: + textColor = 0xE9; + break; + case 1: + textColor = 0xEB; + break; + default: + warning("Unhandled JP color code 0x%x", str[1]); + break; + } + str += 2; + } else { + textColor = str[1]; + // str[2] is an unused color (possibly the shadow) + str += 3; + } } - int16_t text_y_pos = 26; + int yPos = 26; while (1) { - uint16_t len = getLineLength(str); - str = (const uint8_t *)_vid.drawString((const char *)str, (176 - len * 8) / 2, text_y_pos, text_col_mask); - text_y_pos += 8; + const int len = getLineLength(str); + str = (const uint8_t *)_vid.drawString((const char *)str, (176 - len * 8) / 2, yPos, textColor); + yPos += 8; if (*str == 0 || *str == 0xB) { break; } @@ -1495,15 +1531,6 @@ void Game::changeLevel() { _vid.fullRefresh(); } -uint16_t Game::getLineLength(const uint8_t *str) const { - uint16_t len = 0; - while (*str && *str != 0xB && *str != 0xA) { - ++str; - ++len; - } - return len; -} - void Game::handleInventory() { LivePGE *selected_pge = 0; LivePGE *pge = &_pgeLive[0]; @@ -1566,7 +1593,7 @@ void Game::handleInventory() { drawIcon(76, icon_x_pos, 157, 0xA); selected_pge = items[item_it].live_pge; uint8_t txt_num = items[item_it].init_pge->text_num; - const char *str = (const char *)_res.getTextString(txt_num); + const char *str = (const char *)_res.getTextString(_currentLevel, txt_num); _vid.drawString(str, (256 - strlen(str) * 8) / 2, 189, 0xED); if (items[item_it].init_pge->init_flags & 4) { char buf[10]; diff --git a/game.h b/game.h index 321085b..1944922 100644 --- a/game.h +++ b/game.h @@ -120,7 +120,6 @@ struct Game { void playSound(uint8_t sfxId, uint8_t softVol); uint16_t getRandomNumber(); void changeLevel(); - uint16_t getLineLength(const uint8_t *str) const; void handleInventory(); diff --git a/intern.h b/intern.h index e41511b..a4849db 100644 --- a/intern.h +++ b/intern.h @@ -74,7 +74,8 @@ enum Language { LANG_EN, LANG_DE, LANG_SP, - LANG_IT + LANG_IT, + LANG_JP, }; enum ResourceType { diff --git a/locale.cpp b/locale.cpp deleted file mode 100644 index 58708fa..0000000 --- a/locale.cpp +++ /dev/null @@ -1,38 +0,0 @@ - -/* - * REminiscence - Flashback interpreter - * Copyright (C) 2005-2015 Gregory Montoir (cyx@users.sourceforge.net) - */ - -#include "locale.h" - - -Locale::Locale(Version ver) - : _ver(ver) { - switch (_ver) { - case LANG_FR: - _stringsTable = _stringsTableFR; - _textsTable = _textsTableFR; - break; - case LANG_EN: - _stringsTable = _stringsTableEN; - _textsTable = _textsTableEN; - break; - case LANG_DE: - _stringsTable = _stringsTableDE; - _textsTable = _textsTableDE; - break; - case LANG_SP: - _stringsTable = _stringsTableSP; - _textsTable = _textsTableSP; - break; - } -} - -const char *Locale::get(int id) const { - const char *text = 0; - if (id >= 0 && id < LI_NUM) { - text = _textsTable[id]; - } - return text; -} diff --git a/locale.h b/locale.h deleted file mode 100644 index cb0e820..0000000 --- a/locale.h +++ /dev/null @@ -1,57 +0,0 @@ - -/* - * REminiscence - Flashback interpreter - * Copyright (C) 2005-2015 Gregory Montoir (cyx@users.sourceforge.net) - */ - -#ifndef LOCALE_H__ -#define LOCALE_H__ - -#include "intern.h" - -struct Locale { - enum Id { - LI_01_CONTINUE_OR_ABORT = 0, - LI_02_TIME, - LI_03_CONTINUE, - LI_04_ABORT, - LI_05_COMPLETED, - LI_06_LEVEL, - LI_07_START, - LI_08_SKILL, - LI_09_PASSWORD, - LI_10_INFO, - LI_11_QUIT, - LI_12_SKILL_LEVEL, - LI_13_EASY, - LI_14_NORMAL, - LI_15_EXPERT, - LI_16_ENTER_PASSWORD1, - LI_17_ENTER_PASSWORD2, - LI_18_RESUME_GAME, - LI_19_ABORT_GAME, - LI_20_LOAD_GAME, - LI_21_SAVE_GAME, - LI_22_SAVE_SLOT, - - LI_NUM - }; - - static const char *_textsTableFR[]; - static const char *_textsTableEN[]; - static const char *_textsTableDE[]; - static const char *_textsTableSP[]; - static const uint8_t _stringsTableFR[]; - static const uint8_t _stringsTableEN[]; - static const uint8_t _stringsTableDE[]; - static const uint8_t _stringsTableSP[]; - - Version _ver; - const char **_textsTable; - const uint8_t *_stringsTable; - - Locale(Version ver); - const char *get(int id) const; -}; - -#endif // LOCALE_H__ diff --git a/main.cpp b/main.cpp index cdc6392..195f5d7 100644 --- a/main.cpp +++ b/main.cpp @@ -23,7 +23,7 @@ static const char *USAGE = " --levelnum=NUM Start to level, bypass introduction\n" " --fullscreen Fullscreen display\n" " --scaler=NAME@X Graphics scaler (default 'scale@3')\n" - " --language=LANG Language (fr,en,de,sp,it)\n" + " --language=LANG Language (fr,en,de,sp,it,jp)\n" ; static int detectVersion(FileSystem *fs) { @@ -153,11 +153,13 @@ static void parseScaler(char *name, ScalerParameters *scalerParameters) { char libname[32]; snprintf(libname, sizeof(libname), "scaler_%s", name); const Scaler *scaler = findScaler(libname); - if (scaler) { + if (!scaler) { + warning("Scaler '%s' not found, using default", libname); + } else if (scaler->tag != SCALER_TAG) { + warning("Unexpected tag %d for scaler '%s'", scaler->tag, libname); + } else { scalerParameters->type = kScalerTypeExternal; scalerParameters->scaler = scaler; - } else { - warning("Scaler '%s' not found, using default", libname); } } if (sep) { @@ -222,6 +224,7 @@ int main(int argc, char *argv[]) { { LANG_DE, "DE" }, { LANG_SP, "SP" }, { LANG_IT, "IT" }, + { LANG_JP, "JP" }, { -1, 0 } }; for (int i = 0; languages[i].str; ++i) { diff --git a/menu.cpp b/menu.cpp index 3f35338..a199fde 100644 --- a/menu.cpp +++ b/menu.cpp @@ -66,7 +66,7 @@ void Menu::drawString2(const char *str, int16_t y, int16_t x) { debug(DBG_MENU, "Menu::drawString2()"); int i = 0; for (; str[i]; ++i) { - _vid->PC_drawChar((uint8_t)str[i], y, x + i); + _vid->PC_drawChar((uint8_t)str[i], y, x + i, true); } _vid->markBlockAsDirty(x * 8, y * 8, i * 8, 8); } diff --git a/resource.cpp b/resource.cpp index 076a09d..4c5bfb0 100644 --- a/resource.cpp +++ b/resource.cpp @@ -382,105 +382,74 @@ void Resource::load_CINE() { } void Resource::load_TEXT() { - File f; - // Load game strings _stringsTable = 0; - if (f.open("STRINGS.TXT", "rb", _fs)) { - const int sz = f.size(); - _extStringsTable = (uint8_t *)malloc(sz); - if (_extStringsTable) { - f.read(_extStringsTable, sz); - _stringsTable = _extStringsTable; - } - f.close(); - } - if (!_stringsTable) { - switch (_lang) { - case LANG_FR: - _stringsTable = LocaleData::_stringsTableFR; - break; - case LANG_EN: - _stringsTable = LocaleData::_stringsTableEN; - break; - case LANG_DE: - _stringsTable = LocaleData::_stringsTableDE; - break; - case LANG_SP: - _stringsTable = LocaleData::_stringsTableSP; - break; - case LANG_IT: - _stringsTable = LocaleData::_stringsTableIT; - break; - } + switch (_lang) { + case LANG_FR: + _stringsTable = LocaleData::_stringsTableFR; + break; + case LANG_EN: + _stringsTable = LocaleData::_stringsTableEN; + break; + case LANG_DE: + _stringsTable = LocaleData::_stringsTableDE; + break; + case LANG_SP: + _stringsTable = LocaleData::_stringsTableSP; + break; + case LANG_IT: + _stringsTable = LocaleData::_stringsTableIT; + break; + case LANG_JP: + _stringsTable = LocaleData::_stringsTableJP; + break; } // Load menu strings _textsTable = 0; - if (f.open("MENUS.TXT", "rb", _fs)) { - const int offs = LocaleData::LI_NUM * sizeof(char *); - const int sz = f.size() + 1; - _extTextsTable = (char **)malloc(offs + sz); - if (_extTextsTable) { - char *textData = (char *)_extTextsTable + offs; - f.read(textData, sz); - textData[sz] = 0; - int textsCount = 0; - for (char *eol; (eol = strpbrk(textData, "\r\n")) != 0; ) { - *eol++ = 0; - if (*eol == '\r' || *eol == '\n') { - *eol++ = 0; - } - if (textsCount < LocaleData::LI_NUM && textData[0] != 0) { - _extTextsTable[textsCount] = textData; - ++textsCount; - } - textData = eol; - } - if (textsCount < LocaleData::LI_NUM && textData[0] != 0) { - _extTextsTable[textsCount] = textData; - ++textsCount; - } - if (textsCount < LocaleData::LI_NUM) { - free(_extTextsTable); - _extTextsTable = 0; - } else { - _textsTable = (const char **)_extTextsTable; - } - } - } - if (!_textsTable) { - switch (_lang) { - case LANG_FR: - _textsTable = LocaleData::_textsTableFR; - break; - case LANG_EN: - _textsTable = LocaleData::_textsTableEN; - break; - case LANG_DE: - _textsTable = LocaleData::_textsTableDE; - break; - case LANG_SP: - _textsTable = LocaleData::_textsTableSP; - break; - case LANG_IT: - _textsTable = LocaleData::_textsTableIT; - break; - } + switch (_lang) { + case LANG_FR: + _textsTable = LocaleData::_textsTableFR; + break; + case LANG_EN: + _textsTable = LocaleData::_textsTableEN; + break; + case LANG_DE: + _textsTable = LocaleData::_textsTableDE; + break; + case LANG_SP: + _textsTable = LocaleData::_textsTableSP; + break; + case LANG_IT: + _textsTable = LocaleData::_textsTableIT; + break; + case LANG_JP: + _textsTable = LocaleData::_textsTableEN; + break; } } void Resource::free_TEXT() { - if (_extTextsTable) { - free(_extTextsTable); - _extTextsTable = 0; - } _stringsTable = 0; - if (_extStringsTable) { - free(_extStringsTable); - _extStringsTable = 0; - } _textsTable = 0; } +static const char *getTextBin(Language lang, ResourceType type) { + // FB PC-CD version has language specific files + // .TBN is used as fallback if open fails + switch (lang) { + case LANG_FR: + return "TBF"; + case LANG_DE: + return "TBG"; + case LANG_SP: + return "TBS"; + case LANG_IT: + return "TBI"; + case LANG_EN: + default: + return "TBN"; + } +} + void Resource::load(const char *objName, int objType, const char *ext) { debug(DBG_RES, "Resource::load('%s', %d)", objName, objType); LoadStub loadStub = 0; @@ -542,7 +511,10 @@ void Resource::load(const char *objName, int objType, const char *ext) { loadStub = &Resource::load_ANI; break; case OT_TBN: - snprintf(_entryName, sizeof(_entryName), "%s.TBN", objName); + snprintf(_entryName, sizeof(_entryName), "%s.%s", objName, getTextBin(_lang, _type)); + if (!_fs->exists(_entryName)) { + snprintf(_entryName, sizeof(_entryName), "%s.TBN", objName); + } loadStub = &Resource::load_TBN; break; case OT_CMD: diff --git a/resource.h b/resource.h index bea1513..67f01a3 100644 --- a/resource.h +++ b/resource.h @@ -46,11 +46,24 @@ struct LocaleData { static const char *_textsTableDE[]; static const char *_textsTableSP[]; static const char *_textsTableIT[]; + static const uint8_t _stringsTableFR[]; static const uint8_t _stringsTableEN[]; static const uint8_t _stringsTableDE[]; static const uint8_t _stringsTableSP[]; static const uint8_t _stringsTableIT[]; + static const uint8_t _stringsTableJP[]; + + static const uint8_t _level1TbnJP[]; + static const uint8_t _level2TbnJP[]; + static const uint8_t _level3TbnJP[]; + static const uint8_t _level41TbnJP[]; + static const uint8_t _level42TbnJP[]; + static const uint8_t _level51TbnJP[]; + static const uint8_t _level52TbnJP[]; + + static const uint8_t _cineBinJP[]; + static const uint8_t _cineTxtJP[]; }; struct Resource { @@ -139,9 +152,7 @@ struct Resource { uint8_t *_cineStrings[NUM_CUTSCENE_TEXTS]; uint8_t *_cine_off; uint8_t *_cine_txt; - char **_extTextsTable; const char **_textsTable; - uint8_t *_extStringsTable; const uint8_t *_stringsTable; uint8_t *_bankData; uint8_t *_bankDataHead; @@ -203,13 +214,46 @@ struct Resource { const int offset = _readUint16(_ani + 2 + num * 2); return _ani + 2 + offset; } - const uint8_t *getTextString(int num) { + const uint8_t *getTextString(int level, int num) { + if (_lang == LANG_JP) { + const uint8_t *p = 0; + switch (level) { + case 0: + p = LocaleData::_level1TbnJP; + break; + case 1: + p = LocaleData::_level2TbnJP; + break; + case 2: + p = LocaleData::_level3TbnJP; + break; + case 3: + p = LocaleData::_level41TbnJP; + break; + case 4: + p = LocaleData::_level42TbnJP; + break; + case 5: + p = LocaleData::_level51TbnJP; + break; + case 6: + p = LocaleData::_level52TbnJP; + break; + default: + return 0; + } + return p + READ_LE_UINT16(p + num * 2); + } return _tbn + _readUint16(_tbn + num * 2); } const uint8_t *getGameString(int num) { return _stringsTable + READ_LE_UINT16(_stringsTable + num * 2); } const uint8_t *getCineString(int num) { + if (_lang == LANG_JP) { + const int offset = READ_BE_UINT16(LocaleData::_cineBinJP + num * 2); + return LocaleData::_cineTxtJP + offset; + } if (_cine_off) { const int offset = READ_BE_UINT16(_cine_off + num * 2); return _cine_txt + offset; diff --git a/staticres.cpp b/staticres.cpp index 22b9743..984eef4 100644 --- a/staticres.cpp +++ b/staticres.cpp @@ -2094,6 +2094,173 @@ const uint8_t LocaleData::_stringsTableIT[] = { 0x6F, 0x69, 0x2E, 0x00 }; +const uint8_t LocaleData::_stringsTableJP[] = { + 0x5a, 0x00, 0x69, 0x00, 0x7d, 0x00, 0x58, 0x01, 0xce, 0x01, 0xe2, 0x01, 0x1a, 0x02, 0x3b, 0x02, + 0x85, 0x02, 0x98, 0x02, 0xc2, 0x02, 0xfb, 0x02, 0x2d, 0x03, 0x66, 0x03, 0xbf, 0x03, 0xdb, 0x03, + 0xec, 0x03, 0x47, 0x04, 0x54, 0x04, 0x68, 0x04, 0xc9, 0x04, 0x34, 0x06, 0x82, 0x06, 0x95, 0x06, + 0xd1, 0x06, 0xe2, 0x06, 0xf3, 0x06, 0x12, 0x07, 0x30, 0x07, 0x4b, 0x07, 0x4c, 0x07, 0x4d, 0x07, + 0x81, 0x07, 0x90, 0x07, 0x0a, 0x08, 0x2a, 0x08, 0xa4, 0x08, 0xb3, 0x08, 0xd4, 0x08, 0xfa, 0x08, + 0x66, 0x09, 0x8f, 0x09, 0xbf, 0x09, 0xd6, 0x09, 0xff, 0x09, 0xb0, 0xca, 0x2d, 0xa2, 0xcf, 0x60, + 0xcf, 0x20, 0x6e, 0x88, 0x6d, 0xcf, 0x5c, 0x83, 0x00, 0x80, 0x66, 0x92, 0x0a, 0x64, 0x84, 0x6d, + 0xcf, 0x93, 0x5d, 0x64, 0xcf, 0x62, 0x74, 0x67, 0xcf, 0x6a, 0xcf, 0x92, 0x00, 0xff, 0x01, 0x9a, + 0xbf, 0x60, 0xcf, 0x20, 0xa1, 0xcf, 0xc9, 0xcc, 0x9d, 0x6a, 0xcf, 0x92, 0x0a, 0xab, 0xa3, 0x73, + 0xaf, 0xd0, 0xa2, 0xb3, 0xd0, 0x2d, 0xa9, 0x60, 0xcf, 0x0a, 0x78, 0x66, 0x5c, 0x88, 0x6a, 0xcf, + 0x91, 0x6d, 0x3f, 0x0b, 0xff, 0x00, 0x5b, 0x5b, 0x92, 0x6d, 0xcf, 0x61, 0x83, 0x6a, 0xcf, 0x63, + 0x20, 0x74, 0x7e, 0x62, 0x6f, 0x92, 0x0b, 0xff, 0x01, 0x31, 0x35, 0x30, 0x30, 0x9d, 0xbf, 0xa1, + 0xcf, 0xcc, 0xa9, 0x6a, 0xcf, 0x6f, 0x21, 0x0b, 0xff, 0x00, 0x31, 0x35, 0x30, 0x30, 0x9d, 0xbf, + 0xa1, 0xcf, 0xcc, 0xa9, 0x6a, 0xcf, 0x91, 0x6d, 0x3f, 0x0b, 0xff, 0x01, 0x5b, 0x5b, 0x93, 0x6c, + 0x62, 0x83, 0x70, 0x74, 0x20, 0x5c, 0x85, 0x5c, 0x85, 0x0a, 0x6d, 0x79, 0x60, 0xcf, 0x20, 0x60, + 0x60, 0x91, 0x6d, 0x72, 0x2e, 0x2e, 0x2e, 0x92, 0x0b, 0xff, 0x00, 0x6a, 0xcf, 0x63, 0x6e, 0xcf, + 0x2e, 0x2e, 0x2e, 0x0a, 0x69, 0x88, 0x6f, 0x70, 0x20, 0x7d, 0x91, 0x6d, 0x6f, 0x5c, 0x68, 0xcf, + 0x2e, 0x2e, 0x2e, 0x92, 0x0b, 0xff, 0x01, 0x66, 0x90, 0x62, 0x61, 0xcf, 0x90, 0x5d, 0x0a, 0x5b, + 0x88, 0x6f, 0x5c, 0x66, 0xcf, 0x90, 0x70, 0x20, 0x5c, 0x63, 0x92, 0x0b, 0x69, 0x64, 0x6d, 0xcf, + 0x93, 0x66, 0x64, 0xcf, 0x6e, 0x87, 0x0a, 0x65, 0x60, 0xcf, 0x67, 0x88, 0x6a, 0xcf, 0x6f, 0x92, + 0x0b, 0x9b, 0xad, 0x60, 0xcf, 0x20, 0x6d, 0xcf, 0x61, 0x6d, 0x60, 0x81, 0x93, 0x0a, 0x6e, 0x82, + 0x75, 0x61, 0x20, 0x66, 0x80, 0x5d, 0x92, 0x00, 0xff, 0x01, 0xb9, 0xa7, 0x6f, 0x81, 0x20, 0x66, + 0x91, 0x6d, 0x83, 0x68, 0xcf, 0x92, 0x0a, 0x63, 0x5c, 0x66, 0xcf, 0x73, 0x20, 0x66, 0x82, 0x5b, + 0x5c, 0x60, 0xcf, 0x0a, 0x5c, 0x83, 0x88, 0x6a, 0xcf, 0x91, 0x6d, 0x80, 0x92, 0x0b, 0xff, 0x00, + 0x69, 0x73, 0x63, 0x5c, 0x66, 0xcf, 0x74, 0x93, 0x0a, 0x6e, 0xcf, 0x64, 0x70, 0x20, 0x5c, 0x83, + 0x88, 0x6a, 0xcf, 0x3f, 0x0b, 0xff, 0x01, 0x41, 0x52, 0x45, 0x41, 0x31, 0x70, 0x20, 0x5c, 0x91, + 0x6d, 0x7a, 0x6f, 0x92, 0x0a, 0x6a, 0x76, 0xcf, 0x88, 0x93, 0x69, 0x64, 0x6d, 0xcf, 0x0a, 0x74, + 0x6a, 0x81, 0x5c, 0x6d, 0x83, 0x68, 0xcf, 0x92, 0x0b, 0x61, 0x87, 0x6c, 0x63, 0x6f, 0x92, 0x0a, + 0xb9, 0xa7, 0x81, 0x74, 0x20, 0x61, 0x6a, 0x72, 0x8c, 0x60, 0x81, 0x6f, 0x92, 0x00, 0xff, 0x01, + 0x7d, 0x5d, 0x93, 0x69, 0x84, 0x5c, 0x66, 0xcf, 0x90, 0x5d, 0x0a, 0x66, 0x81, 0x72, 0x8c, 0x80, + 0x92, 0x00, 0xff, 0x01, 0xa0, 0x97, 0xb3, 0xcf, 0x2d, 0x9d, 0xcf, 0x32, 0x31, 0x60, 0xcf, 0x93, + 0x9c, 0xb5, 0x6e, 0x20, 0x0a, 0x6e, 0x82, 0x75, 0x61, 0x20, 0x66, 0x6a, 0x60, 0xcf, 0x91, 0x6d, + 0x5c, 0x83, 0x92, 0x0b, 0xaf, 0xcf, 0x2d, 0x73, 0x20, 0x5d, 0x81, 0x6d, 0xcf, 0x0a, 0x79, 0x91, + 0x6d, 0x5c, 0x83, 0x20, 0x69, 0x5d, 0x6a, 0xcf, 0x92, 0x00, 0xff, 0x01, 0xaf, 0xcf, 0x2d, 0x70, + 0x20, 0x5c, 0x61, 0x6f, 0x93, 0x0a, 0xa0, 0x97, 0xb3, 0xcf, 0x2d, 0x9d, 0xcf, 0x32, 0x31, 0x60, + 0xcf, 0x0a, 0x79, 0x91, 0x6d, 0x5c, 0x83, 0x68, 0xcf, 0x92, 0x00, 0xff, 0x01, 0x5d, 0x6c, 0x6f, + 0x21, 0x9a, 0xbf, 0x74, 0x93, 0x0a, 0xa0, 0x97, 0xb3, 0xcf, 0x2d, 0x9d, 0xcf, 0x32, 0x31, 0x66, + 0xcf, 0x8e, 0x6f, 0x5c, 0x21, 0x0b, 0xb9, 0xa7, 0x73, 0x20, 0x60, 0x62, 0x84, 0x60, 0xcf, 0x74, + 0x0a, 0x64, 0x73, 0x20, 0x66, 0x6a, 0x6a, 0xcf, 0x92, 0x0b, 0xb9, 0xa7, 0x73, 0x20, 0x6f, 0x60, + 0x79, 0x73, 0x20, 0x63, 0x5c, 0x66, 0xcf, 0x60, 0xcf, 0x0a, 0x9c, 0x2d, 0x87, 0x20, 0x7d, 0x91, + 0x6d, 0x5c, 0x83, 0x92, 0x00, 0xff, 0x01, 0x78, 0x60, 0x70, 0x74, 0x93, 0x0a, 0x6f, 0x70, 0x7d, + 0x20, 0x66, 0x81, 0x6f, 0x5c, 0x80, 0x92, 0x00, 0xff, 0x01, 0x66, 0x6c, 0x84, 0x5c, 0x6d, 0xcf, + 0x67, 0x60, 0xcf, 0x93, 0x0b, 0xa1, 0xcf, 0xc9, 0xcc, 0x9d, 0x6e, 0x5c, 0x5d, 0x20, 0x60, 0x6a, + 0x60, 0xcf, 0x0a, 0xaf, 0xcf, 0x2d, 0x6d, 0xcf, 0x20, 0x5b, 0x5c, 0x6a, 0x5c, 0x6e, 0x2e, 0x2e, + 0x2e, 0x00, 0x22, 0x61, 0x90, 0x60, 0x66, 0x90, 0x5d, 0x22, 0x60, 0xcf, 0x93, 0x0a, 0x78, 0x66, + 0x5c, 0x88, 0x6a, 0xcf, 0x60, 0xcf, 0x92, 0x0b, 0xff, 0x01, 0x64, 0x64, 0x74, 0x20, 0x6b, 0x60, + 0xcf, 0x5c, 0x79, 0x67, 0x92, 0x0a, 0x43, 0x73, 0x79, 0x6e, 0xcf, 0x62, 0xcf, 0x6b, 0x70, 0x93, + 0x0a, 0x5c, 0x91, 0x6d, 0x62, 0x6a, 0xcf, 0x65, 0x5c, 0x92, 0x00, 0x22, 0x61, 0x90, 0x60, 0x66, + 0x90, 0x5d, 0x22, 0x60, 0xcf, 0x93, 0x0a, 0x78, 0x66, 0x5c, 0x88, 0x6a, 0xcf, 0x60, 0xcf, 0x92, + 0x0b, 0xff, 0x01, 0x69, 0x84, 0x6d, 0xcf, 0x74, 0x2e, 0x2e, 0x2e, 0x0a, 0x66, 0x90, 0x6b, 0x90, + 0x5d, 0x70, 0x0a, 0x5b, 0x91, 0x6d, 0x62, 0x6a, 0xcf, 0x65, 0x5c, 0x92, 0x00, 0x22, 0x61, 0x90, + 0x60, 0x66, 0x90, 0x5d, 0x22, 0x60, 0xcf, 0x93, 0x0a, 0x78, 0x66, 0x5c, 0x88, 0x6a, 0xcf, 0x60, + 0xcf, 0x92, 0x0b, 0xff, 0x01, 0x64, 0x64, 0x74, 0x20, 0x6b, 0x60, 0xcf, 0x5c, 0x79, 0x67, 0x92, + 0x0a, 0x42, 0x73, 0x79, 0x6e, 0xcf, 0x62, 0xcf, 0x6b, 0x70, 0x93, 0x0a, 0x5c, 0x91, 0x6d, 0x62, + 0x6a, 0xcf, 0x65, 0x5c, 0x92, 0x00, 0xa1, 0xcf, 0xc9, 0xcc, 0x9d, 0x91, 0x6d, 0x20, 0xb9, 0xa7, + 0x74, 0x93, 0x0a, 0x5c, 0x83, 0x60, 0x5c, 0x3f, 0x0b, 0xff, 0x01, 0xa1, 0xcf, 0xc9, 0xcc, 0x9d, + 0x60, 0x3f, 0x0a, 0x64, 0x64, 0x70, 0x74, 0x20, 0x5c, 0x6f, 0x5c, 0x72, 0x92, 0x0b, 0xff, 0x00, + 0x97, 0x96, 0xc3, 0x60, 0x81, 0x0a, 0x61, 0x5c, 0x6d, 0x20, 0x61, 0x6a, 0x88, 0x6a, 0xcf, 0x60, + 0xcf, 0x92, 0x0b, 0xff, 0x01, 0x4f, 0x2e, 0x4b, 0x2e, 0x0a, 0xa1, 0xcf, 0xc9, 0xcc, 0x9d, 0x74, + 0x20, 0x69, 0x6e, 0x6d, 0xcf, 0x0a, 0x79, 0x91, 0x6d, 0x5c, 0x83, 0x68, 0xcf, 0x92, 0x00, 0xff, + 0x01, 0x66, 0xcf, 0x8e, 0x79, 0x6a, 0xcf, 0x92, 0x0a, 0x9b, 0xcf, 0x9c, 0x70, 0x20, 0x73, 0x79, + 0x68, 0x83, 0x0a, 0x65, 0x63, 0x74, 0x72, 0x8c, 0x80, 0x92, 0x00, 0xff, 0x01, 0xaf, 0xd0, 0xa2, + 0xb3, 0xd0, 0x2d, 0xa9, 0x87, 0x20, 0x6a, 0xcf, 0x66, 0x6d, 0x92, 0x00, 0x6c, 0x60, 0x5c, 0x73, + 0x20, 0x7d, 0x73, 0x6a, 0xcf, 0x60, 0xcf, 0x92, 0x0b, 0xff, 0x01, 0x69, 0x5d, 0x6d, 0xcf, 0x67, + 0x60, 0x21, 0x0a, 0x6d, 0xcf, 0x74, 0x93, 0x64, 0x64, 0x70, 0x5b, 0x83, 0x20, 0x64, 0x6c, 0xcf, + 0x6c, 0x7a, 0x87, 0x0a, 0x96, 0xb1, 0xbd, 0x9b, 0x66, 0x6d, 0x88, 0x70, 0x0a, 0x7d, 0x91, 0x6d, + 0x5c, 0x91, 0x6d, 0x20, 0x62, 0x6a, 0xcf, 0x65, 0x5c, 0x92, 0x0b, 0x61, 0x87, 0x6c, 0x63, 0x6d, + 0x20, 0x62, 0x6a, 0xcf, 0x65, 0x5c, 0x72, 0x93, 0x0a, 0x64, 0x5d, 0x60, 0x6f, 0x7d, 0x73, 0x20, + 0x6d, 0xcf, 0x67, 0x60, 0x81, 0x92, 0x00, 0xa5, 0x97, 0xb6, 0x9a, 0x2d, 0xaf, 0xcf, 0x2d, 0x6d, + 0xcf, 0x67, 0x92, 0x00, 0x9b, 0x2d, 0xa9, 0xcf, 0x73, 0x0a, 0x65, 0x66, 0x64, 0x7a, 0x62, 0xcf, + 0x6b, 0x60, 0xcf, 0x20, 0x5b, 0x83, 0x92, 0x00, 0xff, 0x01, 0x6a, 0x67, 0x60, 0x91, 0x6a, 0x93, + 0x9f, 0xc3, 0xbc, 0xcc, 0xa9, 0xcf, 0x92, 0x0a, 0xb9, 0xa7, 0x81, 0x70, 0x20, 0x6c, 0x83, 0x66, + 0x5b, 0x63, 0xcf, 0x81, 0x84, 0x83, 0x0a, 0x6e, 0x64, 0x85, 0x6a, 0xcf, 0x91, 0x6a, 0x68, 0xcf, + 0x92, 0x0b, 0x5b, 0x91, 0x93, 0x69, 0x91, 0x60, 0x92, 0x9a, 0xbf, 0x73, 0x64, 0x6e, 0x74, 0x0a, + 0x24, 0x78, 0xcf, 0x5e, 0x6d, 0x20, 0x5c, 0x6f, 0x5c, 0x88, 0x6a, 0xcf, 0x91, 0x6a, 0x6f, 0x92, + 0x0b, 0x79, 0x89, 0x20, 0x67, 0x86, 0x84, 0x80, 0x92, 0x0a, 0x6d, 0x7a, 0x66, 0xcf, 0x60, 0x70, + 0x20, 0x24, 0x86, 0x81, 0x68, 0x80, 0x5d, 0x92, 0x00, 0x97, 0x96, 0xc3, 0x93, 0x0a, 0x6b, 0x61, + 0x8f, 0x5d, 0x70, 0x20, 0x60, 0x5e, 0x83, 0x70, 0x74, 0x93, 0x0a, 0x6e, 0xcf, 0x5d, 0x66, 0x6a, + 0x81, 0x20, 0x5c, 0x5c, 0x88, 0x6a, 0xcf, 0x3f, 0x0b, 0xff, 0x01, 0x6b, 0x61, 0x8f, 0x5d, 0x5c, + 0x61, 0x73, 0x20, 0xa6, 0x9e, 0xcc, 0xa9, 0x74, 0x0a, 0x74, 0xcf, 0x60, 0x20, 0x6a, 0x60, 0x5c, + 0x60, 0x81, 0x6f, 0x92, 0x0b, 0x69, 0x5d, 0x6a, 0xcf, 0x6f, 0x2e, 0x2e, 0x2e, 0x0a, 0x78, 0x5d, + 0x78, 0x5d, 0x74, 0x20, 0x6a, 0x6a, 0xcf, 0x75, 0x6e, 0x6c, 0x93, 0x0a, 0xa8, 0xcf, 0xa2, 0xa5, + 0xc1, 0x2d, 0x70, 0x0a, 0x6b, 0x90, 0x5d, 0x68, 0x88, 0x66, 0x85, 0x80, 0x92, 0x0b, 0xff, 0x00, + 0xa8, 0xcf, 0xa2, 0xa5, 0xc1, 0x2d, 0x3f, 0x0b, 0xff, 0x01, 0x69, 0x5d, 0x93, 0x0a, 0xa8, 0xbf, + 0xb0, 0xcf, 0x73, 0x20, 0x9e, 0xcf, 0x2d, 0xb6, 0xa1, 0xcb, 0x2d, 0x6a, 0xcf, 0x92, 0x0a, 0x9e, + 0xcf, 0x2d, 0xb6, 0x70, 0x20, 0x60, 0x6d, 0x74, 0xcf, 0x93, 0x0a, 0xa6, 0x9e, 0xcc, 0xa9, 0x60, + 0xcf, 0x20, 0x6d, 0x70, 0x74, 0x5c, 0x83, 0x92, 0x0b, 0xff, 0x00, 0x86, 0x60, 0x91, 0x6a, 0x80, + 0x92, 0x0a, 0x70, 0x68, 0x73, 0x20, 0xaf, 0xd0, 0xa2, 0xb3, 0xd0, 0x2d, 0xa9, 0x87, 0x0a, 0x6c, + 0x62, 0x84, 0x83, 0x60, 0x5c, 0x3f, 0x0b, 0xff, 0x01, 0x7d, 0x6b, 0x85, 0x88, 0x65, 0x92, 0x0a, + 0xaf, 0xcf, 0x2d, 0x70, 0x20, 0xa1, 0xcf, 0xc9, 0xcc, 0x9d, 0x6e, 0x5c, 0x5d, 0x0a, 0xb9, 0xa7, + 0x60, 0xcf, 0x5c, 0x83, 0x92, 0x0a, 0x69, 0x5c, 0x6c, 0x70, 0x20, 0x61, 0x62, 0x6e, 0x5c, 0x5c, + 0x92, 0x0b, 0x9a, 0xbf, 0x70, 0x20, 0x61, 0x5c, 0x6a, 0x6e, 0x20, 0x5c, 0x5e, 0x74, 0xcf, 0x5c, + 0x5c, 0x92, 0x0a, 0x6e, 0x64, 0x85, 0x6d, 0xcf, 0x2e, 0x2e, 0x2e, 0x0b, 0x6a, 0x73, 0x79, 0x84, + 0x6d, 0x5c, 0x6a, 0x0a, 0xb1, 0xc8, 0x2d, 0xa2, 0xb1, 0xc5, 0x2d, 0xbe, 0xa9, 0xcf, 0x87, 0x93, + 0x0a, 0x9c, 0xb5, 0x73, 0x20, 0xb3, 0xd0, 0x9e, 0xcc, 0xa9, 0x70, 0x0a, 0x5c, 0x84, 0x6d, 0x20, + 0x24, 0x5c, 0x6a, 0x60, 0x81, 0x6f, 0x92, 0x0b, 0xff, 0x00, 0x69, 0x5d, 0x60, 0x93, 0x5b, 0x82, + 0x60, 0xcf, 0x6e, 0x5d, 0x92, 0x0a, 0x97, 0x96, 0xc3, 0x93, 0x79, 0x6a, 0x5b, 0x24, 0x5d, 0x2e, + 0x2e, 0x2e, 0x0b, 0xff, 0x01, 0x60, 0xcf, 0x88, 0x74, 0xcf, 0x84, 0x80, 0x92, 0x0a, 0x6b, 0x61, + 0x8f, 0x5d, 0x70, 0x20, 0x6c, 0x5c, 0x6a, 0x81, 0x0a, 0x84, 0x88, 0x81, 0x62, 0x20, 0x66, 0x6d, + 0x62, 0x84, 0x92, 0x00, 0xff, 0x01, 0xab, 0xca, 0x2d, 0xc1, 0xa1, 0xc3, 0xa9, 0xc3, 0x77, 0x0a, + 0x80, 0x5d, 0x64, 0x69, 0x20, 0x5c, 0x81, 0x91, 0x66, 0x8e, 0x5c, 0x79, 0x66, 0x6a, 0x92, 0x0b, + 0x64, 0x73, 0x6b, 0x67, 0xcf, 0x87, 0x20, 0x6e, 0xcf, 0x5d, 0x69, 0xcf, 0x92, 0x0a, 0x5c, 0x61, + 0x6a, 0x5c, 0x20, 0x74, 0xcf, 0x66, 0x90, 0x60, 0xcf, 0x93, 0x0a, 0x67, 0x62, 0xcf, 0x70, 0x20, + 0x86, 0x60, 0x82, 0x79, 0x67, 0x80, 0x92, 0x0b, 0xff, 0x00, 0x5b, 0x82, 0x60, 0xcf, 0x6e, 0x5d, + 0x92, 0x00, 0xff, 0x01, 0x61, 0x87, 0x6c, 0x63, 0x6d, 0x93, 0x0a, 0x5c, 0x91, 0x6d, 0x81, 0x91, + 0x66, 0x8e, 0x5c, 0x92, 0x00, 0xff, 0x01, 0x74, 0x6a, 0x81, 0x62, 0x73, 0x6f, 0x81, 0x0a, 0x61, + 0x90, 0x60, 0x60, 0xcf, 0x20, 0x75, 0x6c, 0x80, 0x5d, 0x6a, 0xcf, 0x92, 0x0b, 0x66, 0x90, 0x62, + 0x61, 0xcf, 0x90, 0x5d, 0x20, 0x5b, 0x88, 0x6f, 0x5c, 0x66, 0xcf, 0x90, 0x73, 0x0a, 0x22, 0x61, + 0x90, 0x60, 0x66, 0x90, 0x5d, 0x22, 0x74, 0x0a, 0x7d, 0x91, 0x6d, 0x5c, 0x79, 0x67, 0x60, 0x3f, + 0x00, 0xff, 0x01, 0x74, 0x6f, 0x66, 0x6d, 0x5c, 0x83, 0x20, 0xb0, 0xb4, 0x74, 0x6f, 0x5c, 0x80, + 0x92, 0x00, 0x7e, 0x89, 0x93, 0x24, 0x74, 0x80, 0x5d, 0x92, 0x0b, 0xff, 0x01, 0x24, 0x74, 0x80, + 0x5d, 0x92, 0x00, 0xff, 0x01, 0x69, 0x5c, 0x6c, 0x6f, 0x81, 0x93, 0x0a, 0x79, 0x5e, 0x70, 0x20, + 0xaf, 0xcf, 0x2d, 0x6d, 0xcf, 0x0a, 0x7a, 0x6a, 0x64, 0x6e, 0x60, 0xcf, 0x20, 0x5b, 0x83, 0x80, + 0x92, 0x00, 0x5c, 0x5c, 0x6d, 0x88, 0x61, 0x6d, 0xcf, 0x67, 0x72, 0x92, 0x0b, 0xff, 0x01, 0x79, + 0x91, 0x6a, 0x62, 0x6a, 0xcf, 0x93, 0x74, 0x84, 0x74, 0xcf, 0x84, 0x67, 0x83, 0x80, 0x92, 0x00, + 0xff, 0x01, 0x69, 0x5c, 0x6c, 0x6f, 0x81, 0x20, 0x66, 0x91, 0x6d, 0x83, 0x68, 0xcf, 0x93, 0x0a, + 0x80, 0x62, 0x7a, 0x83, 0x20, 0xb9, 0xa7, 0x6a, 0xcf, 0x92, 0x00, 0x00, 0x00, 0x22, 0x61, 0x90, + 0x60, 0x66, 0x90, 0x5d, 0x22, 0x60, 0xcf, 0x93, 0x0a, 0x78, 0x66, 0x5c, 0x88, 0x6a, 0xcf, 0x60, + 0xcf, 0x92, 0x0b, 0xff, 0x01, 0x5c, 0x5c, 0x6d, 0xcf, 0x67, 0x80, 0x92, 0x0a, 0x49, 0x44, 0x9b, + 0x2d, 0xa9, 0xcf, 0x87, 0x93, 0x0a, 0x7a, 0x68, 0x6d, 0x20, 0x62, 0x6a, 0xcf, 0x65, 0x5c, 0x92, + 0x00, 0xff, 0x01, 0x6a, 0x2e, 0x2e, 0x6a, 0x67, 0x63, 0x6d, 0x62, 0x84, 0x2e, 0x2e, 0x2e, 0x00, + 0xff, 0x01, 0x24, 0x86, 0x60, 0x5c, 0x73, 0x20, 0x6a, 0x67, 0x63, 0x6d, 0x62, 0x84, 0x88, 0x60, + 0x92, 0x0a, 0x86, 0x66, 0x74, 0x93, 0x0a, 0xb5, 0xca, 0x2d, 0xa5, 0xc3, 0xa9, 0x70, 0x20, 0x7e, + 0x81, 0x84, 0x6d, 0x2e, 0x2e, 0x2e, 0x0b, 0x5b, 0x83, 0x63, 0x6f, 0x62, 0x20, 0x6f, 0x91, 0x6d, + 0x93, 0x0a, 0x66, 0x79, 0x91, 0x6a, 0x88, 0x66, 0xcf, 0x8e, 0x92, 0x0b, 0x67, 0x62, 0xcf, 0x70, + 0x20, 0x5c, 0x66, 0x8e, 0x73, 0x20, 0x6d, 0x5b, 0x6d, 0x60, 0xcf, 0x93, 0x0a, 0x75, 0x6c, 0x80, + 0x5d, 0x20, 0x6f, 0x88, 0x66, 0xcf, 0x8e, 0x60, 0xcf, 0x93, 0x0a, 0x6e, 0xcf, 0x5d, 0x60, 0x20, + 0x86, 0x66, 0x73, 0xa8, 0xbf, 0xb3, 0xd0, 0x2d, 0xa5, 0x2d, 0x87, 0x0a, 0x65, 0x60, 0xcf, 0x66, + 0x6d, 0x74, 0x20, 0x62, 0x84, 0x88, 0x60, 0x72, 0x92, 0x00, 0xff, 0x01, 0x5b, 0x82, 0x60, 0xcf, + 0x6e, 0x5d, 0x92, 0x0a, 0x5b, 0x88, 0x6a, 0x74, 0x20, 0x5c, 0x73, 0x6b, 0x73, 0x0a, 0x24, 0x88, + 0x66, 0xcf, 0x88, 0x20, 0x66, 0xcf, 0x8e, 0x80, 0x92, 0x00, 0xff, 0x01, 0x64, 0x73, 0x5b, 0x6f, + 0x70, 0x20, 0x6e, 0x75, 0xcf, 0x64, 0x79, 0x6f, 0x63, 0x84, 0x74, 0xcf, 0x0a, 0xab, 0xca, 0x2d, + 0xc1, 0xa1, 0xc3, 0xa9, 0xc3, 0x70, 0x74, 0x0a, 0x5c, 0x63, 0x88, 0x73, 0x66, 0xcf, 0x8e, 0x92, + 0x0b, 0x79, 0x89, 0x93, 0x86, 0x66, 0x6f, 0x81, 0x0a, 0x96, 0xc3, 0xa6, 0x47, 0xb2, 0xcf, 0xbe, + 0xa9, 0x87, 0x0a, 0x6c, 0x60, 0x5d, 0x60, 0xcf, 0x73, 0x92, 0x0b, 0xff, 0x00, 0x69, 0x84, 0x74, + 0x20, 0x6e, 0xcf, 0x64, 0x70, 0x5b, 0x83, 0x88, 0x6a, 0xcf, 0x5c, 0x3f, 0x0b, 0xff, 0x01, 0x5c, + 0x79, 0x93, 0x86, 0x66, 0x60, 0xcf, 0x20, 0x7d, 0x91, 0x6e, 0x83, 0x92, 0x0a, 0x31, 0x6c, 0x20, + 0x35, 0x30, 0x30, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x6d, 0xcf, 0x0a, 0x6e, 0xcf, 0x5d, 0x66, + 0xcf, 0x8e, 0x92, 0x00, 0xff, 0x01, 0x86, 0x60, 0x5c, 0x73, 0x20, 0x61, 0x87, 0x6c, 0x63, 0x6d, + 0x6f, 0x21, 0x00, 0x66, 0xcf, 0x8f, 0x5d, 0x6d, 0xcf, 0x88, 0x67, 0xcf, 0x7a, 0x73, 0x0a, 0x9b, + 0x2d, 0xa9, 0xbd, 0xcc, 0xa1, 0xcf, 0x9c, 0x2d, 0x60, 0xcf, 0x0a, 0x75, 0x6c, 0x80, 0x5d, 0x6d, + 0xcf, 0x67, 0x92, 0x00, 0x22, 0x61, 0x90, 0x60, 0x66, 0x90, 0x5d, 0x22, 0x60, 0xcf, 0x93, 0x0a, + 0x78, 0x66, 0x5c, 0x88, 0x6a, 0xcf, 0x60, 0xcf, 0x92, 0x0b, 0xff, 0x01, 0x5d, 0x5e, 0x77, 0x20, + 0x5c, 0x91, 0x6d, 0x62, 0x6a, 0xcf, 0x65, 0x5c, 0x92, 0x00, 0x6f, 0x70, 0x7d, 0x73, 0x60, 0x73, + 0x20, 0x64, 0x5e, 0x60, 0xcf, 0x93, 0x0a, 0x61, 0x7a, 0x73, 0x20, 0x64, 0x64, 0x85, 0x70, 0x0a, + 0x60, 0x6a, 0x82, 0x60, 0x63, 0x6d, 0x62, 0x83, 0x92, 0x0b, 0xff, 0x01, 0x86, 0x6a, 0x66, 0x87, + 0x20, 0x66, 0x88, 0x66, 0xcf, 0x6d, 0x93, 0x64, 0x64, 0x70, 0x0a, 0x96, 0xa9, 0xb5, 0xcc, 0x9d, + 0xa6, 0xc9, 0x2d, 0xa1, 0xcf, 0x87, 0x0a, 0x24, 0x62, 0x73, 0x6a, 0xcf, 0xcd, 0xcd, 0xcd, 0x0b, + 0x69, 0x66, 0x6d, 0x93, 0x69, 0x84, 0x60, 0xcf, 0x0a, 0x86, 0x62, 0x68, 0x5c, 0x73, 0x20, 0x60, + 0x62, 0x70, 0x20, 0x24, 0x6b, 0x6a, 0x81, 0x93, 0x0a, 0x67, 0x62, 0xcf, 0x20, 0x70, 0x63, 0xcf, + 0x6d, 0x62, 0x84, 0x21, 0x21, 0x00, 0xff, 0x01, 0x61, 0x7a, 0x60, 0xcf, 0x93, 0x6c, 0x84, 0x6d, + 0x5c, 0x91, 0x6d, 0x0a, 0x62, 0x84, 0x83, 0x73, 0x60, 0x92, 0x0b, 0xbd, 0xa0, 0x2d, 0xa6, 0xa3, + 0xc3, 0xa5, 0x2d, 0x79, 0x6d, 0xcf, 0x93, 0x0a, 0x6a, 0x73, 0x7b, 0x69, 0xcf, 0x92, 0x00, 0xff, + 0x01, 0x5b, 0x82, 0x60, 0xcf, 0x6e, 0x5d, 0x92, 0x6a, 0x67, 0x60, 0x91, 0x6a, 0x80, 0x92, 0x0b, + 0x76, 0xcf, 0x66, 0xcf, 0x70, 0x20, 0x6a, 0x6e, 0xcf, 0x82, 0x6c, 0x63, 0x6a, 0x92, 0x0a, 0x64, + 0x64, 0x74, 0x20, 0x7d, 0x5d, 0x93, 0x5b, 0x88, 0x68, 0xcf, 0x88, 0x6a, 0xcf, 0x92, 0x00, 0xff, + 0x01, 0x64, 0x6c, 0xcf, 0x6c, 0x7a, 0x87, 0x93, 0x0a, 0x7d, 0x91, 0x6d, 0x61, 0x6d, 0x20, 0x62, + 0x84, 0x6a, 0x73, 0x60, 0x3f, 0x00, 0x6b, 0x61, 0x8f, 0x5d, 0x79, 0x6d, 0xcf, 0x73, 0x0a, 0xa6, + 0x9e, 0xcc, 0xa9, 0x74, 0x20, 0x5c, 0x62, 0x81, 0x6a, 0xcf, 0x5c, 0x3f, 0x0b, 0xff, 0x01, 0x35, + 0x30, 0x30, 0x30, 0x30, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x6d, 0xcf, 0x67, 0x92, 0x00, 0xff, + 0x01, 0x24, 0x6a, 0x60, 0xcf, 0x5c, 0x65, 0x79, 0x20, 0x6a, 0xcf, 0x6f, 0x92, 0x0b, 0x31, 0x35, + 0x30, 0x30, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x87, 0x0a, 0x5c, 0x6a, 0x6a, 0xcf, 0x64, 0x5d, + 0x60, 0x92, 0x0b, 0x61, 0xcf, 0x69, 0xcf, 0x5d, 0xaf, 0xd0, 0xa2, 0xb3, 0xd0, 0x2d, 0xa9, 0x74, + 0x0a, 0x61, 0x7a, 0x73, 0x20, 0x7d, 0x73, 0x6a, 0xcf, 0x92, 0x00 +}; + const char *LocaleData::_textsTableFR[] = { "CONTINUER OU ABANDONNER ?", "TEMPS", @@ -2219,6 +2386,326 @@ const char *LocaleData::_textsTableIT[] = { "SLOT" }; +const uint8_t LocaleData::_level1TbnJP[] = { + 0x2e, 0x00, 0x2f, 0x00, 0x35, 0x00, 0x3d, 0x00, 0x48, 0x00, 0x52, 0x00, 0x56, 0x00, 0x5e, 0x00, + 0x64, 0x00, 0x72, 0x00, 0x7a, 0x00, 0x7f, 0x00, 0x85, 0x00, 0x8f, 0x00, 0x98, 0x00, 0xa1, 0x00, + 0xab, 0x00, 0xb5, 0x00, 0xbd, 0x00, 0xc4, 0x00, 0xce, 0x00, 0xd4, 0x00, 0xdd, 0x00, 0x00, 0xb0, + 0xa2, 0xa9, 0xae, 0xbf, 0x00, 0xb3, 0xc0, 0x9c, 0xca, 0x2d, 0xb1, 0xcf, 0x00, 0x9b, 0x2d, 0xa9, + 0xbd, 0xcc, 0xa1, 0xcf, 0xc0, 0xcc, 0x9d, 0x00, 0x9b, 0x2d, 0xa9, 0xbd, 0xcc, 0xa1, 0xcf, 0x9c, + 0x2d, 0x00, 0x64, 0x5c, 0x66, 0x00, 0xa8, 0xbf, 0xb3, 0xd0, 0x2d, 0xa5, 0x2d, 0x00, 0x9c, 0x2d, + 0xc0, 0xcc, 0x9d, 0x00, 0x99, 0xad, 0xbe, 0x9c, 0xcf, 0x2d, 0xa6, 0xc9, 0x2d, 0xa1, 0xcf, 0xc9, + 0x2d, 0x00, 0x9d, 0xbd, 0xa2, 0xa5, 0xbe, 0x9c, 0x2d, 0x00, 0xa2, 0x97, 0xcc, 0xa6, 0x00, 0xa1, + 0x2d, 0xbe, 0xa9, 0xcf, 0x00, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x9e, 0x2d, 0xa2, 0x00, 0x31, + 0x30, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x00, 0x35, 0x30, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, + 0x00, 0x35, 0x30, 0x30, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x00, 0x31, 0x30, 0x30, 0x9d, 0xbf, + 0xa1, 0xcf, 0xcc, 0xa9, 0x00, 0x9b, 0x2d, 0xa9, 0xcf, 0xc0, 0xcc, 0x9d, 0x00, 0x49, 0x44, 0x9b, + 0x2d, 0xa9, 0xcf, 0x00, 0xa3, 0x2d, 0xb1, 0xcf, 0xa2, 0xa5, 0xc3, 0xa9, 0xcf, 0x00, 0x85, 0x5d, + 0x66, 0xcf, 0x88, 0x00, 0x96, 0xc3, 0xa6, 0x47, 0xb2, 0xcf, 0xbe, 0xa9, 0x00, 0x63, 0x60, 0xcf, + 0x70, 0x88, 0x00 +}; + +const uint8_t LocaleData::_level2TbnJP[] = { + 0x4c, 0x00, 0x4d, 0x00, 0x53, 0x00, 0x5a, 0x00, 0x60, 0x00, 0x6e, 0x00, 0x72, 0x00, 0x78, 0x00, + 0x7d, 0x00, 0x85, 0x00, 0x8a, 0x00, 0x94, 0x00, 0x9f, 0x00, 0xa9, 0x00, 0xb2, 0x00, 0xbf, 0x00, + 0xc7, 0x00, 0xcf, 0x00, 0xd7, 0x00, 0xdd, 0x00, 0xe3, 0x00, 0xe9, 0x00, 0xf1, 0x00, 0xf7, 0x00, + 0xfb, 0x00, 0x05, 0x01, 0x0a, 0x01, 0x10, 0x01, 0x18, 0x01, 0x1d, 0x01, 0x22, 0x01, 0x26, 0x01, + 0x30, 0x01, 0x38, 0x01, 0x41, 0x01, 0x4b, 0x01, 0x56, 0x01, 0x5a, 0x01, 0x00, 0xb0, 0xa2, 0xa9, + 0xae, 0xbf, 0x00, 0x49, 0x44, 0x9b, 0x2d, 0xa9, 0xcf, 0x00, 0xa1, 0x2d, 0xbe, 0xa9, 0xcf, 0x00, + 0x99, 0xad, 0xbe, 0x9c, 0xcf, 0x2d, 0xa6, 0xc9, 0x2d, 0xa1, 0xcf, 0xc9, 0x2d, 0x00, 0x97, 0x96, + 0xc3, 0x00, 0xb0, 0xca, 0x2d, 0xa2, 0xcf, 0x00, 0xa2, 0x97, 0xcc, 0xa6, 0x00, 0xaf, 0xd0, 0xa2, + 0xb3, 0xd0, 0x2d, 0xa9, 0x00, 0xb3, 0xcf, 0x2d, 0x97, 0x00, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, + 0x9e, 0x2d, 0xa2, 0x00, 0x66, 0xcf, 0x76, 0xcf, 0x88, 0x73, 0x66, 0x8e, 0x66, 0x88, 0x00, 0x97, + 0xc3, 0xa2, 0xa5, 0xc3, 0xa9, 0xb1, 0xc8, 0xa9, 0x00, 0x6c, 0x5d, 0x66, 0x88, 0xb8, 0xab, 0xa5, + 0x2d, 0x00, 0x85, 0x5d, 0x6e, 0xcf, 0x5d, 0x20, 0x61, 0x90, 0x60, 0x66, 0x90, 0x5d, 0x00, 0x79, + 0x6e, 0xcf, 0x62, 0xcf, 0x6b, 0x41, 0x00, 0x79, 0x6e, 0xcf, 0x62, 0xcf, 0x6b, 0x42, 0x00, 0x79, + 0x6e, 0xcf, 0x62, 0xcf, 0x6b, 0x43, 0x00, 0x66, 0x90, 0x6b, 0x90, 0x5d, 0x00, 0xaf, 0xcf, 0x2d, + 0xa8, 0xc3, 0x00, 0xa1, 0xcf, 0xc9, 0xcc, 0x9d, 0x00, 0x9d, 0xbd, 0xa2, 0xa5, 0xbe, 0x9c, 0x2d, + 0x00, 0x9c, 0x2d, 0xc0, 0xcc, 0x9d, 0x00, 0x64, 0x5c, 0x66, 0x00, 0x31, 0x30, 0x30, 0x9d, 0xbf, + 0xa1, 0xcf, 0xcc, 0xa9, 0x00, 0x5d, 0x63, 0x6c, 0x63, 0x00, 0x64, 0x6c, 0xcf, 0x6c, 0x7a, 0x00, + 0xb8, 0xc3, 0xa5, 0x2d, 0xa1, 0xcf, 0xca, 0x00, 0x63, 0x5c, 0x66, 0xcf, 0x00, 0x9e, 0xb5, 0x9b, + 0xbe, 0x00, 0x56, 0x49, 0x50, 0x00, 0xa3, 0x2d, 0xb1, 0xcf, 0xa2, 0xa5, 0xc3, 0xa9, 0xcf, 0x00, + 0x73, 0x64, 0x82, 0x66, 0xcf, 0x60, 0x88, 0x00, 0x68, 0x5c, 0x61, 0xcf, 0x90, 0x69, 0x5d, 0x6b, + 0x00, 0x68, 0x5c, 0x61, 0xcf, 0x90, 0x61, 0x74, 0xcf, 0x88, 0x00, 0xb1, 0xc8, 0x2d, 0xa2, 0xb1, + 0xc5, 0x2d, 0xbe, 0xa9, 0xcf, 0x00, 0xa1, 0x2d, 0xa9, 0x00, 0xb4, 0xcc, 0xb1, 0xd0, 0x00 +}; + +const uint8_t LocaleData::_level3TbnJP[] = { + 0x10, 0x00, 0x11, 0x00, 0x17, 0x00, 0x1d, 0x00, 0x27, 0x00, 0x32, 0x00, 0x37, 0x00, 0x41, 0x00, + 0x00, 0xb0, 0xa2, 0xa9, 0xae, 0xbf, 0x00, 0xa1, 0x2d, 0xbe, 0xa9, 0xcf, 0x00, 0x9d, 0xbf, 0xa1, + 0xcf, 0xcc, 0xa9, 0x9e, 0x2d, 0xa2, 0x00, 0xb1, 0xc8, 0x2d, 0xa2, 0xb1, 0xc5, 0x2d, 0xbe, 0xa9, + 0xcf, 0x00, 0xa2, 0x97, 0xcc, 0xa6, 0x00, 0xa3, 0x2d, 0xb1, 0xcf, 0xa2, 0xa5, 0xc3, 0xa9, 0xcf, + 0x00, 0x99, 0xad, 0xbe, 0x9c, 0xcf, 0x2d, 0xa6, 0xc9, 0x2d, 0xa1, 0xcf, 0xc9, 0x2d, 0x00 +}; + +const uint8_t LocaleData::_level41TbnJP[] = { + 0x1a, 0x00, 0x1b, 0x00, 0x21, 0x00, 0x27, 0x00, 0x31, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x49, 0x00, + 0x4f, 0x00, 0x57, 0x00, 0x5c, 0x00, 0x66, 0x00, 0x74, 0x00, 0x00, 0xb0, 0xa2, 0xa9, 0xae, 0xbf, + 0x00, 0xa1, 0x2d, 0xbe, 0xa9, 0xcf, 0x00, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x9e, 0x2d, 0xa2, + 0x00, 0xb1, 0xc8, 0x2d, 0xa2, 0xb1, 0xc5, 0x2d, 0xbe, 0xa9, 0xcf, 0x00, 0xaf, 0xd0, 0xa2, 0xb3, + 0xd0, 0x2d, 0xa9, 0x00, 0xb3, 0xcf, 0x2d, 0x97, 0x00, 0x9c, 0x2d, 0xc0, 0xcc, 0x9d, 0x00, 0x9d, + 0xbd, 0xa2, 0xa5, 0xbe, 0x9c, 0x2d, 0x00, 0xa2, 0x97, 0xcc, 0xa6, 0x00, 0xa3, 0x2d, 0xb1, 0xcf, + 0xa2, 0xa5, 0xc3, 0xa9, 0xcf, 0x00, 0x99, 0xad, 0xbe, 0x9c, 0xcf, 0x2d, 0xa6, 0xc9, 0x2d, 0xa1, + 0xcf, 0xc9, 0x2d, 0x00, 0xa5, 0x9d, 0xa1, 0x2d, 0xa2, 0xa8, 0x2d, 0xa1, 0xcb, 0xc3, 0x00 +}; + +const uint8_t LocaleData::_level42TbnJP[] = { + 0x18, 0x00, 0x19, 0x00, 0x1f, 0x00, 0x25, 0x00, 0x2f, 0x00, 0x3a, 0x00, 0x42, 0x00, 0x48, 0x00, + 0x4d, 0x00, 0x55, 0x00, 0x5d, 0x00, 0x67, 0x00, 0x00, 0xb0, 0xa2, 0xa9, 0xae, 0xbf, 0x00, 0xa1, + 0x2d, 0xbe, 0xa9, 0xcf, 0x00, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x9e, 0x2d, 0xa2, 0x00, 0xb1, + 0xc8, 0x2d, 0xa2, 0xb1, 0xc5, 0x2d, 0xbe, 0xa9, 0xcf, 0x00, 0x9d, 0xbd, 0xa2, 0xa5, 0xbe, 0x9c, + 0x2d, 0x00, 0x9c, 0x2d, 0xc0, 0xcc, 0x9d, 0x00, 0xa2, 0x97, 0xcc, 0xa6, 0x00, 0xa8, 0xbf, 0xb3, + 0xd0, 0x2d, 0xa5, 0x2d, 0x00, 0xa8, 0xbf, 0xa1, 0x2d, 0xaf, 0xcf, 0x2d, 0x00, 0xa3, 0x2d, 0xb1, + 0xcf, 0xa2, 0xa5, 0xc3, 0xa9, 0xcf, 0x00, 0x99, 0xad, 0xbe, 0x9c, 0xcf, 0x2d, 0xa6, 0xc9, 0x2d, + 0xa1, 0xcf, 0xc9, 0x2d, 0x00 +}; + +const uint8_t LocaleData::_level51TbnJP[] = { + 0x22, 0x00, 0x23, 0x00, 0x29, 0x00, 0x30, 0x00, 0x36, 0x00, 0x40, 0x00, 0x45, 0x00, 0x53, 0x00, + 0x57, 0x00, 0x60, 0x00, 0x68, 0x00, 0x70, 0x00, 0x78, 0x00, 0x83, 0x00, 0x8d, 0x00, 0x93, 0x00, + 0x9e, 0x00, 0x00, 0xb0, 0xa2, 0xa9, 0xae, 0xbf, 0x00, 0x49, 0x44, 0x9b, 0x2d, 0xa9, 0xcf, 0x00, + 0xa1, 0x2d, 0xbe, 0xa9, 0xcf, 0x00, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x9e, 0x2d, 0xa2, 0x00, + 0xa2, 0x97, 0xcc, 0xa6, 0x00, 0x99, 0xad, 0xbe, 0x9c, 0xcf, 0x2d, 0xa6, 0xc9, 0x2d, 0xa1, 0xcf, + 0xc9, 0x2d, 0x00, 0x64, 0x5c, 0x66, 0x00, 0xb7, 0x9b, 0xab, 0x9b, 0xbe, 0xb4, 0x98, 0xa2, 0x00, + 0x9d, 0xbd, 0xa2, 0xa5, 0xbe, 0x9c, 0x2d, 0x00, 0xa8, 0xbf, 0xb3, 0xd0, 0x2d, 0xa5, 0x2d, 0x00, + 0xa8, 0xbf, 0xa1, 0x2d, 0xaf, 0xcf, 0x2d, 0x00, 0x96, 0xa9, 0xb5, 0xcc, 0x9d, 0xa6, 0xc9, 0x2d, + 0xa1, 0xcf, 0x00, 0xa3, 0x2d, 0xb1, 0xcf, 0xa2, 0xa5, 0xc3, 0xa9, 0xcf, 0x00, 0x9c, 0x2d, 0xc0, + 0xcc, 0x9d, 0x00, 0xa5, 0xcf, 0x97, 0x96, 0xbd, 0x2d, 0xba, 0xab, 0xcc, 0xa9, 0x00, 0xb1, 0xc8, + 0x2d, 0xa2, 0xb1, 0xc5, 0x2d, 0xbe, 0xa9, 0xcf, 0x00 +}; + +const uint8_t LocaleData::_level52TbnJP[] = { + 0x22, 0x00, 0x23, 0x00, 0x29, 0x00, 0x30, 0x00, 0x36, 0x00, 0x40, 0x00, 0x4e, 0x00, 0x53, 0x00, + 0x5a, 0x00, 0x60, 0x00, 0x68, 0x00, 0x71, 0x00, 0x79, 0x00, 0x81, 0x00, 0x8c, 0x00, 0x96, 0x00, + 0xa1, 0x00, 0x00, 0xb0, 0xa2, 0xa9, 0xae, 0xbf, 0x00, 0x49, 0x44, 0x9b, 0x2d, 0xa9, 0xcf, 0x00, + 0xa1, 0x2d, 0xbe, 0xa9, 0xcf, 0x00, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x9e, 0x2d, 0xa2, 0x00, + 0x99, 0xad, 0xbe, 0x9c, 0xcf, 0x2d, 0xa6, 0xc9, 0x2d, 0xa1, 0xcf, 0xc9, 0x2d, 0x00, 0xa2, 0x97, + 0xcc, 0xa6, 0x00, 0xb4, 0x98, 0xa2, 0xb3, 0xcf, 0xb6, 0x00, 0x9c, 0x2d, 0xc0, 0xcc, 0x9d, 0x00, + 0x9d, 0xbd, 0xa2, 0xa5, 0xbe, 0x9c, 0x2d, 0x00, 0xb7, 0x9b, 0xab, 0x9b, 0xbe, 0xb4, 0x98, 0xa2, + 0x00, 0xa8, 0xbf, 0xb3, 0xd0, 0x2d, 0xa5, 0x2d, 0x00, 0xa8, 0xbf, 0xa1, 0x2d, 0xaf, 0xcf, 0x2d, + 0x00, 0x96, 0xa9, 0xb5, 0xcc, 0x9d, 0xa6, 0xc9, 0x2d, 0xa1, 0xcf, 0x00, 0xa3, 0x2d, 0xb1, 0xcf, + 0xa2, 0xa5, 0xc3, 0xa9, 0xcf, 0x00, 0xb1, 0xc8, 0x2d, 0xa2, 0xb1, 0xc5, 0x2d, 0xbe, 0xa9, 0xcf, + 0x00, 0xa5, 0xcf, 0x97, 0x96, 0xbd, 0x2d, 0xba, 0xab, 0xcc, 0xa9, 0x00 +}; + +const uint8_t LocaleData::_cineBinJP[] = { + 0x00, 0x00, 0x00, 0x23, 0x00, 0x54, 0x00, 0x8e, 0x00, 0xc0, 0x00, 0xcb, 0x00, 0xd3, 0x00, 0xdd, + 0x00, 0xe4, 0x00, 0xe8, 0x00, 0xf1, 0x00, 0xfe, 0x01, 0x41, 0x01, 0x4b, 0x01, 0x54, 0x01, 0x63, + 0x01, 0x95, 0x01, 0xae, 0x01, 0xb8, 0x01, 0xc2, 0x01, 0xcc, 0x02, 0x01, 0x02, 0x43, 0x02, 0x6e, + 0x02, 0x79, 0x02, 0x83, 0x02, 0x95, 0x02, 0xb4, 0x02, 0xf1, 0x03, 0x48, 0x03, 0x75, 0x03, 0x80, + 0x03, 0x89, 0x03, 0x96, 0x03, 0xe7, 0x04, 0x02, 0x04, 0x0c, 0x04, 0x1f, 0x04, 0x5c, 0x04, 0x9f, + 0x04, 0xc8, 0x05, 0x03, 0x05, 0x41, 0x05, 0x5e, 0x05, 0x7d, 0x05, 0xa3, 0x05, 0xc1, 0x05, 0xde, + 0x05, 0xf7, 0x06, 0x10, 0x06, 0x23, 0x06, 0x30, 0x06, 0x46, 0x06, 0x4b, 0x06, 0x51, 0x06, 0x5a, + 0x06, 0x73, 0x06, 0x81, 0x06, 0xb9, 0x06, 0xca, 0x06, 0xec, 0x07, 0x06, 0x07, 0x34, 0x07, 0x4f, + 0x07, 0x58, 0x07, 0x60, 0x07, 0x7c, 0x07, 0x8f, 0x07, 0xbf, 0x07, 0xf9, 0x08, 0x2a, 0x08, 0x34, + 0x08, 0x8b, 0x08, 0x95, 0x08, 0xd0, 0x08, 0xda, 0x09, 0x33, 0x09, 0x3d, 0x09, 0x80, 0x09, 0x8a, + 0x09, 0xe3, 0x09, 0xed, 0x0a, 0x33, 0x0a, 0x98, 0x0a, 0xa2, 0x0a, 0xe2, 0x0b, 0x08, 0x0b, 0x13, + 0x0b, 0x5e, 0x0b, 0x8d, 0x0b, 0x9f, 0x0b, 0xa2, 0x0b, 0xa5, 0x0b, 0xa8, 0x0b, 0xab, 0x0b, 0xae, + 0x0b, 0xb1, 0x0b, 0xb4, 0x0b, 0xb7, 0x0b, 0xba, 0x0b, 0xbd, 0x0b, 0xc0, 0x0b, 0xc3, 0x0b, 0xc6, + 0x0b, 0xc9, 0x0b, 0xcc, 0x0b, 0xcf, 0x0b, 0xd2, 0x0b, 0xe4, 0x0c, 0x2f, 0x0c, 0x3c, 0x0c, 0x42, + 0x0c, 0x46, 0x0c, 0x4a, 0x0c, 0x4e, 0x0c, 0x52, 0x0c, 0x56, 0x0c, 0x5d +}; + +const uint8_t LocaleData::_cineTxtJP[] = { + 0x64, 0x84, 0x60, 0xcf, 0x93, 0x86, 0x6a, 0x66, 0x60, 0xcf, 0x20, 0x60, 0x6c, 0x6d, 0x20, 0x63, + 0x5c, 0x63, 0x88, 0x66, 0x6a, 0x93, 0xd1, 0x7d, 0x73, 0x60, 0xcf, 0x6a, 0x82, 0x6d, 0xcf, 0x5b, + 0x83, 0x92, 0x0a, 0x64, 0x73, 0x76, 0x72, 0x73, 0x20, 0xaa, 0xb0, 0xcf, 0x9e, 0xcf, 0x2d, 0xa1, + 0xcb, 0xc3, 0xd1, 0xa1, 0xa2, 0xa8, 0xb6, 0x74, 0x93, 0x64, 0x73, 0x61, 0xcf, 0x88, 0x60, 0xcf, + 0x73, 0x20, 0x6b, 0x67, 0xcf, 0x87, 0xd1, 0x61, 0x24, 0x62, 0x66, 0x6d, 0x20, 0x5c, 0x6f, 0x60, + 0x91, 0x6a, 0x92, 0x0a, 0x86, 0x6a, 0x66, 0x60, 0xcf, 0x93, 0x6b, 0x61, 0x8f, 0x5d, 0x73, 0x20, + 0x61, 0x6e, 0xcf, 0x5d, 0x70, 0xd1, 0x7d, 0x6e, 0xcf, 0x83, 0x64, 0x6e, 0x87, 0x20, 0x5c, 0x79, + 0x60, 0x81, 0x20, 0x63, 0x5c, 0x65, 0x88, 0xd1, 0x67, 0x83, 0x73, 0x74, 0x20, 0x6e, 0x5d, 0x6d, + 0x5c, 0x20, 0x76, 0x60, 0x73, 0x5d, 0x6f, 0xd1, 0x64, 0x6e, 0x6a, 0xcf, 0x92, 0x0a, 0x6a, 0x76, + 0xcf, 0x88, 0x93, 0x64, 0x84, 0x60, 0x81, 0x65, 0x61, 0x7d, 0x20, 0x67, 0xcf, 0x91, 0x6e, 0x93, + 0x6f, 0x60, 0xcf, 0x5c, 0x5b, 0x5c, 0x6a, 0xcf, 0xd1, 0x5d, 0x6b, 0x8f, 0x5d, 0x87, 0x20, 0x65, + 0x67, 0x81, 0x5d, 0x64, 0x6e, 0x70, 0x20, 0x6f, 0x83, 0x73, 0x6a, 0xcf, 0x85, 0x5d, 0x92, 0x0a, + 0xb1, 0xc4, 0x97, 0xbe, 0xaa, 0xc3, 0xaf, 0xcf, 0x2d, 0x3b, 0x0a, 0x20, 0x5c, 0x81, 0x5c, 0x70, + 0x88, 0x3b, 0x0a, 0x66, 0x64, 0xcf, 0x6e, 0x6f, 0x5c, 0x80, 0x5d, 0x3b, 0x0a, 0x78, 0x5d, 0x66, + 0x8f, 0x5d, 0x3b, 0x0a, 0xb7, 0xb8, 0x3b, 0x0a, 0x34, 0x33, 0x32, 0x34, 0x58, 0x42, 0x33, 0x35, + 0x0a, 0xa5, 0x97, 0xa5, 0xc3, 0xa2, 0xb2, 0xd0, 0x2d, 0xa2, 0xbc, 0x97, 0xc3, 0x0a, 0x64, 0x6c, + 0xcf, 0x6c, 0x7a, 0x87, 0x20, 0xa5, 0x97, 0xa5, 0xc3, 0xa9, 0xbc, 0xb2, 0xcf, 0xbe, 0x20, 0x96, + 0xa1, 0xcf, 0x96, 0x66, 0x6d, 0x88, 0x6d, 0xcf, 0xd1, 0x5d, 0x63, 0x6e, 0x82, 0x93, 0x69, 0x84, + 0x87, 0x20, 0xa5, 0x97, 0xa5, 0xc3, 0xa9, 0xbc, 0xb2, 0xcf, 0xbe, 0x20, 0x96, 0xb1, 0xbd, 0x9b, + 0x66, 0x6d, 0x88, 0x79, 0x6d, 0xcf, 0xd1, 0x74, 0x64, 0x88, 0x6d, 0xcf, 0x78, 0x66, 0x5c, 0x92, + 0x0a, 0x31, 0x30, 0x30, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x0a, 0x34, 0x33, 0x32, 0x34, 0x58, + 0x42, 0x34, 0x30, 0x0a, 0xaf, 0xcf, 0x97, 0xa5, 0xbe, 0x9f, 0x2d, 0xb3, 0xd0, 0xbf, 0x2d, 0xa1, + 0xcb, 0xc3, 0x0a, 0x56, 0x49, 0x50, 0x87, 0x20, 0xbd, 0xa0, 0x2d, 0xa6, 0xa3, 0xc3, 0xa5, 0x2d, + 0x79, 0x6d, 0xcf, 0x20, 0x68, 0x88, 0x6e, 0xcf, 0x5d, 0x66, 0x6d, 0x20, 0x78, 0x66, 0x5c, 0x92, + 0xd1, 0x56, 0x49, 0x50, 0x74, 0x20, 0x41, 0x52, 0x45, 0x41, 0x32, 0x6d, 0xcf, 0x20, 0x79, 0x91, + 0x6d, 0x5c, 0x83, 0x92, 0x0a, 0x41, 0x52, 0x45, 0x41, 0x32, 0x74, 0x20, 0x61, 0x63, 0x88, 0x6a, + 0xcf, 0x93, 0x76, 0xcf, 0x61, 0x87, 0x7d, 0x91, 0x6d, 0x5c, 0x63, 0x80, 0x92, 0x0a, 0x33, 0x30, + 0x30, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x0a, 0x34, 0x33, 0x33, 0x34, 0x4b, 0x52, 0x34, 0x32, + 0xd1, 0x0a, 0xa5, 0x97, 0xa5, 0xc3, 0xa8, 0xbf, 0xb0, 0xcf, 0xd1, 0x0a, 0xa0, 0x97, 0xb3, 0xcf, + 0x2d, 0x9d, 0xcf, 0x32, 0x31, 0x73, 0x20, 0x76, 0x62, 0x68, 0x5c, 0x61, 0x60, 0xcf, 0x93, 0x70, + 0x63, 0xcf, 0x6a, 0x92, 0xd1, 0x24, 0x69, 0x81, 0x62, 0x93, 0x60, 0xcf, 0x5c, 0x76, 0xcf, 0x70, + 0x20, 0x6f, 0x60, 0x79, 0x60, 0xcf, 0x20, 0x5c, 0x83, 0x74, 0x67, 0xcf, 0x6a, 0xcf, 0x92, 0xd1, + 0x0a, 0x61, 0x7a, 0x73, 0x20, 0x70, 0x88, 0x7b, 0x74, 0x93, 0xa0, 0x97, 0xb3, 0xcf, 0x2d, 0x9d, + 0xcf, 0x32, 0x31, 0x73, 0x20, 0xaf, 0xcf, 0x97, 0x9a, 0xd1, 0x9f, 0xc3, 0xb0, 0xd0, 0xca, 0x2d, + 0xa5, 0x60, 0xcf, 0x20, 0x98, 0xc5, 0xbe, 0xa2, 0x70, 0x20, 0x66, 0x74, 0x5c, 0x65, 0x84, 0x83, + 0x20, 0x79, 0x5e, 0x70, 0x93, 0xd1, 0x79, 0x91, 0x65, 0x6c, 0x67, 0x83, 0x20, 0x64, 0x6e, 0x6a, + 0xcf, 0x92, 0x0a, 0x64, 0x84, 0x60, 0xcf, 0x20, 0xa0, 0x97, 0xb3, 0xcf, 0x2d, 0x9d, 0xcf, 0x32, + 0x31, 0x73, 0x20, 0x66, 0x8e, 0x66, 0x88, 0x6a, 0xcf, 0x92, 0xd1, 0x61, 0x87, 0x6c, 0x63, 0x85, + 0x93, 0x6d, 0x64, 0xcf, 0x86, 0x5c, 0x20, 0x5b, 0x5c, 0x6d, 0x6a, 0xcf, 0x92, 0x0a, 0x34, 0x30, + 0x30, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0xd1, 0x0a, 0x34, 0x33, 0x33, 0x54, 0x58, 0x31, 0x30, + 0x32, 0xd1, 0x0a, 0xa5, 0x97, 0xa5, 0xc3, 0x20, 0x66, 0x7d, 0x88, 0x20, 0x61, 0x90, 0x5d, 0x61, + 0xcf, 0x60, 0x5c, 0xd1, 0x0a, 0xab, 0xca, 0x2d, 0xc1, 0xa1, 0xc3, 0xa9, 0xc3, 0x73, 0x20, 0x74, + 0x6c, 0x6d, 0xcf, 0x88, 0x61, 0x60, 0xcf, 0x20, 0x64, 0x66, 0x90, 0x5d, 0x20, 0x66, 0x6d, 0x5c, + 0x83, 0x92, 0xd1, 0x0a, 0x60, 0x88, 0x82, 0x70, 0x88, 0x74, 0x93, 0xb7, 0x97, 0xc3, 0x9f, 0xc3, + 0xb0, 0xd0, 0xca, 0x2d, 0xa5, 0x2d, 0x73, 0x6f, 0x60, 0x73, 0x20, 0x33, 0x79, 0x5c, 0x73, 0xd1, + 0x68, 0x5c, 0x61, 0xcf, 0x90, 0x61, 0x74, 0xcf, 0x88, 0x60, 0xcf, 0x20, 0x6e, 0x82, 0x60, 0x5e, + 0x81, 0x84, 0x6d, 0x5c, 0x6a, 0x20, 0x64, 0x6e, 0x70, 0xd1, 0x61, 0x6c, 0xcf, 0x5c, 0x6a, 0x92, + 0x0a, 0x61, 0x7a, 0x73, 0x70, 0x88, 0x7b, 0x74, 0x93, 0x69, 0x73, 0xb3, 0xcf, 0x2d, 0xa9, 0xcf, + 0x87, 0x20, 0x6e, 0x82, 0x60, 0x5e, 0x83, 0x64, 0x6e, 0x6a, 0xcf, 0x92, 0xd1, 0x66, 0x60, 0x66, + 0x93, 0x68, 0x5c, 0x63, 0xcf, 0x88, 0x66, 0xcf, 0x60, 0x88, 0x74, 0x20, 0x31, 0x76, 0xd0, 0x88, + 0x33, 0x30, 0x75, 0xcf, 0x90, 0x5d, 0x6a, 0xcf, 0x92, 0xd1, 0x69, 0x84, 0x87, 0x20, 0x67, 0x61, + 0xcf, 0x83, 0x6e, 0x93, 0x74, 0x6c, 0x6d, 0xcf, 0x88, 0x61, 0x74, 0x20, 0x66, 0xcf, 0x74, 0xcf, + 0x62, 0x66, 0x6d, 0x66, 0x79, 0x5d, 0x92, 0x0a, 0x66, 0x6a, 0x73, 0x60, 0x5c, 0x73, 0x20, 0xa8, + 0xbf, 0xb3, 0xd0, 0x2d, 0xa9, 0x60, 0xcf, 0x93, 0x7d, 0x88, 0x6a, 0xcf, 0x5c, 0x73, 0x20, 0x74, + 0xcf, 0x66, 0x90, 0x77, 0xd1, 0x6c, 0x84, 0x6d, 0x5c, 0x91, 0x6d, 0x20, 0x62, 0x84, 0x83, 0x6a, + 0xcf, 0x85, 0x5d, 0x92, 0x0a, 0x35, 0x30, 0x30, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0xd1, 0x0a, + 0x34, 0x33, 0x34, 0x54, 0x58, 0x31, 0x30, 0x33, 0x0a, 0xab, 0xca, 0x2d, 0xc1, 0xa1, 0xc3, 0xa9, + 0xc3, 0xa1, 0xa8, 0xc5, 0x2d, 0x0a, 0x64, 0x88, 0x7e, 0x93, 0x41, 0x52, 0x45, 0x41, 0x33, 0x60, + 0xcf, 0x20, 0xb5, 0xca, 0x2d, 0xa5, 0xc3, 0xa9, 0x70, 0x20, 0x80, 0x91, 0x6d, 0xd1, 0x66, 0x88, + 0x82, 0x8e, 0x62, 0x65, 0x84, 0x6a, 0x92, 0x86, 0x84, 0x86, 0x84, 0x74, 0x93, 0xb5, 0xca, 0x2d, + 0xa5, 0xc3, 0xa9, 0x60, 0xcf, 0x20, 0x75, 0x6e, 0x75, 0xcf, 0x6e, 0x70, 0xd1, 0x64, 0x5d, 0x63, + 0xcf, 0x61, 0x20, 0x67, 0x83, 0x73, 0x6d, 0xcf, 0x74, 0x20, 0x6f, 0x5c, 0x60, 0x6e, 0x20, 0x24, + 0x69, 0x84, 0x6d, 0x5c, 0x83, 0x92, 0x0a, 0x61, 0x7a, 0x73, 0x70, 0x88, 0x7b, 0x74, 0x93, 0xb5, + 0xca, 0x2d, 0xa5, 0xc3, 0xa9, 0x87, 0x20, 0x66, 0x79, 0x6c, 0x67, 0x83, 0x64, 0x6e, 0x6a, 0xcf, + 0x92, 0x0a, 0x36, 0x30, 0x30, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x0a, 0x9a, 0xbf, 0x60, 0xcf, + 0x93, 0x5d, 0x6c, 0x91, 0x6d, 0x83, 0x66, 0xcf, 0x8e, 0x6f, 0x5c, 0x60, 0x21, 0x3f, 0x0a, 0x7e, + 0x5b, 0x93, 0x9f, 0xc3, 0xbc, 0xcc, 0xa9, 0xcf, 0x92, 0x61, 0x24, 0x62, 0x87, 0x20, 0x6f, 0x62, + 0x66, 0x6a, 0x20, 0x61, 0x7a, 0x74, 0x93, 0x6e, 0xcf, 0x5d, 0x7e, 0x91, 0x6d, 0xd1, 0x64, 0x73, + 0xb7, 0xcc, 0xa3, 0x2d, 0xa1, 0xcf, 0x87, 0x20, 0x78, 0x69, 0xcf, 0x88, 0x66, 0x6a, 0x73, 0x60, + 0x93, 0x86, 0x60, 0x81, 0x6f, 0x5c, 0x6a, 0xcf, 0x85, 0x5d, 0x92, 0x0a, 0x5c, 0x5c, 0x20, 0x66, + 0x6c, 0x7d, 0x88, 0x6a, 0xcf, 0x92, 0x6a, 0xcf, 0x60, 0xcf, 0x93, 0x68, 0x6c, 0x7c, 0x5c, 0x66, + 0x6d, 0x5c, 0x83, 0x20, 0x66, 0xcf, 0x60, 0x88, 0x74, 0xd1, 0x6f, 0x5c, 0x88, 0x6a, 0xcf, 0x92, + 0x9a, 0xbf, 0x93, 0x6c, 0x79, 0x82, 0x20, 0x61, 0x7a, 0x73, 0x20, 0x5c, 0x73, 0x6b, 0x70, 0x20, + 0x60, 0x60, 0x86, 0x83, 0x64, 0x6e, 0xd1, 0x6a, 0xcf, 0x60, 0x81, 0xcd, 0xcd, 0xcd, 0x0a, 0xab, + 0xca, 0x2d, 0xc1, 0xa1, 0xc3, 0xa9, 0xc3, 0x70, 0x5c, 0x83, 0x93, 0x61, 0x7a, 0x73, 0x20, 0x76, + 0x83, 0x62, 0x60, 0x81, 0x73, 0x20, 0x6e, 0x7d, 0x6a, 0xcf, 0x6b, 0x93, 0xd1, 0x97, 0x96, 0xc3, + 0x70, 0x5b, 0x5d, 0x88, 0x6a, 0xcf, 0x92, 0x0a, 0x60, 0x84, 0x60, 0xcf, 0x93, 0x68, 0xcf, 0x88, + 0x76, 0xcf, 0x20, 0x68, 0x6c, 0x7c, 0x5c, 0x66, 0x6d, 0x62, 0x84, 0x83, 0x92, 0x60, 0xcf, 0x88, + 0x74, 0xcf, 0x91, 0x6d, 0xd1, 0x62, 0x84, 0x80, 0x92, 0x64, 0x84, 0x74, 0x93, 0x9a, 0xbf, 0x73, + 0x20, 0x6a, 0x6a, 0x60, 0x5c, 0x6d, 0xcf, 0x7d, 0x20, 0x5b, 0x83, 0x88, 0x6a, 0xcf, 0x60, 0x81, + 0x6f, 0x92, 0x0a, 0x22, 0x61, 0x24, 0x62, 0x20, 0x64, 0x5d, 0x68, 0x5c, 0x61, 0x22, 0x60, 0x81, + 0x73, 0x20, 0x75, 0x60, 0x82, 0x60, 0xcf, 0x93, 0x9f, 0xc3, 0xbc, 0xcc, 0xa9, 0xcf, 0x73, 0xd1, + 0x5d, 0x66, 0x6f, 0x86, 0x84, 0x6a, 0x20, 0x61, 0x24, 0x62, 0x87, 0x93, 0x5c, 0x79, 0x20, 0x7f, + 0x91, 0x62, 0x82, 0x6e, 0xd1, 0x80, 0x7a, 0x60, 0xcf, 0x5e, 0x81, 0x68, 0x6d, 0x5c, 0x62, 0x92, + 0x0a, 0x5b, 0x84, 0x74, 0x93, 0x6a, 0xcf, 0x5c, 0x60, 0xcf, 0x62, 0x87, 0x20, 0x69, 0x6c, 0x61, + 0xcf, 0x90, 0x5d, 0x67, 0x83, 0x20, 0x6e, 0x66, 0x6a, 0xcf, 0x91, 0x6a, 0x92, 0x0a, 0x64, 0x84, + 0x74, 0x93, 0x76, 0xcf, 0x88, 0x66, 0xbf, 0xb2, 0xcf, 0xbe, 0x60, 0xcf, 0x20, 0x63, 0x5c, 0x69, + 0x62, 0x60, 0x73, 0x5d, 0x6f, 0x20, 0xa2, 0x9f, 0x2d, 0xb1, 0xd0, 0x92, 0x0a, 0x7e, 0x6c, 0x81, + 0x74, 0x93, 0x70, 0x88, 0x63, 0xcf, 0x88, 0x73, 0x20, 0x76, 0xcf, 0x88, 0x66, 0x73, 0x5d, 0x6e, + 0xcf, 0xbf, 0xb2, 0xcf, 0xbe, 0x73, 0x93, 0xd1, 0x7e, 0x62, 0x31, 0x30, 0x30, 0x30, 0x74, 0xcf, + 0x5c, 0x92, 0x0a, 0x69, 0x5d, 0x93, 0x7e, 0x6c, 0x81, 0x74, 0x20, 0x70, 0x88, 0x63, 0xcf, 0x88, + 0x66, 0x8e, 0x60, 0x5c, 0x70, 0x20, 0x75, 0x69, 0x7b, 0x20, 0x99, 0x97, 0xbd, 0x96, 0xc3, 0x92, + 0x0a, 0x9a, 0xbf, 0x73, 0x20, 0x6b, 0x90, 0x5d, 0x65, 0x74, 0x93, 0x60, 0x84, 0x81, 0x70, 0x20, + 0x60, 0x88, 0x6c, 0xcf, 0x60, 0x84, 0x6d, 0x20, 0x66, 0x79, 0x91, 0x6a, 0x92, 0x0a, 0x69, 0x66, + 0x6d, 0x93, 0x61, 0x63, 0x88, 0x6f, 0x20, 0x66, 0xcf, 0x90, 0x5d, 0x61, 0x90, 0x5d, 0x70, 0x20, + 0x24, 0x6b, 0x5c, 0x91, 0x6a, 0x92, 0x0a, 0x9a, 0xbf, 0x74, 0x93, 0xb3, 0xc0, 0x9d, 0xcf, 0xbc, + 0xb6, 0x70, 0x20, 0x61, 0x24, 0x62, 0x87, 0x20, 0x78, 0x69, 0xcf, 0x88, 0x66, 0x6a, 0x92, 0x0a, + 0x69, 0x66, 0x6d, 0x93, 0x69, 0x84, 0x87, 0x20, 0x97, 0x96, 0xc3, 0x70, 0x20, 0x6a, 0x62, 0x66, + 0x6a, 0x92, 0x0a, 0x6c, 0x5c, 0x70, 0x20, 0x6e, 0x81, 0x5e, 0x81, 0x84, 0xcd, 0xcd, 0xcd, 0x0a, + 0x94, 0x7e, 0x6c, 0x73, 0x20, 0x61, 0x24, 0x62, 0x74, 0x93, 0x63, 0x66, 0x6d, 0x20, 0x24, 0x5c, + 0x6a, 0x69, 0xcf, 0x92, 0x95, 0x0a, 0x88, 0xcd, 0xcd, 0xcd, 0x0a, 0x5c, 0x79, 0x6a, 0xcf, 0x93, + 0x0a, 0x70, 0x63, 0xcf, 0x80, 0x5d, 0xcd, 0xcd, 0xcd, 0x0a, 0x5b, 0x89, 0x91, 0x21, 0x6e, 0xcf, + 0x5d, 0x7e, 0x81, 0x20, 0x75, 0x7a, 0x6c, 0x60, 0x5c, 0x61, 0xcf, 0x73, 0x20, 0x80, 0x5d, 0x6a, + 0xcf, 0x92, 0x0a, 0x6e, 0x7d, 0x80, 0x93, 0x80, 0x62, 0x7e, 0x91, 0x6d, 0x62, 0x84, 0x6a, 0x92, + 0x0a, 0x86, 0x84, 0x86, 0x84, 0x73, 0x20, 0x6b, 0x66, 0x61, 0x73, 0x20, 0x24, 0x60, 0x63, 0xcf, + 0x6d, 0xcf, 0x93, 0x63, 0xcf, 0x88, 0x65, 0xcf, 0x5c, 0x93, 0xd1, 0x70, 0x88, 0x63, 0xcf, 0x88, + 0x6e, 0xcf, 0x7d, 0x74, 0x20, 0x86, 0x84, 0x86, 0x84, 0x73, 0x20, 0x75, 0x6c, 0x80, 0x5d, 0x6e, + 0x67, 0x83, 0x20, 0xaf, 0xd0, 0xc1, 0x2d, 0x87, 0x0a, 0x6c, 0x62, 0x82, 0x6a, 0xcf, 0x67, 0x64, + 0x6e, 0x60, 0xcf, 0x20, 0x6d, 0xcf, 0x61, 0x83, 0x92, 0x0a, 0x79, 0x7d, 0x6f, 0x62, 0x93, 0x86, + 0x84, 0x86, 0x84, 0x73, 0x20, 0x68, 0x88, 0x66, 0x6a, 0x6b, 0x60, 0xcf, 0x20, 0xa8, 0xbf, 0xb3, + 0xd0, 0x2d, 0xa9, 0xd1, 0x66, 0x6d, 0x61, 0x6d, 0x2e, 0x2e, 0x2e, 0x0a, 0x24, 0x85, 0x60, 0x6f, + 0x20, 0x70, 0x88, 0x63, 0xcf, 0x88, 0x6e, 0xcf, 0x7d, 0x87, 0x20, 0x78, 0x85, 0x78, 0xcf, 0x67, + 0x6a, 0xcf, 0x85, 0x5d, 0x92, 0x0a, 0x74, 0x83, 0x60, 0x7b, 0x60, 0x66, 0x70, 0x20, 0x66, 0x6d, + 0x5c, 0x6a, 0x80, 0x5d, 0x70, 0x93, 0x86, 0x84, 0x86, 0x84, 0x74, 0x93, 0x79, 0x7d, 0x6f, 0x62, + 0xd1, 0x64, 0x73, 0x5d, 0x6b, 0x8f, 0x5d, 0x87, 0x20, 0x66, 0x74, 0x5c, 0x20, 0x67, 0x83, 0x73, + 0x6a, 0xcf, 0x92, 0x0a, 0x86, 0x84, 0x86, 0x84, 0x73, 0x20, 0x66, 0x90, 0x5d, 0x82, 0x74, 0x93, + 0x66, 0xcf, 0x60, 0x88, 0x73, 0x20, 0x7d, 0x88, 0x6a, 0xcf, 0x5c, 0xcd, 0xcd, 0xcd, 0x0a, 0x5b, + 0x5b, 0x89, 0x89, 0x89, 0x89, 0x2d, 0x21, 0x0a, 0x6f, 0x93, 0x6f, 0x88, 0x6a, 0xcf, 0x3f, 0x0a, + 0xa2, 0xaf, 0xd0, 0x97, 0x6a, 0xcf, 0xcd, 0xcd, 0xcd, 0x85, 0x5d, 0x7e, 0x70, 0x6d, 0xcf, 0x7d, + 0x20, 0x78, 0x5d, 0x82, 0x64, 0x88, 0x6d, 0xcf, 0x24, 0x63, 0x92, 0x0a, 0x5b, 0x6e, 0x6d, 0xcf, + 0x93, 0x66, 0xcf, 0x88, 0x7d, 0x88, 0x20, 0x67, 0x83, 0x6e, 0x66, 0x80, 0x5d, 0x92, 0x0a, 0x66, + 0x90, 0x5d, 0x66, 0x8e, 0x73, 0x20, 0x6e, 0x5d, 0x66, 0xcf, 0x90, 0x5d, 0x6d, 0xcf, 0x67, 0x21, + 0x20, 0x86, 0x6a, 0x66, 0x60, 0x81, 0xd1, 0x9f, 0xc3, 0xbc, 0xcc, 0xa9, 0xcf, 0x62, 0x88, 0x70, + 0x93, 0x66, 0x90, 0x5d, 0x75, 0x88, 0x87, 0x20, 0x86, 0x6a, 0x66, 0x79, 0x67, 0x92, 0x0a, 0x9f, + 0xc3, 0xbc, 0xcc, 0xa9, 0xcf, 0x62, 0x88, 0x93, 0xa5, 0x97, 0xa5, 0xc3, 0xa9, 0xbc, 0xb2, 0xcf, + 0xbe, 0x80, 0x82, 0x93, 0x67, 0x74, 0xcf, 0x81, 0x66, 0x5c, 0xd1, 0x6b, 0x61, 0x8f, 0x5d, 0x73, + 0x6a, 0x75, 0xcf, 0x87, 0x20, 0xb1, 0xd0, 0xbf, 0xa3, 0xcf, 0xc3, 0xa9, 0x66, 0x79, 0x67, 0x92, + 0x24, 0x7c, 0x6d, 0xcf, 0x6e, 0x5d, 0x21, 0x21, 0x0a, 0x67, 0x5d, 0x66, 0xcf, 0x60, 0x88, 0x64, + 0xcf, 0x93, 0x9f, 0xc3, 0xbc, 0xcc, 0xa9, 0xcf, 0x74, 0x93, 0x6b, 0x61, 0x8f, 0x5d, 0x7f, 0x61, + 0x73, 0xd1, 0x22, 0xa2, 0xa5, 0x2d, 0xb1, 0xd0, 0xc0, 0xb0, 0xcf, 0xa8, 0xcf, 0xc3, 0xa2, 0x64, + 0xcf, 0x5d, 0x22, 0x70, 0x20, 0x73, 0x91, 0x6a, 0x92, 0x0a, 0x34, 0x33, 0x37, 0x70, 0x6b, 0x7c, + 0xcd, 0xcd, 0xcd, 0x0a, 0x60, 0x84, 0x81, 0x74, 0x20, 0x86, 0x6a, 0x66, 0x70, 0x93, 0x75, 0x6e, + 0xcf, 0x5c, 0x66, 0x64, 0xcf, 0x6e, 0x87, 0x20, 0x65, 0x68, 0x6a, 0x92, 0xd1, 0x69, 0x73, 0x93, + 0x6f, 0x82, 0x7f, 0x61, 0x70, 0x20, 0x6c, 0x5c, 0x6d, 0x74, 0x93, 0x74, 0x6f, 0x66, 0x6a, 0x62, + 0x6f, 0x5c, 0x92, 0xd1, 0x69, 0x84, 0x74, 0x93, 0x86, 0x6a, 0x66, 0x73, 0x20, 0x69, 0x5d, 0x69, + 0xcf, 0x5d, 0x87, 0x20, 0x74, 0x83, 0x60, 0x70, 0x20, 0x64, 0x5e, 0x83, 0xd1, 0x24, 0x69, 0x85, + 0x66, 0x5c, 0x7d, 0x73, 0x20, 0x6a, 0xcf, 0x91, 0x6a, 0x92, 0x0a, 0x35, 0x31, 0x39, 0x70, 0x6b, + 0x7c, 0xcd, 0xcd, 0xcd, 0x0a, 0x60, 0x84, 0x81, 0x74, 0x93, 0x86, 0x84, 0x86, 0x84, 0x20, 0x70, + 0x88, 0x63, 0xcf, 0x88, 0x87, 0x93, 0x78, 0x85, 0x78, 0xcf, 0x69, 0x5d, 0x6e, 0x20, 0x66, 0x6d, + 0x5c, 0x83, 0x21, 0xd1, 0x6b, 0x61, 0x8f, 0x5d, 0x70, 0x20, 0x63, 0x5c, 0x64, 0x62, 0x67, 0x83, + 0x6a, 0x7c, 0x93, 0x6f, 0x70, 0x60, 0x20, 0x66, 0x6f, 0x62, 0x6d, 0x74, 0xcd, 0xcd, 0xcd, 0x0a, + 0x36, 0x38, 0x33, 0x70, 0x6b, 0x7c, 0xcd, 0xcd, 0xcd, 0x0a, 0x61, 0x90, 0x5d, 0x93, 0xa5, 0x97, + 0xa5, 0xc3, 0x9f, 0xc3, 0xb0, 0xd0, 0xca, 0x2d, 0xa5, 0x2d, 0x70, 0x93, 0x22, 0x76, 0xcf, 0x88, + 0x66, 0x73, 0x63, 0x88, 0x61, 0x8f, 0x5d, 0x22, 0xd1, 0x70, 0x6c, 0x5c, 0x6d, 0x73, 0x20, 0x66, + 0x90, 0x5d, 0x60, 0x5c, 0x87, 0x66, 0x6a, 0x92, 0x86, 0x6a, 0x66, 0x74, 0x93, 0x6a, 0x6a, 0xcf, + 0x20, 0x6a, 0xcf, 0x84, 0x60, 0x60, 0xcf, 0xd1, 0x69, 0x84, 0x70, 0x20, 0x61, 0x90, 0x5d, 0x7a, + 0x87, 0x7d, 0x6c, 0x20, 0x64, 0x6e, 0x87, 0x93, 0x5c, 0x73, 0x83, 0x74, 0xcf, 0x60, 0x82, 0x6a, + 0xcf, 0x92, 0x0a, 0x36, 0x39, 0x30, 0x70, 0x6b, 0x7c, 0xcd, 0xcd, 0xcd, 0x0a, 0xb4, 0xa2, 0xa5, + 0x2d, 0xb1, 0xcf, 0xbf, 0x97, 0xc3, 0x6a, 0xcf, 0x21, 0x69, 0x84, 0x60, 0xcf, 0x20, 0x7e, 0x6c, + 0x81, 0x70, 0x20, 0x7c, 0x5c, 0x84, 0x5c, 0x66, 0x6d, 0xd1, 0x5c, 0x83, 0x73, 0x6a, 0xcf, 0xcd, + 0xcd, 0xcd, 0x5b, 0x67, 0x93, 0x69, 0x84, 0x60, 0xcf, 0x20, 0x6e, 0xcf, 0x64, 0x70, 0x5b, 0x83, + 0x73, 0x60, 0x93, 0xd1, 0x7a, 0x6c, 0x63, 0x80, 0x5d, 0x6e, 0x20, 0x24, 0x7d, 0x5d, 0x92, 0x0a, + 0x37, 0x32, 0x30, 0x70, 0x6b, 0x7c, 0xcd, 0xcd, 0xcd, 0x0a, 0xb4, 0xa2, 0xa5, 0x2d, 0xb1, 0xcf, + 0xbf, 0x97, 0xc3, 0x87, 0x20, 0x7a, 0x6c, 0x63, 0x83, 0x73, 0x74, 0x20, 0x76, 0x60, 0x73, 0x5d, + 0x6a, 0xcf, 0x92, 0xd1, 0x5b, 0x84, 0x74, 0x93, 0x5d, 0x6b, 0x8f, 0x5d, 0x73, 0x20, 0x6b, 0x8f, + 0x5d, 0x66, 0x88, 0x70, 0x93, 0x69, 0x6f, 0x5e, 0x6c, 0x63, 0x81, 0x84, 0x6d, 0x5c, 0x83, 0x92, + 0xd1, 0x69, 0x73, 0x5d, 0x5e, 0x93, 0x67, 0x77, 0xcf, 0x6d, 0x73, 0x20, 0x6c, 0x5d, 0x66, 0x88, + 0x60, 0x5c, 0x68, 0x88, 0x74, 0x93, 0x61, 0x81, 0x84, 0x6d, 0xd1, 0x66, 0x79, 0x91, 0x6d, 0x5c, + 0x83, 0x92, 0x0a, 0x38, 0x33, 0x30, 0x70, 0x6b, 0x7c, 0xcd, 0xcd, 0xcd, 0x0a, 0x86, 0x60, 0x91, + 0x6a, 0x21, 0x21, 0x20, 0x80, 0x75, 0xcf, 0x73, 0xb1, 0xcf, 0xbf, 0x97, 0xc3, 0x60, 0xcf, 0x20, + 0x64, 0x73, 0x86, 0x62, 0x68, 0x5c, 0x87, 0xd1, 0x66, 0x74, 0x5c, 0x66, 0x6d, 0x5c, 0x83, 0x88, + 0x6a, 0xcf, 0x92, 0xd1, 0xb4, 0xa2, 0xa5, 0x2d, 0xb1, 0xcf, 0xbf, 0x97, 0xc3, 0x74, 0x93, 0x67, + 0x64, 0x66, 0x73, 0x5b, 0x5c, 0x6a, 0xcf, 0x20, 0x72, 0x7b, 0x91, 0x6d, 0x5c, 0x83, 0x73, 0x6a, + 0xcf, 0x92, 0x0a, 0x80, 0x75, 0xcf, 0x73, 0xb1, 0xcf, 0xbf, 0x97, 0xc3, 0x87, 0x93, 0x74, 0x60, + 0x5c, 0x67, 0x84, 0x74, 0xcf, 0x93, 0xd1, 0xb4, 0xa2, 0xa5, 0x2d, 0xb1, 0xcf, 0xbf, 0x97, 0xc3, + 0x60, 0xcf, 0x93, 0x79, 0x6a, 0x20, 0x5d, 0x64, 0xcf, 0x61, 0x6a, 0xcf, 0x67, 0x92, 0xd1, 0x96, + 0xa9, 0xb5, 0xcc, 0x9d, 0xa6, 0xc9, 0x2d, 0xa1, 0xcf, 0x87, 0x20, 0x64, 0x73, 0x86, 0x62, 0x68, + 0x5c, 0x73, 0x20, 0x22, 0x60, 0x62, 0x22, 0x70, 0x24, 0x63, 0x74, 0xcf, 0xd1, 0x6c, 0x5d, 0x66, + 0x88, 0x60, 0x5c, 0x68, 0x88, 0x87, 0x20, 0x75, 0x81, 0x62, 0x64, 0x6e, 0x60, 0xcf, 0x20, 0x6d, + 0xcf, 0x61, 0x83, 0x73, 0x6a, 0xcf, 0x92, 0x0a, 0x39, 0x30, 0x30, 0x70, 0x6b, 0x7c, 0xcd, 0xcd, + 0xcd, 0x0a, 0x86, 0x6a, 0x66, 0x74, 0x93, 0xb1, 0xcf, 0xbf, 0x97, 0xc3, 0x73, 0x20, 0x84, 0x88, + 0x65, 0x74, 0x88, 0x73, 0x5d, 0x87, 0x20, 0x74, 0x60, 0x5c, 0x66, 0x93, 0xd1, 0x64, 0x73, 0x86, + 0x62, 0x68, 0x5c, 0x87, 0x20, 0x74, 0x7c, 0x6c, 0x65, 0x68, 0x83, 0x20, 0x6b, 0x60, 0x81, 0x73, + 0x5b, 0x83, 0x20, 0x74, 0xcf, 0x62, 0x6a, 0xcf, 0x88, 0x87, 0xd1, 0x62, 0x7a, 0x6a, 0x6d, 0x6a, + 0x92, 0x0a, 0x5b, 0x6e, 0x74, 0x93, 0x63, 0x5c, 0x60, 0x62, 0x87, 0x20, 0x66, 0xcf, 0x91, 0x64, + 0x5d, 0x67, 0x83, 0x6a, 0x7c, 0x73, 0x93, 0x7f, 0x5d, 0x61, 0x60, 0xcf, 0xd1, 0x5c, 0x83, 0x6a, + 0xcf, 0x63, 0x6a, 0xcf, 0x2e, 0x2e, 0x2e, 0x0a, 0x31, 0x32, 0x30, 0x30, 0x70, 0x6b, 0x7c, 0xcd, + 0xcd, 0xcd, 0x0a, 0x86, 0x6a, 0x66, 0x74, 0x20, 0x64, 0x88, 0x7e, 0x93, 0x66, 0xcf, 0x91, 0x64, + 0x5d, 0x67, 0x83, 0x64, 0x6e, 0x87, 0x20, 0x63, 0x91, 0x66, 0x88, 0x66, 0x6a, 0x92, 0xd1, 0x67, + 0x77, 0xcf, 0x6d, 0x60, 0xcf, 0x20, 0x74, 0x60, 0x5c, 0x65, 0x84, 0x83, 0x20, 0x79, 0x5e, 0x70, + 0x20, 0xaf, 0xc3, 0x9b, 0xcf, 0x2d, 0x70, 0x5b, 0x83, 0xd1, 0x5d, 0x6b, 0x8f, 0x5d, 0x68, 0x88, + 0x70, 0x93, 0x73, 0x81, 0x6f, 0x63, 0x84, 0x74, 0xcf, 0xcd, 0xcd, 0xcd, 0x92, 0x0a, 0x64, 0x84, + 0x60, 0xcf, 0x93, 0x86, 0x6a, 0x66, 0x73, 0x20, 0x65, 0x5c, 0x64, 0xcf, 0x73, 0xb7, 0xcc, 0xa3, + 0x2d, 0xa1, 0xcf, 0x6a, 0xcf, 0x92, 0xd1, 0x60, 0x7a, 0x80, 0x93, 0x6e, 0xcf, 0x5d, 0x60, 0x20, + 0x86, 0x6a, 0x66, 0x87, 0x20, 0x79, 0x7d, 0x91, 0x6d, 0x62, 0x84, 0x92, 0x0a, 0xb1, 0xc5, 0xbd, + 0xcc, 0xb1, 0xd0, 0x20, 0xaf, 0xc1, 0x2d, 0xa9, 0xcf, 0x20, 0x9d, 0xbc, 0x2d, 0x9d, 0x0a, 0x31, + 0x32, 0x0a, 0x31, 0x32, 0x0a, 0x31, 0x32, 0x0a, 0x31, 0x32, 0x0a, 0x31, 0x32, 0x0a, 0x31, 0x32, + 0x0a, 0x31, 0x32, 0x0a, 0x31, 0x32, 0x0a, 0x31, 0x32, 0x0a, 0x31, 0x32, 0x0a, 0x31, 0x32, 0x0a, + 0x31, 0x32, 0x0a, 0x31, 0x32, 0x0a, 0x31, 0x32, 0x0a, 0x31, 0x32, 0x0a, 0x31, 0x32, 0x0a, 0x31, + 0x32, 0x0a, 0x99, 0xc3, 0xa9, 0xbd, 0x2d, 0x87, 0x20, 0x60, 0x62, 0x70, 0x88, 0x20, 0x66, 0x79, + 0x66, 0x6a, 0x92, 0x0a, 0x64, 0x73, 0x66, 0x7c, 0x5c, 0x87, 0x20, 0x5d, 0x63, 0x83, 0x7d, 0x73, + 0x74, 0x93, 0xd1, 0x22, 0x85, 0x5d, 0x6e, 0xcf, 0x5d, 0x20, 0x61, 0x90, 0x60, 0x66, 0x90, 0x5d, + 0x22, 0x87, 0x20, 0x69, 0x5d, 0x70, 0x8f, 0x5d, 0x68, 0x80, 0x92, 0xd1, 0x69, 0x5d, 0x70, 0x8f, + 0x5d, 0x67, 0x83, 0x20, 0x64, 0x6e, 0x6d, 0xcf, 0x93, 0xd1, 0x64, 0x73, 0x66, 0x64, 0xcf, 0x6e, + 0x87, 0x20, 0x5d, 0x63, 0x24, 0x5d, 0x7d, 0x73, 0x6e, 0x20, 0x7a, 0x6f, 0x67, 0x92, 0x0a, 0x66, + 0x7c, 0x5c, 0x20, 0x6a, 0x91, 0x68, 0x5c, 0x6d, 0xcf, 0x67, 0x92, 0x0a, 0x78, 0x5d, 0x66, 0x8f, + 0x5d, 0x0a, 0x31, 0x30, 0x30, 0x0a, 0x33, 0x30, 0x30, 0x0a, 0x34, 0x30, 0x30, 0x0a, 0x35, 0x30, + 0x30, 0x0a, 0x36, 0x30, 0x30, 0x0a, 0x9d, 0xbf, 0xa1, 0xcf, 0xcc, 0xa9, 0x0a +}; + const uint16_t Resource::_voicesOffsetsTable[] = { 0x0064, 0x006A, 0x0070, 0x0084, 0x0090, 0x0096, 0x009E, 0x00A4, 0x00AE, 0x00B4, 0x00BC, 0x00C4, 0x00CC, 0x00D4, 0x00E0, 0x00E6, 0x00EC, 0x00F6, 0x00FC, 0x0102, @@ -2775,6 +3262,409 @@ const uint8_t Video::_palSlot0xF[] = { 0xA7, 0xAF, 0xA7, 0xB3, 0xBF, 0xBB, 0xBF, 0xCF, 0xCF, 0xCF, 0x00, 0x33, 0x00, 0x17, 0x0F, 0x1F }; +const uint8_t Video::_font8Jp[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0x20, 0x00, 0x00, 0xFF, 0x20, 0x00, 0x00, 0xFF, 0x20, 0x00, 0x00, 0xFF, 0x20, 0x00, + 0x00, 0xFF, 0x20, 0x00, 0x00, 0x22, 0x20, 0x00, 0x00, 0xFF, 0x20, 0x00, 0x00, 0x22, 0x20, 0x00, + 0x0F, 0xF0, 0xFF, 0x00, 0x0F, 0xF2, 0xFF, 0x20, 0x00, 0x22, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xF0, 0xFF, 0x00, 0x0F, 0xF2, 0xFF, 0x20, 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xF2, 0xFF, 0x22, + 0xFF, 0xFF, 0xFF, 0xF0, 0x0F, 0xF2, 0xFF, 0x22, 0x0F, 0xF2, 0xFF, 0x20, 0x00, 0x22, 0x02, 0x20, + 0x00, 0xF2, 0x00, 0xF2, 0xFF, 0xFF, 0xF2, 0xF2, 0x02, 0xF2, 0x22, 0x02, 0x0F, 0xFF, 0xFF, 0x20, + 0xF2, 0xF2, 0x22, 0xF2, 0xF2, 0xF2, 0x00, 0xF2, 0x0F, 0xF2, 0x0F, 0x22, 0x00, 0x22, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x0F, 0xF0, 0xFF, 0x20, 0xFF, 0x22, 0x02, 0x2F, 0xF2, 0x20, + 0x00, 0xFF, 0x22, 0x00, 0x0F, 0xF2, 0x2F, 0xF0, 0xFF, 0x22, 0x0F, 0xF2, 0x02, 0x20, 0x00, 0x22, + 0x00, 0xFF, 0xF0, 0x00, 0x0F, 0xF2, 0xFF, 0x00, 0x0F, 0xF2, 0xF2, 0x20, 0x0F, 0xFF, 0x0F, 0xF0, + 0xFF, 0x2F, 0xFF, 0x22, 0xFF, 0x20, 0xFF, 0x20, 0x0F, 0xFF, 0x0F, 0xF0, 0x00, 0x22, 0x20, 0x22, + 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x00, 0xFF, 0x22, 0x00, 0x00, 0x02, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0xFF, 0x22, 0x00, 0x00, 0xFF, 0x20, 0x00, + 0x00, 0xFF, 0x20, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x02, 0x20, + 0x00, 0xFF, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x20, + 0x00, 0x00, 0xFF, 0x20, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0xFF, 0x22, 0x00, 0x00, 0x02, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x0F, 0xF0, 0x00, 0xFF, 0xFF, 0x22, 0xFF, 0xFF, 0xFF, 0xFF, + 0x02, 0xFF, 0xFF, 0x22, 0x0F, 0xF2, 0x2F, 0xF0, 0x00, 0x22, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, + 0x20, 0x2F, 0xF2, 0x22, 0x00, 0x0F, 0xF2, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x00, 0xFF, 0x22, 0x00, 0x00, 0x02, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF0, + 0x00, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xF2, 0x00, 0x00, 0x02, 0x22, 0x00, + 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x00, 0xFF, 0x22, 0x00, 0x0F, 0xF2, 0x20, + 0x00, 0xFF, 0x22, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0xFF, 0x22, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0x22, 0x2F, 0xF0, 0xFF, 0x20, 0xF0, 0xF2, 0xFF, 0x2F, 0x02, 0xF2, + 0xFF, 0xF0, 0x20, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xF0, 0x00, 0x0F, 0xFF, 0xF2, 0x00, 0x00, 0x2F, 0xF2, 0x00, 0x00, 0x0F, 0xF2, 0x00, + 0x00, 0x0F, 0xF2, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0x22, 0x2F, 0xF0, 0x02, 0x20, 0xFF, 0x22, 0x00, 0xFF, 0x22, 0x20, + 0x0F, 0xF2, 0x22, 0x00, 0xFF, 0xFF, 0xFF, 0xF0, 0x02, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0x22, 0x22, 0xF0, 0x02, 0x2F, 0xFF, 0xF2, 0x00, 0x00, 0x22, 0xF2, + 0xFF, 0x00, 0x00, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0xFF, 0x00, 0x00, 0xFF, 0x2F, 0x20, 0x0F, 0xF2, 0x2F, 0x20, 0xFF, 0x22, 0x0F, 0x20, + 0xFF, 0xFF, 0xFF, 0xF0, 0x02, 0x22, 0x2F, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0x22, 0x22, 0x22, 0xFF, 0xFF, 0xFF, 0x00, 0x02, 0x22, 0x22, 0xF0, + 0xFF, 0x20, 0x00, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0x22, 0x22, 0xF0, 0xFF, 0xFF, 0xFF, 0x02, 0xFF, 0x22, 0x22, 0xF0, + 0xFF, 0x20, 0x00, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0x22, 0x22, 0xF2, 0x02, 0x20, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, + 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0x22, 0x22, 0xF0, 0x0F, 0xFF, 0xFF, 0x02, 0xFF, 0x22, 0x22, 0xF0, + 0xFF, 0x20, 0x00, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0x22, 0x22, 0xF0, 0x0F, 0xFF, 0xFF, 0xF2, 0x00, 0x22, 0x22, 0xF2, + 0xFF, 0x00, 0x00, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x0F, 0xFF, 0x20, 0x00, 0x00, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0xFF, 0x00, 0x00, 0x0F, 0xFF, 0x20, 0x00, 0x00, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xF2, 0x00, 0x00, 0x02, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xF0, 0x00, 0x00, 0xFF, 0xF2, 0x00, 0x00, 0x02, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0xFF, 0x22, 0x00, 0x00, 0xFF, 0x20, 0x00, + 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xF2, 0x00, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xFF, 0xF2, 0x00, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x20, + 0x00, 0x0F, 0xF2, 0x20, 0x00, 0xFF, 0x22, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0x00, 0x0F, 0xF2, 0x2F, 0xF0, 0x00, 0x22, 0x0F, 0xF2, 0x00, 0x00, 0xFF, 0x22, + 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x00, 0x22, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x22, 0x00, + 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0x22, 0x22, 0xF0, 0xFF, 0x2F, 0xF0, 0xF2, 0xFF, 0x2F, 0x22, 0xF2, + 0xFF, 0x2F, 0xFF, 0xF2, 0xFF, 0x20, 0x22, 0x22, 0x0F, 0xFF, 0xFF, 0x00, 0x00, 0x22, 0x22, 0x20, + 0x0F, 0xFF, 0xFF, 0x20, 0xFF, 0x22, 0x22, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0xFF, 0xFF, 0xF2, + 0xFF, 0x22, 0x22, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0x02, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xF2, 0x00, 0xFF, 0x22, 0x2F, 0x20, 0xFF, 0x20, 0x0F, 0x20, 0xFF, 0xFF, 0xFF, 0x20, + 0xFF, 0x22, 0x22, 0xF2, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0xFF, 0x22, 0x22, 0xF2, 0xFF, 0x20, 0x00, 0x02, 0xFF, 0x20, 0x00, 0x00, + 0xFF, 0x20, 0x00, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xF2, 0x00, 0xFF, 0x22, 0x2F, 0x20, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, + 0xFF, 0x20, 0x0F, 0x22, 0xFF, 0xFF, 0xF2, 0x20, 0x02, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xF2, 0xFF, 0x22, 0x22, 0x22, 0xFF, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, + 0xFF, 0x22, 0x22, 0x20, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xF2, 0xFF, 0x22, 0x22, 0x22, 0xFF, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, + 0xFF, 0x22, 0x22, 0x20, 0xFF, 0x20, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0xF2, 0xFF, 0x22, 0x22, 0x22, 0xFF, 0x20, 0x00, 0x00, 0xFF, 0x20, 0xFF, 0xF2, + 0xFF, 0x20, 0x02, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x02, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0xFF, 0xFF, 0xF2, + 0xFF, 0x22, 0x22, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0x02, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0x20, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x0F, 0xF2, 0x00, 0x00, 0x0F, 0xF2, 0x00, + 0x00, 0x0F, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0x20, 0x00, 0x02, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, + 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x0F, 0x20, 0xFF, 0xFF, 0xF2, 0x00, + 0xFF, 0x22, 0x2F, 0x20, 0xFF, 0x20, 0x00, 0xF2, 0x02, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x20, 0x00, 0x00, 0xFF, 0x20, 0x00, 0x00, 0xFF, 0x20, 0x00, 0x00, 0xFF, 0x20, 0x00, 0x00, + 0xFF, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x20, 0xFF, 0x2F, 0xF2, 0xF2, 0xFF, 0x2F, 0xF2, 0xF2, 0xFF, 0x2F, 0xF2, 0xF2, + 0xFF, 0x2F, 0xF2, 0xF2, 0xFF, 0x2F, 0xF2, 0xF2, 0x02, 0x20, 0x22, 0x02, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x20, 0xFF, 0x22, 0x22, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, + 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0x02, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0xFF, 0x22, 0x22, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, + 0xFF, 0x20, 0x00, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0xFF, 0x22, 0x22, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0xFF, 0xFF, 0x22, + 0xFF, 0x22, 0x22, 0x20, 0xFF, 0x20, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0xFF, 0x22, 0x22, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0xF2, 0xF2, + 0xFF, 0x20, 0xFF, 0x22, 0x0F, 0xFF, 0xFF, 0xF2, 0x00, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0xFF, 0x22, 0x22, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0xFF, 0xFF, 0x20, + 0xFF, 0x22, 0x2F, 0x20, 0xFF, 0x20, 0x00, 0xF2, 0x02, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0xFF, 0x22, 0x22, 0xF2, 0xFF, 0x20, 0x00, 0x22, 0x0F, 0xFF, 0xFF, 0x20, + 0xF2, 0x22, 0x22, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0xFF, 0x22, 0x20, 0x00, 0xFF, 0x20, 0x00, 0x00, 0xFF, 0x20, 0x00, + 0x00, 0xFF, 0x20, 0x00, 0x00, 0xFF, 0x20, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, + 0xFF, 0x20, 0x00, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0x0F, 0x20, 0x00, 0xF2, + 0x00, 0xF2, 0x0F, 0x22, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0xF2, 0xF2, 0xFF, 0x20, 0xF2, 0xF2, 0xFF, 0x20, 0xF2, 0xF2, + 0x0F, 0xF2, 0xF2, 0xF2, 0x00, 0xFF, 0x2F, 0x22, 0x00, 0x02, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0x0F, 0xF2, 0x0F, 0x20, 0x00, 0xFF, 0xF2, 0x00, + 0x0F, 0xF2, 0x2F, 0x20, 0xFF, 0x22, 0x00, 0xF2, 0x02, 0x20, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0xFF, 0xFF, 0xFF, 0xF2, + 0x02, 0x22, 0x22, 0xF2, 0xFF, 0xFF, 0xFF, 0x22, 0x02, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0xFF, 0x22, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0xFF, 0x22, 0x00, + 0x0F, 0xF2, 0x20, 0x00, 0xFF, 0xFF, 0xFF, 0xF0, 0x02, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0xF2, 0x22, 0x20, 0x00, 0xFF, 0xFF, 0x20, + 0x0F, 0xF2, 0xF2, 0xF2, 0xF2, 0xFF, 0x22, 0xF2, 0xFF, 0xF2, 0x2F, 0x22, 0x02, 0x22, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x0F, 0x20, 0xF2, 0x00, 0x00, 0xF2, + 0xF2, 0x00, 0x00, 0xF2, 0xF2, 0xF2, 0x00, 0xF2, 0x0F, 0x22, 0x00, 0x02, 0x00, 0x20, 0x00, 0x00, + 0x0F, 0xFF, 0xF2, 0x00, 0x00, 0x22, 0x22, 0x00, 0x0F, 0xFF, 0xF2, 0x00, 0xF2, 0x22, 0x2F, 0x20, + 0x02, 0x00, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0x0F, 0xFF, 0x22, 0x00, 0x00, 0x22, 0x20, 0x00, + 0x00, 0xFF, 0xF2, 0x00, 0x00, 0x02, 0x22, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x2F, 0x22, 0x20, + 0x00, 0xFF, 0x20, 0x00, 0x0F, 0x22, 0xF2, 0x00, 0xF2, 0x20, 0xFF, 0xF2, 0x02, 0x00, 0x02, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0x22, 0x22, + 0x0F, 0x20, 0x0F, 0x20, 0xFF, 0xFF, 0x20, 0xF2, 0x0F, 0x22, 0xF2, 0xF2, 0x0F, 0x20, 0xF2, 0xF2, + 0x0F, 0x20, 0xF2, 0x02, 0xF2, 0x20, 0xF2, 0x00, 0xF2, 0x0F, 0xF2, 0x00, 0x02, 0x00, 0x22, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x2F, 0x22, 0x20, 0xFF, 0xFF, 0xFF, 0xF2, + 0x02, 0x22, 0xF2, 0x22, 0xF2, 0x00, 0x02, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x22, 0x20, + 0x00, 0x0F, 0xF2, 0x00, 0x00, 0x0F, 0x22, 0x00, 0x00, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x00, 0x00, 0x22, 0x00, + 0xF2, 0x00, 0x0F, 0x20, 0xF2, 0xFF, 0xFF, 0xF2, 0xF2, 0x02, 0x2F, 0x22, 0xF2, 0x00, 0x0F, 0x20, + 0xF2, 0x00, 0x0F, 0x20, 0xF2, 0x00, 0x0F, 0x20, 0x0F, 0x20, 0xF2, 0x20, 0x00, 0x20, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xF2, 0x00, 0x22, 0x22, 0x22, + 0x00, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x2F, 0x22, 0x20, 0x00, 0x00, 0xF2, 0x00, + 0xF2, 0x00, 0x02, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x22, 0x20, + 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, + 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x0F, 0x20, 0x00, 0xFF, 0xF2, 0x20, 0x00, 0x02, 0x22, 0x00, + 0x00, 0x00, 0x0F, 0x20, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x2F, 0xFF, 0x22, 0x00, 0xF2, 0x2F, 0x20, + 0x00, 0x0F, 0xFF, 0x20, 0x00, 0x00, 0x2F, 0x20, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x00, 0x22, 0x00, + 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0xFF, 0xFF, 0xFF, 0xF2, 0x0F, 0x22, 0x2F, 0x22, + 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0x00, 0x20, 0x00, 0xFF, 0xFF, 0x20, 0x00, 0x02, 0x22, 0x20, + 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x2F, 0xF2, 0x20, 0x00, 0xF2, 0x22, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, + 0x02, 0x2F, 0x22, 0x22, 0x00, 0xF2, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0x20, 0x00, 0x02, 0x22, 0x20, + 0x0F, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x0F, 0x22, 0x22, 0x20, 0x0F, 0x2F, 0xFF, 0xF2, + 0x0F, 0x20, 0x22, 0x22, 0xF2, 0x2F, 0x20, 0x00, 0xF2, 0x00, 0xFF, 0xF2, 0x02, 0x00, 0x02, 0x22, + 0x00, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0xF2, 0x22, 0x22, 0x00, 0xFF, 0xFF, 0x20, + 0x0F, 0x22, 0x22, 0xF2, 0x00, 0x20, 0x00, 0xF2, 0x0F, 0xFF, 0xFF, 0x22, 0x00, 0x22, 0x22, 0x20, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF2, 0x00, 0x02, 0x22, 0x2F, 0x20, 0x00, 0x00, 0x0F, 0x20, + 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0x00, 0xFF, 0x22, 0x00, 0x00, 0x02, 0x20, 0x00, + 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x2F, 0xF2, 0x20, 0x00, 0xF2, 0x22, 0x00, 0x0F, 0x22, 0x00, 0x00, + 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x00, 0xFF, 0xF2, 0x00, 0x00, 0x02, 0x22, 0x00, + 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0xFF, 0x20, 0x00, 0xFF, 0x22, 0x20, 0x0F, 0x22, 0x20, 0x00, + 0xF2, 0x20, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x22, 0x20, + 0x00, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0xF2, 0x00, 0x0F, 0x22, 0x2F, 0xF2, 0x0F, 0x20, 0x0F, 0x22, + 0xF2, 0xFF, 0xFF, 0x20, 0x02, 0xF2, 0x2F, 0xF2, 0x00, 0x0F, 0xF2, 0x22, 0x00, 0x00, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xF2, 0x0F, 0xFF, 0xF2, 0xF2, 0x00, 0x22, 0x22, 0xF2, 0x00, 0x00, 0x00, + 0xF2, 0xF2, 0x00, 0x00, 0xF2, 0xF2, 0x00, 0x00, 0x0F, 0x2F, 0xFF, 0xF2, 0x00, 0x20, 0x22, 0x22, + 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0xFF, 0xFF, 0x20, 0x0F, 0x22, 0xFF, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, + 0xF2, 0xFF, 0x22, 0xF2, 0xF2, 0xF2, 0xFF, 0xF2, 0x0F, 0x22, 0xFF, 0x22, 0x00, 0x20, 0x02, 0x20, + 0x0F, 0x20, 0x00, 0x00, 0xFF, 0x2F, 0xFF, 0x20, 0x0F, 0xF2, 0x22, 0xF2, 0x0F, 0x22, 0x00, 0xF2, + 0x0F, 0x20, 0xFF, 0xF2, 0xFF, 0x2F, 0x22, 0xF2, 0x0F, 0x20, 0xFF, 0x22, 0x00, 0x20, 0x02, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0xFF, 0x2F, 0x2F, 0xF2, 0xF2, 0x2F, 0x20, 0xF2, + 0xF2, 0x0F, 0x20, 0xF2, 0xF2, 0x0F, 0x20, 0xF2, 0x0F, 0xF2, 0x2F, 0x22, 0x00, 0x22, 0x00, 0x20, + 0x00, 0x00, 0x0F, 0x20, 0xF2, 0x0F, 0xFF, 0xF2, 0xF2, 0x00, 0x2F, 0x22, 0xF2, 0x00, 0x0F, 0x20, + 0xF2, 0x0F, 0xFF, 0xF2, 0xF2, 0xF2, 0x2F, 0x22, 0x0F, 0x2F, 0xFF, 0x20, 0x00, 0x20, 0x22, 0x20, + 0xFF, 0xF2, 0x00, 0x00, 0x02, 0xF2, 0x0F, 0x20, 0x0F, 0x22, 0x0F, 0xF2, 0xF2, 0x20, 0x0F, 0x22, + 0xF2, 0x00, 0x0F, 0x20, 0xF2, 0x00, 0xF2, 0x20, 0x0F, 0xFF, 0x22, 0x00, 0x00, 0x22, 0x20, 0x00, + 0x00, 0xFF, 0x20, 0x00, 0x00, 0x02, 0xF2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0F, 0x2F, 0x20, 0xF2, + 0x0F, 0x20, 0xF2, 0xF2, 0xF2, 0x20, 0xF2, 0xF2, 0x02, 0xFF, 0x22, 0x02, 0x00, 0x02, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x20, 0x00, 0x0F, 0x22, 0xF2, 0x00, + 0xF2, 0x20, 0x0F, 0x20, 0x02, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0xF2, 0xFF, 0xFF, 0xF2, 0xF2, 0x02, 0x2F, 0x22, 0xF2, 0xFF, 0xFF, 0xF2, 0xF2, 0x02, 0x2F, 0x22, + 0xF2, 0x0F, 0xFF, 0x20, 0xF2, 0xF2, 0x2F, 0xF2, 0x0F, 0x2F, 0xF2, 0xF2, 0x00, 0x20, 0x22, 0x02, + 0x00, 0x0F, 0x20, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x2F, 0x22, 0x20, 0xFF, 0xFF, 0xFF, 0x20, + 0x02, 0x2F, 0x22, 0x20, 0x0F, 0xFF, 0xF2, 0x00, 0x0F, 0xFF, 0x2F, 0x20, 0x00, 0x22, 0x20, 0x20, + 0x0F, 0xFF, 0x20, 0x00, 0x00, 0x2F, 0x20, 0x00, 0x00, 0x0F, 0x2F, 0x20, 0x0F, 0xFF, 0xFF, 0xF2, + 0xF2, 0x2F, 0x2F, 0x22, 0xF2, 0xF2, 0x2F, 0x20, 0xFF, 0xF2, 0xF2, 0x20, 0x02, 0x22, 0x02, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0x2F, 0x20, 0x02, 0xF2, 0x20, 0xF2, 0x0F, 0xF2, 0x00, 0x02, + 0xF2, 0xF2, 0x00, 0xF2, 0x0F, 0xF2, 0x00, 0xF2, 0x00, 0xFF, 0xFF, 0x22, 0x00, 0x02, 0x22, 0x20, + 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0xFF, 0xFF, 0x20, 0xFF, 0xF2, 0xFF, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, + 0xF2, 0xFF, 0xF2, 0xF2, 0xF2, 0xFF, 0x22, 0xF2, 0x0F, 0x2F, 0x2F, 0x22, 0x00, 0x20, 0x20, 0x20, + 0x00, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0xF2, 0x00, 0x02, 0xF2, 0x22, 0x00, 0xFF, 0xFF, 0xF2, 0x00, + 0x0F, 0x22, 0x22, 0xF2, 0x0F, 0x20, 0x00, 0xF2, 0x00, 0xFF, 0xFF, 0x22, 0x00, 0x02, 0x22, 0x20, + 0x0F, 0x20, 0xF2, 0x00, 0x0F, 0x2F, 0xFF, 0x20, 0xFF, 0xF2, 0xF2, 0xF2, 0x02, 0xF2, 0xF2, 0xF2, + 0x00, 0xF2, 0x02, 0xF2, 0x00, 0xF2, 0xFF, 0x22, 0x00, 0xF2, 0x02, 0x20, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0xF2, 0x00, 0xF2, 0xFF, 0xFF, 0x20, 0xFF, 0x22, 0xF2, 0xF2, 0xF2, 0x20, 0xF2, 0xF2, + 0xF2, 0xFF, 0xFF, 0x22, 0x02, 0x02, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xFF, 0xF2, 0x00, 0x00, 0xF2, 0x22, 0x00, 0x00, 0xF2, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0xF2, 0x22, 0xF2, 0xF2, 0x0F, 0xFF, 0x22, 0x02, 0x00, 0x22, 0x20, 0x00, + 0x00, 0xFF, 0xF2, 0x00, 0x00, 0x02, 0x2F, 0x20, 0xF2, 0x00, 0x00, 0x20, 0xF2, 0xFF, 0xFF, 0x20, + 0x0F, 0x22, 0x22, 0xF2, 0x00, 0x20, 0x00, 0xF2, 0x00, 0xFF, 0xFF, 0x22, 0x00, 0x02, 0x22, 0x20, + 0x0F, 0x20, 0x00, 0xF2, 0x0F, 0x20, 0x00, 0xF2, 0x0F, 0x20, 0x00, 0xF2, 0x0F, 0x2F, 0x20, 0xF2, + 0x00, 0xF2, 0x20, 0xF2, 0x00, 0x02, 0x0F, 0x22, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x00, 0x22, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x2F, 0x22, 0x20, 0x00, 0xFF, 0xFF, 0x20, 0x0F, 0x22, 0x22, 0xF2, + 0xF2, 0x2F, 0x20, 0xF2, 0x02, 0xF2, 0xF2, 0xF2, 0x00, 0xFF, 0xFF, 0x22, 0x00, 0x02, 0x22, 0x20, + 0x0F, 0x20, 0x00, 0x00, 0xFF, 0x2F, 0xFF, 0x20, 0x0F, 0xF2, 0x22, 0xF2, 0x0F, 0x22, 0x00, 0xF2, + 0x0F, 0x20, 0x0F, 0x22, 0xFF, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0x00, 0xF2, 0x00, 0x20, 0x00, 0x02, + 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x2F, 0xF2, 0x20, 0x00, 0xF2, 0x22, 0x00, 0x0F, 0xFF, 0xFF, 0x20, + 0xF2, 0x22, 0x22, 0xF2, 0x02, 0x00, 0x00, 0xF2, 0x00, 0xFF, 0xFF, 0x22, 0x00, 0x02, 0x22, 0x20, + 0x0F, 0x20, 0x00, 0x00, 0xFF, 0x2F, 0xFF, 0x20, 0x0F, 0xF2, 0x22, 0xF2, 0x0F, 0x22, 0x00, 0xF2, + 0x0F, 0x20, 0x00, 0xF2, 0xFF, 0x20, 0x00, 0xF2, 0x0F, 0x20, 0x0F, 0x22, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x0F, 0x20, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0xF2, 0x22, 0x20, 0x00, 0x0F, 0xFF, 0xF2, + 0x0F, 0xF2, 0xF2, 0x22, 0x0F, 0x22, 0x02, 0x00, 0x00, 0xFF, 0xFF, 0xF2, 0x00, 0x02, 0x22, 0x22, + 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x0F, 0x22, 0x00, 0x00, 0x0F, 0xFF, 0x20, 0x00, + 0x0F, 0x2F, 0x20, 0xF2, 0xF2, 0x2F, 0x20, 0xF2, 0xF2, 0x00, 0xFF, 0x22, 0x02, 0x00, 0x02, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x2F, 0x22, 0x20, + 0x00, 0xFF, 0xFF, 0x20, 0x0F, 0x2F, 0xF2, 0xF2, 0x0F, 0xFF, 0x2F, 0xF2, 0x00, 0x22, 0x20, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x0F, 0x20, + 0x0F, 0x20, 0x00, 0xF2, 0x0F, 0x20, 0x00, 0xF2, 0x00, 0xF2, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF2, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0xFF, 0xFF, 0x20, + 0x00, 0x02, 0x2F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x00, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF2, 0x00, 0x00, 0x02, 0x22, 0x00, 0x0F, 0xFF, 0xFF, 0x20, + 0x00, 0x22, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, 0x0F, 0xF2, 0xFF, 0x20, 0x00, 0x22, 0x02, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x0F, 0xFF, 0x2F, 0x20, 0x00, 0xF2, 0x2F, 0x20, + 0x00, 0xFF, 0xF2, 0x20, 0x0F, 0xF2, 0x2F, 0x20, 0x0F, 0xF2, 0xFF, 0x20, 0x00, 0x22, 0x02, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0xF2, 0x00, 0x0F, 0xFF, 0xFF, 0x20, + 0x00, 0xF2, 0x2F, 0x20, 0x00, 0xF2, 0xF2, 0x20, 0x00, 0xF2, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x2F, 0x20, 0x00, 0x0F, 0xFF, 0xF2, 0x00, + 0x0F, 0x2F, 0x2F, 0x20, 0x00, 0x2F, 0xF2, 0x20, 0x00, 0xF2, 0x22, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0xFF, 0x20, + 0x00, 0x0F, 0x22, 0x20, 0x0F, 0xFF, 0xFF, 0x20, 0x0F, 0xFF, 0x22, 0x20, 0x00, 0x22, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF2, 0x00, + 0x00, 0x22, 0x2F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x00, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFF, 0xF2, 0x00, 0x00, 0xF2, 0xF2, 0x00, 0x00, 0xFF, 0xF2, 0x00, 0x00, 0x02, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x0F, 0xFF, 0xF2, 0x00, 0x0F, 0x22, 0x22, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x0F, 0xFF, 0xF2, 0x00, + 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x22, 0x2F, 0x20, 0x00, 0xF2, 0x0F, 0x20, 0x00, 0xFF, 0xF2, 0x20, + 0x00, 0xF2, 0x22, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x0F, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0xFF, 0xFF, 0x22, 0x00, + 0x02, 0x2F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x0F, 0x20, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0xF2, 0x22, 0x2F, 0x20, 0x02, 0x00, 0x0F, 0x20, + 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0x0F, 0xFF, 0x22, 0x00, 0x00, 0x22, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x2F, 0x22, 0x20, 0x00, 0x0F, 0x20, 0x00, + 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0x22, 0x22, + 0x00, 0x00, 0xF2, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x2F, 0xF2, 0x22, 0x00, 0x0F, 0xF2, 0x00, + 0x00, 0xF2, 0xF2, 0x00, 0x0F, 0x22, 0xF2, 0x00, 0xF2, 0x2F, 0xF2, 0x00, 0x02, 0x00, 0x22, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0xF2, 0x2F, 0x20, 0x00, 0xF2, 0x0F, 0x20, + 0x0F, 0x22, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0xF2, 0x20, 0xF2, 0x20, 0x02, 0x00, 0x02, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x2F, 0x22, 0x20, 0x00, 0x0F, 0x20, 0x00, + 0x0F, 0xFF, 0xFF, 0xF2, 0x00, 0x22, 0xF2, 0x22, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xFF, 0xFF, 0x20, 0x00, 0xF2, 0x2F, 0x20, 0x0F, 0x22, 0x0F, 0x20, 0x00, 0x20, 0x0F, 0x20, + 0x00, 0x00, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x00, 0x22, 0x00, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF2, 0x0F, 0x22, 0xF2, 0x22, 0xF2, 0x20, 0xF2, 0x00, + 0x02, 0x00, 0xF2, 0x00, 0x00, 0x0F, 0x22, 0x00, 0x00, 0xF2, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x22, 0x2F, 0x20, 0x00, 0x00, 0x0F, 0x20, + 0x00, 0x00, 0x0F, 0x20, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x20, 0xF2, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x0F, 0x22, 0xF2, 0x20, 0x0F, 0x20, 0xF2, 0x00, + 0x00, 0x20, 0xF2, 0x00, 0x00, 0x0F, 0x22, 0x00, 0x00, 0xF2, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x0F, 0x20, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0xF2, 0x02, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, + 0x00, 0x20, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0xFF, 0xFF, 0x22, 0x00, 0x02, 0x22, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x22, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, + 0x00, 0xFF, 0x20, 0x00, 0x0F, 0x22, 0xF2, 0x00, 0xF2, 0x20, 0x0F, 0x20, 0x02, 0x00, 0x00, 0x20, + 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0xF2, 0x22, 0xF2, + 0x00, 0xF2, 0x0F, 0x22, 0x00, 0xF2, 0x00, 0x20, 0x00, 0x0F, 0xFF, 0xF2, 0x00, 0x00, 0x22, 0x22, + 0xF2, 0x00, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0x00, 0x20, 0x0F, 0x20, + 0x00, 0x00, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x00, 0x22, 0x00, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0xF2, 0x22, 0x2F, 0x20, 0x02, 0xF2, 0x0F, 0x20, + 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, 0xFF, 0xF2, 0x20, 0x00, 0x02, 0x22, 0x00, 0x00, + 0x00, 0x0F, 0xF2, 0x00, 0x0F, 0xFF, 0x22, 0x00, 0x00, 0x2F, 0x20, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, + 0x02, 0x2F, 0x22, 0x22, 0x00, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xF2, 0xF2, 0x0F, 0x20, 0xF2, 0xF2, 0x0F, 0x20, 0x02, 0x02, 0x0F, 0x20, + 0x00, 0x00, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x00, 0x22, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x22, 0x20, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x2F, 0x22, 0x22, + 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xFF, 0xF2, 0x00, + 0x00, 0xF2, 0x2F, 0x20, 0x00, 0xF2, 0x00, 0x20, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x2F, 0x22, 0x22, + 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x2F, 0x20, 0x00, 0xF2, 0xF2, 0x20, + 0x00, 0x0F, 0x22, 0x00, 0x00, 0xF2, 0xF2, 0x00, 0xFF, 0x22, 0x0F, 0x20, 0x02, 0x20, 0x00, 0x20, + 0x00, 0x0F, 0x20, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x2F, 0x20, 0x00, 0x00, 0xF2, 0x20, + 0x00, 0xFF, 0x2F, 0x20, 0xFF, 0x2F, 0x20, 0xF2, 0x02, 0x2F, 0x20, 0x02, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x0F, 0x22, 0x00, + 0x00, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0x20, 0xF2, 0x00, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, + 0x0F, 0x20, 0x00, 0xF2, 0xF2, 0x20, 0x00, 0xF2, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF2, 0x00, 0xF2, 0x22, 0x22, 0x00, + 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x22, 0x20, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x22, 0x2F, 0x20, 0x00, 0x00, 0x0F, 0x20, + 0x00, 0x00, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x00, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x0F, 0x2F, 0x20, 0x00, 0xF2, 0x20, 0xF2, 0x00, + 0x02, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0F, 0x20, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x2F, 0x22, 0x22, 0x0F, 0x2F, 0x2F, 0x20, + 0x0F, 0x2F, 0x20, 0xF2, 0xF2, 0x2F, 0x20, 0xF2, 0x02, 0xFF, 0x20, 0x02, 0x00, 0x02, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0x2F, 0x22, 0x0F, 0x20, 0xF2, 0x20, + 0x00, 0xFF, 0x22, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xFF, 0x20, 0x00, 0x00, 0x02, 0xFF, 0x20, 0x00, 0xF2, 0x02, 0x20, 0x00, 0x0F, 0xFF, 0x20, + 0x0F, 0x20, 0x22, 0x20, 0x00, 0xFF, 0x20, 0x00, 0x00, 0x02, 0xFF, 0xF2, 0x00, 0x00, 0x02, 0x22, + 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0x00, 0x00, 0xF2, 0x0F, 0x20, + 0x0F, 0x22, 0x0F, 0x20, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0x22, 0xF2, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0xF2, 0xF2, 0x20, 0x00, 0x0F, 0xF2, 0x00, + 0x00, 0x0F, 0xF2, 0x00, 0x00, 0xF2, 0x2F, 0x20, 0xFF, 0x22, 0x00, 0x20, 0x02, 0x20, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0xF2, 0x22, 0x20, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0xF2, 0x22, 0x22, + 0x00, 0xF2, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF2, 0x00, 0x00, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0xF2, 0x22, 0xF2, 0x00, 0xF2, 0x0F, 0x22, + 0x00, 0x0F, 0x20, 0x20, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF2, 0x00, 0x00, 0x22, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, + 0x00, 0x00, 0xF2, 0x00, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0x22, 0x22, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x2F, 0x20, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x2F, 0x20, + 0x00, 0x00, 0x0F, 0x20, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x22, 0x20, 0xFF, 0xFF, 0xFF, 0xF2, 0x02, 0x22, 0x22, 0xF2, + 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x0F, 0x22, 0x00, 0xFF, 0xF2, 0x20, 0x00, 0x02, 0x22, 0x00, + 0x0F, 0x22, 0x2F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, 0x0F, 0x20, + 0x00, 0x20, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x0F, 0x20, 0x00, 0x0F, 0x2F, 0x20, 0x00, 0x0F, 0x2F, 0x20, 0x00, 0x0F, 0x2F, 0x20, 0x00, + 0x0F, 0x2F, 0x20, 0xF2, 0x0F, 0x2F, 0x2F, 0x22, 0xF2, 0x2F, 0xF2, 0x20, 0x02, 0x00, 0x22, 0x00, + 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0xF2, + 0x0F, 0x20, 0x0F, 0x22, 0x0F, 0x20, 0xF2, 0x20, 0x0F, 0xFF, 0x22, 0x00, 0x00, 0x22, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0xF2, 0x22, 0x2F, 0x20, 0xF2, 0x00, 0x0F, 0x20, + 0xF2, 0x00, 0x0F, 0x20, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x22, 0x22, 0x20, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x20, 0xF2, 0x22, 0x2F, 0x20, 0xF2, 0x00, 0x0F, 0x20, 0x02, 0x00, 0x0F, 0x20, + 0x00, 0x00, 0xF2, 0x20, 0x00, 0x00, 0xF2, 0x00, 0x00, 0xFF, 0x22, 0x00, 0x00, 0x02, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x20, 0x02, 0x22, 0x2F, 0x20, 0xFF, 0xFF, 0xFF, 0x20, + 0x02, 0x22, 0x2F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0x0F, 0xFF, 0x22, 0x00, 0x00, 0x22, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF2, 0x00, 0x00, 0x02, 0x22, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, + 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, 0xFF, 0xFF, 0x22, 0x00, 0x02, 0x22, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x2F, 0x2F, 0x20, + 0x00, 0x0F, 0xF2, 0x20, 0x00, 0x0F, 0x22, 0x00, 0x00, 0xF2, 0x20, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0xF2, 0x20, + 0x0F, 0xFF, 0x22, 0x00, 0x00, 0x2F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x0F, 0xFF, 0xFF, 0x20, + 0x0F, 0x22, 0x2F, 0x20, 0x00, 0x20, 0x0F, 0x20, 0x00, 0xFF, 0xF2, 0x20, 0x00, 0x02, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x2F, 0x22, 0x20, + 0x00, 0x0F, 0x20, 0x00, 0x00, 0x0F, 0x20, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x22, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x0F, 0xFF, 0xFF, 0x20, + 0x00, 0x2F, 0xF2, 0x20, 0x00, 0xF2, 0xF2, 0x00, 0x0F, 0x22, 0xF2, 0x00, 0x00, 0x20, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x20, + 0x00, 0xF2, 0x2F, 0x20, 0x00, 0xF2, 0xF2, 0x20, 0x00, 0xF2, 0x02, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF2, 0x00, + 0x00, 0x02, 0xF2, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x0F, 0xFF, 0xFF, 0x20, 0x00, 0x22, 0x22, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x20, 0x00, 0x02, 0x2F, 0x20, + 0x00, 0xFF, 0xFF, 0x20, 0x00, 0x02, 0x2F, 0x20, 0x00, 0xFF, 0xFF, 0x20, 0x00, 0x02, 0x22, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x2F, 0x2F, 0x20, + 0x0F, 0x2F, 0x2F, 0x20, 0x00, 0x20, 0x2F, 0x20, 0x00, 0xFF, 0xF2, 0x20, 0x00, 0x02, 0x22, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF2, 0x00, + 0x00, 0x0F, 0xF2, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xF2, 0x0F, 0xF2, + 0x0F, 0xF2, 0x0F, 0xF2, 0x00, 0x22, 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF2, 0x00, 0x00, 0xF2, 0x0F, 0x20, 0x00, 0x0F, 0x20, 0x20, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xF2, 0x00, 0x00, 0xF2, 0xF2, 0x00, 0x00, 0xFF, 0xF2, 0x00, 0x00, 0x02, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + const uint16_t ModPlayer::_periodTable[] = { 856, 808, 762, 720, 678, 640, 604, 570, 538, 508, 480, 453, // C-1 to B-1 Finetune 0 428, 404, 381, 360, 339, 320, 302, 285, 269, 254, 240, 226, // C-2 to B-2 Finetune 0 diff --git a/systemstub_sdl.cpp b/systemstub_sdl.cpp index 6e8511e..34e5ccd 100644 --- a/systemstub_sdl.cpp +++ b/systemstub_sdl.cpp @@ -41,8 +41,6 @@ struct SystemStub_SDL : SystemStub { uint32_t _rgbPalette[256]; int _screenW, _screenH; SDL_Joystick *_joystick; - SDL_Rect _blitRects[200]; - int _numBlitRects; bool _fadeOnUpdateScreen; void (*_audioCbProc)(void *, int16_t *, int); void *_audioCbData; @@ -75,8 +73,7 @@ struct SystemStub_SDL : SystemStub { void prepareGraphics(); void cleanupGraphics(); void changeGraphics(bool fullscreen, int scaleFactor); - void forceGraphicsRedraw(); - void drawRect(SDL_Rect *rect, uint8_t color); + void drawRect(int x, int y, int w, int h, uint8_t color); }; SystemStub *SystemStub_SDL_create() { @@ -162,52 +159,36 @@ void SystemStub_SDL::setOverscanColor(int i) { } void SystemStub_SDL::copyRect(int x, int y, int w, int h, const uint8_t *buf, int pitch) { - if (_numBlitRects >= (int)ARRAYSIZE(_blitRects)) { - warning("SystemStub_SDL::copyRect() Too many blit rects, you may experience graphical glitches"); - } else { - // extend the dirty region by 1 pixel for scalers accessing 'outer' pixels - --x; - --y; - w += 2; - h += 2; + if (x < 0) { + x = 0; + } else if (x >= _screenW) { + return; + } + if (y < 0) { + y = 0; + } else if (y >= _screenH) { + return; + } + if (x + w > _screenW) { + w = _screenW - x; + } + if (y + h > _screenH) { + h = _screenH - y; + } - if (x < 0) { - x = 0; - } else if (x >= _screenW) { - return; - } - if (y < 0) { - y = 0; - } else if (y >= _screenH) { - return; - } - if (x + w > _screenW) { - w = _screenW - x; - } - if (y + h > _screenH) { - h = _screenH - y; - } - SDL_Rect *br = &_blitRects[_numBlitRects]; + uint32_t *p = _screenBuffer + y * _screenW + x; + buf += y * pitch + x; - br->x = x; - br->y = y; - br->w = w; - br->h = h; - ++_numBlitRects; - - uint32_t *p = _screenBuffer + br->y * _screenW + br->x; - buf += y * pitch + x; - - while (h--) { - for (int i = 0; i < w; ++i) { - p[i] = _rgbPalette[buf[i]]; - } - p += _screenW; - buf += pitch; - } - if (_pi.dbgMask & PlayerInput::DF_DBLOCKS) { - drawRect(br, 0xE7); + for (int j = 0; j < h; ++j) { + for (int i = 0; i < w; ++i) { + p[i] = _rgbPalette[buf[i]]; } + p += _screenW; + buf += pitch; + } + + if (_pi.dbgMask & PlayerInput::DF_DBLOCKS) { + drawRect(x, y, w, h, 0xE7); } } @@ -255,7 +236,6 @@ void SystemStub_SDL::updateScreen(int shakeOffset) { SDL_RenderCopy(_renderer, _texture, 0, 0); } SDL_RenderPresent(_renderer); - _numBlitRects = 0; } void SystemStub_SDL::processEvents() { @@ -520,7 +500,7 @@ void SystemStub_SDL::processEvent(const SDL_Event &ev, bool &paused) { break; case SDL_KEYDOWN: if (ev.key.keysym.mod & (KMOD_ALT | KMOD_CTRL)) { - break; + break; } switch (ev.key.keysym.sym) { case SDLK_LEFT: @@ -576,7 +556,7 @@ static void mixAudioS16(void *param, uint8_t *buf, int len) { } void SystemStub_SDL::startAudio(AudioCallback callback, void *param) { - SDL_AudioSpec desired, obtained; + SDL_AudioSpec desired; memset(&desired, 0, sizeof(desired)); desired.freq = kAudioHz; desired.format = AUDIO_S16SYS; @@ -584,7 +564,7 @@ void SystemStub_SDL::startAudio(AudioCallback callback, void *param) { desired.samples = 2048; desired.callback = mixAudioS16; desired.userdata = this; - if (SDL_OpenAudio(&desired, &obtained) == 0) { + if (SDL_OpenAudio(&desired, 0) == 0) { _audioCbProc = callback; _audioCbData = param; SDL_PauseAudio(0); @@ -642,7 +622,6 @@ void SystemStub_SDL::prepareGraphics() { SDL_RenderSetLogicalSize(_renderer, windowW, windowH); _texture = SDL_CreateTexture(_renderer, kPixelFormat, SDL_TEXTUREACCESS_STREAMING, _texW, _texH); _fmt = SDL_AllocFormat(kPixelFormat); - forceGraphicsRedraw(); } void SystemStub_SDL::cleanupGraphics() { @@ -650,14 +629,14 @@ void SystemStub_SDL::cleanupGraphics() { free(_screenBuffer); _screenBuffer = 0; } - if (_window) { - SDL_DestroyWindow(_window); - _window = 0; - } if (_renderer) { SDL_DestroyRenderer(_renderer); _renderer = 0; } + if (_window) { + SDL_DestroyWindow(_window); + _window = 0; + } if (_fmt) { SDL_FreeFormat(_fmt); _fmt = 0; @@ -665,39 +644,38 @@ void SystemStub_SDL::cleanupGraphics() { } void SystemStub_SDL::changeGraphics(bool fullscreen, int scaleFactor) { - if (_window) { - SDL_DestroyWindow(_window); - _window = 0; + int factor = scaleFactor; + if (factor < _scaler->factorMin) { + factor = _scaler->factorMin; + } else if (factor > _scaler->factorMax) { + factor = _scaler->factorMax; } + if (fullscreen == _fullscreen && factor == _scaleFactor) { + // no change + return; + } + _fullscreen = fullscreen; + _scaleFactor = factor; if (_renderer) { SDL_DestroyRenderer(_renderer); _renderer = 0; } + if (_window) { + SDL_DestroyWindow(_window); + _window = 0; + } if (_fmt) { SDL_FreeFormat(_fmt); _fmt = 0; } - _fullscreen = fullscreen; - if (scaleFactor >= _scaler->factorMin && scaleFactor <= _scaler->factorMax) { - _scaleFactor = scaleFactor; - } prepareGraphics(); - forceGraphicsRedraw(); } -void SystemStub_SDL::forceGraphicsRedraw() { - _numBlitRects = 1; - _blitRects[0].x = 0; - _blitRects[0].y = 0; - _blitRects[0].w = _screenW; - _blitRects[0].h = _screenH; -} - -void SystemStub_SDL::drawRect(SDL_Rect *rect, uint8_t color) { - int x1 = rect->x; - int y1 = rect->y; - int x2 = rect->x + rect->w - 1; - int y2 = rect->y + rect->h - 1; +void SystemStub_SDL::drawRect(int x, int y, int w, int h, uint8_t color) { + const int x1 = x; + const int y1 = y; + const int x2 = x + w - 1; + const int y2 = y + h - 1; assert(x1 >= 0 && x2 < _screenW && y1 >= 0 && y2 < _screenH); for (int i = x1; i <= x2; ++i) { *(_screenBuffer + y1 * _screenW + i) = *(_screenBuffer + y2 * _screenW + i) = _rgbPalette[color]; diff --git a/video.cpp b/video.cpp index b5b0da6..5667a56 100644 --- a/video.cpp +++ b/video.cpp @@ -797,11 +797,12 @@ void Video::drawSpriteSub6(const uint8_t *src, uint8_t *dst, int pitch, int h, i } } -void Video::PC_drawChar(uint8_t c, int16_t y, int16_t x) { +void Video::PC_drawChar(uint8_t c, int16_t y, int16_t x, bool forceDefaultFont) { debug(DBG_VIDEO, "Video::PC_drawChar(0x%X, %d, %d)", c, y, x); + const uint8_t *fnt = (_res->_lang == LANG_JP && !forceDefaultFont) ? _font8Jp : _res->_fnt; y *= 8; x *= 8; - const uint8_t *src = _res->_fnt + (c - 32) * 32; + const uint8_t *src = fnt + (c - 32) * 32; uint8_t *dst = _frontLayer + x + 256 * y; for (int h = 0; h < 8; ++h) { for (int i = 0; i < 4; ++i, ++src) { @@ -870,6 +871,7 @@ void Video::PC_drawStringChar(uint8_t *dst, int pitch, const uint8_t *src, uint8 const char *Video::drawString(const char *str, int16_t x, int16_t y, uint8_t col) { debug(DBG_VIDEO, "Video::drawString('%s', %d, %d, 0x%X)", str, x, y, col); + const uint8_t *fnt = (_res->_lang == LANG_JP) ? _font8Jp : _res->_fnt; drawCharFunc dcf = _drawChar; int len = 0; uint8_t *dst = _frontLayer + y * 256 + x; @@ -878,7 +880,7 @@ const char *Video::drawString(const char *str, int16_t x, int16_t y, uint8_t col if (c == 0 || c == 0xB || c == 0xA) { break; } - (this->*dcf)(dst, 256, _res->_fnt, col, c); + (this->*dcf)(dst, 256, fnt, col, c); dst += CHAR_W; ++len; } diff --git a/video.h b/video.h index 81c4a48..5910dd6 100644 --- a/video.h +++ b/video.h @@ -28,6 +28,7 @@ struct Video { static const uint8_t _conradPal2[]; static const uint8_t _textPal[]; static const uint8_t _palSlot0xF[]; + static const uint8_t _font8Jp[]; Resource *_res; SystemStub *_stub; @@ -77,7 +78,7 @@ struct Video { void drawSpriteSub4(const uint8_t *src, uint8_t *dst, int pitch, int h, int w, uint8_t colMask); void drawSpriteSub5(const uint8_t *src, uint8_t *dst, int pitch, int h, int w, uint8_t colMask); void drawSpriteSub6(const uint8_t *src, uint8_t *dst, int pitch, int h, int w, uint8_t colMask); - void PC_drawChar(uint8_t c, int16_t y, int16_t x); + void PC_drawChar(uint8_t c, int16_t y, int16_t x, bool forceDefaultFont = false); void PC_drawStringChar(uint8_t *dst, int pitch, const uint8_t *src, uint8_t color, uint8_t chr); void AMIGA_drawStringChar(uint8_t *dst, int pitch, const uint8_t *src, uint8_t color, uint8_t chr); const char *drawString(const char *str, int16_t x, int16_t y, uint8_t col);