[Scummvm-git-logs] scummvm master -> 91c463184d9a2ed429baae343039f28c9671d523
athrxx
athrxx at scummvm.org
Wed Nov 14 18:47:25 CET 2018
This automated email contains information about 12 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
cc25424dae AUDIO: (FM-TOWNS) - add error codes
506f900f94 KYRA: minor cleanup
f67ca1ba47 AUDIO: (FM-TOWNS) - remove wave memory limit
35126dba8a KYRA: (EOB) - minor cleanup of shape drawing code
e4e5e68f0d KYRA: implement SJIS features required for EOB II FM-Towns
16ead6f58a KYRA: add 16bit mode required for EOB II FM-TOWNS
61bd730bcf KYRA: (EOB) - fix thumbnails for special cases
f49eaa5654 KYRA: (EOB) - add support for FM-Towns version of EOB II
4cce54efee KYRA: (EOB) - fix load menu graphics glitch
b81493718e KYRA: (EOB) - fix 16 bit mouse cursor color key
09f513fb11 KYRA: (EOB) - fix minor graphics glitch in FM-TOWNS version
91c463184d KYRA: (EOB II FM-TOWNS) - fix mouse cursor hot spot
Commit: cc25424dae4b0accad45cc40280f99cca384a15d
https://github.com/scummvm/scummvm/commit/cc25424dae4b0accad45cc40280f99cca384a15d
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:19+01:00
Commit Message:
AUDIO: (FM-TOWNS) - add error codes
Changed paths:
audio/softsynth/fmtowns_pc98/towns_audio.cpp
audio/softsynth/fmtowns_pc98/towns_audio.h
diff --git a/audio/softsynth/fmtowns_pc98/towns_audio.cpp b/audio/softsynth/fmtowns_pc98/towns_audio.cpp
index 42824d8..2506e02 100644
--- a/audio/softsynth/fmtowns_pc98/towns_audio.cpp
+++ b/audio/softsynth/fmtowns_pc98/towns_audio.cpp
@@ -1940,14 +1940,14 @@ bool TownsAudioInterface::init() {
return _intf->init();
}
-int TownsAudioInterface::callback(int command, ...) {
+TownsAudioInterface::ErrorCode TownsAudioInterface::callback(int command, ...) {
va_list args;
va_start(args, command);
int res = _intf->processCommand(command, args);
va_end(args);
- return res;
+ return (TownsAudioInterface::ErrorCode)res;
}
void TownsAudioInterface::setMusicVolume(int volume) {
diff --git a/audio/softsynth/fmtowns_pc98/towns_audio.h b/audio/softsynth/fmtowns_pc98/towns_audio.h
index 0003f02..ba13bd1 100644
--- a/audio/softsynth/fmtowns_pc98/towns_audio.h
+++ b/audio/softsynth/fmtowns_pc98/towns_audio.h
@@ -40,9 +40,23 @@ public:
TownsAudioInterface(Audio::Mixer *mixer, TownsAudioInterfacePluginDriver *driver, bool externalMutexHandling = false);
~TownsAudioInterface();
+ enum ErrorCode {
+ kSuccess = 0,
+ kInvalidChannel,
+ kUnavailable,
+ kArgumentOutOfRange,
+ kNotImplemented,
+ kOutOfWaveMemory,
+ kInvalidWaveTable,
+ kChannelNotReserved,
+ kNoteOutOfRangeForInstrument,
+ kNoMatchingWaveTable,
+ kDuplicateWaveTable
+ };
+
bool init();
- int callback(int command, ...);
+ ErrorCode callback(int command, ...);
void setMusicVolume(int volume);
void setSoundEffectVolume(int volume);
Commit: 506f900f9446cc7df91c0384e70e4dc7a98cc43a
https://github.com/scummvm/scummvm/commit/506f900f9446cc7df91c0384e70e4dc7a98cc43a
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:19+01:00
Commit Message:
KYRA: minor cleanup
(rename some variables in Screen::drawShape for better readability)
Changed paths:
engines/kyra/screen.cpp
engines/kyra/screen.h
diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp
index 584b0e2..c994f47 100644
--- a/engines/kyra/screen.cpp
+++ b/engines/kyra/screen.cpp
@@ -1388,28 +1388,28 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
1, 3, 2, 5, 4, 3, 2, 1
};
- _dsTable = 0;
- _dsTableLoopCount = 0;
- _dsTable2 = 0;
- _dsTable3 = 0;
- _dsTable4 = 0;
- _dsTable5 = 0;
+ _dsShapeFadingTable = 0;
+ _dsShapeFadingLevel = 0;
+ _dsColorTable = 0;
+ _dsTransparencyTable1 = 0;
+ _dsTransparencyTable2 = 0;
+ _dsBackgroundFadingTable = 0;
_dsDrawLayer = 0;
- if (flags & 0x8000) {
- _dsTable2 = va_arg(args, uint8 *);
+ if (flags & DSF_CUSTOM_PALETTE) {
+ _dsColorTable = va_arg(args, uint8 *);
}
- if (flags & 0x100) {
- _dsTable = va_arg(args, uint8 *);
- _dsTableLoopCount = va_arg(args, int);
- if (!_dsTableLoopCount)
- flags &= ~0x100;
+ if (flags & DSF_SHAPE_FADING) {
+ _dsShapeFadingTable = va_arg(args, uint8 *);
+ _dsShapeFadingLevel = va_arg(args, int);
+ if (!_dsShapeFadingLevel)
+ flags &= ~DSF_SHAPE_FADING;
}
- if (flags & 0x1000) {
- _dsTable3 = va_arg(args, uint8 *);
- _dsTable4 = va_arg(args, uint8 *);
+ if (flags & DSF_TRANSPARENCY) {
+ _dsTransparencyTable1 = va_arg(args, uint8 *);
+ _dsTransparencyTable2 = va_arg(args, uint8 *);
}
if (flags & 0x200) {
@@ -1433,8 +1433,8 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
_dsScaleH = 0x100;
}
- if ((flags & 0x2000) && _vm->game() != GI_KYRA1)
- _dsTable5 = va_arg(args, uint8 *);
+ if ((flags & DSF_BACKGROUND_FADING) && _vm->game() != GI_KYRA1)
+ _dsBackgroundFadingTable = va_arg(args, uint8 *);
va_end(args);
@@ -1571,7 +1571,7 @@ void Screen::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int
int colorTableColors = ((_vm->game() != GI_KYRA1) && (shapeFlags & 4)) ? *src++ : 16;
if (!(flags & 0x8000) && (shapeFlags & 1))
- _dsTable2 = src;
+ _dsColorTable = src;
if (flags & 0x400)
src += colorTableColors;
@@ -1924,8 +1924,8 @@ void Screen::drawShapePlotType0(uint8 *dst, uint8 cmd) {
}
void Screen::drawShapePlotType1(uint8 *dst, uint8 cmd) {
- for (int i = 0; i < _dsTableLoopCount; ++i)
- cmd = _dsTable[cmd];
+ for (int i = 0; i < _dsShapeFadingLevel; ++i)
+ cmd = _dsShapeFadingTable[cmd];
if (cmd)
*dst = cmd;
@@ -1933,21 +1933,21 @@ void Screen::drawShapePlotType1(uint8 *dst, uint8 cmd) {
void Screen::drawShapePlotType3_7(uint8 *dst, uint8 cmd) {
cmd = *dst;
- for (int i = 0; i < _dsTableLoopCount; ++i)
- cmd = _dsTable[cmd];
+ for (int i = 0; i < _dsShapeFadingLevel; ++i)
+ cmd = _dsShapeFadingTable[cmd];
if (cmd)
*dst = cmd;
}
void Screen::drawShapePlotType4(uint8 *dst, uint8 cmd) {
- *dst = _dsTable2[cmd];
+ *dst = _dsColorTable[cmd];
}
void Screen::drawShapePlotType5(uint8 *dst, uint8 cmd) {
- cmd = _dsTable2[cmd];
- for (int i = 0; i < _dsTableLoopCount; ++i)
- cmd = _dsTable[cmd];
+ cmd = _dsColorTable[cmd];
+ for (int i = 0; i < _dsShapeFadingLevel; ++i)
+ cmd = _dsShapeFadingTable[cmd];
if (cmd)
*dst = cmd;
@@ -1959,7 +1959,7 @@ void Screen::drawShapePlotType6(uint8 *dst, uint8 cmd) {
cmd = dst[_drawShapeVar3];
t &= 0xFF;
} else {
- cmd = _dsTable2[cmd];
+ cmd = _dsColorTable[cmd];
}
_drawShapeVar4 = t;
@@ -1981,8 +1981,8 @@ void Screen::drawShapePlotType9(uint8 *dst, uint8 cmd) {
if (_dsDrawLayer < t) {
cmd = _shapePages[1][relOffs];
} else {
- for (int i = 0; i < _dsTableLoopCount; ++i)
- cmd = _dsTable[cmd];
+ for (int i = 0; i < _dsShapeFadingLevel; ++i)
+ cmd = _dsShapeFadingTable[cmd];
}
if (cmd)
@@ -1997,8 +1997,8 @@ void Screen::drawShapePlotType11_15(uint8 *dst, uint8 cmd) {
cmd = _shapePages[1][relOffs];
} else {
cmd = *dst;
- for (int i = 0; i < _dsTableLoopCount; ++i)
- cmd = _dsTable[cmd];
+ for (int i = 0; i < _dsShapeFadingLevel; ++i)
+ cmd = _dsShapeFadingTable[cmd];
}
if (cmd)
@@ -2011,7 +2011,7 @@ void Screen::drawShapePlotType12(uint8 *dst, uint8 cmd) {
if (_dsDrawLayer < t) {
cmd = _shapePages[1][relOffs];
} else {
- cmd = _dsTable2[cmd];
+ cmd = _dsColorTable[cmd];
}
*dst = cmd;
@@ -2023,9 +2023,9 @@ void Screen::drawShapePlotType13(uint8 *dst, uint8 cmd) {
if (_dsDrawLayer < t) {
cmd = _shapePages[1][relOffs];
} else {
- cmd = _dsTable2[cmd];
- for (int i = 0; i < _dsTableLoopCount; ++i)
- cmd = _dsTable[cmd];
+ cmd = _dsColorTable[cmd];
+ for (int i = 0; i < _dsShapeFadingLevel; ++i)
+ cmd = _dsShapeFadingTable[cmd];
}
if (cmd)
@@ -2043,7 +2043,7 @@ void Screen::drawShapePlotType14(uint8 *dst, uint8 cmd) {
cmd = dst[_drawShapeVar3];
t &= 0xFF;
} else {
- cmd = _dsTable2[cmd];
+ cmd = _dsColorTable[cmd];
}
}
@@ -2052,29 +2052,29 @@ void Screen::drawShapePlotType14(uint8 *dst, uint8 cmd) {
}
void Screen::drawShapePlotType16(uint8 *dst, uint8 cmd) {
- uint8 tOffs = _dsTable3[cmd];
+ uint8 tOffs = _dsTransparencyTable1[cmd];
if (!(tOffs & 0x80))
- cmd = _dsTable4[tOffs << 8 | *dst];
+ cmd = _dsTransparencyTable2[tOffs << 8 | *dst];
*dst = cmd;
}
void Screen::drawShapePlotType20(uint8 *dst, uint8 cmd) {
- cmd = _dsTable2[cmd];
- uint8 tOffs = _dsTable3[cmd];
+ cmd = _dsColorTable[cmd];
+ uint8 tOffs = _dsTransparencyTable1[cmd];
if (!(tOffs & 0x80))
- cmd = _dsTable4[tOffs << 8 | *dst];
+ cmd = _dsTransparencyTable2[tOffs << 8 | *dst];
*dst = cmd;
}
void Screen::drawShapePlotType21(uint8 *dst, uint8 cmd) {
- cmd = _dsTable2[cmd];
- uint8 tOffs = _dsTable3[cmd];
+ cmd = _dsColorTable[cmd];
+ uint8 tOffs = _dsTransparencyTable1[cmd];
if (!(tOffs & 0x80))
- cmd = _dsTable4[tOffs << 8 | *dst];
+ cmd = _dsTransparencyTable2[tOffs << 8 | *dst];
- for (int i = 0; i < _dsTableLoopCount; ++i)
- cmd = _dsTable[cmd];
+ for (int i = 0; i < _dsShapeFadingLevel; ++i)
+ cmd = _dsShapeFadingTable[cmd];
if (cmd)
*dst = cmd;
@@ -2082,23 +2082,23 @@ void Screen::drawShapePlotType21(uint8 *dst, uint8 cmd) {
void Screen::drawShapePlotType33(uint8 *dst, uint8 cmd) {
if (cmd == 255) {
- *dst = _dsTable5[*dst];
+ *dst = _dsBackgroundFadingTable[*dst];
} else {
- for (int i = 0; i < _dsTableLoopCount; ++i)
- cmd = _dsTable[cmd];
+ for (int i = 0; i < _dsShapeFadingLevel; ++i)
+ cmd = _dsShapeFadingTable[cmd];
if (cmd)
*dst = cmd;
}
}
void Screen::drawShapePlotType37(uint8 *dst, uint8 cmd) {
- cmd = _dsTable2[cmd];
+ cmd = _dsColorTable[cmd];
if (cmd == 255) {
- cmd = _dsTable5[*dst];
+ cmd = _dsBackgroundFadingTable[*dst];
} else {
- for (int i = 0; i < _dsTableLoopCount; ++i)
- cmd = _dsTable[cmd];
+ for (int i = 0; i < _dsShapeFadingLevel; ++i)
+ cmd = _dsShapeFadingTable[cmd];
}
if (cmd)
@@ -2106,18 +2106,18 @@ void Screen::drawShapePlotType37(uint8 *dst, uint8 cmd) {
}
void Screen::drawShapePlotType48(uint8 *dst, uint8 cmd) {
- uint8 offs = _dsTable3[cmd];
+ uint8 offs = _dsTransparencyTable1[cmd];
if (!(offs & 0x80))
- cmd = _dsTable4[(offs << 8) | *dst];
+ cmd = _dsTransparencyTable2[(offs << 8) | *dst];
*dst = cmd;
}
void Screen::drawShapePlotType52(uint8 *dst, uint8 cmd) {
- cmd = _dsTable2[cmd];
- uint8 offs = _dsTable3[cmd];
+ cmd = _dsColorTable[cmd];
+ uint8 offs = _dsTransparencyTable1[cmd];
if (!(offs & 0x80))
- cmd = _dsTable4[(offs << 8) | *dst];
+ cmd = _dsTransparencyTable2[(offs << 8) | *dst];
*dst = cmd;
}
diff --git a/engines/kyra/screen.h b/engines/kyra/screen.h
index 31b77b4..b58371c 100644
--- a/engines/kyra/screen.h
+++ b/engines/kyra/screen.h
@@ -382,7 +382,12 @@ public:
DSF_Y_FLIPPED = 0x02,
DSF_SCALE = 0x04,
DSF_WND_COORDS = 0x10,
- DSF_CENTER = 0x20
+ DSF_CENTER = 0x20,
+
+ DSF_SHAPE_FADING = 0x100,
+ DSF_TRANSPARENCY = 0x1000,
+ DSF_BACKGROUND_FADING = 0x2000,
+ DSF_CUSTOM_PALETTE = 0x8000
};
enum FontId {
@@ -668,12 +673,12 @@ protected:
DsLineFunc _dsProcessLine;
DsPlotFunc _dsPlot;
- const uint8 *_dsTable;
- int _dsTableLoopCount;
- const uint8 *_dsTable2;
- const uint8 *_dsTable3;
- const uint8 *_dsTable4;
- const uint8 *_dsTable5;
+ const uint8 *_dsShapeFadingTable;
+ int _dsShapeFadingLevel;
+ const uint8 *_dsColorTable;
+ const uint8 *_dsTransparencyTable1;
+ const uint8 *_dsTransparencyTable2;
+ const uint8 *_dsBackgroundFadingTable;
int _dsDrawLayer;
uint8 *_dsDstPage;
int _dsTmpWidth;
Commit: f67ca1ba4704d450a4a2b3139da46da135122c0e
https://github.com/scummvm/scummvm/commit/f67ca1ba4704d450a4a2b3139da46da135122c0e
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:19+01:00
Commit Message:
AUDIO: (FM-TOWNS) - remove wave memory limit
(This is basically an unnecessary emulation of a hardware limitation. EOB II will try to load approximately 70 KByte of samples for the outro sequence, which would lead to some missing sounds with the 64 Kbyte limit).
Changed paths:
audio/softsynth/fmtowns_pc98/towns_audio.cpp
diff --git a/audio/softsynth/fmtowns_pc98/towns_audio.cpp b/audio/softsynth/fmtowns_pc98/towns_audio.cpp
index 2506e02..7d61631 100644
--- a/audio/softsynth/fmtowns_pc98/towns_audio.cpp
+++ b/audio/softsynth/fmtowns_pc98/towns_audio.cpp
@@ -728,7 +728,11 @@ int TownsAudioInterfaceInternal::intf_loadSamples(va_list &args) {
if (dest >= 65536 || size == 0 || size > 65536)
return 3;
if (size + dest > 65536)
- return 5;
+ // EOB II FM-TOWNS tries to load more than 65536 bytes of wave sounds for the outro sequence.
+ // This means that some sfx would not play. Since we don't really need the memory limit,
+ // I have commented out the error return and added a warning instead.
+ warning("FM-TOWNS AUDIO: exceeding wave memory size by %d bytes", size + dest - 65536);
+ // return 5;
int dwIndex = _numWaveTables - 1;
for (uint32 t = _waveTablesTotalDataSize; dwIndex && (dest < t); dwIndex--)
@@ -796,9 +800,13 @@ int TownsAudioInterfaceInternal::intf_loadWaveTable(va_list &args) {
s->readHeader(data);
_waveTablesTotalDataSize += s->size;
- callback(32, _waveTablesTotalDataSize, s->size, data + 32);
+ int res = callback(32, _waveTablesTotalDataSize, s->size, data + 32);
+ if (res) {
+ _waveTablesTotalDataSize -= s->size;
+ _numWaveTables--;
+ }
- return 0;
+ return res;
}
int TownsAudioInterfaceInternal::intf_unloadWaveTable(va_list &args) {
Commit: 35126dba8a22aea3b0235ffbe5ae9df2ad248f7b
https://github.com/scummvm/scummvm/commit/35126dba8a22aea3b0235ffbe5ae9df2ad248f7b
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:19+01:00
Commit Message:
KYRA: (EOB) - minor cleanup of shape drawing code
Changed paths:
engines/kyra/eobcommon.cpp
engines/kyra/eobcommon.h
engines/kyra/gui_eob.cpp
engines/kyra/items_eob.cpp
engines/kyra/scene_eob.cpp
engines/kyra/screen_eob.cpp
engines/kyra/screen_eob.h
engines/kyra/sequences_darkmoon.cpp
engines/kyra/sprites_eob.cpp
diff --git a/engines/kyra/eobcommon.cpp b/engines/kyra/eobcommon.cpp
index d5327c8..4f5dfcd 100644
--- a/engines/kyra/eobcommon.cpp
+++ b/engines/kyra/eobcommon.cpp
@@ -114,6 +114,8 @@ EoBCoreEngine::EoBCoreEngine(OSystem *system, const GameFlags &flags)
_dscDoorY1 = 0;
_dscDoorXE = 0;
+ _greenFadingTable = _blueFadingTable = _lightBlueFadingTable = _blackFadingTable = _greyFadingTable = 0;
+
_menuDefs = 0;
_exchangeCharacterId = -1;
@@ -297,6 +299,12 @@ EoBCoreEngine::~EoBCoreEngine() {
delete[] _levelDecorationRects;
_dscWallMapping.clear();
+ delete[] _greenFadingTable;
+ delete[] _blueFadingTable;
+ delete[] _lightBlueFadingTable;
+ delete[] _blackFadingTable;
+ delete[] _greyFadingTable;
+
delete[] _spells;
delete[] _spellAnimBuffer;
delete[] _wallsOfForce;
@@ -447,6 +455,12 @@ Common::Error EoBCoreEngine::init() {
_wllVcnOffset = 16;
+ _greenFadingTable = new uint8[256];
+ _blueFadingTable = new uint8[256];
+ _lightBlueFadingTable = new uint8[256];
+ _blackFadingTable = new uint8[256];
+ _greyFadingTable = new uint8[256];
+
_monsters = new EoBMonsterInPlay[30];
memset(_monsters, 0, 30 * sizeof(EoBMonsterInPlay));
@@ -842,7 +856,7 @@ void EoBCoreEngine::setHandItem(Item itemIndex) {
const uint8 *ovl = 0;
if (icon && (_items[_itemInHand].flags & 0x80) && (_partyEffectFlags & 2))
- ovl = _flags.gameID == GI_EOB1 ? ((_configRenderMode == Common::kRenderCGA) ? _itemsOverlayCGA : &_itemsOverlay[icon << 4]) : _screen->generateShapeOverlay(shp, 3);
+ ovl = _flags.gameID == GI_EOB1 ? ((_configRenderMode == Common::kRenderCGA) ? _itemsOverlayCGA : &_itemsOverlay[icon << 4]) : _screen->generateShapeOverlay(shp, _lightBlueFadingTable);
int mouseOffs = itemIndex ? 8 : 0;
_screen->setMouseCursor(mouseOffs, mouseOffs, shp, ovl);
diff --git a/engines/kyra/eobcommon.h b/engines/kyra/eobcommon.h
index 157c820..810b792 100644
--- a/engines/kyra/eobcommon.h
+++ b/engines/kyra/eobcommon.h
@@ -639,6 +639,12 @@ protected:
const uint8 *_dscDoorY1;
const uint8 *_dscDoorXE;
+ uint8 *_greenFadingTable;
+ uint8 *_blueFadingTable;
+ uint8 *_lightBlueFadingTable;
+ uint8 *_blackFadingTable;
+ uint8 *_greyFadingTable;
+
const uint8 *_wllFlagPreset;
int _wllFlagPresetSize;
const uint8 *_teleporterShapeCoords;
diff --git a/engines/kyra/gui_eob.cpp b/engines/kyra/gui_eob.cpp
index 968bca2..cdc5fba 100644
--- a/engines/kyra/gui_eob.cpp
+++ b/engines/kyra/gui_eob.cpp
@@ -236,18 +236,18 @@ void EoBCoreEngine::gui_drawFaceShape(int index) {
}
} else {
if (c->effectFlags & 0x140) {
- _screen->setFadeTableIndex(1);
- _screen->setShapeFadeMode(1, true);
+ _screen->setFadeTable(_blackFadingTable);
+ _screen->setShapeFadingLevel(1);
}
if (c->flags & 2) {
- _screen->setFadeTableIndex(0);
- _screen->setShapeFadeMode(1, true);
+ _screen->setFadeTable(_greenFadingTable);
+ _screen->setShapeFadingLevel(1);
}
if (c->flags & 8) {
- _screen->setFadeTableIndex(2);
- _screen->setShapeFadeMode(1, true);
+ _screen->setFadeTable(_blueFadingTable);
+ _screen->setShapeFadingLevel(1);
}
}
@@ -256,8 +256,8 @@ void EoBCoreEngine::gui_drawFaceShape(int index) {
if (c->hitPointsCur < 1)
_screen->drawShape(_screen->_curPage, _disabledCharGrid, x, y, 0);
- _screen->setFadeTableIndex(4);
- _screen->setShapeFadeMode(1, false);
+ _screen->setFadeTable(_greyFadingTable);
+ _screen->setShapeFadingLevel(0);
}
void EoBCoreEngine::gui_drawWeaponSlot(int charIndex, int slot) {
diff --git a/engines/kyra/items_eob.cpp b/engines/kyra/items_eob.cpp
index e2d4b1b..6ec9b33 100644
--- a/engines/kyra/items_eob.cpp
+++ b/engines/kyra/items_eob.cpp
@@ -468,16 +468,16 @@ void EoBCoreEngine::drawItemIconShape(int pageNum, Item itemId, int x, int y) {
if (_flags.gameID == GI_EOB1) {
ovl = (_configRenderMode == Common::kRenderCGA) ? _itemsOverlayCGA : &_itemsOverlay[icn << 4];
} else {
- _screen->setFadeTableIndex(3);
- _screen->setShapeFadeMode(1, true);
+ _screen->setFadeTable(_lightBlueFadingTable);
+ _screen->setShapeFadingLevel(1);
}
}
_screen->drawShape(pageNum, _itemIconShapes[icn], x, y, 0, ovl ? 2 : 0, ovl);
if (applyBluePal) {
- _screen->setFadeTableIndex(4);
- _screen->setShapeFadeMode(1, false);
+ _screen->setFadeTable(_greyFadingTable);
+ _screen->setShapeFadingLevel(0);
}
}
diff --git a/engines/kyra/scene_eob.cpp b/engines/kyra/scene_eob.cpp
index 84822c3..6fac56f 100644
--- a/engines/kyra/scene_eob.cpp
+++ b/engines/kyra/scene_eob.cpp
@@ -168,8 +168,8 @@ Common::String EoBCoreEngine::initLevelData(int sub) {
if (_flags.gameID == GI_EOB1) {
pos += 11;
- _screen->setShapeFadeMode(0, false);
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
+ _screen->enableShapeBackgroundFading(false);
}
if (_flags.gameID == GI_EOB2 || _configRenderMode != Common::kRenderEGA)
@@ -181,14 +181,14 @@ Common::String EoBCoreEngine::initLevelData(int sub) {
_screen->getPalette(0).fill(224, 32, 0x3F);
uint8 *src = _screen->getPalette(0).getData();
- _screen->createFadeTable(src, _screen->getFadeTable(0), 4, 75); // green
- _screen->createFadeTable(src, _screen->getFadeTable(1), 12, 200); // black
- _screen->createFadeTable(src, _screen->getFadeTable(2), 10, 85); // blue
- _screen->createFadeTable(src, _screen->getFadeTable(3), 11, 125); // light blue
+ _screen->createFadeTable(src, _greenFadingTable, 4, 75);
+ _screen->createFadeTable(src, _blackFadingTable, 12, 200);
+ _screen->createFadeTable(src, _blueFadingTable, 10, 85);
+ _screen->createFadeTable(src, _lightBlueFadingTable, 11, 125);
_screen->getPalette(0).copy(backupPal, 224, 32, 224);
- _screen->createFadeTable(src, _screen->getFadeTable(4), 12, 85); // grey (shadow)
- _screen->setFadeTableIndex(4);
+ _screen->createFadeTable(src, _greyFadingTable, 12, 85);
+ _screen->setFadeTable(_greyFadingTable);
if (_flags.gameID == GI_EOB2 && _configRenderMode == Common::kRenderEGA)
_screen->setScreenPalette(_screen->getPalette(0));
}
diff --git a/engines/kyra/screen_eob.cpp b/engines/kyra/screen_eob.cpp
index 3a9a647..6553ffa 100644
--- a/engines/kyra/screen_eob.cpp
+++ b/engines/kyra/screen_eob.cpp
@@ -38,10 +38,10 @@
namespace Kyra {
Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system, _screenDimTable, _screenDimTableCount) {
- _shapeFadeMode[0] = _shapeFadeMode[1] = 0;
- _shapeFadeInternal = 0;
- _fadeData = 0;
- _fadeDataIndex = 0;
+ _dsBackgroundFading = false;
+ _dsShapeFadingLevel = 0;
+ _dsBackgroundFadingXOffs = 0;
+ _dsShapeFadingTable = 0;
_dsX1 = _dsX2 = _dsY1 = _dsY2 = 0;
_gfxX = _gfxY = 0;
_gfxCol = 0;
@@ -59,7 +59,6 @@ Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system,
}
Screen_EoB::~Screen_EoB() {
- delete[] _fadeData;
delete[] _dsTempPage;
delete[] _cgaScaleTable;
delete[] _egaDitheringTable;
@@ -73,20 +72,6 @@ bool Screen_EoB::init() {
int temp;
_gfxMaxY = _vm->staticres()->loadRawData(kEoBBaseExpObjectY, temp);
- if (_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA)
- _fadeData = _vm->resource()->fileData("FADING.DAT", 0);
-
- if (!_fadeData) {
- _fadeData = new uint8[0x700];
- memset(_fadeData, 0, 0x700);
- if (_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA) {
- uint8 *pal = _vm->resource()->fileData("PALETTE1.PAL", 0);
- for (int i = 0; i < 7; i++)
- createFadeTable(pal, &_fadeData[i << 8], 18, (i + 1) * 36);
- delete[] pal;
- }
- }
-
_dsTempPage = new uint8[12000];
if (_vm->gameFlags().useHiRes && _renderMode == Common::kRenderEGA) {
@@ -379,7 +364,7 @@ uint8 *Screen_EoB::encodeShape(uint16 x, uint16 y, uint16 w, uint16 h, bool enco
memset(shp, 0, shapesize);
uint8 *dst = shp;
- *dst++ = 8;
+ *dst++ = 1;
*dst++ = (h & 0xFF);
*dst++ = (w & 0xFF);
*dst++ = (h & 0xFF);
@@ -483,11 +468,6 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
if (!src)
return;
- va_list args;
- va_start(args, flags);
- uint8 *ovl = (flags & 2) ? va_arg(args, uint8 *) : 0;
- va_end(args);
-
if (sd != -1) {
const ScreenDim *dm = getScreenDim(sd);
setShapeFrame(dm->sx, dm->sy, dm->sx + dm->w, dm->sy + dm->h);
@@ -495,12 +475,22 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
y += _dsY1;
}
+ uint8 *ovl = 0;
+
+ va_list args;
+ va_start(args, flags);
+ if (flags & 2) {
+ ovl = va_arg(args, uint8 *);
+ _dsBackgroundFadingXOffs = x;
+ }
+ va_end(args);
+
dst += (_dsX1 << 3);
int16 dX = x - (_dsX1 << 3);
int16 dY = y;
int16 dW = _dsX2 - _dsX1;
+
uint8 pixelsPerByte = *src++;
-
uint16 dH = *src++;
uint16 width = (*src++) << 3;
uint16 transOffset = (pixelsPerByte == 4) ? (dH * width) >> 2 : 0;
@@ -516,7 +506,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
int pixelStep = (flags & 1) ? -1 : 1;
- if (pixelsPerByte == 8) {
+ if (pixelsPerByte == 1) {
uint16 marginLeft = 0;
uint16 marginRight = 0;
@@ -773,7 +763,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
}
const uint8 *Screen_EoB::scaleShape(const uint8 *shapeData, int steps) {
- setShapeFadeMode(1, steps ? true : false);
+ setShapeFadingLevel(steps);
while (shapeData && steps--)
shapeData = scaleShapeStep(shapeData);
@@ -842,14 +832,13 @@ const uint8 *Screen_EoB::scaleShapeStep(const uint8 *shp) {
return (const uint8 *)dst;
}
-const uint8 *Screen_EoB::generateShapeOverlay(const uint8 *shp, int paletteOverlayIndex) {
+const uint8 *Screen_EoB::generateShapeOverlay(const uint8 *shp, const uint8 *fadingTable) {
if (*shp != 2)
return 0;
shp += 4;
- uint8 *ovl = getFadeTable(paletteOverlayIndex);
for (int i = 0; i < 16; i++)
- _shapeOverlay[i] = ovl[shp[i]];
+ _shapeOverlay[i] = fadingTable[shp[i]];
return _shapeOverlay;
}
@@ -860,9 +849,12 @@ void Screen_EoB::setShapeFrame(int x1, int y1, int x2, int y2) {
_dsY2 = y2;
}
-void Screen_EoB::setShapeFadeMode(uint8 i, bool b) {
- if (!i || i == 1)
- _shapeFadeMode[i] = b;
+void Screen_EoB::enableShapeBackgroundFading(bool enable) {
+ _dsBackgroundFading = enable;
+}
+
+void Screen_EoB::setShapeFadingLevel(int level) {
+ _dsShapeFadingLevel = level;
}
void Screen_EoB::setGfxParameters(int x, int y, int col) {
@@ -1171,8 +1163,8 @@ int Screen_EoB::getRectSize(int w, int h) {
return w * h;
}
-void Screen_EoB::setFadeTableIndex(int index) {
- _fadeDataIndex = (CLIP(index, 0, 7) << 8);
+void Screen_EoB::setFadeTable(const uint8 *table) {
+ _dsShapeFadingTable = table;
}
void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight) {
@@ -1218,10 +1210,6 @@ void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, ui
}
}
-uint8 *Screen_EoB::getFadeTable(int index) {
- return (index >= 0 && index < 5) ? &_fadeData[index << 8] : 0;
-}
-
const uint16 *Screen_EoB::getCGADitheringTable(int index) {
return !(index & ~1) ? _cgaDitheringTables[index] : 0;
}
@@ -1273,19 +1261,19 @@ void Screen_EoB::ditherRect(const uint8 *src, uint8 *dst, int dstPitch, int srcW
void Screen_EoB::drawShapeSetPixel(uint8 *dst, uint8 col) {
if ((_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA) || _useHiResEGADithering) {
- if (_shapeFadeMode[0]) {
- if (_shapeFadeMode[1]) {
+ if (_dsBackgroundFading) {
+ if (_dsShapeFadingLevel) {
col = *dst;
} else {
- _shapeFadeInternal &= 7;
- col = *(dst + _shapeFadeInternal++);
+ _dsBackgroundFadingXOffs &= 7;
+ col = *(dst + _dsBackgroundFadingXOffs++);
}
}
- if (_shapeFadeMode[1]) {
- uint8 cnt = _shapeFadeMode[1];
+ if (_dsShapeFadingLevel) {
+ uint8 cnt = _dsShapeFadingLevel;
while (cnt--)
- col = _fadeData[_fadeDataIndex + col];
+ col = _dsShapeFadingTable[col];
}
}
diff --git a/engines/kyra/screen_eob.h b/engines/kyra/screen_eob.h
index 3634ae1..42c7e59 100644
--- a/engines/kyra/screen_eob.h
+++ b/engines/kyra/screen_eob.h
@@ -59,10 +59,11 @@ public:
void drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y, int sd = -1, int flags = 0, ...);
const uint8 *scaleShape(const uint8 *shapeData, int blockDistance);
const uint8 *scaleShapeStep(const uint8 *shp);
- const uint8 *generateShapeOverlay(const uint8 *shp, int paletteOverlayIndex);
+ const uint8 *generateShapeOverlay(const uint8 *shp, const uint8 *fadingTable);
void setShapeFrame(int x1, int y1, int x2, int y2);
- void setShapeFadeMode(uint8 i, bool b);
+ void enableShapeBackgroundFading(bool enable);
+ void setShapeFadingLevel(int val);
void setGfxParameters(int x, int y, int col);
void drawExplosion(int scale, int radius, int numElements, int stepSize, int aspectRatio, const uint8 *colorTable, int colorTableSize);
@@ -74,10 +75,9 @@ public:
void setTextColorMap(const uint8 *cmap) {}
int getRectSize(int w, int h);
- void setFadeTableIndex(int index);
+ void setFadeTable(const uint8 *table);
void createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight);
- uint8 *getFadeTable(int index);
-
+
const uint16 *getCGADitheringTable(int index);
const uint8 *getEGADitheringTable();
@@ -100,10 +100,9 @@ private:
const uint8 *_gfxMaxY;
int16 _dsX1, _dsX2, _dsY1, _dsY2;
- bool _shapeFadeMode[2];
- uint16 _shapeFadeInternal;
- uint8 *_fadeData;
- int _fadeDataIndex;
+
+ bool _dsBackgroundFading;
+ int16 _dsBackgroundFadingXOffs;
uint8 _shapeOverlay[16];
uint8 *_dsTempPage;
diff --git a/engines/kyra/sequences_darkmoon.cpp b/engines/kyra/sequences_darkmoon.cpp
index 68d6f75..befa8aa 100644
--- a/engines/kyra/sequences_darkmoon.cpp
+++ b/engines/kyra/sequences_darkmoon.cpp
@@ -82,6 +82,7 @@ private:
const Config *_config;
Palette *_palettes[12];
+ uint8 *_fadingTables[7];
const uint8 **_shapes;
@@ -972,6 +973,27 @@ DarkmoonSequenceHelper::DarkmoonSequenceHelper(OSystem *system, DarkMoonEngine *
_palettes[11] = new Palette(256);
_palettes[11]->fill(0, 256, 0);
+ for (int i = 0; i < 7; i++)
+ _fadingTables[i] = 0;
+
+ uint8 *fadeData = (_vm->_configRenderMode != Common::kRenderCGA && _vm->_configRenderMode != Common::kRenderEGA) ? _vm->resource()->fileData("FADING.DAT", 0) : 0;
+
+ if (fadeData) {
+ for (int i = 0; i < 7; i++) {
+ _fadingTables[i] = new uint8[256];
+ memcpy(_fadingTables[i], fadeData + (i << 8), 256);
+ }
+ } else {
+ if (_vm->_configRenderMode != Common::kRenderCGA && _vm->_configRenderMode != Common::kRenderEGA) {
+ uint8 *pal = _vm->resource()->fileData("PALETTE1.PAL", 0);
+ for (int i = 0; i < 7; i++)
+ _screen->createFadeTable(pal, _fadingTables[i], 18, (i + 1) * 36);
+ delete[] pal;
+ }
+ }
+
+ delete[] fadeData;
+
_shapes = new const uint8*[30];
memset(_shapes, 0, 30 * sizeof(uint8 *));
@@ -994,6 +1016,9 @@ DarkmoonSequenceHelper::~DarkmoonSequenceHelper() {
delete _palettes[10];
delete _palettes[11];
+ for (int i = 0; i < 7; i++)
+ delete[] _fadingTables[i];
+
for (int i = 0; i < 30; i++)
delete[] _shapes[i];
delete[] _shapes;
@@ -1152,13 +1177,13 @@ void DarkmoonSequenceHelper::animCommand(int index, int del) {
_screen->updateScreen();
delay(s->delay /** 7*/);
} else {
- _screen->setShapeFadeMode(0, true);
- _screen->setShapeFadeMode(1, true);
+ _screen->enableShapeBackgroundFading(true);
+ _screen->setShapeFadingLevel(1);
end = _system->getMillis() + s->delay * _vm->tickLength();
if (palIndex) {
- _screen->setFadeTableIndex(palIndex - 1);
+ _screen->setFadeTable(_fadingTables[palIndex - 1]);
_screen->copyRegion(s->x1 - 8, s->y1 - 8, 0, 0, (_shapes[s->obj][2] + 1) << 3, _shapes[s->obj][3], 2, 4, Screen::CR_NO_P_CHECK);
_screen->drawShape(4, _shapes[s->obj], s->x1 & 7, 0, 0);
@@ -1169,8 +1194,8 @@ void DarkmoonSequenceHelper::animCommand(int index, int del) {
_screen->updateScreen();
_vm->delayUntil(end);
- _screen->setShapeFadeMode(0, false);
- _screen->setShapeFadeMode(1, false);
+ _screen->enableShapeBackgroundFading(false);
+ _screen->setShapeFadingLevel(0);
}
break;
diff --git a/engines/kyra/sprites_eob.cpp b/engines/kyra/sprites_eob.cpp
index 5a82cf6..c93bf0e 100644
--- a/engines/kyra/sprites_eob.cpp
+++ b/engines/kyra/sprites_eob.cpp
@@ -429,7 +429,7 @@ void EoBCoreEngine::drawBlockItems(int index) {
y += itemPosFin[(o >> 1) & 7];
drawBlockObject(0, 2, shp, x, y, 5);
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
}
}
@@ -535,7 +535,7 @@ void EoBCoreEngine::drawMonsters(int index) {
drawMonsterShape(shp, x, y, f >= 0 ? 0 : 1, d->flags, palIndex);
if (_flags.gameID == GI_EOB1) {
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
continue;
}
@@ -559,7 +559,7 @@ void EoBCoreEngine::drawMonsters(int index) {
drawMonsterShape(shp, x + ((f < 0) ? (w - dx - (shp[2] << 3)) : dx), y + dy, f >= 0 ? 0 : 1, d->flags, -1);
}
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
}
}
@@ -614,12 +614,12 @@ void EoBCoreEngine::drawFlyingObjects(int index) {
int flipped = 0;
if (sclValue < 0) {
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
continue;
}
const uint8 *shp = 0;
- bool rstFade = false;
+ bool noFade = false;
if (fo->enable == 1) {
int shpIx = _dscItemShapeMap[_items[fo->item].icon];
@@ -634,7 +634,7 @@ void EoBCoreEngine::drawFlyingObjects(int index) {
}
} else {
- rstFade = true;
+ noFade = true;
shp = (fo->objectType < _numThrownItemShapes) ? _thrownItemShapes[fo->objectType] : _spellShapes[fo->objectType - _numThrownItemShapes];
flipped = _flightObjFlipIndex[(fo->direction << 2) + (fo->curPos & 3)];
@@ -648,16 +648,16 @@ void EoBCoreEngine::drawFlyingObjects(int index) {
shp = _screen->scaleShape(shp, sclValue);
- if (rstFade) {
- _screen->setShapeFadeMode(1, false);
- rstFade = false;
+ if (noFade) {
+ _screen->setShapeFadingLevel(0);
+ noFade = false;
}
x -= (shp[2] << 2);
y -= (y == 44 ? (shp[1] >> 1) : shp[1]);
drawBlockObject(flipped, 2, shp, x, y, 5);
- _screen->setShapeFadeMode(1, false);
+ _screen->setShapeFadingLevel(0);
}
}
Commit: e4e5e68f0dbec85bb28157e094a95ef33440a2ba
https://github.com/scummvm/scummvm/commit/e4e5e68f0dbec85bb28157e094a95ef33440a2ba
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:20+01:00
Commit Message:
KYRA: implement SJIS features required for EOB II FM-Towns
- low res font drawing for intro and outro texts
- fat print mode for ingame texts
Changed paths:
engines/kyra/screen.cpp
engines/kyra/screen.h
graphics/sjis.cpp
graphics/sjis.h
diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp
index c994f47..bce45b2 100644
--- a/engines/kyra/screen.cpp
+++ b/engines/kyra/screen.cpp
@@ -141,7 +141,7 @@ bool Screen::init() {
if (!font)
error("Could not load any SJIS font, neither the original nor ScummVM's 'SJIS.FNT'");
- _fonts[FID_SJIS_FNT] = new SJISFont(font, _sjisInvisibleColor, _use16ColorMode, !_use16ColorMode && _vm->game() != GI_LOL, !_use16ColorMode && _vm->game() == GI_LOL ? 1 : 0);
+ _fonts[FID_SJIS_FNT] = new SJISFont(font, _sjisInvisibleColor, _use16ColorMode, !_use16ColorMode && _vm->game() != GI_LOL && _vm->game() != GI_EOB2, _vm->game() == GI_EOB2 && _vm->gameFlags().platform == Common::kPlatformFMTowns, !_use16ColorMode && _vm->game() == GI_LOL ? 1 : 0);
}
}
@@ -3583,12 +3583,11 @@ void AMIGAFont::unload() {
memset(_chars, 0, sizeof(_chars));
}
-SJISFont::SJISFont(Graphics::FontSJIS *font, const uint8 invisColor, bool is16Color, bool drawOutline, int extraSpacing)
- : _colorMap(0), _font(font), _invisColor(invisColor), _is16Color(is16Color), _drawOutline(drawOutline), _sjisWidthOffset(extraSpacing) {
+SJISFont::SJISFont(Graphics::FontSJIS *font, const uint8 invisColor, bool is16Color, bool drawOutline, bool fatPrint, int extraSpacing)
+ : _colorMap(0), _font(font), _invisColor(invisColor), _is16Color(is16Color), _drawOutline(drawOutline), _sjisWidthOffset(extraSpacing) {
assert(_font);
-
_font->setDrawingMode(_drawOutline ? Graphics::FontSJIS::kOutlineMode : Graphics::FontSJIS::kDefaultMode);
-
+ _font->toggleFatPrint(fatPrint);
_sjisWidth = _font->getMaxFontWidth() >> 1;
_fontHeight = _font->getFontHeight() >> 1;
_asciiWidth = _font->getCharWidth('a') >> 1;
@@ -3641,6 +3640,16 @@ void SJISFont::drawChar(uint16 c, byte *dst, int pitch) const {
_font->drawChar(dst, c, 640, 1, color1, color2, 640, 400);
}
+SJISFontLarge::SJISFontLarge(Graphics::FontSJIS *font) : SJISFont(font, 0, false, false, false, 0) {
+ _sjisWidth = _font->getMaxFontWidth();
+ _fontHeight = _font->getFontHeight();
+ _asciiWidth = _font->getCharWidth('a');
+}
+
+void SJISFontLarge::drawChar(uint16 c, byte *dst, int pitch) const {
+ _font->drawChar(dst, c, 320, 1, _colorMap[1], _colorMap[0], 320, 200);
+}
+
#pragma mark -
Palette::Palette(const int numColors) : _palData(0), _numColors(numColors) {
diff --git a/engines/kyra/screen.h b/engines/kyra/screen.h
index b58371c..0b287aa 100644
--- a/engines/kyra/screen.h
+++ b/engines/kyra/screen.h
@@ -211,34 +211,47 @@ private:
*/
class SJISFont : public Font {
public:
- SJISFont(Graphics::FontSJIS *font, const uint8 invisColor, bool is16Color, bool drawOutline, int extraSpacing);
- ~SJISFont() { unload(); }
+ SJISFont(Graphics::FontSJIS *font, const uint8 invisColor, bool is16Color, bool drawOutline, bool fatPrint, int extraSpacing);
+ virtual ~SJISFont() { unload(); }
- bool usesOverlay() const { return true; }
+ virtual bool usesOverlay() const { return true; }
bool load(Common::SeekableReadStream &) { return true; }
int getHeight() const;
int getWidth() const;
int getCharWidth(uint16 c) const;
void setColorMap(const uint8 *src);
- void drawChar(uint16 c, byte *dst, int pitch) const;
-private:
+ virtual void drawChar(uint16 c, byte *dst, int pitch) const;
+
+protected:
void unload();
const uint8 *_colorMap;
+ Graphics::FontSJIS *_font;
+ int _sjisWidth, _asciiWidth;
+ int _fontHeight;
+ const bool _drawOutline;
- Graphics::FontSJIS *_font;
+private:
const uint8 _invisColor;
const bool _is16Color;
- const bool _drawOutline;
// We use this for cases where the font width returned by getWidth() or getCharWidth() does not match the original.
// The original Japanese game versions use hard coded sjis font widths of 8 or 9. However, this does not necessarily
// depend on whether an outline is used or not (neither LOL/PC-9801 nor LOL/FM-TOWNS use an outline, but the first
// version uses a font width of 8 where the latter uses a font width of 9).
const int _sjisWidthOffset;
+};
- int _sjisWidth, _asciiWidth;
- int _fontHeight;
+/**
+* SJISFont variant used in the intro and outro of EOB II FM-Towns. It appears twice as large, since it is not rendered on the hires overlay pages
+*/
+class SJISFontLarge : public SJISFont {
+public:
+ SJISFontLarge(Graphics::FontSJIS *font);
+ virtual ~SJISFontLarge() { unload(); }
+
+ virtual bool usesOverlay() const { return false; }
+ virtual void drawChar(uint16 c, byte *dst, int pitch) const;
};
/**
@@ -400,6 +413,7 @@ public:
FID_GOLDFONT_FNT,
FID_INTRO_FNT,
FID_SJIS_FNT,
+ FID_SJIS_LARGE_FNT,
FID_NUM
};
diff --git a/graphics/sjis.cpp b/graphics/sjis.cpp
index 877f314..0c65492 100644
--- a/graphics/sjis.cpp
+++ b/graphics/sjis.cpp
@@ -71,7 +71,7 @@ void FontSJIS::drawChar(Graphics::Surface &dst, uint16 ch, int x, int y, uint32
}
FontSJISBase::FontSJISBase()
- : _drawMode(kDefaultMode), _flippedMode(false), _fontWidth(16), _fontHeight(16), _bitPosNewLineMask(0) {
+: _drawMode(kDefaultMode), _flippedMode(false), _fatPrint(false), _fontWidth(16), _fontHeight(16), _bitPosNewLineMask(0) {
}
void FontSJISBase::setDrawingMode(DrawingMode mode) {
@@ -88,6 +88,13 @@ void FontSJISBase::toggleFlippedMode(bool enable) {
warning("Flipped mode unsupported by this font");
}
+void FontSJISBase::toggleFatPrint(bool enable) {
+ if (hasFeature(kFeatFatPrint))
+ _fatPrint = enable;
+ else
+ warning("Fat print unsupported by this font");
+}
+
uint FontSJISBase::getFontHeight() const {
switch (_drawMode) {
case kOutlineMode:
@@ -207,6 +214,25 @@ const uint8 *FontSJISBase::flipCharacter(const uint8 *glyph, const int w) const
}
#endif
+const uint8 *FontSJISBase::makeFatCharacter(const uint8 *glyph, const int w) const {
+ // This is the EOB II FM-Towns implementation.
+ // The last bit to the right of each line is cut off so that the fat
+ // character actually has the same width as it would normally have.
+ if (w == 8) {
+ for (int i = 0; i < 16; ++i) {
+ _tempGlyph2[i] = *glyph | (*glyph >> 1);
+ glyph++;
+ }
+ } else {
+ for (int i = 0; i < 16; ++i) {
+ uint16 l = READ_BE_UINT16(glyph);
+ WRITE_BE_UINT16(&_tempGlyph2[i << 1], l | (l >> 1));
+ glyph += 2;
+ }
+ }
+ return _tempGlyph2;
+}
+
void FontSJISBase::drawChar(void *dst, uint16 ch, int pitch, int bpp, uint32 c1, uint32 c2, int maxW, int maxH) const {
const uint8 *glyphSource = 0;
int width = 0, height = 0;
@@ -243,11 +269,14 @@ void FontSJISBase::drawChar(void *dst, uint16 ch, int pitch, int bpp, uint32 c1,
return;
}
+ if (_fatPrint)
+ glyphSource = makeFatCharacter(glyphSource, width);
+
#ifndef DISABLE_FLIPPED_MODE
if (_flippedMode)
glyphSource = flipCharacter(glyphSource, width);
#endif
-
+
uint8 outline[18 * 18];
if (_drawMode == kOutlineMode) {
memset(outline, 0, sizeof(outline));
@@ -409,7 +438,7 @@ const uint8 *FontTowns::getCharData(uint16 ch) const {
}
bool FontTowns::hasFeature(int feat) const {
- static const int features = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow | kFeatFlipped;
+ static const int features = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow | kFeatFlipped | kFeatFatPrint;
return (features & feat) ? true : false;
}
@@ -577,7 +606,7 @@ bool FontSjisSVM::hasFeature(int feat) const {
// Flipped mode is not supported since the hard coded table (taken from SCUMM 5 FM-TOWNS)
// is set up for font sizes of 8/16. This mode is also not required at the moment, since
// there aren't any SCUMM 5 PC-Engine games.
- static const int features16 = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow | kFeatFlipped;
+ static const int features16 = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow | kFeatFlipped | kFeatFatPrint;
static const int features12 = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow;
return (((_fontWidth == 12) ? features12 : features16) & feat) ? true : false;
}
diff --git a/graphics/sjis.h b/graphics/sjis.h
index 4c5b279..2872471 100644
--- a/graphics/sjis.h
+++ b/graphics/sjis.h
@@ -91,6 +91,11 @@ public:
virtual void setDrawingMode(DrawingMode mode) {}
/**
+ * Enable fat character drawing if supported by the Font (used in EOB II FM-Towns).
+ */
+ virtual void toggleFatPrint(bool enable) {}
+
+ /**
* Enable flipped character drawing if supported by the Font (e.g. in the MI1 circus scene after Guybrush gets shot out of the cannon).
*/
virtual void toggleFlippedMode(bool enable) {}
@@ -147,6 +152,8 @@ public:
virtual void toggleFlippedMode(bool enable);
+ virtual void toggleFatPrint(bool enable);
+
virtual uint getFontHeight() const;
virtual uint getMaxFontWidth() const;
@@ -165,9 +172,11 @@ private:
const uint8 *flipCharacter(const uint8 *glyph, const int w) const;
mutable uint8 _tempGlyph[32];
#endif
+ const uint8 *makeFatCharacter(const uint8 *glyph, const int w) const;
+ mutable uint8 _tempGlyph2[32];
protected:
DrawingMode _drawMode;
- bool _flippedMode;
+ bool _flippedMode, _fatPrint;
int _fontWidth, _fontHeight;
uint8 _bitPosNewLineMask;
@@ -180,7 +189,8 @@ protected:
kFeatOutline = 1 << 1,
kFeatShadow = 1 << 2,
kFeatFMTownsShadow = 1 << 3,
- kFeatFlipped = 1 << 4
+ kFeatFlipped = 1 << 4,
+ kFeatFatPrint = 1 << 5
};
virtual bool hasFeature(int feat) const = 0;
Commit: 16ead6f58a041adaa7fedb9f08d8435fff24f3ae
https://github.com/scummvm/scummvm/commit/16ead6f58a041adaa7fedb9f08d8435fff24f3ae
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:21+01:00
Commit Message:
KYRA: add 16bit mode required for EOB II FM-TOWNS
Changed paths:
engines/kyra/detection_tables.h
engines/kyra/kyra_v1.h
engines/kyra/screen.cpp
engines/kyra/screen.h
engines/kyra/screen_eob.cpp
engines/kyra/screen_eob.h
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index 43dc0cc..0b45977 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -22,45 +22,46 @@
namespace {
-#define FLAGS(x, y, z, a, b, c, d, e, id) { Common::UNK_LANG, Common::UNK_LANG, Common::UNK_LANG, Common::kPlatformUnknown, x, y, z, a, b, c, d, e, id }
-#define FLAGS_FAN(fanLang, repLang, x, y, z, a, b, c, d, e, id) { Common::UNK_LANG, fanLang, repLang, Common::kPlatformUnknown, x, y, z, a, b, c, d, e, id }
-
-#define KYRA1_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, true, Kyra::GI_KYRA1)
-#define KYRA1_OLDFLOPPY_FLAGS FLAGS(false, false, false, true, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_AMIGA_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_TOWNS_FLAGS FLAGS(false, true, false, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_TOWNS_SJIS_FLAGS FLAGS(false, true, false, false, true, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_CD_FLAGS FLAGS(false, true, true, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_DEMO_CD_FLAGS FLAGS(true, true, true, false, false, false, false, false, Kyra::GI_KYRA1)
-
-#define KYRA2_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, true, Kyra::GI_KYRA2)
-#define KYRA2_FLOPPY_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_CD_FLAGS FLAGS(false, false, true, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_CD_DEMO_FLAGS FLAGS(true, false, true, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_TOWNS_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_TOWNS_SJIS_FLAGS FLAGS(false, false, false, false, true, false, false, false, Kyra::GI_KYRA2)
-
-#define KYRA3_CD_FLAGS FLAGS(false, false, true, false, false, false, true, true, Kyra::GI_KYRA3)
-#define KYRA3_CD_INS_FLAGS FLAGS(false, false, true, false, false, false, true, false, Kyra::GI_KYRA3)
-#define KYRA3_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, true, false, Kyra::GI_KYRA3)
-
-#define LOL_CD_FLAGS FLAGS(false, false, true, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_FLOPPY_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, false, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, true, Kyra::GI_LOL)
-#define LOL_PC9801_FLAGS FLAGS(false, false, false, false, true, true, false, false, Kyra::GI_LOL)
-#define LOL_FMTOWNS_FLAGS FLAGS(false, false, false, false, true, false, false, false, Kyra::GI_LOL)
-#define LOL_DEMO_FLAGS FLAGS(true, true, false, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-
-#define EOB_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_EOB1)
-#define EOB2_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_EOB2)
+#define EOB2_SJIS_FLAGS FLAGS(false, false, false, false, true, false, false, false, Kyra::GI_EOB2)
+#define FLAGS(x, y, z, a, b, c, d, e, f, id) { Common::UNK_LANG, Common::UNK_LANG, Common::UNK_LANG, Common::kPlatformUnknown, x, y, z, a, b, c, d, e, f, id }
+#define FLAGS_FAN(fanLang, repLang, x, y, z, a, b, c, d, e, f, id) { Common::UNK_LANG, fanLang, repLang, Common::kPlatformUnknown, x, y, z, a, b, c, d, e, f, id }
+
+#define KYRA1_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, false, true, Kyra::GI_KYRA1)
+#define KYRA1_OLDFLOPPY_FLAGS FLAGS(false, false, false, true, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_AMIGA_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_TOWNS_FLAGS FLAGS(false, true, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_TOWNS_SJIS_FLAGS FLAGS(false, true, false, false, true, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_CD_FLAGS FLAGS(false, true, true, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_DEMO_CD_FLAGS FLAGS(true, true, true, false, false, false, false, false, false, Kyra::GI_KYRA1)
+
+#define KYRA2_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, false, true, Kyra::GI_KYRA2)
+#define KYRA2_FLOPPY_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_CD_FLAGS FLAGS(false, false, true, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_CD_DEMO_FLAGS FLAGS(true, false, true, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_TOWNS_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_TOWNS_SJIS_FLAGS FLAGS(false, false, false, false, true, false, false, false, false, Kyra::GI_KYRA2)
+
+#define KYRA3_CD_FLAGS FLAGS(false, false, true, false, false, false, false, true, true, Kyra::GI_KYRA3)
+#define KYRA3_CD_INS_FLAGS FLAGS(false, false, true, false, false, false, false, true, false, Kyra::GI_KYRA3)
+#define KYRA3_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, true, false, Kyra::GI_KYRA3)
+
+#define LOL_CD_FLAGS FLAGS(false, false, true, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_FLOPPY_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, false, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, false, true, Kyra::GI_LOL)
+#define LOL_PC9801_FLAGS FLAGS(false, false, false, false, true, true, false, false, false, Kyra::GI_LOL)
+#define LOL_FMTOWNS_FLAGS FLAGS(false, false, false, false, true, false, false, false, false, Kyra::GI_LOL)
+#define LOL_DEMO_FLAGS FLAGS(true, true, false, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+
+#define EOB_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_EOB1)
+#define EOB2_FLAGS FLAGS(false, false, false, false, false, false, false, false, false, Kyra::GI_EOB2)
#define GAMEOPTION_KYRA3_AUDIENCE GUIO_GAMEOPTIONS1
#define GAMEOPTION_KYRA3_SKIP GUIO_GAMEOPTIONS2
@@ -1685,7 +1686,7 @@ const KYRAGameDescription adGameDescs[] = {
},
#endif // ENABLE_EOB
- { AD_TABLE_END_MARKER, FLAGS(0, 0, 0, 0, 0, 0, 0, 0, 0) }
+ { AD_TABLE_END_MARKER, FLAGS(0, 0, 0, 0, 0, 0, 0, 0, 0, 0) }
};
const PlainGameDescriptor gameList[] = {
diff --git a/engines/kyra/kyra_v1.h b/engines/kyra/kyra_v1.h
index bbbd59a..9fdddb8 100644
--- a/engines/kyra/kyra_v1.h
+++ b/engines/kyra/kyra_v1.h
@@ -122,6 +122,7 @@ struct GameFlags {
bool isOldFloppy : 1;
bool useHiRes : 1;
bool use16ColorMode : 1;
+ bool useHiColorMode : 1;
bool useDigSound : 1;
bool useInstallerPackage : 1;
diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp
index bce45b2..a0cab91 100644
--- a/engines/kyra/screen.cpp
+++ b/engines/kyra/screen.cpp
@@ -58,6 +58,13 @@ Screen::Screen(KyraEngine_v1 *vm, OSystem *system, const ScreenDim *dimTable, co
_renderMode = Common::kRenderDefault;
_sjisMixedFontMode = false;
+ _useHiColorScreen = _vm->gameFlags().useHiColorMode;
+ _screenPageSize = SCREEN_PAGE_SIZE;
+ _16bitPalette = 0;
+ _16bitConversionPalette = 0;
+ _16bitShadingLevel = 0;
+ _bytesPerPixel = 1;
+
_currentFont = FID_8_FNT;
_paletteChanged = true;
_curDim = 0;
@@ -76,6 +83,8 @@ Screen::~Screen() {
delete _internFadePalette;
delete[] _decodeShapeBuffer;
delete[] _animBlockPtr;
+ delete[] _16bitPalette;
+ delete[] _16bitConversionPalette;
for (uint i = 0; i < _palettes.size(); ++i)
delete _palettes[i];
@@ -127,7 +136,17 @@ bool Screen::init() {
_sjisInvisibleColor = (_vm->game() == GI_KYRA1) ? 0x80 : 0xF6;
_sjisMixedFontMode = !_use16ColorMode;
- for (int i = 0; i < SCREEN_OVLS_NUM; ++i) {
+ if (!_sjisOverlayPtrs[0]) {
+ // We alway assume 2 bytes per pixel here when the backend is in hicolor mode, since this is the surface that is passed to the backend.
+ // We do this regardsless of the paramater sent to enableHiColorMode() so as not to have to change the backend color mode.
+ // Conversions from 8bit to 16bit have to take place when copying data to this surface here.
+ int bpp = _useHiColorScreen ? 2 : 1;
+ _sjisOverlayPtrs[0] = new uint8[SCREEN_OVL_SJIS_SIZE * bpp];
+ assert(_sjisOverlayPtrs[0]);
+ memset(_sjisOverlayPtrs[0], _sjisInvisibleColor, SCREEN_OVL_SJIS_SIZE * bpp);
+ }
+
+ for (int i = 1; i < SCREEN_OVLS_NUM; ++i) {
if (!_sjisOverlayPtrs[i]) {
_sjisOverlayPtrs[i] = new uint8[SCREEN_OVL_SJIS_SIZE];
assert(_sjisOverlayPtrs[i]);
@@ -147,27 +166,7 @@ bool Screen::init() {
_curPage = 0;
- Common::Array<uint8> realPages;
- for (int i = 0; i < SCREEN_PAGE_NUM; i++) {
- if (Common::find(realPages.begin(), realPages.end(), _pageMapping[i]) == realPages.end())
- realPages.push_back(_pageMapping[i]);
- }
-
- int numPages = realPages.size();
- uint32 bufferSize = numPages * SCREEN_PAGE_SIZE;
-
- uint8 *pagePtr = new uint8[bufferSize];
- memset(pagePtr, 0, bufferSize);
-
- memset(_pagePtrs, 0, sizeof(_pagePtrs));
- for (int i = 0; i < SCREEN_PAGE_NUM; i++) {
- if (_pagePtrs[_pageMapping[i]]) {
- _pagePtrs[i] = _pagePtrs[_pageMapping[i]];
- } else {
- _pagePtrs[i] = pagePtr;
- pagePtr += SCREEN_PAGE_SIZE;
- }
- }
+ enableHiColorMode(false);
memset(_shapePages, 0, sizeof(_shapePages));
@@ -223,6 +222,7 @@ bool Screen::init() {
_charOffset = 0;
for (int i = 0; i < ARRAYSIZE(_textColorsMap); ++i)
_textColorsMap[i] = i;
+ _textColorsMap16bit[0] = _textColorsMap16bit[1] = 0;
_decodeShapeBuffer = NULL;
_decodeShapeBufferSize = 0;
_animBlockPtr = NULL;
@@ -249,8 +249,9 @@ bool Screen::enableScreenDebug(bool enable) {
}
void Screen::setResolution() {
- byte palette[3*256];
- _system->getPaletteManager()->grabPalette(palette, 0, 256);
+ byte palette[3 * 256];
+ if (!_useHiColorScreen)
+ _system->getPaletteManager()->grabPalette(palette, 0, 256);
int width = 320, height = 200;
@@ -268,9 +269,49 @@ void Screen::setResolution() {
width = 320;
}
- initGraphics(width, height);
+ if (_useHiColorScreen) {
+ Graphics::PixelFormat px(2, 5, 5, 5, 0, 10, 5, 0, 0);
+ Common::List<Graphics::PixelFormat> tryModes = _system->getSupportedFormats();
+ for (Common::List<Graphics::PixelFormat>::iterator g = tryModes.begin(); g != tryModes.end(); ++g) {
+ if (g->bytesPerPixel != 2 || g->aBits()) {
+ g = tryModes.reverse_erase(g);
+ } else if (*g == px) {
+ tryModes.clear();
+ tryModes.push_back(px);
+ break;
+ }
+ }
+ initGraphics(width, height, tryModes);
+ if (_system->getScreenFormat().bytesPerPixel != 2)
+ error("Required graphics mode not supported by platform.");
+
+ } else {
+ initGraphics(width, height);
+ _system->getPaletteManager()->setPalette(palette, 0, 256);
+ }
+}
+
+void Screen::enableHiColorMode(bool enabled) {
+ if (_useHiColorScreen && enabled) {
+ if (!_16bitPalette)
+ _16bitPalette = new uint16[1024];
+ memset(_16bitPalette, 0, 1024 * sizeof(uint16));
+ delete[] _16bitConversionPalette;
+ _16bitConversionPalette = 0;
+ _bytesPerPixel = 2;
+ } else {
+ if (_useHiColorScreen) {
+ if (!_16bitConversionPalette)
+ _16bitConversionPalette = new uint16[256];
+ memset(_16bitConversionPalette, 0, 256 * sizeof(uint16));
+ }
+
+ delete[] _16bitPalette;
+ _16bitPalette = 0;
+ _bytesPerPixel = 1;
+ }
- _system->getPaletteManager()->setPalette(palette, 0, 256);
+ resetPagePtrsAndBuffers(SCREEN_PAGE_SIZE * _bytesPerPixel);
}
void Screen::updateScreen() {
@@ -386,22 +427,22 @@ void Screen::updateDirtyRectsOvl() {
if (_forceFullUpdate) {
const byte *src = getCPagePtr(0);
byte *dst = _sjisOverlayPtrs[0];
-
scale2x(dst, 640, src, SCREEN_W, SCREEN_W, SCREEN_H);
mergeOverlay(0, 0, 640, 400);
- _system->copyRectToScreen(dst, 640, 0, 0, 640, 400);
+ _system->copyRectToScreen(dst, _useHiColorScreen ? 1280 : 640, 0, 0, 640, 400);
} else {
const byte *page0 = getCPagePtr(0);
byte *ovl0 = _sjisOverlayPtrs[0];
+ int dstBpp = _useHiColorScreen ? 2 : 1;
Common::List<Common::Rect>::iterator it;
for (it = _dirtyRects.begin(); it != _dirtyRects.end(); ++it) {
- byte *dst = ovl0 + it->top * 1280 + (it->left<<1);
- const byte *src = page0 + it->top * SCREEN_W + it->left;
+ byte *dst = ovl0 + it->top * 1280 * dstBpp + (it->left << dstBpp);
+ const byte *src = page0 + it->top * SCREEN_W * _bytesPerPixel + it->left * _bytesPerPixel;
scale2x(dst, 640, src, SCREEN_W, it->width(), it->height());
mergeOverlay(it->left<<1, it->top<<1, it->width()<<1, it->height()<<1);
- _system->copyRectToScreen(dst, 640, it->left<<1, it->top<<1, it->width()<<1, it->height()<<1);
+ _system->copyRectToScreen(dst, _useHiColorScreen ? 1280 : 640, it->left << 1, it->top << 1, it->width() << 1, it->height() << 1);
}
}
@@ -410,18 +451,31 @@ void Screen::updateDirtyRectsOvl() {
}
void Screen::scale2x(byte *dst, int dstPitch, const byte *src, int srcPitch, int w, int h) {
+ int srcBpp = _bytesPerPixel;
+ int dstBpp = _useHiColorScreen ? 2 : 1;
+
byte *dstL1 = dst;
- byte *dstL2 = dst + dstPitch;
+ byte *dstL2 = dst + dstPitch * dstBpp;
- int dstAdd = dstPitch * 2 - w * 2;
- int srcAdd = srcPitch - w;
+ int dstAdd = (dstPitch * 2 - w * 2) * dstBpp;
+ int srcAdd = (srcPitch - w) * srcBpp;
+ int dstInc = 2 * dstBpp;
while (h--) {
- for (int x = 0; x < w; ++x, dstL1 += 2, dstL2 += 2) {
- uint16 col = *src++;
- col |= col << 8;
- *(uint16 *)(dstL1) = col;
- *(uint16 *)(dstL2) = col;
+ for (int x = 0; x < w; x++, src += srcBpp, dstL1 += dstInc, dstL2 += dstInc) {
+ if (dstBpp == 1) {
+ uint16 col = *src;
+ col |= col << 8;
+ *(uint16 *)(dstL1) = *(uint16 *)(dstL2) = col;
+ } else if (dstBpp == srcBpp) {
+ uint32 col = *(const uint16 *)src;
+ col |= col << 16;
+ *(uint32 *)(dstL1) = *(uint32 *)(dstL2) = col;
+ } else if (dstBpp == 2) {
+ uint32 col = _16bitConversionPalette[*src];
+ col |= col << 16;
+ *(uint32 *)(dstL1) = *(uint32 *)(dstL2) = col;
+ }
}
dstL1 += dstAdd; dstL2 += dstAdd;
src += srcAdd;
@@ -429,18 +483,24 @@ void Screen::scale2x(byte *dst, int dstPitch, const byte *src, int srcPitch, int
}
void Screen::mergeOverlay(int x, int y, int w, int h) {
- byte *dst = _sjisOverlayPtrs[0] + y * 640 + x;
+ int bpp = _useHiColorScreen ? 2 : 1;
+ byte *dst = _sjisOverlayPtrs[0] + y * 640 * bpp + x * bpp;
const byte *src = _sjisOverlayPtrs[1] + y * 640 + x;
+ uint16 *p16 = _16bitPalette ? _16bitPalette : (_16bitConversionPalette ? _16bitConversionPalette : 0);
int add = 640 - w;
while (h--) {
- for (x = 0; x < w; ++x, ++dst) {
+ for (x = 0; x < w; ++x, dst += bpp) {
byte col = *src++;
- if (col != _sjisInvisibleColor)
- *dst = col;
+ if (col != _sjisInvisibleColor) {
+ if (bpp == 2)
+ *(uint16*)dst = p16[col];
+ else
+ *dst = col;
+ }
}
- dst += add;
+ dst += add * bpp;
src += add;
}
}
@@ -468,6 +528,35 @@ void Screen::setScreenDim(int dim) {
_curDimIndex = dim;
}
+void Screen::resetPagePtrsAndBuffers(int pageSize) {
+ _screenPageSize = pageSize;
+
+ delete[] _pagePtrs[0];
+ memset(_pagePtrs, 0, sizeof(_pagePtrs));
+
+ Common::Array<uint8> realPages;
+ for (int i = 0; i < SCREEN_PAGE_NUM; i++) {
+ if (Common::find(realPages.begin(), realPages.end(), _pageMapping[i]) == realPages.end())
+ realPages.push_back(_pageMapping[i]);
+ }
+
+ int numPages = realPages.size();
+ uint32 bufferSize = numPages * _screenPageSize;
+
+ uint8 *pagePtr = new uint8[bufferSize];
+ memset(pagePtr, 0, bufferSize);
+
+ memset(_pagePtrs, 0, sizeof(_pagePtrs));
+ for (int i = 0; i < SCREEN_PAGE_NUM; i++) {
+ if (_pagePtrs[_pageMapping[i]]) {
+ _pagePtrs[i] = _pagePtrs[_pageMapping[i]];
+ } else {
+ _pagePtrs[i] = pagePtr;
+ pagePtr += _screenPageSize;
+ }
+ }
+}
+
uint8 *Screen::getPagePtr(int pageNum) {
assert(pageNum < SCREEN_PAGE_NUM);
return _pagePtrs[pageNum];
@@ -489,7 +578,7 @@ void Screen::clearPage(int pageNum) {
assert(pageNum < SCREEN_PAGE_NUM);
if (pageNum == 0 || pageNum == 1)
_forceFullUpdate = true;
- memset(getPagePtr(pageNum), 0, SCREEN_PAGE_SIZE);
+ memset(getPagePtr(pageNum), 0, _screenPageSize);
clearOverlayPage(pageNum);
}
@@ -503,7 +592,7 @@ int Screen::setCurPage(int pageNum) {
void Screen::clearCurPage() {
if (_curPage == 0 || _curPage == 1)
_forceFullUpdate = true;
- memset(getPagePtr(_curPage), 0, SCREEN_PAGE_SIZE);
+ memset(getPagePtr(_curPage), 0, _screenPageSize);
clearOverlayPage(_curPage);
}
@@ -670,9 +759,13 @@ void Screen::setPagePixel(int pageNum, int x, int y, uint8 color) {
color &= 0x03;
} else if (_renderMode == Common::kRenderEGA && !_useHiResEGADithering) {
color &= 0x0F;
+ }
+
+ if (_bytesPerPixel == 2) {
+ *(uint16*)(&_pagePtrs[pageNum][y * SCREEN_W * 2 + x * 2]) = _16bitPalette[color];
+ } else {
+ _pagePtrs[pageNum][y * SCREEN_W + x] = color;
}
-
- _pagePtrs[pageNum][y * SCREEN_W + x] = color;
}
void Screen::fadeFromBlack(int delay, const UpdateFunctor *upFunc) {
@@ -707,6 +800,8 @@ void Screen::fadePalette(const Palette &pal, int delay, const UpdateFunctor *upF
if (upFunc && upFunc->isValid())
(*upFunc)();
+ else if (_useHiColorScreen)
+ updateScreen();
else
_system->updateScreen();
@@ -821,6 +916,22 @@ void Screen::setScreenPalette(const Palette &pal) {
}
_paletteChanged = true;
+
+ if (_useHiColorScreen) {
+ if (_16bitPalette)
+ memcpy(_16bitPalette, pal.getData(), 512);
+
+ // Generate 16bit palette for the 8bit/16 bit conversion in scale2x()
+ if (_16bitConversionPalette) {
+ Graphics::PixelFormat pixelFormat = _system->getScreenFormat();
+ for (int i = 0; i < 256; ++i)
+ _16bitConversionPalette[i] = pixelFormat.RGBToColor(screenPal[i * 3], screenPal[i * 3 + 1], screenPal[i * 3 + 2]);
+ // The whole Surface has to be converted again after each palette chance
+ _forceFullUpdate = true;
+ }
+ return;
+ }
+
_system->getPaletteManager()->setPalette(screenPal, 0, pal.getNumColors());
}
@@ -908,8 +1019,8 @@ void Screen::copyRegion(int x1, int y1, int x2, int y2, int w, int h, int srcPag
h = SCREEN_H - y2;
}
- const uint8 *src = getPagePtr(srcPage) + y1 * SCREEN_W + x1;
- uint8 *dst = getPagePtr(dstPage) + y2 * SCREEN_W + x2;
+ const uint8 *src = getPagePtr(srcPage) + y1 * SCREEN_W * _bytesPerPixel + x1 * _bytesPerPixel;
+ uint8 *dst = getPagePtr(dstPage) + y2 * SCREEN_W * _bytesPerPixel + x2 * _bytesPerPixel;
if (src == dst)
return;
@@ -921,18 +1032,24 @@ void Screen::copyRegion(int x1, int y1, int x2, int y2, int w, int h, int srcPag
if (flags & CR_NO_P_CHECK) {
while (h--) {
- memmove(dst, src, w);
- src += SCREEN_W;
- dst += SCREEN_W;
+ memmove(dst, src, w * _bytesPerPixel);
+ src += SCREEN_W * _bytesPerPixel;
+ dst += SCREEN_W * _bytesPerPixel;
}
} else {
while (h--) {
for (int i = 0; i < w; ++i) {
- if (src[i])
- dst[i] = src[i];
+ if (_bytesPerPixel == 2) {
+ uint px = *(const uint16*)&src[i << 1];
+ if (px)
+ *(uint16*)&dst[i << 1] = px;
+ } else {
+ if (src[i])
+ dst[i] = src[i];
+ }
}
- src += SCREEN_W;
- dst += SCREEN_W;
+ src += SCREEN_W * _bytesPerPixel;
+ dst += SCREEN_W * _bytesPerPixel;
}
}
}
@@ -960,14 +1077,14 @@ void Screen::copyRegionToBuffer(int pageNum, int x, int y, int w, int h, uint8 *
uint8 *pagePtr = getPagePtr(pageNum);
for (int i = y; i < y + h; ++i)
- memcpy(dest + (i - y) * w, pagePtr + i * SCREEN_W + x, w);
+ memcpy(dest + (i - y) * w * _bytesPerPixel, pagePtr + i * SCREEN_W * _bytesPerPixel + x * _bytesPerPixel, w * _bytesPerPixel);
}
void Screen::copyPage(uint8 srcPage, uint8 dstPage) {
uint8 *src = getPagePtr(srcPage);
uint8 *dst = getPagePtr(dstPage);
if (src != dst)
- memcpy(dst, src, SCREEN_W * SCREEN_H);
+ memcpy(dst, src, SCREEN_W * SCREEN_H * _bytesPerPixel);
copyOverlayRegion(0, 0, 0, 0, SCREEN_W, SCREEN_H, srcPage, dstPage);
if (dstPage == 0 || dstPage == 1)
@@ -994,7 +1111,7 @@ void Screen::copyBlockToPage(int pageNum, int x, int y, int w, int h, const uint
if (w < 0 || h < 0)
return;
- uint8 *dst = getPagePtr(pageNum) + y * SCREEN_W + x;
+ uint8 *dst = getPagePtr(pageNum) + y * SCREEN_W * _bytesPerPixel + x * _bytesPerPixel;
if (pageNum == 0 || pageNum == 1)
addDirtyRect(x, y, w, h);
@@ -1002,9 +1119,9 @@ void Screen::copyBlockToPage(int pageNum, int x, int y, int w, int h, const uint
clearOverlayRect(pageNum, x, y, w, h);
while (h--) {
- memcpy(dst, src, w);
- dst += SCREEN_W;
- src += w;
+ memcpy(dst, src, w * _bytesPerPixel);
+ dst += SCREEN_W * _bytesPerPixel;
+ src += w * _bytesPerPixel;
}
}
@@ -1066,10 +1183,11 @@ void Screen::shuffleScreen(int sx, int sy, int w, int h, int srcPage, int dstPag
void Screen::fillRect(int x1, int y1, int x2, int y2, uint8 color, int pageNum, bool xored) {
assert(x2 < SCREEN_W && y2 < SCREEN_H);
+ uint16 color16 = 0;
if (pageNum == -1)
pageNum = _curPage;
- uint8 *dst = getPagePtr(pageNum) + y1 * SCREEN_W + x1;
+ uint8 *dst = getPagePtr(pageNum) + y1 * SCREEN_W * _bytesPerPixel + x1 * _bytesPerPixel;
if (pageNum == 0 || pageNum == 1)
addDirtyRect(x1, y1, x2-x1+1, y2-y1+1);
@@ -1083,9 +1201,11 @@ void Screen::fillRect(int x1, int y1, int x2, int y2, uint8 color, int pageNum,
color &= 0x03;
} else if (_renderMode == Common::kRenderEGA && !_useHiResEGADithering) {
color &= 0x0F;
- }
+ } else if (_bytesPerPixel == 2)
+ color16 = shade16bitColor(_16bitPalette[color]);
if (xored) {
+ // no 16 bit support for this (unneeded)
for (; y1 <= y2; ++y1) {
for (int x = x1; x <= x2; ++x)
dst[x] ^= color;
@@ -1093,8 +1213,14 @@ void Screen::fillRect(int x1, int y1, int x2, int y2, uint8 color, int pageNum,
}
} else {
for (; y1 <= y2; ++y1) {
- memset(dst, color, x2 - x1 + 1);
- dst += SCREEN_W;
+ if (_bytesPerPixel == 2) {
+ uint16 *ptr = (uint16*)dst;
+ for (int i = 0; i < x2 - x1 + 1; i++)
+ *ptr++ = color16;
+ } else {
+ memset(dst, color, x2 - x1 + 1);
+ }
+ dst += SCREEN_W * _bytesPerPixel;
}
}
}
@@ -1151,7 +1277,7 @@ void Screen::drawClippedLine(int x1, int y1, int x2, int y2, int color) {
}
void Screen::drawLine(bool vertical, int x, int y, int length, int color) {
- uint8 *ptr = getPagePtr(_curPage) + y * SCREEN_W + x;
+ uint8 *ptr = getPagePtr(_curPage) + y * SCREEN_W * _bytesPerPixel + x * _bytesPerPixel;
if (_use16ColorMode) {
color &= 0x0F;
@@ -1160,19 +1286,30 @@ void Screen::drawLine(bool vertical, int x, int y, int length, int color) {
color &= 0x03;
} else if (_renderMode == Common::kRenderEGA && !_useHiResEGADithering) {
color &= 0x0F;
- }
+ } else if (_bytesPerPixel == 2)
+ color = shade16bitColor(_16bitPalette[color]);
if (vertical) {
assert((y + length) <= SCREEN_H);
int currLine = 0;
while (currLine < length) {
- *ptr = color;
- ptr += SCREEN_W;
+ if (_bytesPerPixel == 2)
+ *(uint16*)ptr = color;
+ else
+ *ptr = color;
+ ptr += SCREEN_W * _bytesPerPixel;
currLine++;
}
} else {
assert((x + length) <= SCREEN_W);
- memset(ptr, color, length);
+ if (_bytesPerPixel == 2) {
+ for (int i = 0; i < length; i++) {
+ *(uint16*)ptr = color;
+ ptr += 2;
+ }
+ } else {
+ memset(ptr, color, length);
+ }
}
if (_curPage == 0 || _curPage == 1)
@@ -1189,14 +1326,25 @@ void Screen::setAnimBlockPtr(int size) {
_animBlockSize = size;
}
-void Screen::setTextColor(const uint8 *cmap, int a, int b) {
- memcpy(&_textColorsMap[a], cmap, b-a+1);
+void Screen::setTextColor(const uint8 *cmap8, int a, int b) {
+ memcpy(&_textColorsMap[a], cmap8, (b - a + 1));
+ // We need to update the color tables of all fonts, we
+ // setup so far here.
+ for (int i = 0; i < FID_NUM; ++i) {
+ if (_fonts[i])
+ _fonts[i]->setColorMap(_textColorsMap);
+ }
+}
+void Screen::setTextColor16bit(const uint16 *cmap16) {
+ assert(cmap16);
+ _textColorsMap16bit[0] = cmap16[0];
+ _textColorsMap16bit[1] = cmap16[1];
// We need to update the color tables of all fonts, we
// setup so far here.
for (int i = 0; i < FID_NUM; ++i) {
if (_fonts[i])
- _fonts[i]->setColorMap(_textColorsMap);
+ _fonts[i]->set16bitColorMap(_textColorsMap16bit);
}
}
@@ -1281,10 +1429,17 @@ int Screen::getTextWidth(const char *str) {
}
void Screen::printText(const char *str, int x, int y, uint8 color1, uint8 color2) {
- uint8 cmap[2];
- cmap[0] = color2;
- cmap[1] = color1;
- setTextColor(cmap, 0, 1);
+ uint16 cmap16[2];
+ if (_16bitPalette) {
+ cmap16[0] = color2 ? shade16bitColor(_16bitPalette[color2]) : 0xFFFF;
+ cmap16[1] = _16bitPalette[color1];
+ setTextColor16bit(cmap16);
+ }
+
+ uint8 cmap8[2];
+ cmap8[0] = color2;
+ cmap8[1] = color1;
+ setTextColor(cmap8, 0, 1);
FontId curFont = _currentFont;
@@ -1360,11 +1515,12 @@ void Screen::drawChar(uint16 c, int x, int y) {
return;
}
- destPage += (y * 2) * 640 + (x * 2);
+ int bpp = (_currentFont == Screen::FID_SJIS_FNT) ? 1 : 2;
+ destPage += (y * 2) * 640 * bpp + (x * 2 * bpp);
- fnt->drawChar(c, destPage, 640);
+ fnt->drawChar(c, destPage, 640, bpp);
} else {
- fnt->drawChar(c, getPagePtr(_curPage) + y * SCREEN_W + x, SCREEN_W);
+ fnt->drawChar(c, getPagePtr(_curPage) + y * SCREEN_W * _bytesPerPixel + x * _bytesPerPixel, SCREEN_W, _bytesPerPixel);
}
if (_curPage == 0 || _curPage == 1)
@@ -2846,6 +3002,18 @@ int16 Screen::encodeShapeAndCalculateSize(uint8 *from, uint8 *to, int size_to) {
return (to - toPtr);
}
+uint16 Screen::shade16bitColor(uint16 col) {
+ uint8 r = (col & 0x1f);
+ uint8 g = (col & 0x3E0) >> 5;
+ uint8 b = (col & 0x7C00) >> 10;
+
+ r = (r > _16bitShadingLevel) ? r - _16bitShadingLevel : 0;
+ g = (g > _16bitShadingLevel) ? g - _16bitShadingLevel : 0;
+ b = (b > _16bitShadingLevel) ? b - _16bitShadingLevel : 0;
+
+ return (b << 10) | (g << 5) | r;
+}
+
void Screen::hideMouse() {
++_mouseLockCount;
CursorMan.showMouse(false);
@@ -3072,7 +3240,7 @@ void Screen::loadBitmap(const char *filename, int tempPage, int dstPage, Palette
uint8 *srcPtr = srcData + 10 + palSize;
uint8 *dstData = getPagePtr(dstPage);
- memset(dstData, 0, SCREEN_PAGE_SIZE);
+ memset(dstData, 0, _screenPageSize);
if (dstPage == 0 || tempPage == 0)
_forceFullUpdate = true;
@@ -3117,7 +3285,7 @@ bool Screen::loadPalette(const char *filename, Palette &pal) {
debugC(3, kDebugLevelScreen, "Screen::loadPalette('%s', %p)", filename, (const void *)&pal);
- const int maxCols = pal.getNumColors();
+ const int maxCols = _16bitPalette ? 256 : pal.getNumColors();
int numCols = 0;
if (_isAmiga) {
@@ -3133,8 +3301,15 @@ bool Screen::loadPalette(const char *filename, Palette &pal) {
numCols /= Palette::kVGABytesPerColor;
pal.loadVGAPalette(*stream, 0, numCols);
} else {
- numCols = stream->size() / Palette::kVGABytesPerColor;
- pal.loadVGAPalette(*stream, 0, MIN(maxCols, numCols));
+ if (_bytesPerPixel == 2) {
+ numCols = stream->size() / 2;
+ pal.loadHiColorPalette(*stream, 0, numCols);
+ } else if (!_16bitPalette) {
+ numCols = stream->size() / Palette::kVGABytesPerColor;
+ pal.loadVGAPalette(*stream, 0, MIN(maxCols, numCols));
+ } else {
+ error("Screen::loadPalette(): Failed to load file '%s' with invalid size %d in HiColor mode", filename, stream->size());
+ }
}
if (numCols > maxCols)
@@ -3407,7 +3582,7 @@ int DOSFont::getCharWidth(uint16 c) const {
return _widthTable[c];
}
-void DOSFont::drawChar(uint16 c, byte *dst, int pitch) const {
+void DOSFont::drawChar(uint16 c, byte *dst, int pitch, int) const {
if (c >= _numGlyphs)
return;
@@ -3549,7 +3724,7 @@ int AMIGAFont::getCharWidth(uint16 c) const {
return _chars[c].width;
}
-void AMIGAFont::drawChar(uint16 c, byte *dst, int pitch) const {
+void AMIGAFont::drawChar(uint16 c, byte *dst, int pitch, int) const {
if (c >= 255)
return;
@@ -3624,7 +3799,7 @@ void SJISFont::setColorMap(const uint8 *src) {
}
}
-void SJISFont::drawChar(uint16 c, byte *dst, int pitch) const {
+void SJISFont::drawChar(uint16 c, byte *dst, int pitch, int) const {
uint8 color1, color2;
if (_is16Color) {
@@ -3672,6 +3847,19 @@ void Palette::loadVGAPalette(Common::ReadStream &stream, int startIndex, int col
*pos++ = stream.readByte() & 0x3F;
}
+void Palette::loadHiColorPalette(Common::ReadStream &stream, int startIndex, int colors) {
+ uint16 *pos = (uint16*)(_palData + startIndex * 2);
+
+ Graphics::PixelFormat currentFormat = g_system->getScreenFormat();
+ Graphics::PixelFormat originalFormat(2, 5, 5, 5, 0, 5, 10, 0, 0);
+
+ for (int i = 0; i < colors; i++) {
+ uint8 r, g, b;
+ originalFormat.colorToRGB(stream.readUint16LE(), r, g, b);
+ *pos++ = currentFormat.RGBToColor(r, g, b);
+ }
+}
+
void Palette::loadEGAPalette(Common::ReadStream &stream, int startIndex, int colors) {
assert(startIndex + colors <= 16);
diff --git a/engines/kyra/screen.h b/engines/kyra/screen.h
index 0b287aa..bac93ae 100644
--- a/engines/kyra/screen.h
+++ b/engines/kyra/screen.h
@@ -94,6 +94,11 @@ public:
virtual void setColorMap(const uint8 *src) = 0;
/**
+ * Sets a text 16bit palette map. Only used in in EOB II FM-Towns. The map contains 2 entries.
+ */
+ virtual void set16bitColorMap(const uint16 *src) {}
+
+ /**
* Draws a specific character.
*
* TODO/FIXME: Replace this with a nicer API. Currently
@@ -101,7 +106,7 @@ public:
* We use this API, since it's hard to assure dirty rect
* handling from outside Screen.
*/
- virtual void drawChar(uint16 c, byte *dst, int pitch) const = 0;
+ virtual void drawChar(uint16 c, byte *dst, int pitch, int bpp) const = 0;
};
/**
@@ -120,7 +125,7 @@ public:
int getWidth() const { return _width; }
int getCharWidth(uint16 c) const;
void setColorMap(const uint8 *src) { _colorMap = src; }
- void drawChar(uint16 c, byte *dst, int pitch) const;
+ void drawChar(uint16 c, byte *dst, int pitch, int) const;
private:
void unload();
@@ -153,8 +158,9 @@ public:
int getHeight() const { return _height; }
int getWidth() const { return _width; }
int getCharWidth(uint16 c) const;
- void setColorMap(const uint8 *src) { _colorMap = src; }
- void drawChar(uint16 c, byte *dst, int pitch) const;
+ void setColorMap(const uint8 *src) { _colorMap8bit = src; }
+ void set16bitColorMap(const uint16 *src) { _colorMap16bit = src; }
+ void drawChar(uint16 c, byte *dst, int pitch, int bpp) const;
private:
void unload();
@@ -163,7 +169,8 @@ private:
uint16 *_bitmapOffsets;
int _width, _height;
- const uint8 *_colorMap;
+ const uint8 *_colorMap8bit;
+ const uint16 *_colorMap16bit;
int _numGlyphs;
@@ -187,7 +194,7 @@ public:
int getWidth() const { return _width; }
int getCharWidth(uint16 c) const;
void setColorMap(const uint8 *src) {}
- void drawChar(uint16 c, byte *dst, int pitch) const;
+ void drawChar(uint16 c, byte *dst, int pitch, int) const;
private:
void unload();
@@ -221,7 +228,7 @@ public:
int getWidth() const;
int getCharWidth(uint16 c) const;
void setColorMap(const uint8 *src);
- virtual void drawChar(uint16 c, byte *dst, int pitch) const;
+ virtual void drawChar(uint16 c, byte *dst, int pitch, int) const;
protected:
void unload();
@@ -276,6 +283,11 @@ public:
void loadVGAPalette(Common::ReadStream &stream, int startIndex, int colors);
/**
+ * Load a HiColor palette from the given stream.
+ */
+ void loadHiColorPalette(Common::ReadStream &stream, int startIndex, int colors);
+
+ /**
* Load a EGA palette from the given stream.
*/
void loadEGAPalette(Common::ReadStream &stream, int startIndex, int colors);
@@ -423,6 +435,7 @@ public:
// init
virtual bool init();
virtual void setResolution();
+ virtual void enableHiColorMode(bool enabled);
void updateScreen();
@@ -499,6 +512,7 @@ public:
virtual void setTextColorMap(const uint8 *cmap) = 0;
void setTextColor(const uint8 *cmap, int a, int b);
+ void setTextColor16bit(const uint16 *cmap16);
const ScreenDim *getScreenDim(int dim) const;
void modifyScreenDim(int dim, int x, int y, int w, int h);
@@ -570,7 +584,10 @@ public:
// RPG specific, this does not belong here
void crossFadeRegion(int x1, int y1, int x2, int y2, int w, int h, int srcPage, int dstPage);
+ void set16bitShadingLevel(int lvl) { _16bitShadingLevel = lvl; }
+
protected:
+ void resetPagePtrsAndBuffers(int pageSize);
uint8 *getPagePtr(int pageNum);
virtual void updateDirtyRects();
void updateDirtyRectsAmiga();
@@ -602,8 +619,11 @@ protected:
bool _useSJIS;
bool _use16ColorMode;
bool _useHiResEGADithering;
+ bool _useHiColorScreen;
bool _isAmiga;
Common::RenderMode _renderMode;
+ int _bytesPerPixel;
+ int _screenPageSize;
uint8 _sjisInvisibleColor;
bool _sjisMixedFontMode;
@@ -612,8 +632,15 @@ protected:
Common::Array<Palette *> _palettes;
Palette *_internFadePalette;
+ uint16 shade16bitColor(uint16 col);
+
+ uint16 *_16bitPalette;
+ uint16 *_16bitConversionPalette;
+ uint8 _16bitShadingLevel;
+
Font *_fonts[FID_NUM];
uint8 _textColorsMap[16];
+ uint16 _textColorsMap16bit[2];
uint8 *_decodeShapeBuffer;
int _decodeShapeBufferSize;
diff --git a/engines/kyra/screen_eob.cpp b/engines/kyra/screen_eob.cpp
index 6553ffa..88c53fd 100644
--- a/engines/kyra/screen_eob.cpp
+++ b/engines/kyra/screen_eob.cpp
@@ -46,6 +46,7 @@ Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system,
_gfxX = _gfxY = 0;
_gfxCol = 0;
_dsTempPage = 0;
+ _convertHiColorBuffer = 0;
_dsDiv = 0;
_dsRem = 0;
_dsScaleTrans = 0;
@@ -60,6 +61,7 @@ Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system,
Screen_EoB::~Screen_EoB() {
delete[] _dsTempPage;
+ delete[] _convertHiColorBuffer;
delete[] _cgaScaleTable;
delete[] _egaDitheringTable;
delete[] _egaDitheringTempPage;
@@ -74,6 +76,9 @@ bool Screen_EoB::init() {
_dsTempPage = new uint8[12000];
+ if (_vm->gameFlags().platform == Common::kPlatformFMTowns) {
+ _convertHiColorBuffer = new uint8[SCREEN_H * SCREEN_W];
+ }
if (_vm->gameFlags().useHiRes && _renderMode == Common::kRenderEGA) {
_useHiResEGADithering = true;
_egaDitheringTable = new uint8[256];
@@ -120,11 +125,12 @@ void Screen_EoB::setMouseCursor(int x, int y, const byte *shape, const uint8 *ov
int colorKey = (_renderMode == Common::kRenderCGA) ? 0 : _cursorColorKey;
int scaleFactor = _useHiResEGADithering ? 2 : 1;
+ int bpp = _useHiColorScreen ? 2 : 1;
- uint8 *cursor = new uint8[mouseW * scaleFactor * mouseH * scaleFactor];
+ uint8 *cursor = new uint8[mouseW * scaleFactor * bpp * mouseH * scaleFactor];
// We use memset and copyBlockToPage instead of fillRect to make sure that the
// color key 0xFF doesn't get converted into EGA color
- memset(cursor, colorKey, mouseW * scaleFactor * mouseH * scaleFactor);
+ memset(cursor, colorKey, mouseW * scaleFactor * bpp * mouseH * scaleFactor);
copyBlockToPage(6, 0, 0, mouseW * scaleFactor, mouseH * scaleFactor, cursor);
drawShape(6, shape, 0, 0, 0, 2, ovl);
CursorMan.showMouse(false);
@@ -156,8 +162,13 @@ void Screen_EoB::setMouseCursor(int x, int y, const byte *shape, const uint8 *ov
}
}
}
+
+ // Convert color key to 16 bit after drawing the mouse cursor.
+ // The cursor has been converted to 16 bit in scale2x().
+ colorKey = _16bitConversionPalette ? _16bitConversionPalette[colorKey] : colorKey;
+ Graphics::PixelFormat pixelFormat = _system->getScreenFormat();
- CursorMan.replaceCursor(cursor, mouseW * scaleFactor, mouseH * scaleFactor, x, y, colorKey);
+ CursorMan.replaceCursor(cursor, mouseW * scaleFactor, mouseH * scaleFactor, x, y, colorKey, false, &pixelFormat);
if (isMouseVisible())
CursorMan.showMouse(true);
delete[] cursor;
@@ -217,9 +228,13 @@ void Screen_EoB::loadEoBBitmap(const char *file, const uint8 *cgaMapping, int te
}
}
- if (convertToPage == -1) {
+ if (convertToPage == -1)
return;
- } else if (convertToPage == 2 && _renderMode == Common::kRenderCGA) {
+
+ if (_16bitPalette)
+ convertToHiColor(destPage);
+
+ if (convertToPage == 2 && _renderMode == Common::kRenderCGA) {
convertPage(destPage, 4, cgaMapping);
copyRegion(0, 0, 0, 0, 320, 200, 4, 2, Screen::CR_NO_P_CHECK);
} else if (convertToPage == 0) {
@@ -262,7 +277,10 @@ void Screen_EoB::convertPage(int srcPage, int dstPage, const uint8 *cgaMapping)
}
void Screen_EoB::setScreenPalette(const Palette &pal) {
- if (_useHiResEGADithering && pal.getNumColors() != 16) {
+ if (_bytesPerPixel == 2) {
+ for (int i = 0; i < 4; i++)
+ createFadeTable16bit((const uint16*)(pal.getData()), &_16bitPalette[i * 256], 0, i * 53);
+ }else if (_useHiResEGADithering && pal.getNumColors() != 16) {
generateEGADitheringTable(pal);
} else if (_renderMode == Common::kRenderEGA && pal.getNumColors() == 16) {
_screenPalette->copy(pal);
@@ -297,7 +315,26 @@ uint8 *Screen_EoB::encodeShape(uint16 x, uint16 y, uint16 w, uint16 h, bool enco
if (_renderMode == Common::kRenderEGA && !_useHiResEGADithering)
encode8bit = false;
- if (_renderMode == Common::kRenderCGA) {
+ if (_bytesPerPixel == 2) {
+ shapesize = h * (w << 3) + 4;
+ shp = new uint8[shapesize];
+ memset(shp, 0, shapesize);
+ uint8 *dst = shp;
+
+ *dst++ = 0;
+ *dst++ = (h & 0xFF);
+ *dst++ = (w & 0xFF);
+ *dst++ = (h & 0xFF);
+
+ w <<= 3;
+
+ for (int i = 0; i < h; ++i) {
+ memcpy(dst, src, w);
+ srcLineStart += SCREEN_W;
+ src = srcLineStart;
+ dst += w;
+ }
+ } else if (_renderMode == Common::kRenderCGA) {
if (cgaMapping)
generateCGADitheringTables(cgaMapping);
shapesize = h * (w << 2) + 4;
@@ -485,7 +522,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
}
va_end(args);
- dst += (_dsX1 << 3);
+ dst += (_dsX1 << (2 + _bytesPerPixel));
int16 dX = x - (_dsX1 << 3);
int16 dY = y;
int16 dW = _dsX2 - _dsX1;
@@ -506,7 +543,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
int pixelStep = (flags & 1) ? -1 : 1;
- if (pixelsPerByte == 1) {
+ if (pixelsPerByte < 2) {
uint16 marginLeft = 0;
uint16 marginRight = 0;
@@ -557,7 +594,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
marginRight = w2 - marginLeft - width;
}
- dst += (dY * SCREEN_W + dX);
+ dst += (dY * SCREEN_W * _bytesPerPixel + dX * _bytesPerPixel);
uint8 *dstL = dst;
if (pageNum == 0 || pageNum == 1)
@@ -567,36 +604,45 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
int16 xpos = (int16) marginLeft;
if (flags & 1) {
- for (int i = 0; i < w2; i++) {
- if (*src++ == 0) {
- i += (*src - 1);
- src += (*src - 1);
+ if (pixelsPerByte == 1) {
+ for (int i = 0; i < w2; i++) {
+ if (*src++ == 0) {
+ i += (*src - 1);
+ src += (*src - 1);
+ }
}
+ } else {
+ src += w2;
}
src--;
}
const uint8 *src2 = src;
if (xpos) {
- do {
- uint8 val = (flags & 1) ? *(src - 1) : *src;
- while (val && xpos) {
- src += pixelStep;
- xpos--;
- val = (flags & 1) ? *(src - 1) : *src;
- }
+ if (pixelsPerByte == 1) {
+ do {
+ uint8 val = (flags & 1) ? *(src - 1) : *src;
+ while (val && xpos) {
+ src += pixelStep;
+ xpos--;
+ val = (flags & 1) ? *(src - 1) : *src;
+ }
- val = (flags & 1) ? *(src - 1) : *src;
- if (!val) {
- src += pixelStep;
- uint8 bt = (flags & 1) ? src[1] : src[0];
- src += pixelStep;
- xpos = xpos - bt;
- }
- } while (xpos > 0);
+ val = (flags & 1) ? *(src - 1) : *src;
+ if (!val) {
+ src += pixelStep;
+ uint8 bt = (flags & 1) ? src[1] : src[0];
+ src += pixelStep;
+ xpos = xpos - bt;
+ }
+ } while (xpos > 0);
+ } else {
+ src += (xpos * pixelStep);
+ xpos = 0;
+ }
}
- dst -= xpos;
+ dst -= xpos * _bytesPerPixel;
xpos += width;
while (xpos > 0) {
@@ -606,37 +652,45 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
if (m) {
drawShapeSetPixel(dst, c);
- dst++;
+ dst += _bytesPerPixel;
xpos--;
- } else {
+ } else if (pixelsPerByte) {
uint8 len = (flags & 1) ? src[1] : src[0];
- dst += len;
+ dst += len * _bytesPerPixel;
xpos -= len;
src += pixelStep;
+ } else {
+ dst += _bytesPerPixel;
+ xpos--;
}
}
xpos += marginRight;
if (xpos) {
do {
- uint8 val = (flags & 1) ? *(src - 1) : *src;
- while (val && xpos) {
- src += pixelStep;
- xpos--;
- val = (flags & 1) ? *(src - 1) : *src;
- }
+ if (pixelsPerByte == 1) {
+ uint8 val = (flags & 1) ? *(src - 1) : *src;
+ while (val && xpos) {
+ src += pixelStep;
+ xpos--;
+ val = (flags & 1) ? *(src - 1) : *src;
+ }
- val = (flags & 1) ? *(src - 1) : *src;
- if (!val) {
- src += pixelStep;
- uint8 bt = (flags & 1) ? src[1] : src[0];
- src += pixelStep;
- xpos = xpos - bt;
+ val = (flags & 1) ? *(src - 1) : *src;
+ if (!val) {
+ src += pixelStep;
+ uint8 bt = (flags & 1) ? src[1] : src[0];
+ src += pixelStep;
+ xpos = xpos - bt;
+ }
+ } else {
+ src += (xpos * pixelStep);
+ xpos = 0;
}
} while (xpos > 0);
}
- dstL += SCREEN_W;
+ dstL += SCREEN_W * _bytesPerPixel;
dst = dstL;
if (flags & 1)
src = src2 + 1;
@@ -704,7 +758,7 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
if (d < width)
width = d;
- dst += (dY * SCREEN_W + dX);
+ dst += (dY * SCREEN_W * _bytesPerPixel + dX * _bytesPerPixel);
if (pageNum == 0 || pageNum == 1)
addDirtyRect(rX, rY, rW, rH);
@@ -753,11 +807,11 @@ void Screen_EoB::drawShape(uint8 pageNum, const uint8 *shapeData, int x, int y,
uint8 col = (pixelsPerByte == 2) ? pal[(in >> shift) & pixelPackingMask] : (*dst & ((trans >> shift) & (pixelPackingMask))) | pal[(in >> shift) & pixelPackingMask];
if (col || pixelsPerByte == 4)
drawShapeSetPixel(dst, col);
- dst++;
+ dst += _bytesPerPixel;
shift = ((shift - (pixelStep * pixelPacking)) & 7);
}
src += lineSrcStep;
- dst += pitch;
+ dst += (pitch * _bytesPerPixel);
}
}
}
@@ -1167,11 +1221,11 @@ void Screen_EoB::setFadeTable(const uint8 *table) {
_dsShapeFadingTable = table;
}
-void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight) {
+void Screen_EoB::createFadeTable(const uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight) {
if (!palData)
return;
- uint8 *src = palData + 3 * rootColor;
+ const uint8 *src = palData + 3 * rootColor;
uint8 r = *src++;
uint8 g = *src++;
uint8 b = *src;
@@ -1189,7 +1243,7 @@ void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, ui
tmp = (uint16)((*src - b) * weight) << 1;
tb = *src++ - ((tmp >> 8) & 0xFF);
- uint8 *d = palData + 3;
+ const uint8 *d = palData + 3;
uint16 v = 0xFFFF;
uint8 col = rootColor;
@@ -1210,6 +1264,65 @@ void Screen_EoB::createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, ui
}
}
+void Screen_EoB::createFadeTable16bit(const uint16 *palData, uint16 *dst, uint16 rootColor, uint8 weight) {
+ uint8 r8 = (rootColor & 0x1f);
+ uint8 g8 = (rootColor & 0x3E0) >> 5;
+ uint8 b8 = (rootColor & 0x7C00) >> 10;
+
+ int root_r = r8 << 4;
+ int root_g = g8 << 4;
+ int root_b = b8 << 4;
+
+ *dst++ = palData[0];
+
+ for (uint8 i = 1; i; i++) {
+ r8 = (palData[i] & 0x1f);
+ g8 = (palData[i] & 0x3E0) >> 5;
+ b8 = (palData[i] & 0x7C00) >> 10;
+
+ int red = r8 << 4;
+ int green = g8 << 4;
+ int blue = b8 << 4;
+
+ if (red > root_r) {
+ red -= weight;
+ if (root_r > red)
+ red = root_r;
+ } else {
+ red += weight;
+ if (root_r < red)
+ red = root_r;
+ }
+
+ if (green > root_g) {
+ green -= weight;
+ if (root_g > green)
+ green = root_g;
+ } else {
+ green += weight;
+ if (root_g < green)
+ green = root_g;
+ }
+
+ if (blue > root_b) {
+ blue -= weight;
+ if (root_b > blue)
+ blue = root_b;
+ } else {
+ blue += weight;
+ if (root_b < blue)
+ blue = root_b;
+ }
+
+ r8 = red >> 4;
+ g8 = green >> 4;
+ b8 = blue >> 4;
+
+ *dst++ = (b8 << 10) | (g8 << 5) | r8;
+ }
+
+}
+
const uint16 *Screen_EoB::getCGADitheringTable(int index) {
return !(index & ~1) ? _cgaDitheringTables[index] : 0;
}
@@ -1218,6 +1331,40 @@ const uint8 *Screen_EoB::getEGADitheringTable() {
return _egaDitheringTable;
}
+void Screen_EoB::convertToHiColor(int page) {
+ if (!_16bitPalette)
+ return;
+ uint16 *dst = (uint16 *)getCPagePtr(page);
+ memcpy(_convertHiColorBuffer, dst, SCREEN_H * SCREEN_W);
+ uint8 *src = _convertHiColorBuffer;
+ for (int s = SCREEN_H * SCREEN_W; s; --s)
+ *dst++ = _16bitPalette[*src++];
+}
+
+void Screen_EoB::shadeRect(int x1, int y1, int x2, int y2, int shadingLevel) {
+ if (!_16bitPalette)
+ return;
+
+ int l = _16bitShadingLevel;
+ _16bitShadingLevel = shadingLevel;
+
+ if (_curPage == 0 || _curPage == 1)
+ addDirtyRect(x1, y1, x2 - x1 + 1, y2 - y1 + 1);
+
+ uint16 *dst = (uint16*)(getPagePtr(_curPage) + y1 * SCREEN_W * _bytesPerPixel + x1 * _bytesPerPixel);
+
+ for (; y1 < y2; ++y1) {
+ uint16 *ptr = dst;
+ for (int i = 0; i < x2 - x1; i++) {
+ *ptr = shade16bitColor(*ptr);
+ ptr++;
+ }
+ dst += SCREEN_W;
+ }
+
+ _16bitShadingLevel = l;
+}
+
void Screen_EoB::updateDirtyRects() {
if (!_useHiResEGADithering) {
Screen::updateDirtyRects();
@@ -1260,7 +1407,10 @@ void Screen_EoB::ditherRect(const uint8 *src, uint8 *dst, int dstPitch, int srcW
}
void Screen_EoB::drawShapeSetPixel(uint8 *dst, uint8 col) {
- if ((_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA) || _useHiResEGADithering) {
+ if (_bytesPerPixel == 2) {
+ *(uint16*)dst = _16bitPalette[(_dsShapeFadingLevel << 8) + col];
+ return;
+ } else if ((_renderMode != Common::kRenderCGA && _renderMode != Common::kRenderEGA) || _useHiResEGADithering) {
if (_dsBackgroundFading) {
if (_dsShapeFadingLevel) {
col = *dst;
@@ -1485,7 +1635,7 @@ int OldDOSFont::getCharWidth(uint16 c) const {
return _width;
}
-void OldDOSFont::drawChar(uint16 c, byte *dst, int pitch) const {
+void OldDOSFont::drawChar(uint16 c, byte *dst, int pitch, int bpp) const {
static const uint8 renderMaskTable6[] = { 0xFC, 0x00, 0x7E, 0x00, 0x3F, 0x00, 0x1F, 0x80, 0x0F, 0xC0, 0x07, 0xE0, 0x03, 0xF0, 0x01, 0xF8 };
static const uint8 renderMaskTable8[] = { 0xFF, 0x00, 0x7F, 0x80, 0x3F, 0xC0, 0x1F, 0xE0, 0x0F, 0xF0, 0x07, 0xF8, 0x03, 0xFC, 0x01, 0xFE };
@@ -1536,24 +1686,28 @@ void OldDOSFont::drawChar(uint16 c, byte *dst, int pitch) const {
}
}
+ pitch *= bpp;
const uint8 *src = &_data[_bitmapOffsets[c]];
uint8 *dst2 = dst + pitch;
int w = (_width - 1) >> 3;
- pitch -= _width;
+ pitch -= _width * bpp;
- uint8 color1 = _colorMap[1];
- uint8 color2 = _colorMap[0];
+ uint16 color1 = _colorMap8bit[1];
+ uint16 color2 = _colorMap8bit[0];
- static const uint16 cgaColorMask[] = { 0, 0x5555, 0xAAAA, 0xFFFF };
- uint16 cgaMask1 = cgaColorMask[color1 & 3];
- uint16 cgaMask2 = cgaColorMask[color2 & 3];
-
- if (_renderMode == Common::kRenderCGA || _renderMode == Common::kRenderEGA) {
+ if (bpp == 2) {
+ color1 = _colorMap16bit[1];
+ color2 = _colorMap16bit[0];
+ } else if (_renderMode == Common::kRenderCGA || _renderMode == Common::kRenderEGA) {
color1 &= 0x0F;
color2 &= 0x0F;
}
+ static const uint16 cgaColorMask[] = { 0, 0x5555, 0xAAAA, 0xFFFF };
+ uint16 cgaMask1 = cgaColorMask[color1 & 3];
+ uint16 cgaMask2 = cgaColorMask[color2 & 3];
+
int cH = _height;
while (cH--) {
int cW = w;
@@ -1607,12 +1761,19 @@ void OldDOSFont::drawChar(uint16 c, byte *dst, int pitch) const {
}
if (s & i) {
- if (color1)
+ if (bpp == 2)
+ *(uint16*)dst = color1;
+ else if (color1)
*dst = color1;
- } else if (color2) {
- *dst = color2;
+ } else {
+ if (bpp == 2) {
+ if (color2 != 0xFFFF)
+ *(uint16*)dst = color2;
+ } else if (color2) {
+ *dst = color2;
+ }
}
- dst++;
+ dst += bpp;
}
if (cW)
diff --git a/engines/kyra/screen_eob.h b/engines/kyra/screen_eob.h
index 42c7e59..7c2a31e 100644
--- a/engines/kyra/screen_eob.h
+++ b/engines/kyra/screen_eob.h
@@ -76,11 +76,14 @@ public:
int getRectSize(int w, int h);
void setFadeTable(const uint8 *table);
- void createFadeTable(uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight);
+ void createFadeTable(const uint8 *palData, uint8 *dst, uint8 rootColor, uint8 weight);
+ void createFadeTable16bit(const uint16 *palData, uint16 *dst, uint16 rootColor, uint8 weight);
const uint16 *getCGADitheringTable(int index);
const uint8 *getEGADitheringTable();
+ void convertToHiColor(int page);
+ void shadeRect(int x1, int y1, int x2, int y2, int shadingLevel);
private:
void updateDirtyRects();
void ditherRect(const uint8 *src, uint8 *dst, int dstPitch, int srcW, int srcH, int colorKey = -1);
@@ -106,6 +109,7 @@ private:
uint8 _shapeOverlay[16];
uint8 *_dsTempPage;
+ uint8 *_convertHiColorBuffer;
uint16 *_cgaDitheringTables[2];
const uint8 *_cgaMappingDefault;
Commit: 61bd730bcf4ee311e79ab2fc49e3eca21018cdfe
https://github.com/scummvm/scummvm/commit/61bd730bcf4ee311e79ab2fc49e3eca21018cdfe
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:21+01:00
Commit Message:
KYRA: (EOB) - fix thumbnails for special cases
(EGA dithering, 16bit mode, Japanese font rendering)
Changed paths:
engines/kyra/eobcommon.h
engines/kyra/gui_eob.cpp
diff --git a/engines/kyra/eobcommon.h b/engines/kyra/eobcommon.h
index 810b792..8d740f1 100644
--- a/engines/kyra/eobcommon.h
+++ b/engines/kyra/eobcommon.h
@@ -765,6 +765,8 @@ protected:
uint8 _charExchangeSwap;
bool _configHpBarGraphs;
+ Graphics::Surface _thumbNail;
+
// text
void setupDialogueButtons(int presetfirst, int numStr, va_list &args);
void initDialogueSequence();
diff --git a/engines/kyra/gui_eob.cpp b/engines/kyra/gui_eob.cpp
index cdc5fba..eaefa50 100644
--- a/engines/kyra/gui_eob.cpp
+++ b/engines/kyra/gui_eob.cpp
@@ -777,12 +777,20 @@ int EoBCoreEngine::clickedCamp(Button *button) {
}
_screen->copyPage(0, 7);
+
+ // Create a thumbnail from the screen for a possible savegame.
+ // This ensures that all special rendering (EGA dithering, 16bit rendering, Japanese font rendering) will be visible on the thumbnail.
+ ::createThumbnailFromScreen(&_thumbNail);
+
_screen->copyRegion(0, 120, 0, 0, 176, 24, 0, 12, Screen::CR_NO_P_CHECK);
_gui->runCampMenu();
_screen->copyRegion(0, 0, 0, 120, 176, 24, 12, 2, Screen::CR_NO_P_CHECK);
_screen->setScreenDim(cd);
+
+ _thumbNail.free();
+
drawScene(0);
for (int i = 0; i < 6; i++)
@@ -2645,17 +2653,7 @@ bool GUI_EoB::transferFileMenu(Common::String &targetName, Common::String &selec
}
void GUI_EoB::createScreenThumbnail(Graphics::Surface &dst) {
- uint8 *screenPal = new uint8[768];
- _screen->getRealPalette(0, screenPal);
- uint16 width = Screen::SCREEN_W;
- uint16 height = Screen::SCREEN_H;
- if (_vm->gameFlags().useHiRes) {
- width <<= 1;
- height <<= 1;
- }
-
- ::createThumbnail(&dst, _screen->getCPagePtr(7), width, height, screenPal);
- delete[] screenPal;
+ dst.copyFrom(_vm->_thumbNail);
}
void GUI_EoB::simpleMenu_initMenuItemsMask(int menuId, int maxItem, int32 menuItemsMask, int itemOffset) {
Commit: f49eaa5654b2ee2e41b1794a4576d24967e2f7d7
https://github.com/scummvm/scummvm/commit/f49eaa5654b2ee2e41b1794a4576d24967e2f7d7
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:22+01:00
Commit Message:
KYRA: (EOB) - add support for FM-Towns version of EOB II
Changed paths:
A devtools/create_kyradat/resources/eob2_fmtowns.h
A devtools/create_kyradat/resources/eob2_fmtowns_japanese.h
A engines/kyra/sound_towns_darkmoon.cpp
devtools/create_kyradat/create_kyradat.cpp
devtools/create_kyradat/create_kyradat.h
devtools/create_kyradat/games.cpp
devtools/create_kyradat/resources.cpp
devtools/create_kyradat/resources/eob1_dos.h
devtools/create_kyradat/resources/eob2_dos.h
devtools/create_kyradat/resources/lol_dos.h
devtools/create_kyradat/resources/lol_dos_cd.h
devtools/create_kyradat/resources/lol_fmtowns.h
devtools/create_kyradat/resources/lol_pc98.h
dists/engine-data/kyra.dat
engines/kyra/chargen.cpp
engines/kyra/darkmoon.cpp
engines/kyra/darkmoon.h
engines/kyra/detection.cpp
engines/kyra/detection_tables.h
engines/kyra/eobcommon.cpp
engines/kyra/eobcommon.h
engines/kyra/gui_eob.cpp
engines/kyra/gui_eob.h
engines/kyra/items_eob.cpp
engines/kyra/kyra_rpg.cpp
engines/kyra/kyra_rpg.h
engines/kyra/kyra_v1.cpp
engines/kyra/magic_eob.cpp
engines/kyra/module.mk
engines/kyra/resource.h
engines/kyra/saveload.cpp
engines/kyra/saveload_eob.cpp
engines/kyra/scene_eob.cpp
engines/kyra/scene_lol.cpp
engines/kyra/scene_rpg.cpp
engines/kyra/screen.cpp
engines/kyra/screen.h
engines/kyra/screen_eob.cpp
engines/kyra/screen_eob.h
engines/kyra/script_eob.cpp
engines/kyra/sequences_darkmoon.cpp
engines/kyra/sound.h
engines/kyra/sound_intern.h
engines/kyra/sprites_eob.cpp
engines/kyra/staticres.cpp
engines/kyra/staticres_eob.cpp
engines/kyra/staticres_rpg.cpp
engines/kyra/text_rpg.cpp
diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp
index 8856112..19c9fa8 100644
--- a/devtools/create_kyradat/create_kyradat.cpp
+++ b/devtools/create_kyradat/create_kyradat.cpp
@@ -323,7 +323,7 @@ const ExtractFilename extractFilenames[] = {
{ kEoBBaseWllFlagPreset, kRawData, false },
{ kEoBBaseDscShapeCoords, kRawDataBe16, false },
- { kEoBBaseDscDoorScaleOffs, kRawData, false },
+ { kRpgCommonDscDoorScaleOffs, kRawData, false },
{ kEoBBaseDscDoorScaleMult1, kRawData, false },
{ kEoBBaseDscDoorScaleMult2, kRawData, false },
{ kEoBBaseDscDoorScaleMult3, kRawData, false },
@@ -477,6 +477,7 @@ const ExtractFilename extractFilenames[] = {
// EYE OF THE BEHOLDER II
{ kEoB2MainMenuStrings, kStringList, true },
+ { kEoB2MainMenuUtilStrings, kStringList, true },
{ kEoB2TransferPortraitFrames, kRawDataBe16, false },
{ kEoB2TransferConvertTable, kRawData, false },
@@ -536,6 +537,19 @@ const ExtractFilename extractFilenames[] = {
{ kEoB2IntroShapes01, kEoB2ShapeData, false },
{ kEoB2IntroShapes04, kEoB2ShapeData, false },
{ kEoB2IntroShapes07, kEoB2ShapeData, false },
+ { kEoB2IntroCpsDataStreet1, kRawData, false },
+ { kEoB2IntroCpsDataStreet2, kRawData, false },
+ { kEoB2IntroCpsDataDoorway1, kRawData, false },
+ { kEoB2IntroCpsDataDoorway2, kRawData, false },
+ { kEoB2IntroCpsDataWestwood, kRawData, false },
+ { kEoB2IntroCpsDataWinding, kRawData, false },
+ { kEoB2IntroCpsDataKhelban2, kRawData, false },
+ { kEoB2IntroCpsDataKhelban1, kRawData, false },
+ { kEoB2IntroCpsDataKhelban3, kRawData, false },
+ { kEoB2IntroCpsDataKhelban4, kRawData, false },
+ { kEoB2IntroCpsDataCoin, kRawData, false },
+ { kEoB2IntroCpsDataKhelban5, kRawData, false },
+ { kEoB2IntroCpsDataKhelban6, kRawData, false },
{ kEoB2FinaleStrings, kStringList, true },
{ kEoB2CreditsData, kRawData, true },
@@ -566,6 +580,20 @@ const ExtractFilename extractFilenames[] = {
{ kEoB2FinaleShapes07, kEoB2ShapeData, false },
{ kEoB2FinaleShapes09, kEoB2ShapeData, false },
{ kEoB2FinaleShapes10, kEoB2ShapeData, false },
+ { kEoB2FinaleCpsDataDragon1, kRawData, false },
+ { kEoB2FinaleCpsDataDragon2, kRawData, false },
+ { kEoB2FinaleCpsDataHurry1, kRawData, false },
+ { kEoB2FinaleCpsDataHurry2, kRawData, false },
+ { kEoB2FinaleCpsDataDestroy0, kRawData, false },
+ { kEoB2FinaleCpsDataDestroy1, kRawData, false },
+ { kEoB2FinaleCpsDataDestroy2, kRawData, false },
+ { kEoB2FinaleCpsDataMagic, kRawData, false },
+ { kEoB2FinaleCpsDataDestroy3, kRawData, false },
+ { kEoB2FinaleCpsDataCredits2, kRawData, false },
+ { kEoB2FinaleCpsDataCredits3, kRawData, false },
+ { kEoB2FinaleCpsDataHeroes, kRawData, false },
+ { kEoB2FinaleCpsDataThanks, kRawData, false },
+
{ kEoB2NpcShapeData, kRawData, false },
{ kEoBBaseClassModifierFlags, kRawData, false },
{ kEoBBaseMonsterStepTable01, kRawData, false },
@@ -600,6 +628,230 @@ const ExtractFilename extractFilenames[] = {
{ kEoB2WallOfForceNumH, kRawData, false },
{ kEoB2WallOfForceShpId, kRawData, false },
+ { kEoB2ItemIconShapeData00, kRawData, false },
+ { kEoB2ItemIconShapeData01, kRawData, false },
+ { kEoB2ItemIconShapeData02, kRawData, false },
+ { kEoB2ItemIconShapeData03, kRawData, false },
+ { kEoB2ItemIconShapeData04, kRawData, false },
+ { kEoB2ItemIconShapeData05, kRawData, false },
+ { kEoB2ItemIconShapeData06, kRawData, false },
+ { kEoB2ItemIconShapeData07, kRawData, false },
+ { kEoB2ItemIconShapeData08, kRawData, false },
+ { kEoB2ItemIconShapeData09, kRawData, false },
+ { kEoB2ItemIconShapeData10, kRawData, false },
+ { kEoB2ItemIconShapeData11, kRawData, false },
+ { kEoB2ItemIconShapeData12, kRawData, false },
+ { kEoB2ItemIconShapeData13, kRawData, false },
+ { kEoB2ItemIconShapeData14, kRawData, false },
+ { kEoB2ItemIconShapeData15, kRawData, false },
+ { kEoB2ItemIconShapeData16, kRawData, false },
+ { kEoB2ItemIconShapeData17, kRawData, false },
+ { kEoB2ItemIconShapeData18, kRawData, false },
+ { kEoB2ItemIconShapeData19, kRawData, false },
+ { kEoB2ItemIconShapeData20, kRawData, false },
+ { kEoB2ItemIconShapeData21, kRawData, false },
+ { kEoB2ItemIconShapeData22, kRawData, false },
+ { kEoB2ItemIconShapeData23, kRawData, false },
+ { kEoB2ItemIconShapeData24, kRawData, false },
+ { kEoB2ItemIconShapeData25, kRawData, false },
+ { kEoB2ItemIconShapeData26, kRawData, false },
+ { kEoB2ItemIconShapeData27, kRawData, false },
+ { kEoB2ItemIconShapeData28, kRawData, false },
+ { kEoB2ItemIconShapeData29, kRawData, false },
+ { kEoB2ItemIconShapeData30, kRawData, false },
+ { kEoB2ItemIconShapeData31, kRawData, false },
+ { kEoB2ItemIconShapeData32, kRawData, false },
+ { kEoB2ItemIconShapeData33, kRawData, false },
+ { kEoB2ItemIconShapeData34, kRawData, false },
+ { kEoB2ItemIconShapeData35, kRawData, false },
+ { kEoB2ItemIconShapeData36, kRawData, false },
+ { kEoB2ItemIconShapeData37, kRawData, false },
+ { kEoB2ItemIconShapeData38, kRawData, false },
+ { kEoB2ItemIconShapeData39, kRawData, false },
+ { kEoB2ItemIconShapeData40, kRawData, false },
+ { kEoB2ItemIconShapeData41, kRawData, false },
+ { kEoB2ItemIconShapeData42, kRawData, false },
+ { kEoB2ItemIconShapeData43, kRawData, false },
+ { kEoB2ItemIconShapeData44, kRawData, false },
+ { kEoB2ItemIconShapeData45, kRawData, false },
+ { kEoB2ItemIconShapeData46, kRawData, false },
+ { kEoB2ItemIconShapeData47, kRawData, false },
+ { kEoB2ItemIconShapeData48, kRawData, false },
+ { kEoB2ItemIconShapeData49, kRawData, false },
+ { kEoB2ItemIconShapeData50, kRawData, false },
+ { kEoB2ItemIconShapeData51, kRawData, false },
+ { kEoB2ItemIconShapeData52, kRawData, false },
+ { kEoB2ItemIconShapeData53, kRawData, false },
+ { kEoB2ItemIconShapeData54, kRawData, false },
+ { kEoB2ItemIconShapeData55, kRawData, false },
+ { kEoB2ItemIconShapeData56, kRawData, false },
+ { kEoB2ItemIconShapeData57, kRawData, false },
+ { kEoB2ItemIconShapeData58, kRawData, false },
+ { kEoB2ItemIconShapeData59, kRawData, false },
+ { kEoB2ItemIconShapeData60, kRawData, false },
+ { kEoB2ItemIconShapeData61, kRawData, false },
+ { kEoB2ItemIconShapeData62, kRawData, false },
+ { kEoB2ItemIconShapeData63, kRawData, false },
+ { kEoB2ItemIconShapeData64, kRawData, false },
+ { kEoB2ItemIconShapeData65, kRawData, false },
+ { kEoB2ItemIconShapeData66, kRawData, false },
+ { kEoB2ItemIconShapeData67, kRawData, false },
+ { kEoB2ItemIconShapeData68, kRawData, false },
+ { kEoB2ItemIconShapeData69, kRawData, false },
+ { kEoB2ItemIconShapeData70, kRawData, false },
+ { kEoB2ItemIconShapeData71, kRawData, false },
+ { kEoB2ItemIconShapeData72, kRawData, false },
+ { kEoB2ItemIconShapeData73, kRawData, false },
+ { kEoB2ItemIconShapeData74, kRawData, false },
+ { kEoB2ItemIconShapeData75, kRawData, false },
+ { kEoB2ItemIconShapeData76, kRawData, false },
+ { kEoB2ItemIconShapeData77, kRawData, false },
+ { kEoB2ItemIconShapeData78, kRawData, false },
+ { kEoB2ItemIconShapeData79, kRawData, false },
+ { kEoB2ItemIconShapeData80, kRawData, false },
+ { kEoB2ItemIconShapeData81, kRawData, false },
+ { kEoB2ItemIconShapeData82, kRawData, false },
+ { kEoB2ItemIconShapeData83, kRawData, false },
+ { kEoB2ItemIconShapeData84, kRawData, false },
+ { kEoB2ItemIconShapeData85, kRawData, false },
+ { kEoB2ItemIconShapeData86, kRawData, false },
+ { kEoB2ItemIconShapeData87, kRawData, false },
+ { kEoB2ItemIconShapeData88, kRawData, false },
+ { kEoB2ItemIconShapeData89, kRawData, false },
+ { kEoB2ItemIconShapeData90, kRawData, false },
+ { kEoB2ItemIconShapeData91, kRawData, false },
+ { kEoB2ItemIconShapeData92, kRawData, false },
+ { kEoB2ItemIconShapeData93, kRawData, false },
+ { kEoB2ItemIconShapeData94, kRawData, false },
+ { kEoB2ItemIconShapeData95, kRawData, false },
+ { kEoB2ItemIconShapeData96, kRawData, false },
+ { kEoB2ItemIconShapeData97, kRawData, false },
+ { kEoB2ItemIconShapeData98, kRawData, false },
+ { kEoB2ItemIconShapeData99, kRawData, false },
+ { kEoB2ItemIconShapeData100, kRawData, false },
+ { kEoB2ItemIconShapeData101, kRawData, false },
+ { kEoB2ItemIconShapeData102, kRawData, false },
+ { kEoB2ItemIconShapeData103, kRawData, false },
+ { kEoB2ItemIconShapeData104, kRawData, false },
+ { kEoB2ItemIconShapeData105, kRawData, false },
+ { kEoB2ItemIconShapeData106, kRawData, false },
+ { kEoB2ItemIconShapeData107, kRawData, false },
+ { kEoB2ItemIconShapeData108, kRawData, false },
+ { kEoB2ItemIconShapeData109, kRawData, false },
+ { kEoB2ItemIconShapeData110, kRawData, false },
+ { kEoB2ItemIconShapeData111, kRawData, false },
+
+ { kEoB2LargeItemsShapeData00, kRawData, false },
+ { kEoB2LargeItemsShapeData01, kRawData, false },
+ { kEoB2LargeItemsShapeData02, kRawData, false },
+ { kEoB2LargeItemsShapeData03, kRawData, false },
+ { kEoB2LargeItemsShapeData04, kRawData, false },
+ { kEoB2LargeItemsShapeData05, kRawData, false },
+ { kEoB2LargeItemsShapeData06, kRawData, false },
+ { kEoB2LargeItemsShapeData07, kRawData, false },
+ { kEoB2LargeItemsShapeData08, kRawData, false },
+ { kEoB2LargeItemsShapeData09, kRawData, false },
+ { kEoB2LargeItemsShapeData10, kRawData, false },
+
+ { kEoB2SmallItemsShapeData00, kRawData, false },
+ { kEoB2SmallItemsShapeData01, kRawData, false },
+ { kEoB2SmallItemsShapeData02, kRawData, false },
+ { kEoB2SmallItemsShapeData03, kRawData, false },
+ { kEoB2SmallItemsShapeData04, kRawData, false },
+ { kEoB2SmallItemsShapeData05, kRawData, false },
+ { kEoB2SmallItemsShapeData06, kRawData, false },
+ { kEoB2SmallItemsShapeData07, kRawData, false },
+ { kEoB2SmallItemsShapeData08, kRawData, false },
+ { kEoB2SmallItemsShapeData09, kRawData, false },
+ { kEoB2SmallItemsShapeData10, kRawData, false },
+ { kEoB2SmallItemsShapeData11, kRawData, false },
+ { kEoB2SmallItemsShapeData12, kRawData, false },
+ { kEoB2SmallItemsShapeData13, kRawData, false },
+ { kEoB2SmallItemsShapeData14, kRawData, false },
+ { kEoB2SmallItemsShapeData15, kRawData, false },
+ { kEoB2SmallItemsShapeData16, kRawData, false },
+ { kEoB2SmallItemsShapeData17, kRawData, false },
+ { kEoB2SmallItemsShapeData18, kRawData, false },
+ { kEoB2SmallItemsShapeData19, kRawData, false },
+ { kEoB2SmallItemsShapeData20, kRawData, false },
+ { kEoB2SmallItemsShapeData21, kRawData, false },
+ { kEoB2SmallItemsShapeData22, kRawData, false },
+ { kEoB2SmallItemsShapeData23, kRawData, false },
+ { kEoB2SmallItemsShapeData24, kRawData, false },
+ { kEoB2SmallItemsShapeData25, kRawData, false },
+
+ { kEoB2ThrownShapeData00, kRawData, false },
+ { kEoB2ThrownShapeData01, kRawData, false },
+ { kEoB2ThrownShapeData02, kRawData, false },
+ { kEoB2ThrownShapeData03, kRawData, false },
+ { kEoB2ThrownShapeData04, kRawData, false },
+ { kEoB2ThrownShapeData05, kRawData, false },
+ { kEoB2ThrownShapeData06, kRawData, false },
+ { kEoB2ThrownShapeData07, kRawData, false },
+ { kEoB2ThrownShapeData08, kRawData, false },
+
+ { kEoB2SpellShapeData00, kRawData, false },
+ { kEoB2SpellShapeData01, kRawData, false },
+ { kEoB2SpellShapeData02, kRawData, false },
+ { kEoB2SpellShapeData03, kRawData, false },
+
+ { kEoB2TeleporterShapeData00, kRawData, false },
+ { kEoB2TeleporterShapeData01, kRawData, false },
+ { kEoB2TeleporterShapeData02, kRawData, false },
+ { kEoB2TeleporterShapeData03, kRawData, false },
+ { kEoB2TeleporterShapeData04, kRawData, false },
+ { kEoB2TeleporterShapeData05, kRawData, false },
+
+ { kEoB2LightningColumnShapeData, kRawData, false },
+ { kEoB2DeadCharShapeData, kRawData, false },
+ { kEoB2DisabledCharGridShapeData, kRawData, false },
+ { kEoB2WeaponSlotGridShapeData, kRawData, false },
+ { kEoB2SmallGridShapeData, kRawData, false },
+ { kEoB2WideGridShapeData, kRawData, false },
+ { kEoB2RedSplatShapeData, kRawData, false },
+ { kEoB2GreenSplatShapeData, kRawData, false },
+
+ { kEoB2FirebeamShapeData00, kRawData, false },
+ { kEoB2FirebeamShapeData01, kRawData, false },
+ { kEoB2FirebeamShapeData02, kRawData, false },
+
+ { kEoB2SparkShapeData00, kRawData, false },
+ { kEoB2SparkShapeData01, kRawData, false },
+ { kEoB2SparkShapeData02, kRawData, false },
+
+ { kEoB2CompassShapeData00, kRawData, false },
+ { kEoB2CompassShapeData01, kRawData, false },
+ { kEoB2CompassShapeData02, kRawData, false },
+ { kEoB2CompassShapeData03, kRawData, false },
+ { kEoB2CompassShapeData04, kRawData, false },
+ { kEoB2CompassShapeData05, kRawData, false },
+ { kEoB2CompassShapeData06, kRawData, false },
+ { kEoB2CompassShapeData07, kRawData, false },
+ { kEoB2CompassShapeData08, kRawData, false },
+ { kEoB2CompassShapeData09, kRawData, false },
+ { kEoB2CompassShapeData10, kRawData, false },
+ { kEoB2CompassShapeData11, kRawData, false },
+
+ { kEoB2WallOfForceShapeData00, kRawData, false },
+ { kEoB2WallOfForceShapeData01, kRawData, false },
+ { kEoB2WallOfForceShapeData02, kRawData, false },
+ { kEoB2WallOfForceShapeData03, kRawData, false },
+ { kEoB2WallOfForceShapeData04, kRawData, false },
+ { kEoB2WallOfForceShapeData05, kRawData, false },
+
+ { kEoB2UtilMenuStrings, kStringList, true },
+ { kEoB2Config2431Strings, kStringList, true },
+ { kEoB2KatakanaLines, kStringList, true },
+ { kEoB2KanaSelectStrings, kStringList, true },
+ { kEoB2FontDmpSearchTbl, kRawDataBe16, false },
+ { kEoB2Ascii2SjisTables, kStringList, false },
+ { kEoB2Ascii2SjisTables2, kStringList, false },
+ { kEoB2SaveNamePatterns, kStringList, false },
+
+ { kEoB2PcmSoundEffectsIngame, kRawData, false },
+ { kEoB2PcmSoundEffectsIntro, kRawData, false },
+ { kEoB2PcmSoundEffectsFinale, kRawData, false },
+
// LANDS OF LORE
// Ingame
@@ -647,7 +899,6 @@ const ExtractFilename extractFilenames[] = {
{ kRpgCommonDscX, kRawDataBe16, false },
{ kLoLBaseDscY, kRawData, false },
{ kRpgCommonDscTileIndex, kRawData, false },
- { kRpgCommonDscUnk2, kRawData, false },
{ kRpgCommonDscDoorShapeIndex, kRawData, false },
{ kRpgCommonDscDimData1, kRawData, false },
{ kRpgCommonDscDimData2, kRawData, false },
diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h
index 1d58d75..cb70f25 100644
--- a/devtools/create_kyradat/create_kyradat.h
+++ b/devtools/create_kyradat/create_kyradat.h
@@ -182,7 +182,6 @@ enum kExtractID {
kRpgCommonDscShapeIndex,
kRpgCommonDscX,
kRpgCommonDscTileIndex,
- kRpgCommonDscUnk2,
kRpgCommonDscDoorShapeIndex,
kRpgCommonDscDimData1,
kRpgCommonDscDimData2,
@@ -193,6 +192,7 @@ enum kExtractID {
kRpgCommonDscDoorFrameY2,
kRpgCommonDscDoorFrameIndex1,
kRpgCommonDscDoorFrameIndex2,
+ kRpgCommonDscDoorScaleOffs,
kRpgCommonDscBlockIndex,
kEoBBaseChargenStrings1,
@@ -327,7 +327,6 @@ enum kExtractID {
kEoBBaseWllFlagPreset,
kEoBBaseDscShapeCoords,
- kEoBBaseDscDoorScaleOffs,
kEoBBaseDscDoorScaleMult1,
kEoBBaseDscDoorScaleMult2,
kEoBBaseDscDoorScaleMult3,
@@ -481,6 +480,7 @@ enum kExtractID {
kEoB1Npc7Strings,
kEoB2MainMenuStrings,
+ kEoB2MainMenuUtilStrings,
kEoB2TransferPortraitFrames,
kEoB2TransferConvertTable,
@@ -536,6 +536,7 @@ enum kExtractID {
kEoB2IntroAnimData41,
kEoB2IntroAnimData42,
kEoB2IntroAnimData43,
+
kEoB2IntroShapes00,
kEoB2IntroShapes01,
kEoB2IntroShapes04,
@@ -587,6 +588,258 @@ enum kExtractID {
kEoB2WallOfForceNumH,
kEoB2WallOfForceShpId,
+ // FM-Towns specific
+ kEoB2IntroCpsDataStreet1,
+ kEoB2IntroCpsDataStreet2,
+ kEoB2IntroCpsDataDoorway1,
+ kEoB2IntroCpsDataDoorway2,
+ kEoB2IntroCpsDataWestwood,
+ kEoB2IntroCpsDataWinding,
+ kEoB2IntroCpsDataKhelban2,
+ kEoB2IntroCpsDataKhelban1,
+ kEoB2IntroCpsDataKhelban3,
+ kEoB2IntroCpsDataKhelban4,
+ kEoB2IntroCpsDataCoin,
+ kEoB2IntroCpsDataKhelban5,
+ kEoB2IntroCpsDataKhelban6,
+
+ kEoB2FinaleCpsDataDragon1,
+ kEoB2FinaleCpsDataDragon2,
+ kEoB2FinaleCpsDataHurry1,
+ kEoB2FinaleCpsDataHurry2,
+ kEoB2FinaleCpsDataDestroy0,
+ kEoB2FinaleCpsDataDestroy1,
+ kEoB2FinaleCpsDataDestroy2,
+ kEoB2FinaleCpsDataMagic,
+ kEoB2FinaleCpsDataDestroy3,
+ kEoB2FinaleCpsDataCredits2,
+ kEoB2FinaleCpsDataCredits3,
+ kEoB2FinaleCpsDataHeroes,
+ kEoB2FinaleCpsDataThanks,
+
+ kEoB2ItemIconShapeData00,
+ kEoB2ItemIconShapeData01,
+ kEoB2ItemIconShapeData02,
+ kEoB2ItemIconShapeData03,
+ kEoB2ItemIconShapeData04,
+ kEoB2ItemIconShapeData05,
+ kEoB2ItemIconShapeData06,
+ kEoB2ItemIconShapeData07,
+ kEoB2ItemIconShapeData08,
+ kEoB2ItemIconShapeData09,
+ kEoB2ItemIconShapeData10,
+ kEoB2ItemIconShapeData11,
+ kEoB2ItemIconShapeData12,
+ kEoB2ItemIconShapeData13,
+ kEoB2ItemIconShapeData14,
+ kEoB2ItemIconShapeData15,
+ kEoB2ItemIconShapeData16,
+ kEoB2ItemIconShapeData17,
+ kEoB2ItemIconShapeData18,
+ kEoB2ItemIconShapeData19,
+ kEoB2ItemIconShapeData20,
+ kEoB2ItemIconShapeData21,
+ kEoB2ItemIconShapeData22,
+ kEoB2ItemIconShapeData23,
+ kEoB2ItemIconShapeData24,
+ kEoB2ItemIconShapeData25,
+ kEoB2ItemIconShapeData26,
+ kEoB2ItemIconShapeData27,
+ kEoB2ItemIconShapeData28,
+ kEoB2ItemIconShapeData29,
+ kEoB2ItemIconShapeData30,
+ kEoB2ItemIconShapeData31,
+ kEoB2ItemIconShapeData32,
+ kEoB2ItemIconShapeData33,
+ kEoB2ItemIconShapeData34,
+ kEoB2ItemIconShapeData35,
+ kEoB2ItemIconShapeData36,
+ kEoB2ItemIconShapeData37,
+ kEoB2ItemIconShapeData38,
+ kEoB2ItemIconShapeData39,
+ kEoB2ItemIconShapeData40,
+ kEoB2ItemIconShapeData41,
+ kEoB2ItemIconShapeData42,
+ kEoB2ItemIconShapeData43,
+ kEoB2ItemIconShapeData44,
+ kEoB2ItemIconShapeData45,
+ kEoB2ItemIconShapeData46,
+ kEoB2ItemIconShapeData47,
+ kEoB2ItemIconShapeData48,
+ kEoB2ItemIconShapeData49,
+ kEoB2ItemIconShapeData50,
+ kEoB2ItemIconShapeData51,
+ kEoB2ItemIconShapeData52,
+ kEoB2ItemIconShapeData53,
+ kEoB2ItemIconShapeData54,
+ kEoB2ItemIconShapeData55,
+ kEoB2ItemIconShapeData56,
+ kEoB2ItemIconShapeData57,
+ kEoB2ItemIconShapeData58,
+ kEoB2ItemIconShapeData59,
+ kEoB2ItemIconShapeData60,
+ kEoB2ItemIconShapeData61,
+ kEoB2ItemIconShapeData62,
+ kEoB2ItemIconShapeData63,
+ kEoB2ItemIconShapeData64,
+ kEoB2ItemIconShapeData65,
+ kEoB2ItemIconShapeData66,
+ kEoB2ItemIconShapeData67,
+ kEoB2ItemIconShapeData68,
+ kEoB2ItemIconShapeData69,
+ kEoB2ItemIconShapeData70,
+ kEoB2ItemIconShapeData71,
+ kEoB2ItemIconShapeData72,
+ kEoB2ItemIconShapeData73,
+ kEoB2ItemIconShapeData74,
+ kEoB2ItemIconShapeData75,
+ kEoB2ItemIconShapeData76,
+ kEoB2ItemIconShapeData77,
+ kEoB2ItemIconShapeData78,
+ kEoB2ItemIconShapeData79,
+ kEoB2ItemIconShapeData80,
+ kEoB2ItemIconShapeData81,
+ kEoB2ItemIconShapeData82,
+ kEoB2ItemIconShapeData83,
+ kEoB2ItemIconShapeData84,
+ kEoB2ItemIconShapeData85,
+ kEoB2ItemIconShapeData86,
+ kEoB2ItemIconShapeData87,
+ kEoB2ItemIconShapeData88,
+ kEoB2ItemIconShapeData89,
+ kEoB2ItemIconShapeData90,
+ kEoB2ItemIconShapeData91,
+ kEoB2ItemIconShapeData92,
+ kEoB2ItemIconShapeData93,
+ kEoB2ItemIconShapeData94,
+ kEoB2ItemIconShapeData95,
+ kEoB2ItemIconShapeData96,
+ kEoB2ItemIconShapeData97,
+ kEoB2ItemIconShapeData98,
+ kEoB2ItemIconShapeData99,
+ kEoB2ItemIconShapeData100,
+ kEoB2ItemIconShapeData101,
+ kEoB2ItemIconShapeData102,
+ kEoB2ItemIconShapeData103,
+ kEoB2ItemIconShapeData104,
+ kEoB2ItemIconShapeData105,
+ kEoB2ItemIconShapeData106,
+ kEoB2ItemIconShapeData107,
+ kEoB2ItemIconShapeData108,
+ kEoB2ItemIconShapeData109,
+ kEoB2ItemIconShapeData110,
+ kEoB2ItemIconShapeData111,
+
+ kEoB2LargeItemsShapeData00,
+ kEoB2LargeItemsShapeData01,
+ kEoB2LargeItemsShapeData02,
+ kEoB2LargeItemsShapeData03,
+ kEoB2LargeItemsShapeData04,
+ kEoB2LargeItemsShapeData05,
+ kEoB2LargeItemsShapeData06,
+ kEoB2LargeItemsShapeData07,
+ kEoB2LargeItemsShapeData08,
+ kEoB2LargeItemsShapeData09,
+ kEoB2LargeItemsShapeData10,
+
+ kEoB2SmallItemsShapeData00,
+ kEoB2SmallItemsShapeData01,
+ kEoB2SmallItemsShapeData02,
+ kEoB2SmallItemsShapeData03,
+ kEoB2SmallItemsShapeData04,
+ kEoB2SmallItemsShapeData05,
+ kEoB2SmallItemsShapeData06,
+ kEoB2SmallItemsShapeData07,
+ kEoB2SmallItemsShapeData08,
+ kEoB2SmallItemsShapeData09,
+ kEoB2SmallItemsShapeData10,
+ kEoB2SmallItemsShapeData11,
+ kEoB2SmallItemsShapeData12,
+ kEoB2SmallItemsShapeData13,
+ kEoB2SmallItemsShapeData14,
+ kEoB2SmallItemsShapeData15,
+ kEoB2SmallItemsShapeData16,
+ kEoB2SmallItemsShapeData17,
+ kEoB2SmallItemsShapeData18,
+ kEoB2SmallItemsShapeData19,
+ kEoB2SmallItemsShapeData20,
+ kEoB2SmallItemsShapeData21,
+ kEoB2SmallItemsShapeData22,
+ kEoB2SmallItemsShapeData23,
+ kEoB2SmallItemsShapeData24,
+ kEoB2SmallItemsShapeData25,
+
+ kEoB2ThrownShapeData00,
+ kEoB2ThrownShapeData01,
+ kEoB2ThrownShapeData02,
+ kEoB2ThrownShapeData03,
+ kEoB2ThrownShapeData04,
+ kEoB2ThrownShapeData05,
+ kEoB2ThrownShapeData06,
+ kEoB2ThrownShapeData07,
+ kEoB2ThrownShapeData08,
+
+ kEoB2SpellShapeData00,
+ kEoB2SpellShapeData01,
+ kEoB2SpellShapeData02,
+ kEoB2SpellShapeData03,
+
+ kEoB2TeleporterShapeData00,
+ kEoB2TeleporterShapeData01,
+ kEoB2TeleporterShapeData02,
+ kEoB2TeleporterShapeData03,
+ kEoB2TeleporterShapeData04,
+ kEoB2TeleporterShapeData05,
+
+ kEoB2LightningColumnShapeData,
+ kEoB2DeadCharShapeData,
+ kEoB2DisabledCharGridShapeData,
+ kEoB2WeaponSlotGridShapeData,
+ kEoB2SmallGridShapeData,
+ kEoB2WideGridShapeData,
+ kEoB2RedSplatShapeData,
+ kEoB2GreenSplatShapeData,
+
+ kEoB2FirebeamShapeData00,
+ kEoB2FirebeamShapeData01,
+ kEoB2FirebeamShapeData02,
+
+ kEoB2SparkShapeData00,
+ kEoB2SparkShapeData01,
+ kEoB2SparkShapeData02,
+
+ kEoB2CompassShapeData00,
+ kEoB2CompassShapeData01,
+ kEoB2CompassShapeData02,
+ kEoB2CompassShapeData03,
+ kEoB2CompassShapeData04,
+ kEoB2CompassShapeData05,
+ kEoB2CompassShapeData06,
+ kEoB2CompassShapeData07,
+ kEoB2CompassShapeData08,
+ kEoB2CompassShapeData09,
+ kEoB2CompassShapeData10,
+ kEoB2CompassShapeData11,
+
+ kEoB2WallOfForceShapeData00,
+ kEoB2WallOfForceShapeData01,
+ kEoB2WallOfForceShapeData02,
+ kEoB2WallOfForceShapeData03,
+ kEoB2WallOfForceShapeData04,
+ kEoB2WallOfForceShapeData05,
+
+ kEoB2UtilMenuStrings,
+ kEoB2Config2431Strings,
+ kEoB2KatakanaLines,
+ kEoB2KanaSelectStrings,
+ kEoB2FontDmpSearchTbl,
+ kEoB2Ascii2SjisTables,
+ kEoB2Ascii2SjisTables2,
+ kEoB2SaveNamePatterns,
+ kEoB2PcmSoundEffectsIngame,
+ kEoB2PcmSoundEffectsIntro,
+ kEoB2PcmSoundEffectsFinale,
+
kLoLIngamePakFiles,
kLoLCharacterDefs,
kLoLIngameSfxFiles,
diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index 0c151ec..077b570 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -101,6 +101,8 @@ const Game eob1Games[] = {
{ kEoB1, kPlatformDOS, kNoSpecial, DE_DEU },
{ kEoB1, kPlatformDOS, kNoSpecial, IT_ITA },
+ //{ kEoB1, kPlatformPC98, kNoSpecial, JA_JPN },
+
GAME_DUMMY_ENTRY
};
@@ -108,6 +110,10 @@ const Game eob2Games[] = {
{ kEoB2, kPlatformDOS, kNoSpecial, EN_ANY },
{ kEoB2, kPlatformDOS, kNoSpecial, DE_DEU },
+ //{ kEoB2, kPlatformPC98, kNoSpecial, JA_JPN },
+
+ { kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN },
+
GAME_DUMMY_ENTRY
};
@@ -822,7 +828,6 @@ const int lolFloppyNeed[] = {
kRpgCommonDscX,
kLoLBaseDscY,
kRpgCommonDscTileIndex,
- kRpgCommonDscUnk2,
kRpgCommonDscDoorShapeIndex,
kRpgCommonDscDimData1,
kRpgCommonDscDimData2,
@@ -833,6 +838,7 @@ const int lolFloppyNeed[] = {
kRpgCommonDscDoorY2,
kRpgCommonDscDoorFrameY1,
kRpgCommonDscDoorFrameY2,
+ kRpgCommonDscDoorScaleOffs,
kLoLDscDoorScale,
kLoLDscDoor4,
kLoLDscDoorX,
@@ -905,7 +911,6 @@ const int lolPC98Need[] = {
kRpgCommonDscX,
kLoLBaseDscY,
kRpgCommonDscTileIndex,
- kRpgCommonDscUnk2,
kRpgCommonDscDoorShapeIndex,
kRpgCommonDscDimData1,
kRpgCommonDscDimData2,
@@ -916,6 +921,7 @@ const int lolPC98Need[] = {
kRpgCommonDscDoorY2,
kRpgCommonDscDoorFrameY1,
kRpgCommonDscDoorFrameY2,
+ kRpgCommonDscDoorScaleOffs,
kLoLDscDoorScale,
kLoLDscDoor4,
kLoLDscDoorX,
@@ -989,7 +995,6 @@ const int lolFMTownsNeed[] = {
kRpgCommonDscX,
kLoLBaseDscY,
kRpgCommonDscTileIndex,
- kRpgCommonDscUnk2,
kRpgCommonDscDoorShapeIndex,
kRpgCommonDscDimData1,
kRpgCommonDscDimData2,
@@ -1000,6 +1005,7 @@ const int lolFMTownsNeed[] = {
kRpgCommonDscDoorY2,
kRpgCommonDscDoorFrameY1,
kRpgCommonDscDoorFrameY2,
+ kRpgCommonDscDoorScaleOffs,
kLoLDscDoorScale,
kLoLDscDoor4,
kLoLDscDoorX,
@@ -1078,7 +1084,6 @@ const int lolCDNeed[] = {
kRpgCommonDscX,
kLoLBaseDscY,
kRpgCommonDscTileIndex,
- kRpgCommonDscUnk2,
kRpgCommonDscDoorShapeIndex,
kRpgCommonDscDimData1,
kRpgCommonDscDimData2,
@@ -1089,6 +1094,7 @@ const int lolCDNeed[] = {
kRpgCommonDscDoorY2,
kRpgCommonDscDoorFrameY1,
kRpgCommonDscDoorFrameY2,
+ kRpgCommonDscDoorScaleOffs,
kLoLDscDoorScale,
kLoLDscDoor4,
kLoLDscDoorX,
@@ -1334,7 +1340,7 @@ const int eob1FloppyNeed[] = {
kRpgCommonDscDoorShapeIndex,
kEoBBaseWllFlagPreset,
kEoBBaseDscShapeCoords,
- kEoBBaseDscDoorScaleOffs,
+ kRpgCommonDscDoorScaleOffs,
kEoBBaseDscDoorScaleMult1,
kEoBBaseDscDoorScaleMult2,
kEoBBaseDscDoorScaleMult3,
@@ -1384,7 +1390,6 @@ const int eob1FloppyNeed[] = {
kRpgCommonDscShapeIndex,
kRpgCommonDscX,
kRpgCommonDscTileIndex,
- kRpgCommonDscUnk2,
kRpgCommonDscDimData1,
kRpgCommonDscDimData2,
kRpgCommonDscBlockMap,
@@ -1394,12 +1399,10 @@ const int eob1FloppyNeed[] = {
kEoBBaseClassModifierFlags,
kEoBBaseMonsterStepTable01,
- //kEoBBaseMonsterStepTable1,
kEoBBaseMonsterStepTable2,
kEoBBaseMonsterStepTable3,
kEoBBaseMonsterCloseAttPosTable1,
kEoBBaseMonsterCloseAttPosTable21,
- //kEoBBaseMonsterCloseAttUnkTable,
kEoBBaseMonsterCloseAttChkTable1,
kEoBBaseMonsterCloseAttChkTable2,
kEoBBaseMonsterCloseAttDstTable1,
@@ -1411,12 +1414,10 @@ const int eob1FloppyNeed[] = {
kEoBBaseMonsterDistAttStrings,
kEoBBaseEncodeMonsterDefs,
kEoBBaseNpcPresets,
- //kEoB1Npc1Strings,
- //kEoB1Npc2Strings,
-1
};
-const int eob2FloppyNeed[] = {
+const int eob1PC98Need[] = {
kEoBBaseChargenStrings1,
kEoBBaseChargenStrings2,
kEoBBaseChargenStartLevels,
@@ -1437,6 +1438,71 @@ const int eob2FloppyNeed[] = {
kEoBBaseSaveThrwModDiv,
kEoBBaseSaveThrwModExt,
+ kEoB1MainMenuStrings,
+ kEoB1BonusStrings,
+
+ kEoB1IntroFilesOpening,
+ kEoB1IntroFilesTower,
+ kEoB1IntroFilesOrb,
+ kEoB1IntroFilesWdEntry,
+ kEoB1IntroFilesKing,
+ kEoB1IntroFilesHands,
+ kEoB1IntroFilesWdExit,
+ kEoB1IntroFilesTunnel,
+ kEoB1IntroOpeningFrmDelay,
+ kEoB1IntroWdEncodeX,
+ kEoB1IntroWdEncodeY,
+ kEoB1IntroWdEncodeWH,
+ kEoB1IntroWdDsX,
+ kEoB1IntroWdDsY,
+ kEoB1IntroTvlX1,
+ kEoB1IntroTvlY1,
+ kEoB1IntroTvlX2,
+ kEoB1IntroTvlY2,
+ kEoB1IntroTvlW,
+ kEoB1IntroTvlH,
+
+ kEoB1DoorShapeDefs,
+ kEoB1DoorSwitchShapeDefs,
+ kEoB1DoorSwitchCoords,
+ kEoB1MonsterProperties,
+ kEoB1EnemyMageSpellList,
+ kEoB1EnemyMageSfx,
+ kEoB1BeholderSpellList,
+ kEoB1BeholderSfx,
+ kEoB1TurnUndeadString,
+
+ kEoB1CgaMappingDefault,
+ kEoB1CgaMappingAlt,
+ kEoB1CgaMappingInv,
+ kEoB1CgaMappingItemsL,
+ kEoB1CgaMappingItemsS,
+ kEoB1CgaMappingThrown,
+ kEoB1CgaMappingIcons,
+ kEoB1CgaMappingDeco,
+ kEoB1CgaLevelMappingIndex,
+ kEoB1CgaMappingLevel0,
+ kEoB1CgaMappingLevel1,
+ kEoB1CgaMappingLevel2,
+ kEoB1CgaMappingLevel3,
+ kEoB1CgaMappingLevel4,
+
+ kEoB1NpcShpData,
+ kEoB1NpcSubShpIndex1,
+ kEoB1NpcSubShpIndex2,
+ kEoB1NpcSubShpY,
+ kEoB1Npc0Strings,
+ kEoB1Npc11Strings,
+ kEoB1Npc12Strings,
+ kEoB1Npc21Strings,
+ kEoB1Npc22Strings,
+ kEoB1Npc31Strings,
+ kEoB1Npc32Strings,
+ kEoB1Npc4Strings,
+ kEoB1Npc5Strings,
+ kEoB1Npc6Strings,
+ kEoB1Npc7Strings,
+
kEoBBasePryDoorStrings,
kEoBBaseWarningStrings,
@@ -1453,7 +1519,6 @@ const int eob2FloppyNeed[] = {
kEoBBasePatternGrFix1,
kEoBBasePatternGrFix2,
kEoBBaseValidateArmorString,
- kEoBBaseValidateCursedString,
kEoBBaseValidateNoDropString,
kEoBBasePotionStrings,
kEoBBaseWandStrings,
@@ -1465,10 +1530,8 @@ const int eob2FloppyNeed[] = {
kEoBBaseYesNoStrings,
kRpgCommonMoreStrings,
kEoBBaseNpcMaxStrings,
- kEoBBaseOkStrings,
kEoBBaseNpcJoinStrings,
kEoBBaseCancelStrings,
- kEoBBaseAbortStrings,
kEoBBaseMenuStringsMain,
kEoBBaseMenuStringsSaveLoad,
@@ -1485,12 +1548,8 @@ const int eob2FloppyNeed[] = {
kEoBBaseMenuStringsMgc,
kEoBBaseMenuStringsPrefs,
kEoBBaseMenuStringsRest2,
- kEoBBaseMenuStringsRest3,
kEoBBaseMenuStringsRest4,
kEoBBaseMenuStringsDefeat,
- kEoBBaseMenuStringsTransfer,
- kEoBBaseMenuStringsSpec,
- kEoBBaseMenuStringsSpellNo,
kEoBBaseMenuYesNoStrings,
kEoBBaseSpellLevelsMage,
@@ -1501,16 +1560,15 @@ const int eob2FloppyNeed[] = {
kEoBBaseNumSpellsMage,
kEoBBaseCharGuiStringsHp,
- kEoBBaseCharGuiStringsWp2,
+ kEoBBaseCharGuiStringsWp1,
kEoBBaseCharGuiStringsWr,
- kEoBBaseCharGuiStringsSt2,
+ kEoBBaseCharGuiStringsSt1,
kEoBBaseCharGuiStringsIn,
kEoBBaseCharStatusStrings7,
- kEoBBaseCharStatusStrings82,
+ kEoBBaseCharStatusStrings81,
kEoBBaseCharStatusStrings9,
- kEoBBaseCharStatusStrings12,
- kEoBBaseCharStatusStrings132,
+ kEoBBaseCharStatusStrings131,
kEoBBaseLevelGainStrings,
kEoBBaseExperienceTable0,
@@ -1531,7 +1589,6 @@ const int eob2FloppyNeed[] = {
kEoBBaseMagicStrings7,
kEoBBaseMagicStrings8,
- kEoBBaseExpObjectTlMode,
kEoBBaseExpObjectTblIndex,
kEoBBaseExpObjectShpStart,
kEoBBaseExpObjectTbl1,
@@ -1564,16 +1621,25 @@ const int eob2FloppyNeed[] = {
kRpgCommonDscDoorShapeIndex,
kEoBBaseWllFlagPreset,
kEoBBaseDscShapeCoords,
-
- kEoBBaseDscDoorScaleOffs,
+ kRpgCommonDscDoorScaleOffs,
kEoBBaseDscDoorScaleMult1,
kEoBBaseDscDoorScaleMult2,
kEoBBaseDscDoorScaleMult3,
- kEoBBaseDscDoorType5Offs,
+ kEoBBaseDscDoorScaleMult4,
+ kEoBBaseDscDoorScaleMult5,
+ kEoBBaseDscDoorScaleMult6,
+ kEoBBaseDscDoorXE,
kEoBBaseDscDoorY1,
- kRpgCommonDscDoorY2,
+ kEoBBaseDscDoorY3,
+ kEoBBaseDscDoorY4,
+ kEoBBaseDscDoorY5,
+ kEoBBaseDscDoorY6,
+ kEoBBaseDscDoorY7,
+ kEoBBaseDscDoorCoordsExt,
kRpgCommonDscDoorFrameY1,
kRpgCommonDscDoorFrameY2,
+ kRpgCommonDscDoorFrameIndex1,
+ kRpgCommonDscDoorFrameIndex2,
kEoBBaseDscItemPosIndex,
kEoBBaseDscItemShpX,
@@ -1602,108 +1668,22 @@ const int eob2FloppyNeed[] = {
kEoBBaseFlightObjShpMap,
kEoBBaseFlightObjSclIndex,
- kEoB2MainMenuStrings,
-
- kEoB2TransferPortraitFrames,
- kEoB2TransferConvertTable,
- kEoB2TransferItemTable,
- kEoB2TransferExpTable,
- kEoB2TransferStrings1,
- kEoB2TransferStrings2,
- kEoB2TransferLabels,
-
- kEoB2IntroStrings,
- kEoB2IntroCPSFiles,
- kEoB2IntroAnimData00,
- kEoB2IntroAnimData01,
- kEoB2IntroAnimData02,
- kEoB2IntroAnimData03,
- kEoB2IntroAnimData04,
- kEoB2IntroAnimData05,
- kEoB2IntroAnimData06,
- kEoB2IntroAnimData07,
- kEoB2IntroAnimData08,
- kEoB2IntroAnimData09,
- kEoB2IntroAnimData10,
- kEoB2IntroAnimData11,
- kEoB2IntroAnimData12,
- kEoB2IntroAnimData13,
- kEoB2IntroAnimData14,
- kEoB2IntroAnimData15,
- kEoB2IntroAnimData16,
- kEoB2IntroAnimData17,
- kEoB2IntroAnimData18,
- kEoB2IntroAnimData19,
- kEoB2IntroAnimData20,
- kEoB2IntroAnimData21,
- kEoB2IntroAnimData22,
- kEoB2IntroAnimData23,
- kEoB2IntroAnimData24,
- kEoB2IntroAnimData25,
- kEoB2IntroAnimData26,
- kEoB2IntroAnimData27,
- kEoB2IntroAnimData28,
- kEoB2IntroAnimData29,
- kEoB2IntroAnimData30,
- kEoB2IntroAnimData31,
- kEoB2IntroAnimData32,
- kEoB2IntroAnimData33,
- kEoB2IntroAnimData34,
- kEoB2IntroAnimData35,
- kEoB2IntroAnimData36,
- kEoB2IntroAnimData37,
- kEoB2IntroAnimData38,
- kEoB2IntroAnimData39,
- kEoB2IntroAnimData40,
- kEoB2IntroAnimData41,
- kEoB2IntroAnimData42,
- kEoB2IntroAnimData43,
-
- kEoB2IntroShapes00,
- kEoB2IntroShapes01,
- kEoB2IntroShapes04,
- kEoB2IntroShapes07,
-
- kEoB2FinaleStrings,
- kEoB2CreditsData,
- kEoB2FinaleCPSFiles,
- kEoB2FinaleAnimData00,
- kEoB2FinaleAnimData01,
- kEoB2FinaleAnimData02,
- kEoB2FinaleAnimData03,
- kEoB2FinaleAnimData04,
- kEoB2FinaleAnimData05,
- kEoB2FinaleAnimData06,
- kEoB2FinaleAnimData07,
- kEoB2FinaleAnimData08,
- kEoB2FinaleAnimData09,
- kEoB2FinaleAnimData10,
- kEoB2FinaleAnimData11,
- kEoB2FinaleAnimData12,
- kEoB2FinaleAnimData13,
- kEoB2FinaleAnimData14,
- kEoB2FinaleAnimData15,
- kEoB2FinaleAnimData16,
- kEoB2FinaleAnimData17,
- kEoB2FinaleAnimData18,
- kEoB2FinaleAnimData19,
- kEoB2FinaleAnimData20,
- kEoB2FinaleShapes00,
- kEoB2FinaleShapes03,
- kEoB2FinaleShapes07,
- kEoB2FinaleShapes09,
- kEoB2FinaleShapes10,
+ kRpgCommonDscShapeIndex,
+ kRpgCommonDscX,
+ kRpgCommonDscTileIndex,
+ kRpgCommonDscDimData1,
+ kRpgCommonDscDimData2,
+ kRpgCommonDscBlockMap,
+ kRpgCommonDscDimMap,
+ kRpgCommonDscBlockIndex,
- kEoB2NpcShapeData,
kEoBBaseClassModifierFlags,
- kEoBBaseMonsterStepTable02,
- kEoBBaseMonsterStepTable1,
+ kEoBBaseMonsterStepTable01,
kEoBBaseMonsterStepTable2,
kEoBBaseMonsterStepTable3,
kEoBBaseMonsterCloseAttPosTable1,
- kEoBBaseMonsterCloseAttPosTable22,
- kEoBBaseMonsterCloseAttUnkTable,
+ kEoBBaseMonsterCloseAttPosTable21,
kEoBBaseMonsterCloseAttChkTable1,
kEoBBaseMonsterCloseAttChkTable2,
kEoBBaseMonsterCloseAttDstTable1,
@@ -1715,43 +1695,1230 @@ const int eob2FloppyNeed[] = {
kEoBBaseMonsterDistAttStrings,
kEoBBaseEncodeMonsterDefs,
kEoBBaseNpcPresets,
- kEoB2Npc1Strings,
- kEoB2Npc2Strings,
- kEoB2MonsterDustStrings,
- kEoB2DreamSteps,
- kEoB2KheldranStrings,
- kEoB2HornStrings,
- kEoB2HornSounds,
- kEoB2WallOfForceDsX,
- kEoB2WallOfForceDsY,
- kEoB2WallOfForceNumW,
- kEoB2WallOfForceNumH,
- kEoB2WallOfForceShpId,
-
- kRpgCommonDscShapeIndex,
- kRpgCommonDscX,
- kRpgCommonDscTileIndex,
- kRpgCommonDscUnk2,
- kRpgCommonDscDimData1,
- kRpgCommonDscDimData2,
- kRpgCommonDscBlockMap,
- kRpgCommonDscDimMap,
- kRpgCommonDscBlockIndex,
-1
};
-struct GameNeed {
- int game;
- int platform;
- int special;
+const int eob2FloppyNeed[] = {
+ kEoBBaseChargenStrings1,
+ kEoBBaseChargenStrings2,
+ kEoBBaseChargenStartLevels,
+ kEoBBaseChargenStatStrings,
+ kEoBBaseChargenRaceSexStrings,
+ kEoBBaseChargenClassStrings,
+ kEoBBaseChargenAlignmentStrings,
+ kEoBBaseChargenEnterGameStrings,
+ kEoBBaseChargenClassMinStats,
+ kEoBBaseChargenRaceMinStats,
+ kEoBBaseChargenRaceMaxStats,
- const int *entries;
-};
+ kEoBBaseSaveThrowTable1,
+ kEoBBaseSaveThrowTable2,
+ kEoBBaseSaveThrowTable3,
+ kEoBBaseSaveThrowTable4,
+ kEoBBaseSaveThrwLvlIndex,
+ kEoBBaseSaveThrwModDiv,
+ kEoBBaseSaveThrwModExt,
-const GameNeed gameNeedTable[] = {
- { kKyra1, kPlatformDOS, kNoSpecial, kyra1FloppyNeed },
- { kKyra1, kPlatformDOS, kOldFloppy, kyra1FloppyOldNeed },
+ kEoBBasePryDoorStrings,
+ kEoBBaseWarningStrings,
+
+ kEoBBaseItemSuffixStringsRings,
+ kEoBBaseItemSuffixStringsPotions,
+ kEoBBaseItemSuffixStringsWands,
+
+ kEoBBaseRipItemStrings,
+ kEoBBaseCursedString,
+ kEoBBaseEnchantedString,
+ kEoBBaseMagicObjectStrings,
+ kEoBBaseMagicObjectString5,
+ kEoBBasePatternSuffix,
+ kEoBBasePatternGrFix1,
+ kEoBBasePatternGrFix2,
+ kEoBBaseValidateArmorString,
+ kEoBBaseValidateCursedString,
+ kEoBBaseValidateNoDropString,
+ kEoBBasePotionStrings,
+ kEoBBaseWandStrings,
+ kEoBBaseItemMisuseStrings,
+
+ kEoBBaseTakenStrings,
+ kEoBBasePotionEffectStrings,
+
+ kEoBBaseYesNoStrings,
+ kRpgCommonMoreStrings,
+ kEoBBaseNpcMaxStrings,
+ kEoBBaseOkStrings,
+ kEoBBaseNpcJoinStrings,
+ kEoBBaseCancelStrings,
+ kEoBBaseAbortStrings,
+
+ kEoBBaseMenuStringsMain,
+ kEoBBaseMenuStringsSaveLoad,
+ kEoBBaseMenuStringsOnOff,
+ kEoBBaseMenuStringsSpells,
+ kEoBBaseMenuStringsRest,
+ kEoBBaseMenuStringsDrop,
+ kEoBBaseMenuStringsExit,
+ kEoBBaseMenuStringsStarve,
+ kEoBBaseMenuStringsScribe,
+ kEoBBaseMenuStringsDrop2,
+ kEoBBaseMenuStringsHead,
+ kEoBBaseMenuStringsPoison,
+ kEoBBaseMenuStringsMgc,
+ kEoBBaseMenuStringsPrefs,
+ kEoBBaseMenuStringsRest2,
+ kEoBBaseMenuStringsRest3,
+ kEoBBaseMenuStringsRest4,
+ kEoBBaseMenuStringsDefeat,
+ kEoBBaseMenuStringsTransfer,
+ kEoBBaseMenuStringsSpec,
+ kEoBBaseMenuStringsSpellNo,
+ kEoBBaseMenuYesNoStrings,
+
+ kEoBBaseSpellLevelsMage,
+ kEoBBaseSpellLevelsCleric,
+ kEoBBaseNumSpellsCleric,
+ kEoBBaseNumSpellsWisAdj,
+ kEoBBaseNumSpellsPal,
+ kEoBBaseNumSpellsMage,
+
+ kEoBBaseCharGuiStringsHp,
+ kEoBBaseCharGuiStringsWp2,
+ kEoBBaseCharGuiStringsWr,
+ kEoBBaseCharGuiStringsSt2,
+ kEoBBaseCharGuiStringsIn,
+
+ kEoBBaseCharStatusStrings7,
+ kEoBBaseCharStatusStrings82,
+ kEoBBaseCharStatusStrings9,
+ kEoBBaseCharStatusStrings12,
+ kEoBBaseCharStatusStrings132,
+
+ kEoBBaseLevelGainStrings,
+ kEoBBaseExperienceTable0,
+ kEoBBaseExperienceTable1,
+ kEoBBaseExperienceTable2,
+ kEoBBaseExperienceTable3,
+ kEoBBaseExperienceTable4,
+
+ kEoBBaseBookNumbers,
+ kEoBBaseMageSpellsList,
+ kEoBBaseClericSpellsList,
+ kEoBBaseSpellNames,
+ kEoBBaseMagicStrings1,
+ kEoBBaseMagicStrings2,
+ kEoBBaseMagicStrings3,
+ kEoBBaseMagicStrings4,
+ kEoBBaseMagicStrings6,
+ kEoBBaseMagicStrings7,
+ kEoBBaseMagicStrings8,
+
+ kEoBBaseExpObjectTlMode,
+ kEoBBaseExpObjectTblIndex,
+ kEoBBaseExpObjectShpStart,
+ kEoBBaseExpObjectTbl1,
+ kEoBBaseExpObjectTbl2,
+ kEoBBaseExpObjectTbl3,
+ kEoBBaseExpObjectY,
+
+ kEoBBaseSparkDefSteps,
+ kEoBBaseSparkDefSubSteps,
+ kEoBBaseSparkDefShift,
+ kEoBBaseSparkDefAdd,
+ kEoBBaseSparkDefX,
+ kEoBBaseSparkDefY,
+ kEoBBaseSparkOfFlags1,
+ kEoBBaseSparkOfFlags2,
+ kEoBBaseSparkOfShift,
+ kEoBBaseSparkOfX,
+ kEoBBaseSparkOfY,
+
+ kEoBBaseSpellProperties,
+ kEoBBaseMagicFlightProps,
+ kEoBBaseTurnUndeadEffect,
+ kEoBBaseBurningHandsDest,
+ kEoBBaseConeOfColdDest1,
+ kEoBBaseConeOfColdDest2,
+ kEoBBaseConeOfColdDest3,
+ kEoBBaseConeOfColdDest4,
+ kEoBBaseConeOfColdGfxTbl,
+
+ kRpgCommonDscDoorShapeIndex,
+ kEoBBaseWllFlagPreset,
+ kEoBBaseDscShapeCoords,
+
+ kRpgCommonDscDoorScaleOffs,
+ kEoBBaseDscDoorScaleMult1,
+ kEoBBaseDscDoorScaleMult2,
+ kEoBBaseDscDoorScaleMult3,
+ kEoBBaseDscDoorType5Offs,
+ kEoBBaseDscDoorY1,
+ kRpgCommonDscDoorY2,
+ kRpgCommonDscDoorFrameY1,
+ kRpgCommonDscDoorFrameY2,
+
+ kEoBBaseDscItemPosIndex,
+ kEoBBaseDscItemShpX,
+ kEoBBaseDscItemScaleIndex,
+ kEoBBaseDscItemTileIndex,
+ kEoBBaseDscItemShapeMap,
+ kEoBBaseDscTelptrShpCoords,
+
+ kEoBBasePortalSeqData,
+ kEoBBaseManDef,
+ kEoBBaseManWord,
+ kEoBBaseManPrompt,
+
+ kEoBBaseDscMonsterFrmOffsTbl1,
+ kEoBBaseDscMonsterFrmOffsTbl2,
+
+ kEoBBaseInvSlotX,
+ kEoBBaseInvSlotY,
+ kEoBBaseSlotValidationFlags,
+
+ kEoBBaseProjectileWeaponTypes,
+ kEoBBaseWandTypes,
+
+ kEoBBaseDrawObjPosIndex,
+ kEoBBaseFlightObjFlipIndex,
+ kEoBBaseFlightObjShpMap,
+ kEoBBaseFlightObjSclIndex,
+
+ kEoB2MainMenuStrings,
+
+ kEoB2TransferPortraitFrames,
+ kEoB2TransferConvertTable,
+ kEoB2TransferItemTable,
+ kEoB2TransferExpTable,
+ kEoB2TransferStrings1,
+ kEoB2TransferStrings2,
+ kEoB2TransferLabels,
+
+ kEoB2IntroStrings,
+ kEoB2IntroCPSFiles,
+ kEoB2IntroAnimData00,
+ kEoB2IntroAnimData01,
+ kEoB2IntroAnimData02,
+ kEoB2IntroAnimData03,
+ kEoB2IntroAnimData04,
+ kEoB2IntroAnimData05,
+ kEoB2IntroAnimData06,
+ kEoB2IntroAnimData07,
+ kEoB2IntroAnimData08,
+ kEoB2IntroAnimData09,
+ kEoB2IntroAnimData10,
+ kEoB2IntroAnimData11,
+ kEoB2IntroAnimData12,
+ kEoB2IntroAnimData13,
+ kEoB2IntroAnimData14,
+ kEoB2IntroAnimData15,
+ kEoB2IntroAnimData16,
+ kEoB2IntroAnimData17,
+ kEoB2IntroAnimData18,
+ kEoB2IntroAnimData19,
+ kEoB2IntroAnimData20,
+ kEoB2IntroAnimData21,
+ kEoB2IntroAnimData22,
+ kEoB2IntroAnimData23,
+ kEoB2IntroAnimData24,
+ kEoB2IntroAnimData25,
+ kEoB2IntroAnimData26,
+ kEoB2IntroAnimData27,
+ kEoB2IntroAnimData28,
+ kEoB2IntroAnimData29,
+ kEoB2IntroAnimData30,
+ kEoB2IntroAnimData31,
+ kEoB2IntroAnimData32,
+ kEoB2IntroAnimData33,
+ kEoB2IntroAnimData34,
+ kEoB2IntroAnimData35,
+ kEoB2IntroAnimData36,
+ kEoB2IntroAnimData37,
+ kEoB2IntroAnimData38,
+ kEoB2IntroAnimData39,
+ kEoB2IntroAnimData40,
+ kEoB2IntroAnimData41,
+ kEoB2IntroAnimData42,
+ kEoB2IntroAnimData43,
+
+ kEoB2IntroShapes00,
+ kEoB2IntroShapes01,
+ kEoB2IntroShapes04,
+ kEoB2IntroShapes07,
+
+ kEoB2FinaleStrings,
+ kEoB2CreditsData,
+ kEoB2FinaleCPSFiles,
+ kEoB2FinaleAnimData00,
+ kEoB2FinaleAnimData01,
+ kEoB2FinaleAnimData02,
+ kEoB2FinaleAnimData03,
+ kEoB2FinaleAnimData04,
+ kEoB2FinaleAnimData05,
+ kEoB2FinaleAnimData06,
+ kEoB2FinaleAnimData07,
+ kEoB2FinaleAnimData08,
+ kEoB2FinaleAnimData09,
+ kEoB2FinaleAnimData10,
+ kEoB2FinaleAnimData11,
+ kEoB2FinaleAnimData12,
+ kEoB2FinaleAnimData13,
+ kEoB2FinaleAnimData14,
+ kEoB2FinaleAnimData15,
+ kEoB2FinaleAnimData16,
+ kEoB2FinaleAnimData17,
+ kEoB2FinaleAnimData18,
+ kEoB2FinaleAnimData19,
+ kEoB2FinaleAnimData20,
+ kEoB2FinaleShapes00,
+ kEoB2FinaleShapes03,
+ kEoB2FinaleShapes07,
+ kEoB2FinaleShapes09,
+ kEoB2FinaleShapes10,
+
+ kEoB2NpcShapeData,
+ kEoBBaseClassModifierFlags,
+
+ kEoBBaseMonsterStepTable02,
+ kEoBBaseMonsterStepTable1,
+ kEoBBaseMonsterStepTable2,
+ kEoBBaseMonsterStepTable3,
+ kEoBBaseMonsterCloseAttPosTable1,
+ kEoBBaseMonsterCloseAttPosTable22,
+ kEoBBaseMonsterCloseAttUnkTable,
+ kEoBBaseMonsterCloseAttChkTable1,
+ kEoBBaseMonsterCloseAttChkTable2,
+ kEoBBaseMonsterCloseAttDstTable1,
+ kEoBBaseMonsterCloseAttDstTable2,
+
+ kEoBBaseMonsterProximityTable,
+ kEoBBaseFindBlockMonstersTable,
+ kEoBBaseMonsterDirChangeTable,
+ kEoBBaseMonsterDistAttStrings,
+ kEoBBaseEncodeMonsterDefs,
+ kEoBBaseNpcPresets,
+ kEoB2Npc1Strings,
+ kEoB2Npc2Strings,
+ kEoB2MonsterDustStrings,
+ kEoB2DreamSteps,
+ kEoB2KheldranStrings,
+ kEoB2HornStrings,
+ kEoB2HornSounds,
+ kEoB2WallOfForceDsX,
+ kEoB2WallOfForceDsY,
+ kEoB2WallOfForceNumW,
+ kEoB2WallOfForceNumH,
+ kEoB2WallOfForceShpId,
+
+ kRpgCommonDscShapeIndex,
+ kRpgCommonDscX,
+ kRpgCommonDscTileIndex,
+ kRpgCommonDscDimData1,
+ kRpgCommonDscDimData2,
+ kRpgCommonDscBlockMap,
+ kRpgCommonDscDimMap,
+ kRpgCommonDscBlockIndex,
+
+ -1
+};
+
+const int eob2PC98Need[] = {
+ kEoBBaseChargenStrings1,
+ kEoBBaseChargenStrings2,
+ kEoBBaseChargenStartLevels,
+ kEoBBaseChargenStatStrings,
+ kEoBBaseChargenRaceSexStrings,
+ kEoBBaseChargenClassStrings,
+ kEoBBaseChargenAlignmentStrings,
+ kEoBBaseChargenEnterGameStrings,
+ kEoBBaseChargenClassMinStats,
+ kEoBBaseChargenRaceMinStats,
+ kEoBBaseChargenRaceMaxStats,
+
+ kEoBBaseSaveThrowTable1,
+ kEoBBaseSaveThrowTable2,
+ kEoBBaseSaveThrowTable3,
+ kEoBBaseSaveThrowTable4,
+ kEoBBaseSaveThrwLvlIndex,
+ kEoBBaseSaveThrwModDiv,
+ kEoBBaseSaveThrwModExt,
+
+ kEoBBasePryDoorStrings,
+ kEoBBaseWarningStrings,
+
+ kEoBBaseItemSuffixStringsRings,
+ kEoBBaseItemSuffixStringsPotions,
+ kEoBBaseItemSuffixStringsWands,
+
+ kEoBBaseRipItemStrings,
+ kEoBBaseCursedString,
+ kEoBBaseEnchantedString,
+ kEoBBaseMagicObjectStrings,
+ kEoBBaseMagicObjectString5,
+ kEoBBasePatternSuffix,
+ kEoBBasePatternGrFix1,
+ kEoBBasePatternGrFix2,
+ kEoBBaseValidateArmorString,
+ kEoBBaseValidateCursedString,
+ kEoBBaseValidateNoDropString,
+ kEoBBasePotionStrings,
+ kEoBBaseWandStrings,
+ kEoBBaseItemMisuseStrings,
+
+ kEoBBaseTakenStrings,
+ kEoBBasePotionEffectStrings,
+
+ kEoBBaseYesNoStrings,
+ kRpgCommonMoreStrings,
+ kEoBBaseNpcMaxStrings,
+ kEoBBaseOkStrings,
+ kEoBBaseNpcJoinStrings,
+ kEoBBaseCancelStrings,
+ kEoBBaseAbortStrings,
+
+ kEoBBaseMenuStringsMain,
+ kEoBBaseMenuStringsSaveLoad,
+ kEoBBaseMenuStringsOnOff,
+ kEoBBaseMenuStringsSpells,
+ kEoBBaseMenuStringsRest,
+ kEoBBaseMenuStringsDrop,
+ kEoBBaseMenuStringsExit,
+ kEoBBaseMenuStringsStarve,
+ kEoBBaseMenuStringsScribe,
+ kEoBBaseMenuStringsDrop2,
+ kEoBBaseMenuStringsHead,
+ kEoBBaseMenuStringsPoison,
+ kEoBBaseMenuStringsMgc,
+ kEoBBaseMenuStringsPrefs,
+ kEoBBaseMenuStringsRest2,
+ kEoBBaseMenuStringsRest3,
+ kEoBBaseMenuStringsRest4,
+ kEoBBaseMenuStringsDefeat,
+ kEoBBaseMenuStringsTransfer,
+ kEoBBaseMenuStringsSpec,
+ kEoBBaseMenuStringsSpellNo,
+ kEoBBaseMenuYesNoStrings,
+
+ kEoBBaseSpellLevelsMage,
+ kEoBBaseSpellLevelsCleric,
+ kEoBBaseNumSpellsCleric,
+ kEoBBaseNumSpellsWisAdj,
+ kEoBBaseNumSpellsPal,
+ kEoBBaseNumSpellsMage,
+
+ kEoBBaseCharGuiStringsHp,
+ kEoBBaseCharGuiStringsWp2,
+ kEoBBaseCharGuiStringsWr,
+ kEoBBaseCharGuiStringsSt2,
+ kEoBBaseCharGuiStringsIn,
+
+ kEoBBaseCharStatusStrings7,
+ kEoBBaseCharStatusStrings82,
+ kEoBBaseCharStatusStrings9,
+ kEoBBaseCharStatusStrings12,
+ kEoBBaseCharStatusStrings132,
+
+ kEoBBaseLevelGainStrings,
+ kEoBBaseExperienceTable0,
+ kEoBBaseExperienceTable1,
+ kEoBBaseExperienceTable2,
+ kEoBBaseExperienceTable3,
+ kEoBBaseExperienceTable4,
+
+ kEoBBaseBookNumbers,
+ kEoBBaseMageSpellsList,
+ kEoBBaseClericSpellsList,
+ kEoBBaseSpellNames,
+ kEoBBaseMagicStrings1,
+ kEoBBaseMagicStrings2,
+ kEoBBaseMagicStrings3,
+ kEoBBaseMagicStrings4,
+ kEoBBaseMagicStrings6,
+ kEoBBaseMagicStrings7,
+ kEoBBaseMagicStrings8,
+
+ kEoBBaseExpObjectTlMode,
+ kEoBBaseExpObjectTblIndex,
+ kEoBBaseExpObjectShpStart,
+ kEoBBaseExpObjectTbl1,
+ kEoBBaseExpObjectTbl2,
+ kEoBBaseExpObjectTbl3,
+ kEoBBaseExpObjectY,
+
+ kEoBBaseSparkDefSteps,
+ kEoBBaseSparkDefSubSteps,
+ kEoBBaseSparkDefShift,
+ kEoBBaseSparkDefAdd,
+ kEoBBaseSparkDefX,
+ kEoBBaseSparkDefY,
+ kEoBBaseSparkOfFlags1,
+ kEoBBaseSparkOfFlags2,
+ kEoBBaseSparkOfShift,
+ kEoBBaseSparkOfX,
+ kEoBBaseSparkOfY,
+
+ kEoBBaseSpellProperties,
+ kEoBBaseMagicFlightProps,
+ kEoBBaseTurnUndeadEffect,
+ kEoBBaseBurningHandsDest,
+ kEoBBaseConeOfColdDest1,
+ kEoBBaseConeOfColdDest2,
+ kEoBBaseConeOfColdDest3,
+ kEoBBaseConeOfColdDest4,
+ kEoBBaseConeOfColdGfxTbl,
+
+ kRpgCommonDscDoorShapeIndex,
+ kEoBBaseWllFlagPreset,
+ kEoBBaseDscShapeCoords,
+
+ kRpgCommonDscDoorScaleOffs,
+ kEoBBaseDscDoorScaleMult1,
+ kEoBBaseDscDoorScaleMult2,
+ kEoBBaseDscDoorScaleMult3,
+ kEoBBaseDscDoorType5Offs,
+ kEoBBaseDscDoorY1,
+ kRpgCommonDscDoorY2,
+ kRpgCommonDscDoorFrameY1,
+ kRpgCommonDscDoorFrameY2,
+
+ kEoBBaseDscItemPosIndex,
+ kEoBBaseDscItemShpX,
+ kEoBBaseDscItemScaleIndex,
+ kEoBBaseDscItemTileIndex,
+ kEoBBaseDscItemShapeMap,
+ kEoBBaseDscTelptrShpCoords,
+
+ kEoBBasePortalSeqData,
+ kEoBBaseManDef,
+ kEoBBaseManWord,
+ kEoBBaseManPrompt,
+
+ kEoBBaseDscMonsterFrmOffsTbl1,
+ kEoBBaseDscMonsterFrmOffsTbl2,
+
+ kEoBBaseInvSlotX,
+ kEoBBaseInvSlotY,
+ kEoBBaseSlotValidationFlags,
+
+ kEoBBaseProjectileWeaponTypes,
+ kEoBBaseWandTypes,
+
+ kEoBBaseDrawObjPosIndex,
+ kEoBBaseFlightObjFlipIndex,
+ kEoBBaseFlightObjShpMap,
+ kEoBBaseFlightObjSclIndex,
+
+ kEoB2MainMenuStrings,
+
+ kEoB2TransferPortraitFrames,
+ kEoB2TransferConvertTable,
+ kEoB2TransferItemTable,
+ kEoB2TransferExpTable,
+ kEoB2TransferStrings1,
+ kEoB2TransferStrings2,
+ kEoB2TransferLabels,
+
+ kEoB2IntroStrings,
+ kEoB2IntroCPSFiles,
+ kEoB2IntroAnimData00,
+ kEoB2IntroAnimData01,
+ kEoB2IntroAnimData02,
+ kEoB2IntroAnimData03,
+ kEoB2IntroAnimData04,
+ kEoB2IntroAnimData05,
+ kEoB2IntroAnimData06,
+ kEoB2IntroAnimData07,
+ kEoB2IntroAnimData08,
+ kEoB2IntroAnimData09,
+ kEoB2IntroAnimData10,
+ kEoB2IntroAnimData11,
+ kEoB2IntroAnimData12,
+ kEoB2IntroAnimData13,
+ kEoB2IntroAnimData14,
+ kEoB2IntroAnimData15,
+ kEoB2IntroAnimData16,
+ kEoB2IntroAnimData17,
+ kEoB2IntroAnimData18,
+ kEoB2IntroAnimData19,
+ kEoB2IntroAnimData20,
+ kEoB2IntroAnimData21,
+ kEoB2IntroAnimData22,
+ kEoB2IntroAnimData23,
+ kEoB2IntroAnimData24,
+ kEoB2IntroAnimData25,
+ kEoB2IntroAnimData26,
+ kEoB2IntroAnimData27,
+ kEoB2IntroAnimData28,
+ kEoB2IntroAnimData29,
+ kEoB2IntroAnimData30,
+ kEoB2IntroAnimData31,
+ kEoB2IntroAnimData32,
+ kEoB2IntroAnimData33,
+ kEoB2IntroAnimData34,
+ kEoB2IntroAnimData35,
+ kEoB2IntroAnimData36,
+ kEoB2IntroAnimData37,
+ kEoB2IntroAnimData38,
+ kEoB2IntroAnimData39,
+ kEoB2IntroAnimData40,
+ kEoB2IntroAnimData41,
+ kEoB2IntroAnimData42,
+ kEoB2IntroAnimData43,
+
+ kEoB2IntroShapes00,
+ kEoB2IntroShapes01,
+ kEoB2IntroShapes04,
+ kEoB2IntroShapes07,
+
+ kEoB2FinaleStrings,
+ kEoB2CreditsData,
+ kEoB2FinaleCPSFiles,
+ kEoB2FinaleAnimData00,
+ kEoB2FinaleAnimData01,
+ kEoB2FinaleAnimData02,
+ kEoB2FinaleAnimData03,
+ kEoB2FinaleAnimData04,
+ kEoB2FinaleAnimData05,
+ kEoB2FinaleAnimData06,
+ kEoB2FinaleAnimData07,
+ kEoB2FinaleAnimData08,
+ kEoB2FinaleAnimData09,
+ kEoB2FinaleAnimData10,
+ kEoB2FinaleAnimData11,
+ kEoB2FinaleAnimData12,
+ kEoB2FinaleAnimData13,
+ kEoB2FinaleAnimData14,
+ kEoB2FinaleAnimData15,
+ kEoB2FinaleAnimData16,
+ kEoB2FinaleAnimData17,
+ kEoB2FinaleAnimData18,
+ kEoB2FinaleAnimData19,
+ kEoB2FinaleAnimData20,
+ kEoB2FinaleShapes00,
+ kEoB2FinaleShapes03,
+ kEoB2FinaleShapes07,
+ kEoB2FinaleShapes09,
+ kEoB2FinaleShapes10,
+
+ kEoB2NpcShapeData,
+ kEoBBaseClassModifierFlags,
+
+ kEoBBaseMonsterStepTable02,
+ kEoBBaseMonsterStepTable1,
+ kEoBBaseMonsterStepTable2,
+ kEoBBaseMonsterStepTable3,
+ kEoBBaseMonsterCloseAttPosTable1,
+ kEoBBaseMonsterCloseAttPosTable22,
+ kEoBBaseMonsterCloseAttUnkTable,
+ kEoBBaseMonsterCloseAttChkTable1,
+ kEoBBaseMonsterCloseAttChkTable2,
+ kEoBBaseMonsterCloseAttDstTable1,
+ kEoBBaseMonsterCloseAttDstTable2,
+
+ kEoBBaseMonsterProximityTable,
+ kEoBBaseFindBlockMonstersTable,
+ kEoBBaseMonsterDirChangeTable,
+ kEoBBaseMonsterDistAttStrings,
+ kEoBBaseEncodeMonsterDefs,
+ kEoBBaseNpcPresets,
+ kEoB2Npc1Strings,
+ kEoB2Npc2Strings,
+ kEoB2MonsterDustStrings,
+ kEoB2DreamSteps,
+ kEoB2KheldranStrings,
+ kEoB2HornStrings,
+ kEoB2HornSounds,
+ kEoB2WallOfForceDsX,
+ kEoB2WallOfForceDsY,
+ kEoB2WallOfForceNumW,
+ kEoB2WallOfForceNumH,
+ kEoB2WallOfForceShpId,
+
+ kRpgCommonDscShapeIndex,
+ kRpgCommonDscX,
+ kRpgCommonDscTileIndex,
+ kRpgCommonDscDimData1,
+ kRpgCommonDscDimData2,
+ kRpgCommonDscBlockMap,
+ kRpgCommonDscDimMap,
+ kRpgCommonDscBlockIndex,
+
+ -1
+};
+
+const int eob2FMTownsNeed[] = {
+ kEoBBaseChargenStrings1,
+ kEoBBaseChargenStrings2,
+ kEoBBaseChargenStartLevels,
+ kEoBBaseChargenStatStrings,
+ kEoBBaseChargenRaceSexStrings,
+ kEoBBaseChargenClassStrings,
+ kEoBBaseChargenAlignmentStrings,
+ kEoBBaseChargenEnterGameStrings,
+ kEoBBaseChargenClassMinStats,
+ kEoBBaseChargenRaceMinStats,
+ kEoBBaseChargenRaceMaxStats,
+
+ kEoBBaseSaveThrowTable1,
+ kEoBBaseSaveThrowTable2,
+ kEoBBaseSaveThrowTable3,
+ kEoBBaseSaveThrowTable4,
+ kEoBBaseSaveThrwLvlIndex,
+ kEoBBaseSaveThrwModDiv,
+ kEoBBaseSaveThrwModExt,
+
+ kEoBBasePryDoorStrings,
+ kEoBBaseWarningStrings,
+
+ kEoBBaseItemSuffixStringsRings,
+ kEoBBaseItemSuffixStringsPotions,
+ kEoBBaseItemSuffixStringsWands,
+
+ kEoBBaseRipItemStrings,
+ kEoBBaseCursedString,
+ kEoBBaseEnchantedString,
+ kEoBBaseMagicObjectStrings,
+ kEoBBaseMagicObjectString5,
+ kEoBBasePatternSuffix,
+ kEoBBasePatternGrFix1,
+ kEoBBasePatternGrFix2,
+ kEoBBaseValidateArmorString,
+ kEoBBaseValidateCursedString,
+ kEoBBaseValidateNoDropString,
+ kEoBBasePotionStrings,
+ kEoBBaseWandStrings,
+ kEoBBaseItemMisuseStrings,
+
+ kEoBBaseTakenStrings,
+ kEoBBasePotionEffectStrings,
+
+ kEoBBaseYesNoStrings,
+ kRpgCommonMoreStrings,
+ kEoBBaseNpcMaxStrings,
+ kEoBBaseOkStrings,
+ kEoBBaseNpcJoinStrings,
+ kEoBBaseCancelStrings,
+ kEoBBaseAbortStrings,
+
+ kEoBBaseMenuStringsMain,
+ kEoBBaseMenuStringsSaveLoad,
+ kEoBBaseMenuStringsOnOff,
+ kEoBBaseMenuStringsSpells,
+ kEoBBaseMenuStringsRest,
+ kEoBBaseMenuStringsDrop,
+ kEoBBaseMenuStringsExit,
+ kEoBBaseMenuStringsStarve,
+ kEoBBaseMenuStringsScribe,
+ kEoBBaseMenuStringsDrop2,
+ kEoBBaseMenuStringsHead,
+ kEoBBaseMenuStringsPoison,
+ kEoBBaseMenuStringsMgc,
+ kEoBBaseMenuStringsPrefs,
+ kEoBBaseMenuStringsRest2,
+ kEoBBaseMenuStringsRest3,
+ kEoBBaseMenuStringsRest4,
+ kEoBBaseMenuStringsDefeat,
+ kEoBBaseMenuStringsSpec,
+ kEoBBaseMenuStringsSpellNo,
+ kEoBBaseMenuYesNoStrings,
+
+ kEoBBaseSpellLevelsMage,
+ kEoBBaseSpellLevelsCleric,
+ kEoBBaseNumSpellsCleric,
+ kEoBBaseNumSpellsWisAdj,
+ kEoBBaseNumSpellsPal,
+ kEoBBaseNumSpellsMage,
+
+ kEoBBaseCharGuiStringsHp,
+ kEoBBaseCharGuiStringsWp2,
+ kEoBBaseCharGuiStringsWr,
+ kEoBBaseCharGuiStringsSt2,
+ kEoBBaseCharGuiStringsIn,
+
+ kEoBBaseCharStatusStrings7,
+ kEoBBaseCharStatusStrings82,
+ kEoBBaseCharStatusStrings9,
+ kEoBBaseCharStatusStrings12,
+ kEoBBaseCharStatusStrings132,
+
+ kEoBBaseLevelGainStrings,
+ kEoBBaseExperienceTable0,
+ kEoBBaseExperienceTable1,
+ kEoBBaseExperienceTable2,
+ kEoBBaseExperienceTable3,
+ kEoBBaseExperienceTable4,
+
+ kEoBBaseBookNumbers,
+ kEoBBaseMageSpellsList,
+ kEoBBaseClericSpellsList,
+ kEoBBaseSpellNames,
+ kEoBBaseMagicStrings1,
+ kEoBBaseMagicStrings2,
+ kEoBBaseMagicStrings3,
+ kEoBBaseMagicStrings4,
+ kEoBBaseMagicStrings6,
+ kEoBBaseMagicStrings7,
+ kEoBBaseMagicStrings8,
+
+ kEoBBaseExpObjectTlMode,
+ kEoBBaseExpObjectTblIndex,
+ kEoBBaseExpObjectShpStart,
+ kEoBBaseExpObjectTbl1,
+ kEoBBaseExpObjectTbl2,
+ kEoBBaseExpObjectTbl3,
+ kEoBBaseExpObjectY,
+
+ kEoBBaseSparkDefSteps,
+ kEoBBaseSparkDefSubSteps,
+ kEoBBaseSparkDefShift,
+ kEoBBaseSparkDefAdd,
+ kEoBBaseSparkDefX,
+ kEoBBaseSparkDefY,
+ kEoBBaseSparkOfFlags1,
+ kEoBBaseSparkOfFlags2,
+ kEoBBaseSparkOfShift,
+ kEoBBaseSparkOfX,
+ kEoBBaseSparkOfY,
+
+ kEoBBaseSpellProperties,
+ kEoBBaseMagicFlightProps,
+ kEoBBaseTurnUndeadEffect,
+ kEoBBaseBurningHandsDest,
+ kEoBBaseConeOfColdDest1,
+ kEoBBaseConeOfColdDest2,
+ kEoBBaseConeOfColdDest3,
+ kEoBBaseConeOfColdDest4,
+ kEoBBaseConeOfColdGfxTbl,
+
+ kRpgCommonDscDoorShapeIndex,
+ kEoBBaseWllFlagPreset,
+ kEoBBaseDscShapeCoords,
+
+ kRpgCommonDscDoorScaleOffs,
+ kEoBBaseDscDoorScaleMult1,
+ kEoBBaseDscDoorScaleMult2,
+ kEoBBaseDscDoorScaleMult3,
+ kEoBBaseDscDoorType5Offs,
+ kEoBBaseDscDoorY1,
+ kRpgCommonDscDoorY2,
+ kRpgCommonDscDoorFrameY1,
+ kRpgCommonDscDoorFrameY2,
+
+ kEoBBaseDscItemPosIndex,
+ kEoBBaseDscItemShpX,
+ kEoBBaseDscItemScaleIndex,
+ kEoBBaseDscItemTileIndex,
+ kEoBBaseDscItemShapeMap,
+ kEoBBaseDscTelptrShpCoords,
+
+ kEoBBasePortalSeqData,
+
+ kEoBBaseDscMonsterFrmOffsTbl1,
+ kEoBBaseDscMonsterFrmOffsTbl2,
+
+ kEoBBaseInvSlotX,
+ kEoBBaseInvSlotY,
+ kEoBBaseSlotValidationFlags,
+
+ kEoBBaseProjectileWeaponTypes,
+ kEoBBaseWandTypes,
+
+ kEoBBaseDrawObjPosIndex,
+ kEoBBaseFlightObjFlipIndex,
+ kEoBBaseFlightObjShpMap,
+ kEoBBaseFlightObjSclIndex,
+
+ kEoB2MainMenuStrings,
+ kEoB2MainMenuUtilStrings,
+
+ kEoB2IntroStrings,
+ kEoB2IntroAnimData00,
+ kEoB2IntroAnimData01,
+ kEoB2IntroAnimData02,
+ kEoB2IntroAnimData03,
+ kEoB2IntroAnimData04,
+ kEoB2IntroAnimData05,
+ kEoB2IntroAnimData06,
+ kEoB2IntroAnimData07,
+ kEoB2IntroAnimData08,
+ kEoB2IntroAnimData09,
+ kEoB2IntroAnimData10,
+ kEoB2IntroAnimData11,
+ kEoB2IntroAnimData12,
+ kEoB2IntroAnimData13,
+ kEoB2IntroAnimData14,
+ kEoB2IntroAnimData15,
+ kEoB2IntroAnimData16,
+ kEoB2IntroAnimData17,
+ kEoB2IntroAnimData18,
+ kEoB2IntroAnimData19,
+ kEoB2IntroAnimData20,
+ kEoB2IntroAnimData21,
+ kEoB2IntroAnimData22,
+ kEoB2IntroAnimData23,
+ kEoB2IntroAnimData24,
+ kEoB2IntroAnimData25,
+ kEoB2IntroAnimData26,
+ kEoB2IntroAnimData27,
+ kEoB2IntroAnimData28,
+ kEoB2IntroAnimData29,
+ kEoB2IntroAnimData30,
+ kEoB2IntroAnimData31,
+ kEoB2IntroAnimData32,
+ kEoB2IntroAnimData33,
+ kEoB2IntroAnimData34,
+ kEoB2IntroAnimData35,
+ kEoB2IntroAnimData36,
+ kEoB2IntroAnimData37,
+ kEoB2IntroAnimData38,
+ kEoB2IntroAnimData39,
+ kEoB2IntroAnimData40,
+ kEoB2IntroAnimData41,
+ kEoB2IntroAnimData42,
+ kEoB2IntroAnimData43,
+
+ kEoB2IntroCpsDataStreet1,
+ kEoB2IntroCpsDataStreet2,
+ kEoB2IntroCpsDataDoorway1,
+ kEoB2IntroCpsDataDoorway2,
+ kEoB2IntroCpsDataWestwood,
+ kEoB2IntroCpsDataWinding,
+ kEoB2IntroCpsDataKhelban2,
+ kEoB2IntroCpsDataKhelban1,
+ kEoB2IntroCpsDataKhelban3,
+ kEoB2IntroCpsDataKhelban4,
+ kEoB2IntroCpsDataCoin,
+ kEoB2IntroCpsDataKhelban5,
+ kEoB2IntroCpsDataKhelban6,
+
+ kEoB2IntroShapes00,
+ kEoB2IntroShapes01,
+ kEoB2IntroShapes04,
+ kEoB2IntroShapes07,
+
+ kEoB2FinaleStrings,
+ kEoB2FinaleAnimData00,
+ kEoB2FinaleAnimData01,
+ kEoB2FinaleAnimData02,
+ kEoB2FinaleAnimData03,
+ kEoB2FinaleAnimData04,
+ kEoB2FinaleAnimData05,
+ kEoB2FinaleAnimData06,
+ kEoB2FinaleAnimData07,
+ kEoB2FinaleAnimData08,
+ kEoB2FinaleAnimData09,
+ kEoB2FinaleAnimData10,
+ kEoB2FinaleAnimData11,
+ kEoB2FinaleAnimData12,
+ kEoB2FinaleAnimData13,
+ kEoB2FinaleAnimData14,
+ kEoB2FinaleAnimData15,
+ kEoB2FinaleAnimData16,
+ kEoB2FinaleAnimData17,
+ kEoB2FinaleAnimData18,
+ kEoB2FinaleAnimData19,
+ kEoB2FinaleAnimData20,
+
+ kEoB2FinaleCpsDataDragon1,
+ kEoB2FinaleCpsDataDragon2,
+ kEoB2FinaleCpsDataHurry1,
+ kEoB2FinaleCpsDataHurry2,
+ kEoB2FinaleCpsDataDestroy0,
+ kEoB2FinaleCpsDataDestroy1,
+ kEoB2FinaleCpsDataDestroy2,
+ kEoB2FinaleCpsDataMagic,
+ kEoB2FinaleCpsDataDestroy3,
+ kEoB2FinaleCpsDataCredits2,
+ kEoB2FinaleCpsDataCredits3,
+ kEoB2FinaleCpsDataHeroes,
+ kEoB2FinaleCpsDataThanks,
+
+ kEoB2FinaleShapes00,
+ kEoB2FinaleShapes03,
+ kEoB2FinaleShapes07,
+ kEoB2FinaleShapes09,
+ kEoB2FinaleShapes10,
+
+ kEoB2NpcShapeData,
+ kEoBBaseClassModifierFlags,
+
+ kEoBBaseMonsterStepTable02,
+ kEoBBaseMonsterStepTable1,
+ kEoBBaseMonsterStepTable2,
+ kEoBBaseMonsterStepTable3,
+ kEoBBaseMonsterCloseAttPosTable1,
+ kEoBBaseMonsterCloseAttPosTable22,
+ kEoBBaseMonsterCloseAttUnkTable,
+ kEoBBaseMonsterCloseAttChkTable1,
+ kEoBBaseMonsterCloseAttChkTable2,
+ kEoBBaseMonsterCloseAttDstTable1,
+ kEoBBaseMonsterCloseAttDstTable2,
+
+ kEoBBaseMonsterProximityTable,
+ kEoBBaseFindBlockMonstersTable,
+ kEoBBaseMonsterDirChangeTable,
+ kEoBBaseMonsterDistAttStrings,
+ kEoBBaseNpcPresets,
+ kEoB2Npc1Strings,
+ kEoB2Npc2Strings,
+ kEoB2MonsterDustStrings,
+ kEoB2DreamSteps,
+ kEoB2KheldranStrings,
+ kEoB2HornStrings,
+ kEoB2HornSounds,
+ kEoB2WallOfForceDsX,
+ kEoB2WallOfForceDsY,
+ kEoB2WallOfForceNumW,
+ kEoB2WallOfForceNumH,
+ kEoB2WallOfForceShpId,
+
+ kRpgCommonDscShapeIndex,
+ kRpgCommonDscX,
+ kRpgCommonDscTileIndex,
+ kRpgCommonDscDimData1,
+ kRpgCommonDscDimData2,
+ kRpgCommonDscBlockMap,
+ kRpgCommonDscDimMap,
+ kRpgCommonDscBlockIndex,
+
+ kEoB2ItemIconShapeData00,
+ kEoB2ItemIconShapeData01,
+ kEoB2ItemIconShapeData02,
+ kEoB2ItemIconShapeData03,
+ kEoB2ItemIconShapeData04,
+ kEoB2ItemIconShapeData05,
+ kEoB2ItemIconShapeData06,
+ kEoB2ItemIconShapeData07,
+ kEoB2ItemIconShapeData08,
+ kEoB2ItemIconShapeData09,
+ kEoB2ItemIconShapeData10,
+ kEoB2ItemIconShapeData11,
+ kEoB2ItemIconShapeData12,
+ kEoB2ItemIconShapeData13,
+ kEoB2ItemIconShapeData14,
+ kEoB2ItemIconShapeData15,
+ kEoB2ItemIconShapeData16,
+ kEoB2ItemIconShapeData17,
+ kEoB2ItemIconShapeData18,
+ kEoB2ItemIconShapeData19,
+ kEoB2ItemIconShapeData20,
+ kEoB2ItemIconShapeData21,
+ kEoB2ItemIconShapeData22,
+ kEoB2ItemIconShapeData23,
+ kEoB2ItemIconShapeData24,
+ kEoB2ItemIconShapeData25,
+ kEoB2ItemIconShapeData26,
+ kEoB2ItemIconShapeData27,
+ kEoB2ItemIconShapeData28,
+ kEoB2ItemIconShapeData29,
+ kEoB2ItemIconShapeData30,
+ kEoB2ItemIconShapeData31,
+ kEoB2ItemIconShapeData32,
+ kEoB2ItemIconShapeData33,
+ kEoB2ItemIconShapeData34,
+ kEoB2ItemIconShapeData35,
+ kEoB2ItemIconShapeData36,
+ kEoB2ItemIconShapeData37,
+ kEoB2ItemIconShapeData38,
+ kEoB2ItemIconShapeData39,
+ kEoB2ItemIconShapeData40,
+ kEoB2ItemIconShapeData41,
+ kEoB2ItemIconShapeData42,
+ kEoB2ItemIconShapeData43,
+ kEoB2ItemIconShapeData44,
+ kEoB2ItemIconShapeData45,
+ kEoB2ItemIconShapeData46,
+ kEoB2ItemIconShapeData47,
+ kEoB2ItemIconShapeData48,
+ kEoB2ItemIconShapeData49,
+ kEoB2ItemIconShapeData50,
+ kEoB2ItemIconShapeData51,
+ kEoB2ItemIconShapeData52,
+ kEoB2ItemIconShapeData53,
+ kEoB2ItemIconShapeData54,
+ kEoB2ItemIconShapeData55,
+ kEoB2ItemIconShapeData56,
+ kEoB2ItemIconShapeData57,
+ kEoB2ItemIconShapeData58,
+ kEoB2ItemIconShapeData59,
+ kEoB2ItemIconShapeData60,
+ kEoB2ItemIconShapeData61,
+ kEoB2ItemIconShapeData62,
+ kEoB2ItemIconShapeData63,
+ kEoB2ItemIconShapeData64,
+ kEoB2ItemIconShapeData65,
+ kEoB2ItemIconShapeData66,
+ kEoB2ItemIconShapeData67,
+ kEoB2ItemIconShapeData68,
+ kEoB2ItemIconShapeData69,
+ kEoB2ItemIconShapeData70,
+ kEoB2ItemIconShapeData71,
+ kEoB2ItemIconShapeData72,
+ kEoB2ItemIconShapeData73,
+ kEoB2ItemIconShapeData74,
+ kEoB2ItemIconShapeData75,
+ kEoB2ItemIconShapeData76,
+ kEoB2ItemIconShapeData77,
+ kEoB2ItemIconShapeData78,
+ kEoB2ItemIconShapeData79,
+ kEoB2ItemIconShapeData80,
+ kEoB2ItemIconShapeData81,
+ kEoB2ItemIconShapeData82,
+ kEoB2ItemIconShapeData83,
+ kEoB2ItemIconShapeData84,
+ kEoB2ItemIconShapeData85,
+ kEoB2ItemIconShapeData86,
+ kEoB2ItemIconShapeData87,
+ kEoB2ItemIconShapeData88,
+ kEoB2ItemIconShapeData89,
+ kEoB2ItemIconShapeData90,
+ kEoB2ItemIconShapeData91,
+ kEoB2ItemIconShapeData92,
+ kEoB2ItemIconShapeData93,
+ kEoB2ItemIconShapeData94,
+ kEoB2ItemIconShapeData95,
+ kEoB2ItemIconShapeData96,
+ kEoB2ItemIconShapeData97,
+ kEoB2ItemIconShapeData98,
+ kEoB2ItemIconShapeData99,
+ kEoB2ItemIconShapeData100,
+ kEoB2ItemIconShapeData101,
+ kEoB2ItemIconShapeData102,
+ kEoB2ItemIconShapeData103,
+ kEoB2ItemIconShapeData104,
+ kEoB2ItemIconShapeData105,
+ kEoB2ItemIconShapeData106,
+ kEoB2ItemIconShapeData107,
+ kEoB2ItemIconShapeData108,
+ kEoB2ItemIconShapeData109,
+ kEoB2ItemIconShapeData110,
+ kEoB2ItemIconShapeData111,
+
+ kEoB2LargeItemsShapeData00,
+ kEoB2LargeItemsShapeData01,
+ kEoB2LargeItemsShapeData02,
+ kEoB2LargeItemsShapeData03,
+ kEoB2LargeItemsShapeData04,
+ kEoB2LargeItemsShapeData05,
+ kEoB2LargeItemsShapeData06,
+ kEoB2LargeItemsShapeData07,
+ kEoB2LargeItemsShapeData08,
+ kEoB2LargeItemsShapeData09,
+ kEoB2LargeItemsShapeData10,
+
+ kEoB2SmallItemsShapeData00,
+ kEoB2SmallItemsShapeData01,
+ kEoB2SmallItemsShapeData02,
+ kEoB2SmallItemsShapeData03,
+ kEoB2SmallItemsShapeData04,
+ kEoB2SmallItemsShapeData05,
+ kEoB2SmallItemsShapeData06,
+ kEoB2SmallItemsShapeData07,
+ kEoB2SmallItemsShapeData08,
+ kEoB2SmallItemsShapeData09,
+ kEoB2SmallItemsShapeData10,
+ kEoB2SmallItemsShapeData11,
+ kEoB2SmallItemsShapeData12,
+ kEoB2SmallItemsShapeData13,
+ kEoB2SmallItemsShapeData14,
+ kEoB2SmallItemsShapeData15,
+ kEoB2SmallItemsShapeData16,
+ kEoB2SmallItemsShapeData17,
+ kEoB2SmallItemsShapeData18,
+ kEoB2SmallItemsShapeData19,
+ kEoB2SmallItemsShapeData20,
+ kEoB2SmallItemsShapeData21,
+ kEoB2SmallItemsShapeData22,
+ kEoB2SmallItemsShapeData23,
+ kEoB2SmallItemsShapeData24,
+ kEoB2SmallItemsShapeData25,
+
+ kEoB2ThrownShapeData00,
+ kEoB2ThrownShapeData01,
+ kEoB2ThrownShapeData02,
+ kEoB2ThrownShapeData03,
+ kEoB2ThrownShapeData04,
+ kEoB2ThrownShapeData05,
+ kEoB2ThrownShapeData06,
+ kEoB2ThrownShapeData07,
+ kEoB2ThrownShapeData08,
+
+ kEoB2SpellShapeData00,
+ kEoB2SpellShapeData01,
+ kEoB2SpellShapeData02,
+ kEoB2SpellShapeData03,
+
+ kEoB2TeleporterShapeData00,
+ kEoB2TeleporterShapeData01,
+ kEoB2TeleporterShapeData02,
+ kEoB2TeleporterShapeData03,
+ kEoB2TeleporterShapeData04,
+ kEoB2TeleporterShapeData05,
+
+ kEoB2LightningColumnShapeData,
+ kEoB2DeadCharShapeData,
+ kEoB2DisabledCharGridShapeData,
+ kEoB2WeaponSlotGridShapeData,
+ kEoB2SmallGridShapeData,
+ kEoB2WideGridShapeData,
+ kEoB2RedSplatShapeData,
+ kEoB2GreenSplatShapeData,
+
+ kEoB2FirebeamShapeData00,
+ kEoB2FirebeamShapeData01,
+ kEoB2FirebeamShapeData02,
+
+ kEoB2SparkShapeData00,
+ kEoB2SparkShapeData01,
+ kEoB2SparkShapeData02,
+
+ kEoB2CompassShapeData00,
+ kEoB2CompassShapeData01,
+ kEoB2CompassShapeData02,
+ kEoB2CompassShapeData03,
+ kEoB2CompassShapeData04,
+ kEoB2CompassShapeData05,
+ kEoB2CompassShapeData06,
+ kEoB2CompassShapeData07,
+ kEoB2CompassShapeData08,
+ kEoB2CompassShapeData09,
+ kEoB2CompassShapeData10,
+ kEoB2CompassShapeData11,
+
+ kEoB2WallOfForceShapeData00,
+ kEoB2WallOfForceShapeData01,
+ kEoB2WallOfForceShapeData02,
+ kEoB2WallOfForceShapeData03,
+ kEoB2WallOfForceShapeData04,
+ kEoB2WallOfForceShapeData05,
+
+ kEoB2UtilMenuStrings,
+ kEoB2Config2431Strings,
+ kEoB2KatakanaLines,
+ kEoB2KanaSelectStrings,
+ kEoB2FontDmpSearchTbl,
+ kEoB2Ascii2SjisTables,
+ kEoB2Ascii2SjisTables2,
+ kEoB2SaveNamePatterns,
+ kEoB2PcmSoundEffectsIngame,
+ kEoB2PcmSoundEffectsIntro,
+ kEoB2PcmSoundEffectsFinale,
+
+ -1
+};
+
+struct GameNeed {
+ int game;
+ int platform;
+ int special;
+
+ const int *entries;
+};
+
+const GameNeed gameNeedTable[] = {
+ { kKyra1, kPlatformDOS, kNoSpecial, kyra1FloppyNeed },
+ { kKyra1, kPlatformDOS, kOldFloppy, kyra1FloppyOldNeed },
{ kKyra1, kPlatformAmiga, kNoSpecial, kyra1AmigaNeed },
{ kKyra1, kPlatformDOS, kTalkieVersion, kyra1CDNeed },
@@ -1788,8 +2955,14 @@ const GameNeed gameNeedTable[] = {
{ kEoB1, kPlatformDOS, kNoSpecial, eob1FloppyNeed },
+ //{ kEoB1, kPlatformPC98, kNoSpecial, eob1PC98Need },
+
{ kEoB2, kPlatformDOS, kNoSpecial, eob2FloppyNeed },
+ //{ kEoB2, kPlatformPC98, kNoSpecial, eob2PC98Need },
+
+ { kEoB2, kPlatformFMTowns, kNoSpecial, eob2FMTownsNeed },
+
{ -1, -1, -1, 0 }
};
diff --git a/devtools/create_kyradat/resources.cpp b/devtools/create_kyradat/resources.cpp
index 8347279..9b225bf 100644
--- a/devtools/create_kyradat/resources.cpp
+++ b/devtools/create_kyradat/resources.cpp
@@ -95,11 +95,20 @@
#include "resources/eob1_dos_german.h"
#include "resources/eob1_dos_italian.h"
+//#include "resources/eob1_pc98.h"
+//#include "resources/eob1_pc98_japanese.h"
+
// Eye of the Beholder: The Legend of Darkmoon
#include "resources/eob2_dos.h"
#include "resources/eob2_dos_english.h"
#include "resources/eob2_dos_german.h"
+//#include "resources/eob2_pc98.h"
+//#include "resources/eob2_pc98_japanese.h"
+
+#include "resources/eob2_fmtowns.h"
+#include "resources/eob2_fmtowns_japanese.h"
+
// Lands of Lore
#include "resources/lol_dos_demo.h"
#include "resources/lol_dos_demo_english.h"
@@ -1095,7 +1104,7 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscDoorShapeIndex, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorShapeIndexDOSProvider },
{ kEoBBaseWllFlagPreset, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1WllFlagPresetDOSProvider },
{ kEoBBaseDscShapeCoords, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscShapeCoordsDOSProvider },
- { kEoBBaseDscDoorScaleOffs, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleOffsDOSProvider },
+ { kRpgCommonDscDoorScaleOffs, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleOffsDOSProvider },
{ kEoBBaseDscDoorScaleMult1, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult1DOSProvider },
{ kEoBBaseDscDoorScaleMult2, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult2DOSProvider },
{ kEoBBaseDscDoorScaleMult3, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDoorScaleMult3DOSProvider },
@@ -1138,7 +1147,6 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscShapeIndex, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscShapeIndexDOSProvider },
{ kRpgCommonDscX, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscXDOSProvider },
{ kRpgCommonDscTileIndex, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscTileIndexDOSProvider },
- { kRpgCommonDscUnk2, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscUnk2DOSProvider },
{ kRpgCommonDscDimData1, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDimData1DOSProvider },
{ kRpgCommonDscDimData2, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscDimData2DOSProvider },
{ kRpgCommonDscBlockMap, kEoB1, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB1DscBlockMapDOSProvider },
@@ -1467,7 +1475,7 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscDoorShapeIndex, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorShapeIndexDOSProvider },
{ kEoBBaseWllFlagPreset, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2WllFlagPresetDOSProvider },
{ kEoBBaseDscShapeCoords, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscShapeCoordsDOSProvider },
- { kEoBBaseDscDoorScaleOffs, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleOffsDOSProvider },
+ { kRpgCommonDscDoorScaleOffs, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleOffsDOSProvider },
{ kEoBBaseDscDoorScaleMult1, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult1DOSProvider },
{ kEoBBaseDscDoorScaleMult2, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult2DOSProvider },
{ kEoBBaseDscDoorScaleMult3, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult3DOSProvider },
@@ -1618,7 +1626,6 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscShapeIndex, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscShapeIndexDOSProvider },
{ kRpgCommonDscX, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscXDOSProvider },
{ kRpgCommonDscTileIndex, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscTileIndexDOSProvider },
- { kRpgCommonDscUnk2, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscUnk2DOSProvider },
{ kRpgCommonDscDimData1, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDimData1DOSProvider },
{ kRpgCommonDscDimData2, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscDimData2DOSProvider },
{ kRpgCommonDscBlockMap, kEoB2, kPlatformDOS, kNoSpecial, UNK_LANG, &kEoB2DscBlockMapDOSProvider },
@@ -1719,11 +1726,521 @@ static const ResourceProvider resourceProviders[] = {
{ kEoB2MonsterDustStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2MonsterDustStringsDOSGermanProvider },
{ kEoB2KheldranStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2KheldranStringsDOSGermanProvider },
{ kEoB2HornStrings, kEoB2, kPlatformDOS, kNoSpecial, DE_DEU, &kEoB2HornStringsDOSGermanProvider },
+ { kEoBBaseChargenStrings1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenStrings1FMTownsJapaneseProvider },
+ { kEoBBaseChargenStrings2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenStrings2FMTownsJapaneseProvider },
+ { kEoBBaseChargenStartLevels, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ChargenStartLevelsFMTownsProvider },
+ { kEoBBaseChargenStatStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenStatStringsFMTownsJapaneseProvider },
+ { kEoBBaseChargenRaceSexStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenRaceSexStringsFMTownsJapaneseProvider },
+ { kEoBBaseChargenClassStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenClassStringsFMTownsJapaneseProvider },
+ { kEoBBaseChargenAlignmentStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenAlignmentStringsFMTownsJapaneseProvider },
+ { kEoBBaseChargenEnterGameStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ChargenEnterGameStringsFMTownsJapaneseProvider },
+ { kEoBBaseChargenClassMinStats, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ChargenClassMinStatsFMTownsProvider },
+ { kEoBBaseChargenRaceMinStats, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ChargenRaceMinStatsFMTownsProvider },
+ { kEoBBaseChargenRaceMaxStats, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ChargenRaceMaxStatsFMTownsProvider },
+ { kEoBBaseSaveThrowTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable1FMTownsProvider },
+ { kEoBBaseSaveThrowTable2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable2FMTownsProvider },
+ { kEoBBaseSaveThrowTable3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable3FMTownsProvider },
+ { kEoBBaseSaveThrowTable4, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrowTable4FMTownsProvider },
+ { kEoBBaseSaveThrwLvlIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrwLvlIndexFMTownsProvider },
+ { kEoBBaseSaveThrwModDiv, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrwModDivFMTownsProvider },
+ { kEoBBaseSaveThrwModExt, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveThrwModExtFMTownsProvider },
+ { kEoBBasePryDoorStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PryDoorStringsFMTownsJapaneseProvider },
+ { kEoBBaseWarningStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2WarningStringsFMTownsJapaneseProvider },
+ { kEoBBaseItemSuffixStringsRings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ItemSuffixStringsRingsFMTownsJapaneseProvider },
+ { kEoBBaseItemSuffixStringsPotions, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ItemSuffixStringsPotionsFMTownsJapaneseProvider },
+ { kEoBBaseItemSuffixStringsWands, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ItemSuffixStringsWandsFMTownsJapaneseProvider },
+ { kEoBBaseRipItemStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2RipItemStringsFMTownsJapaneseProvider },
+ { kEoBBaseCursedString, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CursedStringFMTownsJapaneseProvider },
+ { kEoBBaseEnchantedString, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2EnchantedStringFMTownsProvider },
+ { kEoBBaseMagicObjectStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicObjectStringsFMTownsJapaneseProvider },
+ { kEoBBaseMagicObjectString5, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicObjectString5FMTownsJapaneseProvider },
+ { kEoBBasePatternSuffix, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PatternSuffixFMTownsJapaneseProvider },
+ { kEoBBasePatternGrFix1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PatternGrFix1FMTownsJapaneseProvider },
+ { kEoBBasePatternGrFix2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PatternGrFix2FMTownsJapaneseProvider },
+ { kEoBBaseValidateArmorString, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ValidateArmorStringFMTownsJapaneseProvider },
+ { kEoBBaseValidateCursedString, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ValidateCursedStringFMTownsJapaneseProvider },
+ { kEoBBaseValidateNoDropString, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ValidateNoDropStringFMTownsJapaneseProvider },
+ { kEoBBasePotionStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PotionStringsFMTownsJapaneseProvider },
+ { kEoBBaseWandStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2WandStringsFMTownsJapaneseProvider },
+ { kEoBBaseItemMisuseStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ItemMisuseStringsFMTownsJapaneseProvider },
+ { kEoBBaseTakenStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2TakenStringsFMTownsJapaneseProvider },
+ { kEoBBasePotionEffectStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2PotionEffectStringsFMTownsJapaneseProvider },
+ { kEoBBaseYesNoStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2YesNoStringsFMTownsJapaneseProvider },
+ { kRpgCommonMoreStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MoreStringsFMTownsJapaneseProvider },
+ { kEoBBaseNpcMaxStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2NpcMaxStringsFMTownsJapaneseProvider },
+ { kEoBBaseOkStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2OkStringsFMTownsJapaneseProvider },
+ { kEoBBaseNpcJoinStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2NpcJoinStringsFMTownsJapaneseProvider },
+ { kEoBBaseCancelStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CancelStringsFMTownsJapaneseProvider },
+ { kEoBBaseAbortStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2AbortStringsFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsMain, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsMainFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsSaveLoad, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsSaveLoadFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsOnOff, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsOnOffFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsSpells, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsSpellsFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsRest, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsRestFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsDrop, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsDropFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsExit, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsExitFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsStarve, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsStarveFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsScribe, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsScribeFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsDrop2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsDrop2FMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsHead, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsHeadFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsPoison, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsPoisonFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsMgc, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsMgcFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsPrefs, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsPrefsFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsRest2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsRest2FMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsRest3, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsRest3FMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsRest4, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsRest4FMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsDefeat, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsDefeatFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsSpec, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuStringsSpecFMTownsJapaneseProvider },
+ { kEoBBaseMenuStringsSpellNo, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MenuStringsSpellNoFMTownsProvider },
+ { kEoBBaseMenuYesNoStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MenuYesNoStringsFMTownsJapaneseProvider },
+ { kEoBBaseSpellLevelsMage, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellLevelsMageFMTownsProvider },
+ { kEoBBaseSpellLevelsCleric, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellLevelsClericFMTownsProvider },
+ { kEoBBaseNumSpellsCleric, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NumSpellsClericFMTownsProvider },
+ { kEoBBaseNumSpellsWisAdj, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NumSpellsWisAdjFMTownsProvider },
+ { kEoBBaseNumSpellsPal, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NumSpellsPalFMTownsProvider },
+ { kEoBBaseNumSpellsMage, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NumSpellsMageFMTownsProvider },
+ { kEoBBaseCharGuiStringsHp, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharGuiStringsHpFMTownsJapaneseProvider },
+ { kEoBBaseCharGuiStringsWp2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharGuiStringsWp2FMTownsJapaneseProvider },
+ { kEoBBaseCharGuiStringsWr, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharGuiStringsWrFMTownsJapaneseProvider },
+ { kEoBBaseCharGuiStringsSt2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharGuiStringsSt2FMTownsJapaneseProvider },
+ { kEoBBaseCharGuiStringsIn, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharGuiStringsInFMTownsJapaneseProvider },
+ { kEoBBaseCharStatusStrings7, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharStatusStrings7FMTownsJapaneseProvider },
+ { kEoBBaseCharStatusStrings82, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharStatusStrings82FMTownsJapaneseProvider },
+ { kEoBBaseCharStatusStrings9, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharStatusStrings9FMTownsJapaneseProvider },
+ { kEoBBaseCharStatusStrings12, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharStatusStrings12FMTownsJapaneseProvider },
+ { kEoBBaseCharStatusStrings132, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2CharStatusStrings132FMTownsJapaneseProvider },
+ { kEoBBaseLevelGainStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2LevelGainStringsFMTownsJapaneseProvider },
+ { kEoBBaseExperienceTable0, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable0FMTownsProvider },
+ { kEoBBaseExperienceTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable1FMTownsProvider },
+ { kEoBBaseExperienceTable2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable2FMTownsProvider },
+ { kEoBBaseExperienceTable3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable3FMTownsProvider },
+ { kEoBBaseExperienceTable4, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExperienceTable4FMTownsProvider },
+ { kEoBBaseBookNumbers, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2BookNumbersFMTownsJapaneseProvider },
+ { kEoBBaseMageSpellsList, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MageSpellsListFMTownsJapaneseProvider },
+ { kEoBBaseClericSpellsList, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2ClericSpellsListFMTownsJapaneseProvider },
+ { kEoBBaseSpellNames, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2SpellNamesFMTownsJapaneseProvider },
+ { kEoBBaseMagicStrings1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings1FMTownsJapaneseProvider },
+ { kEoBBaseMagicStrings2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings2FMTownsJapaneseProvider },
+ { kEoBBaseMagicStrings3, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings3FMTownsJapaneseProvider },
+ { kEoBBaseMagicStrings4, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings4FMTownsJapaneseProvider },
+ { kEoBBaseMagicStrings6, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings6FMTownsJapaneseProvider },
+ { kEoBBaseMagicStrings7, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings7FMTownsJapaneseProvider },
+ { kEoBBaseMagicStrings8, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MagicStrings8FMTownsJapaneseProvider },
+ { kEoBBaseExpObjectTlMode, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTlModeFMTownsProvider },
+ { kEoBBaseExpObjectTblIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTblIndexFMTownsProvider },
+ { kEoBBaseExpObjectShpStart, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectShpStartFMTownsProvider },
+ { kEoBBaseExpObjectTbl1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl1FMTownsProvider },
+ { kEoBBaseExpObjectTbl2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl2FMTownsProvider },
+ { kEoBBaseExpObjectTbl3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectTbl3FMTownsProvider },
+ { kEoBBaseExpObjectY, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ExpObjectYFMTownsProvider },
+ { kEoBBaseSparkDefSteps, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefStepsFMTownsProvider },
+ { kEoBBaseSparkDefSubSteps, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefSubStepsFMTownsProvider },
+ { kEoBBaseSparkDefShift, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefShiftFMTownsProvider },
+ { kEoBBaseSparkDefAdd, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefAddFMTownsProvider },
+ { kEoBBaseSparkDefX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefXFMTownsProvider },
+ { kEoBBaseSparkDefY, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkDefYFMTownsProvider },
+ { kEoBBaseSparkOfFlags1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkOfFlags1FMTownsProvider },
+ { kEoBBaseSparkOfFlags2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkOfFlags2FMTownsProvider },
+ { kEoBBaseSparkOfShift, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkOfShiftFMTownsProvider },
+ { kEoBBaseSparkOfX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkOfXFMTownsProvider },
+ { kEoBBaseSparkOfY, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkOfYFMTownsProvider },
+ { kEoBBaseSpellProperties, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellPropertiesFMTownsProvider },
+ { kEoBBaseMagicFlightProps, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MagicFlightPropsFMTownsProvider },
+ { kEoBBaseTurnUndeadEffect, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TurnUndeadEffectFMTownsProvider },
+ { kEoBBaseBurningHandsDest, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2BurningHandsDestFMTownsProvider },
+ { kEoBBaseConeOfColdDest1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest1FMTownsProvider },
+ { kEoBBaseConeOfColdDest2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest2FMTownsProvider },
+ { kEoBBaseConeOfColdDest3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest3FMTownsProvider },
+ { kEoBBaseConeOfColdDest4, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdDest4FMTownsProvider },
+ { kEoBBaseConeOfColdGfxTbl, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ConeOfColdGfxTblFMTownsProvider },
+ { kRpgCommonDscDoorShapeIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorShapeIndexFMTownsProvider },
+ { kEoBBaseWllFlagPreset, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WllFlagPresetFMTownsProvider },
+ { kEoBBaseDscShapeCoords, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscShapeCoordsFMTownsProvider },
+ { kRpgCommonDscDoorScaleOffs, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleOffsFMTownsProvider },
+ { kEoBBaseDscDoorScaleMult1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult1FMTownsProvider },
+ { kEoBBaseDscDoorScaleMult2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult2FMTownsProvider },
+ { kEoBBaseDscDoorScaleMult3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorScaleMult3FMTownsProvider },
+ { kEoBBaseDscDoorType5Offs, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorType5OffsFMTownsProvider },
+ { kEoBBaseDscDoorY1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorY1FMTownsProvider },
+ { kRpgCommonDscDoorY2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorY2FMTownsProvider },
+ { kRpgCommonDscDoorFrameY1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorFrameY1FMTownsProvider },
+ { kRpgCommonDscDoorFrameY2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDoorFrameY2FMTownsProvider },
+ { kEoBBaseDscItemPosIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscItemPosIndexFMTownsProvider },
+ { kEoBBaseDscItemShpX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscItemShpXFMTownsProvider },
+ { kEoBBaseDscItemScaleIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscItemScaleIndexFMTownsProvider },
+ { kEoBBaseDscItemTileIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscItemTileIndexFMTownsProvider },
+ { kEoBBaseDscItemShapeMap, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscItemShapeMapFMTownsProvider },
+ { kEoBBaseDscTelptrShpCoords, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscTelptrShpCoordsFMTownsProvider },
+ { kEoBBasePortalSeqData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2PortalSeqDataFMTownsProvider },
+ { kEoBBaseDscMonsterFrmOffsTbl1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscMonsterFrmOffsTbl1FMTownsProvider },
+ { kEoBBaseDscMonsterFrmOffsTbl2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscMonsterFrmOffsTbl2FMTownsProvider },
+ { kEoBBaseInvSlotX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2InvSlotXFMTownsProvider },
+ { kEoBBaseInvSlotY, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2InvSlotYFMTownsProvider },
+ { kEoBBaseSlotValidationFlags, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SlotValidationFlagsFMTownsProvider },
+ { kEoBBaseProjectileWeaponTypes, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ProjectileWeaponTypesFMTownsProvider },
+ { kEoBBaseWandTypes, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WandTypesFMTownsProvider },
+ { kEoBBaseDrawObjPosIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DrawObjPosIndexFMTownsProvider },
+ { kEoBBaseFlightObjFlipIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FlightObjFlipIndexFMTownsProvider },
+ { kEoBBaseFlightObjShpMap, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FlightObjShpMapFMTownsProvider },
+ { kEoBBaseFlightObjSclIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FlightObjSclIndexFMTownsProvider },
+ { kEoB2MainMenuStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MainMenuStringsFMTownsJapaneseProvider },
+ { kEoB2MainMenuUtilStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MainMenuUtilStringsFMTownsJapaneseProvider },
+ { kEoB2IntroStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroStringsFMTownsJapaneseProvider },
+ { kEoB2IntroCpsDataStreet1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataStreet1FMTownsProvider },
+ { kEoB2IntroCpsDataStreet2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataStreet2FMTownsProvider },
+ { kEoB2IntroCpsDataDoorway1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataDoorway1FMTownsProvider },
+ { kEoB2IntroCpsDataDoorway2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataDoorway2FMTownsProvider },
+ { kEoB2IntroCpsDataWestwood, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataWestwoodFMTownsProvider },
+ { kEoB2IntroCpsDataWinding, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataWindingFMTownsProvider },
+ { kEoB2IntroCpsDataKhelban2, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban2FMTownsProvider },
+ { kEoB2IntroCpsDataKhelban1, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban1FMTownsProvider },
+ { kEoB2IntroCpsDataKhelban3, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban3FMTownsProvider },
+ { kEoB2IntroCpsDataKhelban4, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban4FMTownsProvider },
+ { kEoB2IntroCpsDataCoin, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataCoinFMTownsProvider },
+ { kEoB2IntroCpsDataKhelban5, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban5FMTownsProvider },
+ { kEoB2IntroCpsDataKhelban6, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2IntroCpsDataKhelban6FMTownsProvider },
+ { kEoB2IntroAnimData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData00FMTownsProvider },
+ { kEoB2IntroAnimData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData01FMTownsProvider },
+ { kEoB2IntroAnimData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData02FMTownsProvider },
+ { kEoB2IntroAnimData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData03FMTownsProvider },
+ { kEoB2IntroAnimData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData04FMTownsProvider },
+ { kEoB2IntroAnimData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData05FMTownsProvider },
+ { kEoB2IntroAnimData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData06FMTownsProvider },
+ { kEoB2IntroAnimData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData07FMTownsProvider },
+ { kEoB2IntroAnimData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData08FMTownsProvider },
+ { kEoB2IntroAnimData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData09FMTownsProvider },
+ { kEoB2IntroAnimData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData10FMTownsProvider },
+ { kEoB2IntroAnimData11, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData11FMTownsProvider },
+ { kEoB2IntroAnimData12, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData12FMTownsProvider },
+ { kEoB2IntroAnimData13, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData13FMTownsProvider },
+ { kEoB2IntroAnimData14, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData14FMTownsProvider },
+ { kEoB2IntroAnimData15, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData15FMTownsProvider },
+ { kEoB2IntroAnimData16, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData16FMTownsProvider },
+ { kEoB2IntroAnimData17, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData17FMTownsProvider },
+ { kEoB2IntroAnimData18, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData18FMTownsProvider },
+ { kEoB2IntroAnimData19, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData19FMTownsProvider },
+ { kEoB2IntroAnimData20, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData20FMTownsProvider },
+ { kEoB2IntroAnimData21, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData21FMTownsProvider },
+ { kEoB2IntroAnimData22, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData22FMTownsProvider },
+ { kEoB2IntroAnimData23, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData23FMTownsProvider },
+ { kEoB2IntroAnimData24, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData24FMTownsProvider },
+ { kEoB2IntroAnimData25, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData25FMTownsProvider },
+ { kEoB2IntroAnimData26, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData26FMTownsProvider },
+ { kEoB2IntroAnimData27, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData27FMTownsProvider },
+ { kEoB2IntroAnimData28, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData28FMTownsProvider },
+ { kEoB2IntroAnimData29, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData29FMTownsProvider },
+ { kEoB2IntroAnimData30, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData30FMTownsProvider },
+ { kEoB2IntroAnimData31, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData31FMTownsProvider },
+ { kEoB2IntroAnimData32, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData32FMTownsProvider },
+ { kEoB2IntroAnimData33, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData33FMTownsProvider },
+ { kEoB2IntroAnimData34, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData34FMTownsProvider },
+ { kEoB2IntroAnimData35, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData35FMTownsProvider },
+ { kEoB2IntroAnimData36, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData36FMTownsProvider },
+ { kEoB2IntroAnimData37, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData37FMTownsProvider },
+ { kEoB2IntroAnimData38, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData38FMTownsProvider },
+ { kEoB2IntroAnimData39, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData39FMTownsProvider },
+ { kEoB2IntroAnimData40, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData40FMTownsProvider },
+ { kEoB2IntroAnimData41, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData41FMTownsProvider },
+ { kEoB2IntroAnimData42, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData42FMTownsProvider },
+ { kEoB2IntroAnimData43, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroAnimData43FMTownsProvider },
+ { kEoB2IntroShapes00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroShapes00FMTownsProvider },
+ { kEoB2IntroShapes01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroShapes01FMTownsProvider },
+ { kEoB2IntroShapes04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroShapes04FMTownsProvider },
+ { kEoB2IntroShapes07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2IntroShapes07FMTownsProvider },
+ { kEoB2FinaleStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2FinaleStringsFMTownsJapaneseProvider },
+ { kEoB2FinaleCpsDataDragon1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDragon1FMTownsProvider },
+ { kEoB2FinaleCpsDataDragon2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDragon2FMTownsProvider },
+ { kEoB2FinaleCpsDataHurry1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataHurry1FMTownsProvider },
+ { kEoB2FinaleCpsDataHurry2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataHurry2FMTownsProvider },
+ { kEoB2FinaleCpsDataDestroy0, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDestroy0FMTownsProvider },
+ { kEoB2FinaleCpsDataDestroy1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDestroy1FMTownsProvider },
+ { kEoB2FinaleCpsDataDestroy2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDestroy2FMTownsProvider },
+ { kEoB2FinaleCpsDataMagic, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataMagicFMTownsProvider },
+ { kEoB2FinaleCpsDataDestroy3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataDestroy3FMTownsProvider },
+ { kEoB2FinaleCpsDataCredits2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataCredits2FMTownsProvider },
+ { kEoB2FinaleCpsDataCredits3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataCredits3FMTownsProvider },
+ { kEoB2FinaleCpsDataHeroes, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataHeroesFMTownsProvider },
+ { kEoB2FinaleCpsDataThanks, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleCpsDataThanksFMTownsProvider },
+ { kEoB2FinaleAnimData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData00FMTownsProvider },
+ { kEoB2FinaleAnimData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData01FMTownsProvider },
+ { kEoB2FinaleAnimData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData02FMTownsProvider },
+ { kEoB2FinaleAnimData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData03FMTownsProvider },
+ { kEoB2FinaleAnimData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData04FMTownsProvider },
+ { kEoB2FinaleAnimData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData05FMTownsProvider },
+ { kEoB2FinaleAnimData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData06FMTownsProvider },
+ { kEoB2FinaleAnimData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData07FMTownsProvider },
+ { kEoB2FinaleAnimData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData08FMTownsProvider },
+ { kEoB2FinaleAnimData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData09FMTownsProvider },
+ { kEoB2FinaleAnimData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData10FMTownsProvider },
+ { kEoB2FinaleAnimData11, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData11FMTownsProvider },
+ { kEoB2FinaleAnimData12, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData12FMTownsProvider },
+ { kEoB2FinaleAnimData13, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData13FMTownsProvider },
+ { kEoB2FinaleAnimData14, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData14FMTownsProvider },
+ { kEoB2FinaleAnimData15, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData15FMTownsProvider },
+ { kEoB2FinaleAnimData16, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData16FMTownsProvider },
+ { kEoB2FinaleAnimData17, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData17FMTownsProvider },
+ { kEoB2FinaleAnimData18, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData18FMTownsProvider },
+ { kEoB2FinaleAnimData19, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData19FMTownsProvider },
+ { kEoB2FinaleAnimData20, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleAnimData20FMTownsProvider },
+ { kEoB2FinaleShapes00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes00FMTownsProvider },
+ { kEoB2FinaleShapes03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes03FMTownsProvider },
+ { kEoB2FinaleShapes07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes07FMTownsProvider },
+ { kEoB2FinaleShapes09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes09FMTownsProvider },
+ { kEoB2FinaleShapes10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FinaleShapes10FMTownsProvider },
+ { kEoB2NpcShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NpcShapeDataFMTownsProvider },
+ { kEoBBaseClassModifierFlags, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ClassModifierFlagsFMTownsProvider },
+ { kEoBBaseMonsterStepTable02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable02FMTownsProvider },
+ { kEoBBaseMonsterStepTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable1FMTownsProvider },
+ { kEoBBaseMonsterStepTable2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable2FMTownsProvider },
+ { kEoBBaseMonsterStepTable3, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterStepTable3FMTownsProvider },
+ { kEoBBaseMonsterCloseAttPosTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttPosTable1FMTownsProvider },
+ { kEoBBaseMonsterCloseAttPosTable22, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttPosTable22FMTownsProvider },
+ { kEoBBaseMonsterCloseAttUnkTable, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttUnkTableFMTownsProvider },
+ { kEoBBaseMonsterCloseAttChkTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttChkTable1FMTownsProvider },
+ { kEoBBaseMonsterCloseAttChkTable2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttChkTable2FMTownsProvider },
+ { kEoBBaseMonsterCloseAttDstTable1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttDstTable1FMTownsProvider },
+ { kEoBBaseMonsterCloseAttDstTable2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterCloseAttDstTable2FMTownsProvider },
+ { kEoBBaseMonsterProximityTable, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterProximityTableFMTownsProvider },
+ { kEoBBaseFindBlockMonstersTable, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FindBlockMonstersTableFMTownsProvider },
+ { kEoBBaseMonsterDirChangeTable, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2MonsterDirChangeTableFMTownsProvider },
+ { kEoBBaseMonsterDistAttStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MonsterDistAttStringsFMTownsJapaneseProvider },
+ { kEoBBaseNpcPresets, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2NpcPresetsFMTownsProvider },
+ { kEoB2Npc1Strings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2Npc1StringsFMTownsJapaneseProvider },
+ { kEoB2Npc2Strings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2Npc2StringsFMTownsJapaneseProvider },
+ { kEoB2MonsterDustStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2MonsterDustStringsFMTownsJapaneseProvider },
+ { kEoB2DreamSteps, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DreamStepsFMTownsProvider },
+ { kEoB2KheldranStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2KheldranStringsFMTownsJapaneseProvider },
+ { kEoB2HornStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2HornStringsFMTownsJapaneseProvider },
+ { kEoB2HornSounds, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2HornSoundsFMTownsProvider },
+ { kEoB2WallOfForceDsX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceDsXFMTownsProvider },
+ { kEoB2WallOfForceDsY, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceDsYFMTownsProvider },
+ { kEoB2WallOfForceNumW, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceNumWFMTownsProvider },
+ { kEoB2WallOfForceNumH, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceNumHFMTownsProvider },
+ { kEoB2WallOfForceShpId, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShpIdFMTownsProvider },
+ { kRpgCommonDscShapeIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscShapeIndexFMTownsProvider },
+ { kRpgCommonDscX, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscXFMTownsProvider },
+ { kRpgCommonDscTileIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscTileIndexFMTownsProvider },
+ { kRpgCommonDscDimData1, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDimData1FMTownsProvider },
+ { kRpgCommonDscDimData2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDimData2FMTownsProvider },
+ { kRpgCommonDscBlockMap, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscBlockMapFMTownsProvider },
+ { kRpgCommonDscDimMap, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscDimMapFMTownsProvider },
+ { kRpgCommonDscBlockIndex, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DscBlockIndexFMTownsProvider },
{ k2SeqplayPakFiles, kLoL, kPlatformDOS, kDemoVersion, UNK_LANG, &kLoLSeqplayPakFilesDOSDemoProvider },
{ k2SeqplayStrings, kLoL, kPlatformDOS, kDemoVersion, EN_ANY, &kLoLSeqplayStringsDOSDemoEnglishProvider },
{ k2SeqplaySeqData, kLoL, kPlatformDOS, kDemoVersion, UNK_LANG, &kLoLSeqplaySeqDataDOSDemoProvider },
{ k2SeqplaySfxFiles, kLoL, kPlatformDOS, kDemoVersion, UNK_LANG, &kLoLSeqplaySfxFilesDOSDemoProvider },
{ k2SeqplayIntroTracks, kLoL, kPlatformDOS, kDemoVersion, UNK_LANG, &kLoLSeqplayIntroTracksDOSDemoProvider },
+ { kEoB2ItemIconShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData00FMTownsProvider },
+ { kEoB2ItemIconShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData01FMTownsProvider },
+ { kEoB2ItemIconShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData02FMTownsProvider },
+ { kEoB2ItemIconShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData03FMTownsProvider },
+ { kEoB2ItemIconShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData04FMTownsProvider },
+ { kEoB2ItemIconShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData05FMTownsProvider },
+ { kEoB2ItemIconShapeData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData06FMTownsProvider },
+ { kEoB2ItemIconShapeData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData07FMTownsProvider },
+ { kEoB2ItemIconShapeData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData08FMTownsProvider },
+ { kEoB2ItemIconShapeData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData09FMTownsProvider },
+ { kEoB2ItemIconShapeData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData10FMTownsProvider },
+ { kEoB2ItemIconShapeData11, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData11FMTownsProvider },
+ { kEoB2ItemIconShapeData12, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData12FMTownsProvider },
+ { kEoB2ItemIconShapeData13, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData13FMTownsProvider },
+ { kEoB2ItemIconShapeData14, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData14FMTownsProvider },
+ { kEoB2ItemIconShapeData15, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData15FMTownsProvider },
+ { kEoB2ItemIconShapeData16, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData16FMTownsProvider },
+ { kEoB2ItemIconShapeData17, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData17FMTownsProvider },
+ { kEoB2ItemIconShapeData18, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData18FMTownsProvider },
+ { kEoB2ItemIconShapeData19, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData19FMTownsProvider },
+ { kEoB2ItemIconShapeData20, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData20FMTownsProvider },
+ { kEoB2ItemIconShapeData21, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData21FMTownsProvider },
+ { kEoB2ItemIconShapeData22, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData22FMTownsProvider },
+ { kEoB2ItemIconShapeData23, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData23FMTownsProvider },
+ { kEoB2ItemIconShapeData24, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData24FMTownsProvider },
+ { kEoB2ItemIconShapeData25, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData25FMTownsProvider },
+ { kEoB2ItemIconShapeData26, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData26FMTownsProvider },
+ { kEoB2ItemIconShapeData27, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData27FMTownsProvider },
+ { kEoB2ItemIconShapeData28, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData28FMTownsProvider },
+ { kEoB2ItemIconShapeData29, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData29FMTownsProvider },
+ { kEoB2ItemIconShapeData30, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData30FMTownsProvider },
+ { kEoB2ItemIconShapeData31, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData31FMTownsProvider },
+ { kEoB2ItemIconShapeData32, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData32FMTownsProvider },
+ { kEoB2ItemIconShapeData33, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData33FMTownsProvider },
+ { kEoB2ItemIconShapeData34, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData34FMTownsProvider },
+ { kEoB2ItemIconShapeData35, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData35FMTownsProvider },
+ { kEoB2ItemIconShapeData36, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData36FMTownsProvider },
+ { kEoB2ItemIconShapeData37, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData37FMTownsProvider },
+ { kEoB2ItemIconShapeData38, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData38FMTownsProvider },
+ { kEoB2ItemIconShapeData39, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData39FMTownsProvider },
+ { kEoB2ItemIconShapeData40, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData40FMTownsProvider },
+ { kEoB2ItemIconShapeData41, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData41FMTownsProvider },
+ { kEoB2ItemIconShapeData42, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData42FMTownsProvider },
+ { kEoB2ItemIconShapeData43, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData43FMTownsProvider },
+ { kEoB2ItemIconShapeData44, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData44FMTownsProvider },
+ { kEoB2ItemIconShapeData45, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData45FMTownsProvider },
+ { kEoB2ItemIconShapeData46, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData46FMTownsProvider },
+ { kEoB2ItemIconShapeData47, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData47FMTownsProvider },
+ { kEoB2ItemIconShapeData48, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData48FMTownsProvider },
+ { kEoB2ItemIconShapeData49, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData49FMTownsProvider },
+ { kEoB2ItemIconShapeData50, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData50FMTownsProvider },
+ { kEoB2ItemIconShapeData51, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData51FMTownsProvider },
+ { kEoB2ItemIconShapeData52, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData52FMTownsProvider },
+ { kEoB2ItemIconShapeData53, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData53FMTownsProvider },
+ { kEoB2ItemIconShapeData54, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData54FMTownsProvider },
+ { kEoB2ItemIconShapeData55, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData55FMTownsProvider },
+ { kEoB2ItemIconShapeData56, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData56FMTownsProvider },
+ { kEoB2ItemIconShapeData57, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData57FMTownsProvider },
+ { kEoB2ItemIconShapeData58, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData58FMTownsProvider },
+ { kEoB2ItemIconShapeData59, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData59FMTownsProvider },
+ { kEoB2ItemIconShapeData60, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData60FMTownsProvider },
+ { kEoB2ItemIconShapeData61, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData61FMTownsProvider },
+ { kEoB2ItemIconShapeData62, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData62FMTownsProvider },
+ { kEoB2ItemIconShapeData63, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData63FMTownsProvider },
+ { kEoB2ItemIconShapeData64, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData64FMTownsProvider },
+ { kEoB2ItemIconShapeData65, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData65FMTownsProvider },
+ { kEoB2ItemIconShapeData66, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData66FMTownsProvider },
+ { kEoB2ItemIconShapeData67, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData67FMTownsProvider },
+ { kEoB2ItemIconShapeData68, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData68FMTownsProvider },
+ { kEoB2ItemIconShapeData69, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData69FMTownsProvider },
+ { kEoB2ItemIconShapeData70, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData70FMTownsProvider },
+ { kEoB2ItemIconShapeData71, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData71FMTownsProvider },
+ { kEoB2ItemIconShapeData72, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData72FMTownsProvider },
+ { kEoB2ItemIconShapeData73, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData73FMTownsProvider },
+ { kEoB2ItemIconShapeData74, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData74FMTownsProvider },
+ { kEoB2ItemIconShapeData75, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData75FMTownsProvider },
+ { kEoB2ItemIconShapeData76, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData76FMTownsProvider },
+ { kEoB2ItemIconShapeData77, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData77FMTownsProvider },
+ { kEoB2ItemIconShapeData78, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData78FMTownsProvider },
+ { kEoB2ItemIconShapeData79, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData79FMTownsProvider },
+ { kEoB2ItemIconShapeData80, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData80FMTownsProvider },
+ { kEoB2ItemIconShapeData81, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData81FMTownsProvider },
+ { kEoB2ItemIconShapeData82, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData82FMTownsProvider },
+ { kEoB2ItemIconShapeData83, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData83FMTownsProvider },
+ { kEoB2ItemIconShapeData84, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData84FMTownsProvider },
+ { kEoB2ItemIconShapeData85, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData85FMTownsProvider },
+ { kEoB2ItemIconShapeData86, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData86FMTownsProvider },
+ { kEoB2ItemIconShapeData87, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData87FMTownsProvider },
+ { kEoB2ItemIconShapeData88, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData88FMTownsProvider },
+ { kEoB2ItemIconShapeData89, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData89FMTownsProvider },
+ { kEoB2ItemIconShapeData90, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData90FMTownsProvider },
+ { kEoB2ItemIconShapeData91, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData91FMTownsProvider },
+ { kEoB2ItemIconShapeData92, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData92FMTownsProvider },
+ { kEoB2ItemIconShapeData93, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData93FMTownsProvider },
+ { kEoB2ItemIconShapeData94, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData94FMTownsProvider },
+ { kEoB2ItemIconShapeData95, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData95FMTownsProvider },
+ { kEoB2ItemIconShapeData96, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData96FMTownsProvider },
+ { kEoB2ItemIconShapeData97, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData97FMTownsProvider },
+ { kEoB2ItemIconShapeData98, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData98FMTownsProvider },
+ { kEoB2ItemIconShapeData99, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData99FMTownsProvider },
+ { kEoB2ItemIconShapeData100, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData100FMTownsProvider },
+ { kEoB2ItemIconShapeData101, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData101FMTownsProvider },
+ { kEoB2ItemIconShapeData102, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData102FMTownsProvider },
+ { kEoB2ItemIconShapeData103, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData103FMTownsProvider },
+ { kEoB2ItemIconShapeData104, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData104FMTownsProvider },
+ { kEoB2ItemIconShapeData105, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData105FMTownsProvider },
+ { kEoB2ItemIconShapeData106, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData106FMTownsProvider },
+ { kEoB2ItemIconShapeData107, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData107FMTownsProvider },
+ { kEoB2ItemIconShapeData108, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData108FMTownsProvider },
+ { kEoB2ItemIconShapeData109, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData109FMTownsProvider },
+ { kEoB2ItemIconShapeData110, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData110FMTownsProvider },
+ { kEoB2ItemIconShapeData111, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ItemIconShapeData111FMTownsProvider },
+ { kEoB2LargeItemsShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData00FMTownsProvider },
+ { kEoB2LargeItemsShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData01FMTownsProvider },
+ { kEoB2LargeItemsShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData02FMTownsProvider },
+ { kEoB2LargeItemsShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData03FMTownsProvider },
+ { kEoB2LargeItemsShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData04FMTownsProvider },
+ { kEoB2LargeItemsShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData05FMTownsProvider },
+ { kEoB2LargeItemsShapeData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData06FMTownsProvider },
+ { kEoB2LargeItemsShapeData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData07FMTownsProvider },
+ { kEoB2LargeItemsShapeData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData08FMTownsProvider },
+ { kEoB2LargeItemsShapeData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData09FMTownsProvider },
+ { kEoB2LargeItemsShapeData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LargeItemsShapeData10FMTownsProvider },
+ { kEoB2SmallItemsShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData00FMTownsProvider },
+ { kEoB2SmallItemsShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData01FMTownsProvider },
+ { kEoB2SmallItemsShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData02FMTownsProvider },
+ { kEoB2SmallItemsShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData03FMTownsProvider },
+ { kEoB2SmallItemsShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData04FMTownsProvider },
+ { kEoB2SmallItemsShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData05FMTownsProvider },
+ { kEoB2SmallItemsShapeData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData06FMTownsProvider },
+ { kEoB2SmallItemsShapeData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData07FMTownsProvider },
+ { kEoB2SmallItemsShapeData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData08FMTownsProvider },
+ { kEoB2SmallItemsShapeData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData09FMTownsProvider },
+ { kEoB2SmallItemsShapeData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData10FMTownsProvider },
+ { kEoB2SmallItemsShapeData11, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData11FMTownsProvider },
+ { kEoB2SmallItemsShapeData12, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData12FMTownsProvider },
+ { kEoB2SmallItemsShapeData13, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData13FMTownsProvider },
+ { kEoB2SmallItemsShapeData14, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData14FMTownsProvider },
+ { kEoB2SmallItemsShapeData15, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData15FMTownsProvider },
+ { kEoB2SmallItemsShapeData16, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData16FMTownsProvider },
+ { kEoB2SmallItemsShapeData17, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData17FMTownsProvider },
+ { kEoB2SmallItemsShapeData18, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData18FMTownsProvider },
+ { kEoB2SmallItemsShapeData19, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData19FMTownsProvider },
+ { kEoB2SmallItemsShapeData20, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData20FMTownsProvider },
+ { kEoB2SmallItemsShapeData21, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData21FMTownsProvider },
+ { kEoB2SmallItemsShapeData22, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData22FMTownsProvider },
+ { kEoB2SmallItemsShapeData23, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData23FMTownsProvider },
+ { kEoB2SmallItemsShapeData24, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData24FMTownsProvider },
+ { kEoB2SmallItemsShapeData25, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallItemsShapeData25FMTownsProvider },
+ { kEoB2ThrownShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData00FMTownsProvider },
+ { kEoB2ThrownShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData01FMTownsProvider },
+ { kEoB2ThrownShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData02FMTownsProvider },
+ { kEoB2ThrownShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData03FMTownsProvider },
+ { kEoB2ThrownShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData04FMTownsProvider },
+ { kEoB2ThrownShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData05FMTownsProvider },
+ { kEoB2ThrownShapeData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData06FMTownsProvider },
+ { kEoB2ThrownShapeData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData07FMTownsProvider },
+ { kEoB2ThrownShapeData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2ThrownShapeData08FMTownsProvider },
+ { kEoB2SpellShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellShapeData00FMTownsProvider },
+ { kEoB2SpellShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellShapeData01FMTownsProvider },
+ { kEoB2SpellShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellShapeData02FMTownsProvider },
+ { kEoB2SpellShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SpellShapeData03FMTownsProvider },
+ { kEoB2TeleporterShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData00FMTownsProvider },
+ { kEoB2TeleporterShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData01FMTownsProvider },
+ { kEoB2TeleporterShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData02FMTownsProvider },
+ { kEoB2TeleporterShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData03FMTownsProvider },
+ { kEoB2TeleporterShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData04FMTownsProvider },
+ { kEoB2TeleporterShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2TeleporterShapeData05FMTownsProvider },
+ { kEoB2LightningColumnShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2LightningColumnShapeDataFMTownsProvider },
+ { kEoB2DeadCharShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DeadCharShapeDataFMTownsProvider },
+ { kEoB2DisabledCharGridShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2DisabledCharGridShapeDataFMTownsProvider },
+ { kEoB2WeaponSlotGridShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WeaponSlotGridShapeDataFMTownsProvider },
+ { kEoB2SmallGridShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SmallGridShapeDataFMTownsProvider },
+ { kEoB2WideGridShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WideGridShapeDataFMTownsProvider },
+ { kEoB2RedSplatShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2RedSplatShapeDataFMTownsProvider },
+ { kEoB2GreenSplatShapeData, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2GreenSplatShapeDataFMTownsProvider },
+ { kEoB2FirebeamShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FirebeamShapeData00FMTownsProvider },
+ { kEoB2FirebeamShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FirebeamShapeData01FMTownsProvider },
+ { kEoB2FirebeamShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FirebeamShapeData02FMTownsProvider },
+ { kEoB2SparkShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkShapeData00FMTownsProvider },
+ { kEoB2SparkShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkShapeData01FMTownsProvider },
+ { kEoB2SparkShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SparkShapeData02FMTownsProvider },
+ { kEoB2CompassShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData00FMTownsProvider },
+ { kEoB2CompassShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData01FMTownsProvider },
+ { kEoB2CompassShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData02FMTownsProvider },
+ { kEoB2CompassShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData03FMTownsProvider },
+ { kEoB2CompassShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData04FMTownsProvider },
+ { kEoB2CompassShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData05FMTownsProvider },
+ { kEoB2CompassShapeData06, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData06FMTownsProvider },
+ { kEoB2CompassShapeData07, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData07FMTownsProvider },
+ { kEoB2CompassShapeData08, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData08FMTownsProvider },
+ { kEoB2CompassShapeData09, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData09FMTownsProvider },
+ { kEoB2CompassShapeData10, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData10FMTownsProvider },
+ { kEoB2CompassShapeData11, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2CompassShapeData11FMTownsProvider },
+ { kEoB2WallOfForceShapeData00, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData00FMTownsProvider },
+ { kEoB2WallOfForceShapeData01, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData01FMTownsProvider },
+ { kEoB2WallOfForceShapeData02, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData02FMTownsProvider },
+ { kEoB2WallOfForceShapeData03, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData03FMTownsProvider },
+ { kEoB2WallOfForceShapeData04, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData04FMTownsProvider },
+ { kEoB2WallOfForceShapeData05, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2WallOfForceShapeData05FMTownsProvider },
+ { kEoB2UtilMenuStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2UtilMenuStringsFMTownsProvider },
+ { kEoB2Config2431Strings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2Config2431StringsFMTownsProvider },
+ { kEoB2KatakanaLines, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2KatakanaLinesFMTownsProvider },
+ { kEoB2KanaSelectStrings, kEoB2, kPlatformFMTowns, kNoSpecial, JA_JPN, &kEoB2KanaSelectStringsFMTownsProvider },
+ { kEoB2FontDmpSearchTbl, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2FontDmpSearchTblFMTownsProvider },
+ { kEoB2Ascii2SjisTables, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2Ascii2SjisTablesFMTownsProvider },
+ { kEoB2Ascii2SjisTables2, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2Ascii2SjisTables2FMTownsProvider },
+ { kEoB2SaveNamePatterns, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2SaveNamePatternsFMTownsProvider },
+ { kEoB2PcmSoundEffectsIngame, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2PcmSoundEffectsIngameFMTownsProvider },
+ { kEoB2PcmSoundEffectsIntro, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2PcmSoundEffectsIntroFMTownsProvider },
+ { kEoB2PcmSoundEffectsFinale, kEoB2, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kEoB2PcmSoundEffectsFinaleFMTownsProvider },
{ kLoLIngamePakFiles, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLIngamePakFilesDOSProvider },
{ kLoLCharacterDefs, kLoL, kPlatformDOS, kNoSpecial, EN_ANY, &kLoLCharacterDefsDOSEnglishProvider },
{ kLoLIngameSfxFiles, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLIngameSfxFilesDOSProvider },
@@ -1764,7 +2281,6 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscX, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscXDOSProvider },
{ kLoLBaseDscY, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLBaseDscYDOSProvider },
{ kRpgCommonDscTileIndex, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscTileIndexDOSProvider },
- { kRpgCommonDscUnk2, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscUnk2DOSProvider },
{ kRpgCommonDscDoorShapeIndex, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorShapeIndexDOSProvider },
{ kRpgCommonDscDimData1, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDimData1DOSProvider },
{ kRpgCommonDscDimData2, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDimData2DOSProvider },
@@ -1775,6 +2291,7 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscDoorY2, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorY2DOSProvider },
{ kRpgCommonDscDoorFrameY1, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY1DOSProvider },
{ kRpgCommonDscDoorFrameY2, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY2DOSProvider },
+ { kRpgCommonDscDoorScaleOffs, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorScaleOffsDOSProvider },
{ kLoLDscDoorScale, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorScaleDOSProvider },
{ kLoLDscDoor4, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoor4DOSProvider },
{ kLoLDscDoorX, kLoL, kPlatformDOS, kNoSpecial, UNK_LANG, &kLoLDscDoorXDOSProvider },
@@ -1839,7 +2356,6 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscX, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscXPC98Provider },
{ kLoLBaseDscY, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLBaseDscYPC98Provider },
{ kRpgCommonDscTileIndex, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscTileIndexPC98Provider },
- { kRpgCommonDscUnk2, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscUnk2PC98Provider },
{ kRpgCommonDscDoorShapeIndex, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorShapeIndexPC98Provider },
{ kRpgCommonDscDimData1, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDimData1PC98Provider },
{ kRpgCommonDscDimData2, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDimData2PC98Provider },
@@ -1850,6 +2366,7 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscDoorY2, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorY2PC98Provider },
{ kRpgCommonDscDoorFrameY1, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY1PC98Provider },
{ kRpgCommonDscDoorFrameY2, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY2PC98Provider },
+ { kRpgCommonDscDoorScaleOffs, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorScaleOffsPC98Provider },
{ kLoLDscDoorScale, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorScalePC98Provider },
{ kLoLDscDoor4, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoor4PC98Provider },
{ kLoLDscDoorX, kLoL, kPlatformPC98, kNoSpecial, UNK_LANG, &kLoLDscDoorXPC98Provider },
@@ -1911,7 +2428,6 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscX, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscXFMTownsProvider },
{ kLoLBaseDscY, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLBaseDscYFMTownsProvider },
{ kRpgCommonDscTileIndex, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscTileIndexFMTownsProvider },
- { kRpgCommonDscUnk2, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscUnk2FMTownsProvider },
{ kRpgCommonDscDoorShapeIndex, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorShapeIndexFMTownsProvider },
{ kRpgCommonDscDimData1, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDimData1FMTownsProvider },
{ kRpgCommonDscDimData2, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDimData2FMTownsProvider },
@@ -1922,6 +2438,7 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscDoorY2, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorY2FMTownsProvider },
{ kRpgCommonDscDoorFrameY1, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY1FMTownsProvider },
{ kRpgCommonDscDoorFrameY2, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorFrameY2FMTownsProvider },
+ { kRpgCommonDscDoorScaleOffs, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorScaleOffsFMTownsProvider },
{ kLoLDscDoorScale, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorScaleFMTownsProvider },
{ kLoLDscDoor4, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoor4FMTownsProvider },
{ kLoLDscDoorX, kLoL, kPlatformFMTowns, kNoSpecial, UNK_LANG, &kLoLDscDoorXFMTownsProvider },
@@ -1989,7 +2506,6 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscX, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscXDOSCDProvider },
{ kLoLBaseDscY, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLBaseDscYDOSCDProvider },
{ kRpgCommonDscTileIndex, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscTileIndexDOSCDProvider },
- { kRpgCommonDscUnk2, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscUnk2DOSCDProvider },
{ kRpgCommonDscDoorShapeIndex, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorShapeIndexDOSCDProvider },
{ kRpgCommonDscDimData1, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDimData1DOSCDProvider },
{ kRpgCommonDscDimData2, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDimData2DOSCDProvider },
@@ -2000,6 +2516,7 @@ static const ResourceProvider resourceProviders[] = {
{ kRpgCommonDscDoorY2, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorY2DOSCDProvider },
{ kRpgCommonDscDoorFrameY1, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorFrameY1DOSCDProvider },
{ kRpgCommonDscDoorFrameY2, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorFrameY2DOSCDProvider },
+ { kRpgCommonDscDoorScaleOffs, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorScaleOffsDOSCDProvider },
{ kLoLDscDoorScale, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorScaleDOSCDProvider },
{ kLoLDscDoor4, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoor4DOSCDProvider },
{ kLoLDscDoorX, kLoL, kPlatformDOS, kTalkieVersion, UNK_LANG, &kLoLDscDoorXDOSCDProvider },
diff --git a/devtools/create_kyradat/resources/eob1_dos.h b/devtools/create_kyradat/resources/eob1_dos.h
index b2aa884..c278f50 100644
--- a/devtools/create_kyradat/resources/eob1_dos.h
+++ b/devtools/create_kyradat/resources/eob1_dos.h
@@ -1389,14 +1389,6 @@ static const byte kEoB1DscTileIndexDOS[18] = {
static const ByteProvider kEoB1DscTileIndexDOSProvider = { ARRAYSIZE(kEoB1DscTileIndexDOS), kEoB1DscTileIndexDOS };
-static const byte kEoB1DscUnk2DOS[23] = {
- 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0D, 0x0D,
- 0x0D, 0x0D, 0x12, 0x12, 0x12, 0x12, 0x12
-};
-
-static const ByteProvider kEoB1DscUnk2DOSProvider = { ARRAYSIZE(kEoB1DscUnk2DOS), kEoB1DscUnk2DOS };
-
static const byte kEoB1DscDimData1DOS[324] = {
0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
diff --git a/devtools/create_kyradat/resources/eob2_dos.h b/devtools/create_kyradat/resources/eob2_dos.h
index f260913..3a44d78 100644
--- a/devtools/create_kyradat/resources/eob2_dos.h
+++ b/devtools/create_kyradat/resources/eob2_dos.h
@@ -2330,14 +2330,6 @@ static const byte kEoB2DscTileIndexDOS[18] = {
static const ByteProvider kEoB2DscTileIndexDOSProvider = { ARRAYSIZE(kEoB2DscTileIndexDOS), kEoB2DscTileIndexDOS };
-static const byte kEoB2DscUnk2DOS[23] = {
- 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
- 0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0D, 0x0D,
- 0x0D, 0x0D, 0x12, 0x12, 0x12, 0x12, 0x12
-};
-
-static const ByteProvider kEoB2DscUnk2DOSProvider = { ARRAYSIZE(kEoB2DscUnk2DOS), kEoB2DscUnk2DOS };
-
static const byte kEoB2DscDimData1DOS[324] = {
0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
diff --git a/devtools/create_kyradat/resources/eob2_fmtowns.h b/devtools/create_kyradat/resources/eob2_fmtowns.h
new file mode 100644
index 0000000..74af7a3
--- /dev/null
+++ b/devtools/create_kyradat/resources/eob2_fmtowns.h
@@ -0,0 +1,73658 @@
+static const byte kEoB2ChargenStartLevelsFMTowns[60] = {
+ 0x07, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00, 0x01,
+ 0x06, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01,
+ 0x07, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0x01,
+ 0x06, 0x06, 0x00, 0x02, 0x06, 0x06, 0x00, 0x02,
+ 0x06, 0x05, 0x00, 0x02, 0x05, 0x05, 0x06, 0x03,
+ 0x06, 0x05, 0x00, 0x02, 0x06, 0x06, 0x00, 0x02,
+ 0x05, 0x05, 0x05, 0x03, 0x05, 0x06, 0x00, 0x02,
+ 0x06, 0x05, 0x00, 0x02
+};
+
+static const ByteProvider kEoB2ChargenStartLevelsFMTownsProvider = { ARRAYSIZE(kEoB2ChargenStartLevelsFMTowns), kEoB2ChargenStartLevelsFMTowns };
+
+static const byte kEoB2ChargenClassMinStatsFMTowns[90] = {
+ 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00,
+ 0x0E, 0x0D, 0x0E, 0x00, 0x0C, 0x00, 0x0D, 0x00,
+ 0x09, 0x11, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x09, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00,
+ 0x00, 0x00, 0x09, 0x00, 0x00, 0x09, 0x00, 0x00,
+ 0x09, 0x09, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09,
+ 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09,
+ 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00,
+ 0x09, 0x09, 0x09, 0x00, 0x00, 0x00, 0x0D, 0x00,
+ 0x0E, 0x0D, 0x0E, 0x00, 0x00, 0x09, 0x09, 0x00,
+ 0x00, 0x00
+};
+
+static const ByteProvider kEoB2ChargenClassMinStatsFMTownsProvider = { ARRAYSIZE(kEoB2ChargenClassMinStatsFMTowns), kEoB2ChargenClassMinStatsFMTowns };
+
+static const byte kEoB2ChargenRaceMinStatsFMTowns[36] = {
+ 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x08,
+ 0x03, 0x07, 0x06, 0x08, 0x03, 0x04, 0x03, 0x06,
+ 0x06, 0x03, 0x08, 0x03, 0x03, 0x03, 0x0C, 0x02,
+ 0x06, 0x07, 0x02, 0x03, 0x08, 0x03, 0x07, 0x06,
+ 0x03, 0x08, 0x0A, 0x06
+};
+
+static const ByteProvider kEoB2ChargenRaceMinStatsFMTownsProvider = { ARRAYSIZE(kEoB2ChargenRaceMinStatsFMTowns), kEoB2ChargenRaceMinStatsFMTowns };
+
+static const uint16 kEoB2ChargenRaceMaxStatsFMTowns[36] = {
+ 0x6412, 0x0012, 0x0012, 0x0012, 0x0012, 0x0012, 0x6412, 0x0012,
+ 0x0012, 0x0013, 0x0011, 0x0012, 0x6412, 0x0012, 0x0012, 0x0012,
+ 0x0012, 0x0012, 0x6412, 0x0012, 0x0012, 0x0011, 0x0013, 0x0010,
+ 0x6412, 0x0013, 0x0011, 0x0012, 0x0012, 0x0012, 0x0011, 0x0012,
+ 0x0011, 0x0013, 0x0012, 0x0012
+};
+
+static const Uint16Provider kEoB2ChargenRaceMaxStatsFMTownsProvider = { ARRAYSIZE(kEoB2ChargenRaceMaxStatsFMTowns), kEoB2ChargenRaceMaxStatsFMTowns };
+
+static const byte kEoB2SaveThrowTable1FMTowns[50] = {
+ 0x10, 0x0E, 0x0D, 0x0B, 0x0A, 0x08, 0x07, 0x05,
+ 0x04, 0x03, 0x12, 0x10, 0x0F, 0x0D, 0x0C, 0x0A,
+ 0x09, 0x07, 0x06, 0x05, 0x11, 0x0F, 0x0E, 0x0C,
+ 0x0B, 0x09, 0x08, 0x06, 0x05, 0x04, 0x14, 0x11,
+ 0x10, 0x0D, 0x0C, 0x09, 0x08, 0x05, 0x04, 0x04,
+ 0x13, 0x11, 0x10, 0x0E, 0x0D, 0x0B, 0x0A, 0x08,
+ 0x07, 0x06
+};
+
+static const ByteProvider kEoB2SaveThrowTable1FMTownsProvider = { ARRAYSIZE(kEoB2SaveThrowTable1FMTowns), kEoB2SaveThrowTable1FMTowns };
+
+static const byte kEoB2SaveThrowTable2FMTowns[25] = {
+ 0x0E, 0x0D, 0x0B, 0x0A, 0x08, 0x0B, 0x09, 0x07,
+ 0x05, 0x03, 0x0D, 0x0B, 0x09, 0x07, 0x05, 0x0F,
+ 0x0D, 0x0B, 0x09, 0x07, 0x0C, 0x0A, 0x08, 0x06,
+ 0x04
+};
+
+static const ByteProvider kEoB2SaveThrowTable2FMTownsProvider = { ARRAYSIZE(kEoB2SaveThrowTable2FMTowns), kEoB2SaveThrowTable2FMTowns };
+
+static const byte kEoB2SaveThrowTable3FMTowns[35] = {
+ 0x0A, 0x09, 0x07, 0x06, 0x05, 0x04, 0x02, 0x0E,
+ 0x0D, 0x0B, 0x0A, 0x09, 0x08, 0x06, 0x0D, 0x0C,
+ 0x0A, 0x09, 0x08, 0x07, 0x05, 0x10, 0x0F, 0x0D,
+ 0x0C, 0x0B, 0x0A, 0x08, 0x0F, 0x0E, 0x0C, 0x0B,
+ 0x0A, 0x09, 0x07
+};
+
+static const ByteProvider kEoB2SaveThrowTable3FMTownsProvider = { ARRAYSIZE(kEoB2SaveThrowTable3FMTowns), kEoB2SaveThrowTable3FMTowns };
+
+static const byte kEoB2SaveThrowTable4FMTowns[30] = {
+ 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x0E, 0x0C,
+ 0x0A, 0x08, 0x06, 0x07, 0x0C, 0x0B, 0x0A, 0x09,
+ 0x08, 0x04, 0x10, 0x0F, 0x0E, 0x0D, 0x0C, 0x0B,
+ 0x0F, 0x0D, 0x0B, 0x09, 0x07, 0x05
+};
+
+static const ByteProvider kEoB2SaveThrowTable4FMTownsProvider = { ARRAYSIZE(kEoB2SaveThrowTable4FMTowns), kEoB2SaveThrowTable4FMTowns };
+
+static const byte kEoB2SaveThrwLvlIndexFMTowns[6] = {
+ 0x11, 0x15, 0x13, 0x15, 0x11, 0x11
+};
+
+static const ByteProvider kEoB2SaveThrwLvlIndexFMTownsProvider = { ARRAYSIZE(kEoB2SaveThrwLvlIndexFMTowns), kEoB2SaveThrwLvlIndexFMTowns };
+
+static const byte kEoB2SaveThrwModDivFMTowns[6] = {
+ 0x02, 0x05, 0x03, 0x04, 0x02, 0x02
+};
+
+static const ByteProvider kEoB2SaveThrwModDivFMTownsProvider = { ARRAYSIZE(kEoB2SaveThrwModDivFMTowns), kEoB2SaveThrwModDivFMTowns };
+
+static const byte kEoB2SaveThrwModExtFMTowns[6] = {
+ 0x0A, 0x05, 0x07, 0x06, 0x0A, 0x0A
+};
+
+static const ByteProvider kEoB2SaveThrwModExtFMTownsProvider = { ARRAYSIZE(kEoB2SaveThrwModExtFMTowns), kEoB2SaveThrwModExtFMTowns };
+
+static const byte kEoB2SpellLevelsMageFMTowns[32] = {
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x03,
+ 0x03, 0x03, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05,
+ 0x05, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x08
+};
+
+static const ByteProvider kEoB2SpellLevelsMageFMTownsProvider = { ARRAYSIZE(kEoB2SpellLevelsMageFMTowns), kEoB2SpellLevelsMageFMTowns };
+
+static const byte kEoB2SpellLevelsClericFMTowns[28] = {
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02,
+ 0x02, 0x03, 0x03, 0x03, 0x03, 0x03, 0x04, 0x04,
+ 0x04, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+ 0x06, 0x06, 0x08, 0x08
+};
+
+static const ByteProvider kEoB2SpellLevelsClericFMTownsProvider = { ARRAYSIZE(kEoB2SpellLevelsClericFMTowns), kEoB2SpellLevelsClericFMTowns };
+
+static const byte kEoB2NumSpellsClericFMTowns[136] = {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00,
+ 0x04, 0x04, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00,
+ 0x05, 0x04, 0x04, 0x03, 0x02, 0x01, 0x00, 0x00,
+ 0x06, 0x05, 0x05, 0x03, 0x02, 0x02, 0x00, 0x00,
+ 0x06, 0x06, 0x06, 0x04, 0x02, 0x02, 0x00, 0x00,
+ 0x06, 0x06, 0x06, 0x05, 0x03, 0x02, 0x01, 0x00,
+ 0x06, 0x06, 0x06, 0x06, 0x04, 0x02, 0x01, 0x00,
+ 0x07, 0x07, 0x07, 0x06, 0x04, 0x03, 0x01, 0x00,
+ 0x07, 0x07, 0x07, 0x07, 0x05, 0x03, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2NumSpellsClericFMTownsProvider = { ARRAYSIZE(kEoB2NumSpellsClericFMTowns), kEoB2NumSpellsClericFMTowns };
+
+static const byte kEoB2NumSpellsWisAdjFMTowns[64] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2NumSpellsWisAdjFMTownsProvider = { ARRAYSIZE(kEoB2NumSpellsWisAdjFMTowns), kEoB2NumSpellsWisAdjFMTowns };
+
+static const byte kEoB2NumSpellsPalFMTowns[136] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2NumSpellsPalFMTownsProvider = { ARRAYSIZE(kEoB2NumSpellsPalFMTowns), kEoB2NumSpellsPalFMTowns };
+
+static const byte kEoB2NumSpellsMageFMTowns[136] = {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x03, 0x03, 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x03, 0x03, 0x02, 0x01, 0x00, 0x00, 0x00,
+ 0x04, 0x04, 0x03, 0x02, 0x02, 0x00, 0x00, 0x00,
+ 0x04, 0x04, 0x04, 0x03, 0x03, 0x00, 0x00, 0x00,
+ 0x04, 0x04, 0x04, 0x04, 0x04, 0x01, 0x00, 0x00,
+ 0x05, 0x05, 0x05, 0x04, 0x04, 0x02, 0x00, 0x00,
+ 0x05, 0x05, 0x05, 0x04, 0x04, 0x02, 0x01, 0x00,
+ 0x05, 0x05, 0x05, 0x05, 0x05, 0x02, 0x01, 0x00,
+ 0x05, 0x05, 0x05, 0x05, 0x05, 0x03, 0x02, 0x01,
+ 0x05, 0x05, 0x05, 0x05, 0x05, 0x03, 0x03, 0x02
+};
+
+static const ByteProvider kEoB2NumSpellsMageFMTownsProvider = { ARRAYSIZE(kEoB2NumSpellsMageFMTowns), kEoB2NumSpellsMageFMTowns };
+
+static const uint32 kEoB2ExperienceTable0FMTowns[14] = {
+ 0x00000000, 0x000007D0, 0x00000FA0, 0x00001F40, 0x00003E80, 0x00007D00, 0x0000FA00, 0x0001E848,
+ 0x0003D090, 0x0007A120, 0x000B71B0, 0x000F4240, 0x001312D0, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable0FMTownsProvider = { ARRAYSIZE(kEoB2ExperienceTable0FMTowns), kEoB2ExperienceTable0FMTowns };
+
+static const uint32 kEoB2ExperienceTable1FMTowns[14] = {
+ 0x00000000, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x0000EA60, 0x00015F90,
+ 0x00020F58, 0x0003D090, 0x0005B8D8, 0x000B71B0, 0x00112A88, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable1FMTownsProvider = { ARRAYSIZE(kEoB2ExperienceTable1FMTowns), kEoB2ExperienceTable1FMTowns };
+
+static const uint32 kEoB2ExperienceTable2FMTowns[14] = {
+ 0x00000000, 0x000005DC, 0x00000BB8, 0x00001770, 0x000032C8, 0x00006B6C, 0x0000D6D8, 0x0001ADB0,
+ 0x00036EE8, 0x0006DDD0, 0x000A4CB8, 0x000DBBA0, 0x00112A88, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable2FMTownsProvider = { ARRAYSIZE(kEoB2ExperienceTable2FMTowns), kEoB2ExperienceTable2FMTowns };
+
+static const uint32 kEoB2ExperienceTable3FMTowns[14] = {
+ 0x00000000, 0x000004E2, 0x000009C4, 0x00001388, 0x00002710, 0x00004E20, 0x00009C40, 0x00011170,
+ 0x0001ADB0, 0x00027100, 0x00035B60, 0x0006B6C0, 0x000A1220, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable3FMTownsProvider = { ARRAYSIZE(kEoB2ExperienceTable3FMTowns), kEoB2ExperienceTable3FMTowns };
+
+static const uint32 kEoB2ExperienceTable4FMTowns[14] = {
+ 0x00000000, 0x000008CA, 0x00001194, 0x00002328, 0x00004650, 0x00008CA0, 0x000124F8, 0x000249F0,
+ 0x000493E0, 0x000927C0, 0x000DBBA0, 0x00124F80, 0x0016E360, 0xFFFFFFFF
+};
+
+static const Uint32Provider kEoB2ExperienceTable4FMTownsProvider = { ARRAYSIZE(kEoB2ExperienceTable4FMTowns), kEoB2ExperienceTable4FMTowns };
+
+static const byte kEoB2ExpObjectTlModeFMTowns[18] = {
+ 0x00, 0x00, 0x01, 0x02, 0x01, 0x00, 0x00, 0x00,
+ 0x01, 0x02, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x02, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTlModeFMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectTlModeFMTowns), kEoB2ExpObjectTlModeFMTowns };
+
+static const byte kEoB2ExpObjectTblIndexFMTowns[14] = {
+ 0x02, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTblIndexFMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectTblIndexFMTowns), kEoB2ExpObjectTblIndexFMTowns };
+
+static const byte kEoB2ExpObjectShpStartFMTowns[4] = {
+ 0x07, 0x0C, 0x0F, 0x12
+};
+
+static const ByteProvider kEoB2ExpObjectShpStartFMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectShpStartFMTowns), kEoB2ExpObjectShpStartFMTowns };
+
+static const byte kEoB2ExpObjectTbl1FMTowns[13] = {
+ 0x0F, 0x05, 0x0F, 0x05, 0x06, 0x05, 0x06, 0x08,
+ 0x06, 0x08, 0x06, 0x08, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTbl1FMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectTbl1FMTowns), kEoB2ExpObjectTbl1FMTowns };
+
+static const byte kEoB2ExpObjectTbl2FMTowns[10] = {
+ 0x0F, 0x09, 0x0F, 0x09, 0x02, 0x0A, 0x0B, 0x0A,
+ 0x0B, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTbl2FMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectTbl2FMTowns), kEoB2ExpObjectTbl2FMTowns };
+
+static const byte kEoB2ExpObjectTbl3FMTowns[11] = {
+ 0x05, 0x03, 0x05, 0x03, 0x03, 0x03, 0x03, 0x0B,
+ 0x03, 0x0B, 0x00
+};
+
+static const ByteProvider kEoB2ExpObjectTbl3FMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectTbl3FMTowns), kEoB2ExpObjectTbl3FMTowns };
+
+static const byte kEoB2ExpObjectYFMTowns[4] = {
+ 0x77, 0x67, 0x4F, 0x3F
+};
+
+static const ByteProvider kEoB2ExpObjectYFMTownsProvider = { ARRAYSIZE(kEoB2ExpObjectYFMTowns), kEoB2ExpObjectYFMTowns };
+
+static const byte kEoB2SparkDefStepsFMTowns[8] = {
+ 0x40, 0x90, 0xE4, 0xB9, 0x6E, 0x1B, 0x06, 0x01
+};
+
+static const ByteProvider kEoB2SparkDefStepsFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefStepsFMTowns), kEoB2SparkDefStepsFMTowns };
+
+static const byte kEoB2SparkDefSubStepsFMTowns[4] = {
+ 0xC0, 0x30, 0x0C, 0x03
+};
+
+static const ByteProvider kEoB2SparkDefSubStepsFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefSubStepsFMTowns), kEoB2SparkDefSubStepsFMTowns };
+
+static const byte kEoB2SparkDefShiftFMTowns[4] = {
+ 0x06, 0x04, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2SparkDefShiftFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefShiftFMTowns), kEoB2SparkDefShiftFMTowns };
+
+static const byte kEoB2SparkDefAddFMTowns[8] = {
+ 0x08, 0x06, 0x1C, 0x14, 0x0D, 0x18, 0x0D, 0x0F
+};
+
+static const ByteProvider kEoB2SparkDefAddFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefAddFMTowns), kEoB2SparkDefAddFMTowns };
+
+static const byte kEoB2SparkDefXFMTowns[6] = {
+ 0x17, 0x20, 0x17, 0x20, 0x17, 0x20
+};
+
+static const ByteProvider kEoB2SparkDefXFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefXFMTowns), kEoB2SparkDefXFMTowns };
+
+static const byte kEoB2SparkDefYFMTowns[6] = {
+ 0x02, 0x02, 0x34, 0x34, 0x66, 0x66
+};
+
+static const ByteProvider kEoB2SparkDefYFMTownsProvider = { ARRAYSIZE(kEoB2SparkDefYFMTowns), kEoB2SparkDefYFMTowns };
+
+static const uint32 kEoB2SparkOfFlags1FMTowns[11] = {
+ 0x40000000, 0x95000000, 0xEA550000, 0xBFAA5400, 0x6AFFA954, 0x15AAFEA9, 0x0055ABFE, 0x000056AB,
+ 0x00000156, 0x00000001, 0x00000000
+};
+
+static const Uint32Provider kEoB2SparkOfFlags1FMTownsProvider = { ARRAYSIZE(kEoB2SparkOfFlags1FMTowns), kEoB2SparkOfFlags1FMTowns };
+
+static const uint32 kEoB2SparkOfFlags2FMTowns[16] = {
+ 0xC0000000, 0x30000000, 0x0C000000, 0x03000000, 0x00C00000, 0x00300000, 0x000C0000, 0x00030000,
+ 0x0000C000, 0x00003000, 0x00000C00, 0x00000300, 0x000000C0, 0x00000030, 0x0000000C, 0x00000003
+};
+
+static const Uint32Provider kEoB2SparkOfFlags2FMTownsProvider = { ARRAYSIZE(kEoB2SparkOfFlags2FMTowns), kEoB2SparkOfFlags2FMTowns };
+
+static const byte kEoB2SparkOfShiftFMTowns[16] = {
+ 0x1E, 0x1C, 0x1A, 0x18, 0x16, 0x14, 0x12, 0x10,
+ 0x0E, 0x0C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2SparkOfShiftFMTownsProvider = { ARRAYSIZE(kEoB2SparkOfShiftFMTowns), kEoB2SparkOfShiftFMTowns };
+
+static const byte kEoB2SparkOfXFMTowns[16] = {
+ 0x50, 0x70, 0x30, 0x68, 0x20, 0x60, 0x38, 0x78,
+ 0x80, 0x48, 0x58, 0x28, 0x60, 0x40, 0x70, 0x48
+};
+
+static const ByteProvider kEoB2SparkOfXFMTownsProvider = { ARRAYSIZE(kEoB2SparkOfXFMTowns), kEoB2SparkOfXFMTowns };
+
+static const byte kEoB2SparkOfYFMTowns[16] = {
+ 0x31, 0x2B, 0x48, 0x17, 0x16, 0x48, 0x35, 0x1B,
+ 0x43, 0x2E, 0x24, 0x28, 0x38, 0x1C, 0x16, 0x44
+};
+
+static const ByteProvider kEoB2SparkOfYFMTownsProvider = { ARRAYSIZE(kEoB2SparkOfYFMTowns), kEoB2SparkOfYFMTowns };
+
+static const byte kEoB2SpellPropertiesFMTowns[1750] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x6C, 0x6F, 0x0E, 0x00, 0x4C, 0x2C, 0x0D,
+ 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x5C, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x78, 0x6F, 0x0E, 0x00, 0xB8, 0x2C,
+ 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00,
+ 0x00, 0x21, 0x00, 0x94, 0x6F, 0x0E, 0x00, 0xB0,
+ 0x2D, 0x0D, 0x00, 0x4C, 0x00, 0x3C, 0x3B, 0x0F,
+ 0x00, 0xCC, 0x2D, 0x0D, 0x00, 0x5F, 0x02, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xB0, 0x6F, 0x0E, 0x00,
+ 0xE8, 0x2D, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x10, 0x2E, 0x0D, 0x00, 0x55, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0xCC, 0x6F, 0x0E,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x8B, 0x00, 0x44,
+ 0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x6F,
+ 0x0E, 0x00, 0x40, 0x2E, 0x0D, 0x00, 0x88, 0x04,
+ 0x4C, 0x3B, 0x0F, 0x00, 0x00, 0x2F, 0x0D, 0x00,
+ 0x58, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFC,
+ 0x6F, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89,
+ 0x00, 0x54, 0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x4B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x08, 0x70, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x4C, 0x00, 0x64, 0x3B, 0x0F, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5F, 0x20, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x30, 0x70, 0x0E, 0x00, 0x00, 0x2C, 0x0D,
+ 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x14, 0x40, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x54, 0x70, 0x0E, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x5E, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x70, 0x70, 0x0E, 0x00, 0x5C,
+ 0x2F, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x84, 0x2F, 0x0D, 0x00, 0x60, 0x00, 0x00,
+ 0x00, 0x00, 0x11, 0x00, 0x94, 0x70, 0x0E, 0x00,
+ 0xC8, 0x2B, 0x0D, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xB0, 0x70, 0x0E,
+ 0x00, 0xB4, 0x2F, 0x0D, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0xDC, 0x2F, 0x0D, 0x00, 0x63,
+ 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0xC4, 0x70,
+ 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x02,
+ 0x5C, 0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x64, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xD0,
+ 0x70, 0x0E, 0x00, 0x04, 0x30, 0x0D, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x2C, 0x30, 0x0D,
+ 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xE8, 0x70, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5E, 0x40, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x1C, 0x71, 0x0E, 0x00, 0x30, 0x31, 0x0D,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x58,
+ 0x31, 0x0D, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00,
+ 0x03, 0x00, 0x3C, 0x71, 0x0E, 0x00, 0x80, 0x31,
+ 0x0D, 0x00, 0x88, 0x04, 0x6C, 0x3B, 0x0F, 0x00,
+ 0x44, 0x32, 0x0D, 0x00, 0x66, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x5C, 0x71, 0x0E, 0x00, 0x64,
+ 0x32, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x68, 0x71, 0x0E, 0x00,
+ 0xC8, 0x32, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0xF0, 0x32, 0x0D, 0x00, 0x59, 0x00,
+ 0x00, 0x00, 0x00, 0x41, 0x00, 0x7C, 0x71, 0x0E,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0x74,
+ 0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xA8, 0x71,
+ 0x0E, 0x00, 0x80, 0x33, 0x0D, 0x00, 0x20, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4,
+ 0x71, 0x0E, 0x00, 0xF8, 0x33, 0x0D, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x76, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00,
+ 0xE0, 0x71, 0x0E, 0x00, 0xEC, 0x34, 0x0D, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x14, 0x35,
+ 0x0D, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xFC, 0x71, 0x0E, 0x00, 0x54, 0x36, 0x0D,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x4A, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x18, 0x72, 0x0E, 0x00, 0xA0, 0x37,
+ 0x0D, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x34, 0x72, 0x0E, 0x00, 0x04,
+ 0x38, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x54, 0x72, 0x0E, 0x00,
+ 0x74, 0x38, 0x0D, 0x00, 0x20, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x72, 0x0E,
+ 0x00, 0x94, 0x38, 0x0D, 0x00, 0x4C, 0x00, 0x7C,
+ 0x3B, 0x0F, 0x00, 0xA8, 0x38, 0x0D, 0x00, 0x49,
+ 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x8C, 0x72,
+ 0x0E, 0x00, 0xBC, 0x38, 0x0D, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xAC,
+ 0x72, 0x0E, 0x00, 0x20, 0x39, 0x0D, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xCC, 0x72, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xF8, 0x72, 0x0E, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5C, 0x00, 0x84, 0x3B, 0x0F, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x04, 0x00,
+ 0x00, 0x00, 0x00, 0x04, 0x73, 0x0E, 0x00, 0x68,
+ 0x39, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x2C, 0x73, 0x0E, 0x00,
+ 0x78, 0x39, 0x0D, 0x00, 0x20, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x73, 0x0E,
+ 0x00, 0xB0, 0x2D, 0x0D, 0x00, 0x4C, 0x00, 0x3C,
+ 0x3B, 0x0F, 0x00, 0xCC, 0x2D, 0x0D, 0x00, 0x5F,
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x73,
+ 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x00,
+ 0x8C, 0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x6E, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x98,
+ 0x73, 0x0E, 0x00, 0x9C, 0x39, 0x0D, 0x00, 0x39,
+ 0x00, 0x94, 0x3B, 0x0F, 0x00, 0x68, 0x3A, 0x0D,
+ 0x00, 0x5B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xA0, 0x73, 0x0E, 0x00, 0x8C, 0x3A, 0x0D, 0x00,
+ 0x08, 0x24, 0x9C, 0x3B, 0x0F, 0x00, 0x00, 0x2F,
+ 0x0D, 0x00, 0x63, 0x00, 0x00, 0x00, 0x00, 0x21,
+ 0x00, 0xB8, 0x73, 0x0E, 0x00, 0x04, 0x30, 0x0D,
+ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x2C,
+ 0x30, 0x0D, 0x00, 0x65, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xD0, 0x73, 0x0E, 0x00, 0x3C, 0x3B,
+ 0x0D, 0x00, 0x28, 0x00, 0xA4, 0x3B, 0x0F, 0x00,
+ 0xA0, 0x3B, 0x0D, 0x00, 0x6F, 0x00, 0x20, 0x00,
+ 0x00, 0x00, 0x00, 0xE8, 0x73, 0x0E, 0x00, 0xB0,
+ 0x3B, 0x0D, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0x0E, 0x00,
+ 0xC8, 0x2B, 0x0D, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x74, 0x0E,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x00, 0xAC,
+ 0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71,
+ 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x40, 0x74,
+ 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4C, 0x00,
+ 0xB4, 0x3B, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x5B, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x50,
+ 0x74, 0x0E, 0x00, 0xF4, 0x3B, 0x0D, 0x00, 0x40,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x74, 0x74, 0x0E, 0x00, 0x6C, 0x3C, 0x0D, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0xA0, 0x74, 0x0E, 0x00, 0x48, 0x3C, 0x0D,
+ 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x69, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xC8, 0x74, 0x0E, 0x00, 0x7C, 0x3C,
+ 0x0D, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0xEC, 0x74, 0x0E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x48, 0x02, 0x8C, 0x3B, 0x0F,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x08,
+ 0x00, 0x00, 0x00, 0x00, 0x30, 0x75, 0x0E, 0x00,
+ 0xA4, 0x3C, 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x00,
+ 0x00, 0x00, 0x00, 0x01, 0x00, 0x5C, 0x75, 0x0E,
+ 0x00, 0xB4, 0x3C, 0x0D, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6A,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x75,
+ 0x0E, 0x00, 0xD8, 0x3C, 0x0D, 0x00, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D, 0x0D, 0x00,
+ 0x62, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0xA4,
+ 0x75, 0x0E, 0x00, 0x18, 0x3D, 0x0D, 0x00, 0x20,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xBC, 0x75, 0x0E, 0x00, 0xBC, 0x38, 0x0D, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x00, 0xD4, 0x75, 0x0E, 0x00, 0x94, 0x38, 0x0D,
+ 0x00, 0x4C, 0x00, 0x7C, 0x3B, 0x0F, 0x00, 0xA8,
+ 0x38, 0x0D, 0x00, 0x49, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x00, 0xEC, 0x75, 0x0E, 0x00, 0x50, 0x3D,
+ 0x0D, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0xF8, 0x75, 0x0E, 0x00, 0x60,
+ 0x3D, 0x0D, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x04, 0x76, 0x0E, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x0E,
+ 0x00, 0xD4, 0x40, 0x0D, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x76,
+ 0x0E, 0x00, 0xB4, 0x3D, 0x0D, 0x00, 0x00, 0x10,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x67, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53,
+ 0x76, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x41, 0x0D,
+ 0x00, 0x62, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x54, 0x76, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x4C, 0x00, 0xBC, 0x3B, 0x0F, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x5B, 0x00, 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x71, 0x76, 0x0E, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C,
+ 0x41, 0x0D, 0x00, 0x62, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x72, 0x76, 0x0E, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x58, 0x3F, 0x0D, 0x00, 0x65, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x73, 0x76, 0x0E, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xD0, 0x3E, 0x0D, 0x00, 0x65, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x74, 0x76, 0x0E, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xF4, 0x3F, 0x0D, 0x00, 0x65, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x76, 0x0E,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x64, 0x40, 0x0D, 0x00, 0x65,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2SpellPropertiesFMTownsProvider = { ARRAYSIZE(kEoB2SpellPropertiesFMTowns), kEoB2SpellPropertiesFMTowns };
+
+static const byte kEoB2MagicFlightPropsFMTowns[56] = {
+ 0x04, 0xFF, 0x41, 0x0C, 0x0B, 0xFF, 0x04, 0x06,
+ 0x0D, 0xFF, 0x7A, 0x09, 0x0F, 0xFF, 0x4A, 0x08,
+ 0x11, 0x06, 0x38, 0x0A, 0x14, 0x06, 0x7A, 0x0B,
+ 0x18, 0xFF, 0x4A, 0x08, 0x36, 0xFF, 0x4B, 0x09,
+ 0x3F, 0xFF, 0x4B, 0x09, 0x41, 0x06, 0x4B, 0x09,
+ 0x42, 0x06, 0x4B, 0x08, 0x43, 0x06, 0x4B, 0x08,
+ 0x44, 0x06, 0x4B, 0x08, 0x45, 0x06, 0x4B, 0x08
+};
+
+static const ByteProvider kEoB2MagicFlightPropsFMTownsProvider = { ARRAYSIZE(kEoB2MagicFlightPropsFMTowns), kEoB2MagicFlightPropsFMTowns };
+
+static const byte kEoB2TurnUndeadEffectFMTowns[140] = {
+ 0x0A, 0x07, 0x04, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0D, 0x0A,
+ 0x07, 0x04, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0x10, 0x0D, 0x0A, 0x07,
+ 0x04, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0x13, 0x10, 0x0D, 0x0A, 0x07, 0x04,
+ 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x14, 0x13, 0x10, 0x0D, 0x0A, 0x07, 0x04, 0x00,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x63, 0x14,
+ 0x13, 0x10, 0x0D, 0x0A, 0x07, 0x04, 0x00, 0x00,
+ 0x00, 0xFF, 0xFF, 0x00, 0x63, 0x63, 0x14, 0x13,
+ 0x10, 0x0D, 0x0A, 0x07, 0x04, 0x00, 0x00, 0x00,
+ 0x00, 0xFF, 0x63, 0x63, 0x63, 0x14, 0x13, 0x10,
+ 0x0D, 0x0A, 0x07, 0x04, 0x04, 0x00, 0x00, 0x00,
+ 0x63, 0x63, 0x63, 0x63, 0x14, 0x13, 0x10, 0x0D,
+ 0x0A, 0x07, 0x07, 0x04, 0x04, 0x00, 0x63, 0x63,
+ 0x63, 0x63, 0x63, 0x14, 0x13, 0x10, 0x0D, 0x0A,
+ 0x0A, 0x07, 0x07, 0x04
+};
+
+static const ByteProvider kEoB2TurnUndeadEffectFMTownsProvider = { ARRAYSIZE(kEoB2TurnUndeadEffectFMTowns), kEoB2TurnUndeadEffectFMTowns };
+
+static const byte kEoB2BurningHandsDestFMTowns[32] = {
+ 0x02, 0x03, 0x04, 0x01, 0x02, 0x05, 0x00, 0x00,
+ 0x00, 0x02, 0x04, 0x01, 0x03, 0x05, 0x00, 0x00,
+ 0x00, 0x01, 0x04, 0x02, 0x03, 0x05, 0x00, 0x00,
+ 0x01, 0x03, 0x04, 0x00, 0x02, 0x05, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2BurningHandsDestFMTownsProvider = { ARRAYSIZE(kEoB2BurningHandsDestFMTowns), kEoB2BurningHandsDestFMTowns };
+
+static const byte kEoB2ConeOfColdDest1FMTowns[7] = {
+ 0xE0, 0xC0, 0xC1, 0xBF, 0xA0, 0x9F, 0xA1
+};
+
+static const ByteProvider kEoB2ConeOfColdDest1FMTownsProvider = { ARRAYSIZE(kEoB2ConeOfColdDest1FMTowns), kEoB2ConeOfColdDest1FMTowns };
+
+static const byte kEoB2ConeOfColdDest2FMTowns[7] = {
+ 0x01, 0x02, 0xE2, 0x22, 0x03, 0xE3, 0x23
+};
+
+static const ByteProvider kEoB2ConeOfColdDest2FMTownsProvider = { ARRAYSIZE(kEoB2ConeOfColdDest2FMTowns), kEoB2ConeOfColdDest2FMTowns };
+
+static const byte kEoB2ConeOfColdDest3FMTowns[7] = {
+ 0x20, 0x40, 0x3F, 0x41, 0x60, 0x5F, 0x61
+};
+
+static const ByteProvider kEoB2ConeOfColdDest3FMTownsProvider = { ARRAYSIZE(kEoB2ConeOfColdDest3FMTowns), kEoB2ConeOfColdDest3FMTowns };
+
+static const byte kEoB2ConeOfColdDest4FMTowns[7] = {
+ 0xFF, 0xFE, 0x1E, 0xDE, 0xFD, 0x1D, 0xDD
+};
+
+static const ByteProvider kEoB2ConeOfColdDest4FMTownsProvider = { ARRAYSIZE(kEoB2ConeOfColdDest4FMTowns), kEoB2ConeOfColdDest4FMTowns };
+
+static const byte kEoB2ConeOfColdGfxTblFMTowns[8] = {
+ 0x0F, 0x09, 0x0F, 0x09, 0x02, 0x0A, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2ConeOfColdGfxTblFMTownsProvider = { ARRAYSIZE(kEoB2ConeOfColdGfxTblFMTowns), kEoB2ConeOfColdGfxTblFMTowns };
+
+static const byte kEoB2DscDoorShapeIndexFMTowns[53] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x01
+};
+
+static const ByteProvider kEoB2DscDoorShapeIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscDoorShapeIndexFMTowns), kEoB2DscDoorShapeIndexFMTowns };
+
+static const byte kEoB2WllFlagPresetFMTowns[25] = {
+ 0x07, 0x00, 0x40, 0xA8, 0x88, 0x88, 0x88, 0x9F,
+ 0xA8, 0x88, 0x88, 0x88, 0x9F, 0xA8, 0x88, 0x88,
+ 0x88, 0x9F, 0xA8, 0x88, 0x88, 0x88, 0x9F, 0x03,
+ 0x03
+};
+
+static const ByteProvider kEoB2WllFlagPresetFMTownsProvider = { ARRAYSIZE(kEoB2WllFlagPresetFMTowns), kEoB2WllFlagPresetFMTowns };
+
+static const uint16 kEoB2DscShapeCoordsFMTowns[180] = {
+ 0xFF91, 0xFFC1, 0xFFA1, 0xFFC1, 0xFF75, 0xFFC5, 0xFF8B, 0xFFC5,
+ 0xFF88, 0xFFC3, 0xFFB4, 0xFFC1, 0xFFC4, 0xFFC1, 0xFFA1, 0xFFC5,
+ 0xFFB6, 0xFFC5, 0xFFB0, 0xFFC3, 0xFFD5, 0xFFC1, 0xFFE5, 0xFFC1,
+ 0xFFCB, 0xFFC5, 0xFFE1, 0xFFC5, 0xFFD8, 0xFFC3, 0xFFF8, 0xFFC1,
+ 0x0008, 0xFFC1, 0xFFF6, 0xFFC5, 0x000A, 0xFFC5, 0x0000, 0xFFC3,
+ 0x001B, 0xFFC1, 0x002B, 0xFFC1, 0x001F, 0xFFC5, 0x0035, 0xFFC5,
+ 0x0028, 0xFFC3, 0x003C, 0xFFC1, 0x004C, 0xFFC1, 0x004A, 0xFFC5,
+ 0x005F, 0xFFC5, 0x0050, 0xFFC3, 0x005F, 0xFFC1, 0x006F, 0xFFC1,
+ 0x0075, 0xFFC5, 0x008B, 0xFFC5, 0x0078, 0xFFC3, 0xFF8A, 0xFFCB,
+ 0xFFA4, 0xFFCB, 0xFF68, 0xFFD3, 0xFF88, 0xFFD3, 0xFF8A, 0xFFCE,
+ 0xFFBE, 0xFFCB, 0xFFD8, 0xFFCB, 0xFFAC, 0xFFD3, 0xFFCD, 0xFFD3,
+ 0xFFC5, 0xFFCE, 0xFFF3, 0xFFCB, 0x000D, 0xFFCB, 0xFFF0, 0xFFD3,
+ 0x0010, 0xFFD3, 0x0000, 0xFFCE, 0x0028, 0xFFCB, 0x0042, 0xFFCB,
+ 0x0033, 0xFFD3, 0x0054, 0xFFD3, 0x003B, 0xFFCE, 0x005C, 0xFFCB,
+ 0x0076, 0xFFCB, 0x0078, 0xFFD3, 0x0098, 0xFFD3, 0x0076, 0xFFCE,
+ 0xFF92, 0xFFDD, 0xFFBD, 0xFFDD, 0xFF74, 0xFFEA, 0xFFAD, 0xFFEA,
+ 0xFF9E, 0xFFE2, 0xFFEA, 0xFFDD, 0x0016, 0xFFDD, 0xFFE5, 0xFFEA,
+ 0x001B, 0xFFEA, 0x0000, 0xFFE2, 0x0043, 0xFFDD, 0x006E, 0xFFDD,
+ 0x0053, 0xFFEA, 0x008C, 0xFFEA, 0x0062, 0xFFE2, 0xFF80, 0xFFFC,
+ 0x0080, 0xFFFC, 0xFF80, 0xFFBE, 0x0080, 0xFFBE, 0x0080, 0x0000,
+ 0xFFDA, 0xFFFC, 0x0026, 0xFFFC, 0xFFDA, 0xFFBE, 0x0026, 0xFFBE,
+ 0x0000, 0x0000, 0xFF80, 0xFFFC, 0x0080, 0xFFFC, 0xFF80, 0xFFBE,
+ 0x0080, 0xFFBE, 0x0080, 0x0000
+};
+
+static const Uint16Provider kEoB2DscShapeCoordsFMTownsProvider = { ARRAYSIZE(kEoB2DscShapeCoordsFMTowns), kEoB2DscShapeCoordsFMTowns };
+
+static const byte kEoB2DscDoorScaleOffsFMTowns[53] = {
+ 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x0D, 0x0D, 0x0D,
+ 0x0D, 0x0D, 0x12, 0x12, 0x12, 0x12, 0x12, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x33, 0x34
+};
+
+static const ByteProvider kEoB2DscDoorScaleOffsFMTownsProvider = { ARRAYSIZE(kEoB2DscDoorScaleOffsFMTowns), kEoB2DscDoorScaleOffsFMTowns };
+
+static const byte kEoB2DscDoorScaleMult1FMTowns[4] = {
+ 0x08, 0x0C, 0x12, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorScaleMult1FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult1FMTowns), kEoB2DscDoorScaleMult1FMTowns };
+
+static const byte kEoB2DscDoorScaleMult2FMTowns[4] = {
+ 0x00, 0x02, 0x04, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorScaleMult2FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult2FMTowns), kEoB2DscDoorScaleMult2FMTowns };
+
+static const byte kEoB2DscDoorScaleMult3FMTowns[4] = {
+ 0x05, 0x08, 0x0C, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorScaleMult3FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorScaleMult3FMTowns), kEoB2DscDoorScaleMult3FMTowns };
+
+static const byte kEoB2DscDoorType5OffsFMTowns[6] = {
+ 0x05, 0x03, 0x01, 0x05, 0x03, 0x01
+};
+
+static const ByteProvider kEoB2DscDoorType5OffsFMTownsProvider = { ARRAYSIZE(kEoB2DscDoorType5OffsFMTowns), kEoB2DscDoorType5OffsFMTowns };
+
+static const byte kEoB2DscDoorY1FMTowns[4] = {
+ 0x3B, 0x47, 0x56, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorY1FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorY1FMTowns), kEoB2DscDoorY1FMTowns };
+
+static const byte kEoB2DscDoorY2FMTowns[4] = {
+ 0x1F, 0x18, 0x0F, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorY2FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorY2FMTowns), kEoB2DscDoorY2FMTowns };
+
+static const byte kEoB2DscDoorFrameY1FMTowns[4] = {
+ 0x1E, 0x18, 0x10, 0x00
+};
+
+static const ByteProvider kEoB2DscDoorFrameY1FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorFrameY1FMTowns), kEoB2DscDoorFrameY1FMTowns };
+
+static const byte kEoB2DscDoorFrameY2FMTowns[4] = {
+ 0x3B, 0x47, 0x56, 0x78
+};
+
+static const ByteProvider kEoB2DscDoorFrameY2FMTownsProvider = { ARRAYSIZE(kEoB2DscDoorFrameY2FMTowns), kEoB2DscDoorFrameY2FMTowns };
+
+static const byte kEoB2DscItemPosIndexFMTowns[16] = {
+ 0x00, 0x01, 0x02, 0x03, 0x02, 0x00, 0x03, 0x01,
+ 0x03, 0x02, 0x01, 0x00, 0x01, 0x03, 0x00, 0x02
+};
+
+static const ByteProvider kEoB2DscItemPosIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscItemPosIndexFMTowns), kEoB2DscItemPosIndexFMTowns };
+
+static const uint16 kEoB2DscItemShpXFMTowns[18] = {
+ 0xFFC8, 0xFFF8, 0x0028, 0x0058, 0x0088, 0x00B8, 0x00E8, 0xFFB8,
+ 0x0008, 0x0058, 0x00A8, 0x00F8, 0xFFD8, 0x0058, 0x00D8, 0xFFA8,
+ 0x0058, 0x0108
+};
+
+static const Uint16Provider kEoB2DscItemShpXFMTownsProvider = { ARRAYSIZE(kEoB2DscItemShpXFMTowns), kEoB2DscItemShpXFMTowns };
+
+static const byte kEoB2DscItemScaleIndexFMTowns[16] = {
+ 0xFF, 0xFF, 0x03, 0x03, 0x02, 0x02, 0x02, 0x02,
+ 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0xFF, 0xFF
+};
+
+static const ByteProvider kEoB2DscItemScaleIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscItemScaleIndexFMTowns), kEoB2DscItemScaleIndexFMTowns };
+
+static const byte kEoB2DscItemTileIndexFMTowns[18] = {
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x09, 0xFF, 0x0B,
+ 0x0C, 0x0D
+};
+
+static const ByteProvider kEoB2DscItemTileIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscItemTileIndexFMTowns), kEoB2DscItemTileIndexFMTowns };
+
+static const byte kEoB2DscItemShapeMapFMTowns[113] = {
+ 0x00, 0x00, 0x00, 0x05, 0x01, 0x02, 0x03, 0x04,
+ 0x03, 0x05, 0x06, 0x06, 0x12, 0x05, 0x0F, 0x12,
+ 0x14, 0x08, 0x13, 0x11, 0x15, 0x18, 0x07, 0x07,
+ 0x07, 0x1F, 0x09, 0x23, 0x09, 0x09, 0x09, 0x09,
+ 0x08, 0x1C, 0x1C, 0x1A, 0x1B, 0x21, 0x1D, 0x1D,
+ 0x22, 0x22, 0x22, 0x00, 0x16, 0x00, 0x00, 0x17,
+ 0x17, 0x17, 0x17, 0x17, 0x22, 0x21, 0x19, 0x23,
+ 0x10, 0x1E, 0x17, 0x25, 0x17, 0x26, 0x12, 0x21,
+ 0x17, 0x23, 0x1C, 0x00, 0x20, 0x25, 0x12, 0x18,
+ 0x1F, 0x07, 0x07, 0x15, 0x15, 0x0F, 0x03, 0x09,
+ 0x1E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B,
+ 0x1B, 0x17, 0x17, 0x16, 0x16, 0x21, 0x08, 0x25,
+ 0x25, 0x25, 0x25, 0x28, 0x03, 0x04, 0x21, 0x00,
+ 0x17, 0x00, 0x20, 0x24, 0x27, 0x27, 0x1C, 0x27,
+ 0x00
+};
+
+static const ByteProvider kEoB2DscItemShapeMapFMTownsProvider = { ARRAYSIZE(kEoB2DscItemShapeMapFMTowns), kEoB2DscItemShapeMapFMTowns };
+
+static const byte kEoB2DscTelptrShpCoordsFMTowns[156] = {
+ 0x0C, 0x07, 0x1A, 0x01, 0x3E, 0x03, 0x0C, 0x1A,
+ 0x2A, 0x13, 0x40, 0x18, 0x02, 0x2D, 0x16, 0x25,
+ 0x28, 0x32, 0x36, 0x27, 0x0A, 0x3E, 0x16, 0x49,
+ 0x3E, 0x44, 0x06, 0x06, 0x2A, 0x04, 0x37, 0x0A,
+ 0x04, 0x1B, 0x1A, 0x16, 0x37, 0x1D, 0x0E, 0x2A,
+ 0x1B, 0x35, 0x2E, 0x28, 0x42, 0x30, 0x06, 0x47,
+ 0x06, 0x47, 0x2D, 0x4C, 0x0A, 0x04, 0x14, 0x00,
+ 0x2E, 0x01, 0x0C, 0x10, 0x1F, 0x10, 0x2F, 0x10,
+ 0x12, 0x18, 0x28, 0x1D, 0x01, 0x21, 0x08, 0x2A,
+ 0x11, 0x32, 0x2F, 0x2E, 0x1F, 0x25, 0x02, 0x02,
+ 0x01, 0x11, 0x01, 0x2F, 0x08, 0x1E, 0x11, 0x0E,
+ 0x11, 0x26, 0x1C, 0x01, 0x1E, 0x19, 0x1F, 0x33,
+ 0x24, 0x11, 0x26, 0x05, 0x28, 0x2B, 0x2F, 0x22,
+ 0x00, 0x13, 0x05, 0x01, 0x06, 0x08, 0x09, 0x0C,
+ 0x04, 0x1A, 0x08, 0x1F, 0x12, 0x05, 0x12, 0x15,
+ 0x16, 0x10, 0x1A, 0x08, 0x1A, 0x1D, 0x0A, 0x00,
+ 0x0A, 0x00, 0x00, 0x09, 0x00, 0x1E, 0x04, 0x11,
+ 0x08, 0x16, 0x08, 0x06, 0x10, 0x00, 0x11, 0x0D,
+ 0x12, 0x20, 0x15, 0x02, 0x14, 0x09, 0x16, 0x1B,
+ 0x1A, 0x14, 0x1A, 0x14
+};
+
+static const ByteProvider kEoB2DscTelptrShpCoordsFMTownsProvider = { ARRAYSIZE(kEoB2DscTelptrShpCoordsFMTowns), kEoB2DscTelptrShpCoordsFMTowns };
+
+static const byte kEoB2PortalSeqDataFMTowns[126] = {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00,
+ 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00,
+ 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00,
+ 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04,
+ 0x00, 0x01, 0x01, 0x00, 0x02, 0x01, 0x03, 0x02,
+ 0x02, 0x03, 0x01, 0x04, 0x00, 0x02, 0x01, 0x03,
+ 0x02, 0x04, 0x03, 0x02, 0x04, 0x03, 0x03, 0x04,
+ 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x03,
+ 0x04, 0x04, 0x04, 0x05, 0x04, 0x06, 0x03, 0x07,
+ 0x02, 0x08, 0x02, 0x08, 0x01, 0x09, 0x01, 0x09,
+ 0x01, 0x09, 0x00, 0x0A, 0xFF, 0xFF
+};
+
+static const ByteProvider kEoB2PortalSeqDataFMTownsProvider = { ARRAYSIZE(kEoB2PortalSeqDataFMTowns), kEoB2PortalSeqDataFMTowns };
+
+static const byte kEoB2DscMonsterFrmOffsTbl1FMTowns[32] = {
+ 0x04, 0xFE, 0x01, 0x03, 0x03, 0x04, 0xFE, 0x01,
+ 0x01, 0x03, 0x04, 0xFE, 0xFE, 0x01, 0x03, 0x04,
+ 0xFC, 0xFD, 0xFF, 0x02, 0x02, 0xFC, 0xFD, 0xFF,
+ 0xFF, 0x02, 0xFC, 0xFD, 0xFD, 0xFF, 0x02, 0xFC
+};
+
+static const ByteProvider kEoB2DscMonsterFrmOffsTbl1FMTownsProvider = { ARRAYSIZE(kEoB2DscMonsterFrmOffsTbl1FMTowns), kEoB2DscMonsterFrmOffsTbl1FMTowns };
+
+static const byte kEoB2DscMonsterFrmOffsTbl2FMTowns[32] = {
+ 0x04, 0xFE, 0x01, 0x03, 0x03, 0x04, 0xFE, 0x01,
+ 0x01, 0x03, 0x04, 0xFE, 0xFE, 0x01, 0x03, 0x04,
+ 0x04, 0xFD, 0x01, 0x02, 0x02, 0x04, 0xFD, 0x01,
+ 0x01, 0x02, 0x04, 0xFD, 0xFD, 0x01, 0x02, 0x04
+};
+
+static const ByteProvider kEoB2DscMonsterFrmOffsTbl2FMTownsProvider = { ARRAYSIZE(kEoB2DscMonsterFrmOffsTbl2FMTowns), kEoB2DscMonsterFrmOffsTbl2FMTowns };
+
+static const uint16 kEoB2InvSlotXFMTowns[27] = {
+ 0x00E6, 0x0116, 0x00B5, 0x00C7, 0x00B5, 0x00C7, 0x00B5, 0x00C7,
+ 0x00B5, 0x00C7, 0x00B5, 0x00C7, 0x00B5, 0x00C7, 0x00B5, 0x00C7,
+ 0x00E1, 0x00E0, 0x00E1, 0x012A, 0x011F, 0x0115, 0x012C, 0x012C,
+ 0x012C, 0x00E4, 0x00F0
+};
+
+static const Uint16Provider kEoB2InvSlotXFMTownsProvider = { ARRAYSIZE(kEoB2InvSlotXFMTowns), kEoB2InvSlotXFMTowns };
+
+static const byte kEoB2InvSlotYFMTowns[27] = {
+ 0x74, 0x74, 0x28, 0x28, 0x3A, 0x3A, 0x4C, 0x4C,
+ 0x5E, 0x5E, 0x70, 0x70, 0x82, 0x82, 0x94, 0x94,
+ 0x38, 0x4C, 0x60, 0x37, 0x4B, 0x89, 0x5E, 0x70,
+ 0x82, 0x88, 0x88
+};
+
+static const ByteProvider kEoB2InvSlotYFMTownsProvider = { ARRAYSIZE(kEoB2InvSlotYFMTowns), kEoB2InvSlotYFMTowns };
+
+static const uint16 kEoB2SlotValidationFlagsFMTowns[27] = {
+ 0x0008, 0x0008, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
+ 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
+ 0x0001, 0x0002, 0x0004, 0x0020, 0x0040, 0x0010, 0xFFFF, 0x0080,
+ 0x0080, 0x0100, 0x0100
+};
+
+static const Uint16Provider kEoB2SlotValidationFlagsFMTownsProvider = { ARRAYSIZE(kEoB2SlotValidationFlagsFMTowns), kEoB2SlotValidationFlagsFMTowns };
+
+static const byte kEoB2ProjectileWeaponTypesFMTowns[15] = {
+ 0xFF, 0x01, 0xFF, 0x02, 0x04, 0x03, 0x05, 0x10,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x12
+};
+
+static const ByteProvider kEoB2ProjectileWeaponTypesFMTownsProvider = { ARRAYSIZE(kEoB2ProjectileWeaponTypesFMTowns), kEoB2ProjectileWeaponTypesFMTowns };
+
+static const byte kEoB2WandTypesFMTowns[8] = {
+ 0x00, 0x11, 0x17, 0x31, 0x0D, 0xFF, 0x04, 0x0C
+};
+
+static const ByteProvider kEoB2WandTypesFMTownsProvider = { ARRAYSIZE(kEoB2WandTypesFMTowns), kEoB2WandTypesFMTowns };
+
+static const byte kEoB2DrawObjPosIndexFMTowns[20] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x02, 0x00, 0x03,
+ 0x01, 0x04, 0x02, 0x03, 0x00, 0x01, 0x04, 0x01,
+ 0x03, 0x00, 0x02, 0x04
+};
+
+static const ByteProvider kEoB2DrawObjPosIndexFMTownsProvider = { ARRAYSIZE(kEoB2DrawObjPosIndexFMTowns), kEoB2DrawObjPosIndexFMTowns };
+
+static const byte kEoB2FlightObjFlipIndexFMTowns[16] = {
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2FlightObjFlipIndexFMTownsProvider = { ARRAYSIZE(kEoB2FlightObjFlipIndexFMTowns), kEoB2FlightObjFlipIndexFMTowns };
+
+static const byte kEoB2FlightObjShpMapFMTowns[45] = {
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02,
+ 0xFF, 0xFF, 0x04, 0xFF, 0x06, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2FlightObjShpMapFMTownsProvider = { ARRAYSIZE(kEoB2FlightObjShpMapFMTowns), kEoB2FlightObjShpMapFMTowns };
+
+static const byte kEoB2FlightObjSclIndexFMTowns[72] = {
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03,
+ 0xFF, 0xFF, 0x03, 0x03, 0xFF, 0xFF, 0x03, 0x03,
+ 0xFF, 0xFF, 0x03, 0x03, 0xFF, 0xFF, 0x03, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x02, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0x01, 0xFF, 0x01, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+};
+
+static const ByteProvider kEoB2FlightObjSclIndexFMTownsProvider = { ARRAYSIZE(kEoB2FlightObjSclIndexFMTowns), kEoB2FlightObjSclIndexFMTowns };
+
+static const byte kEoB2NpcShapeDataFMTowns[24] = {
+ 0x00, 0x00, 0x00, 0x05, 0x39, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x64, 0x05, 0x4F, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x39, 0x06, 0x2B, 0x00, 0x00, 0xFF
+};
+
+static const ByteProvider kEoB2NpcShapeDataFMTownsProvider = { ARRAYSIZE(kEoB2NpcShapeDataFMTowns), kEoB2NpcShapeDataFMTowns };
+
+static const byte kEoB2ClassModifierFlagsFMTowns[15] = {
+ 0x01, 0x20, 0x10, 0x02, 0x04, 0x08, 0x05, 0x09,
+ 0x03, 0x0B, 0x0A, 0x0C, 0x07, 0x05, 0x06
+};
+
+static const ByteProvider kEoB2ClassModifierFlagsFMTownsProvider = { ARRAYSIZE(kEoB2ClassModifierFlagsFMTowns), kEoB2ClassModifierFlagsFMTowns };
+
+static const byte kEoB2MonsterStepTable02FMTowns[8] = {
+ 0xE0, 0xE1, 0x01, 0x21, 0x20, 0x1F, 0xFF, 0xDF
+};
+
+static const ByteProvider kEoB2MonsterStepTable02FMTownsProvider = { ARRAYSIZE(kEoB2MonsterStepTable02FMTowns), kEoB2MonsterStepTable02FMTowns };
+
+static const byte kEoB2MonsterStepTable1FMTowns[16] = {
+ 0x01, 0xE0, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00,
+ 0x00, 0x00, 0xFF, 0x20, 0xFF, 0x00, 0x00, 0xE0
+};
+
+static const ByteProvider kEoB2MonsterStepTable1FMTownsProvider = { ARRAYSIZE(kEoB2MonsterStepTable1FMTowns), kEoB2MonsterStepTable1FMTowns };
+
+static const byte kEoB2MonsterStepTable2FMTowns[8] = {
+ 0x07, 0xFA, 0x05, 0xFC, 0x03, 0xFE, 0x01, 0x00
+};
+
+static const ByteProvider kEoB2MonsterStepTable2FMTownsProvider = { ARRAYSIZE(kEoB2MonsterStepTable2FMTowns), kEoB2MonsterStepTable2FMTowns };
+
+static const byte kEoB2MonsterStepTable3FMTowns[8] = {
+ 0xF9, 0x06, 0xFB, 0x04, 0xFD, 0x02, 0xFF, 0x00
+};
+
+static const ByteProvider kEoB2MonsterStepTable3FMTownsProvider = { ARRAYSIZE(kEoB2MonsterStepTable3FMTowns), kEoB2MonsterStepTable3FMTowns };
+
+static const byte kEoB2MonsterCloseAttPosTable1FMTowns[4] = {
+ 0x00, 0x01, 0x03, 0x02
+};
+
+static const ByteProvider kEoB2MonsterCloseAttPosTable1FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttPosTable1FMTowns), kEoB2MonsterCloseAttPosTable1FMTowns };
+
+static const byte kEoB2MonsterCloseAttPosTable22FMTowns[16] = {
+ 0x00, 0x01, 0x02, 0x03, 0x00, 0x02, 0x01, 0x03,
+ 0x00, 0x01, 0x02, 0x03, 0x03, 0x01, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2MonsterCloseAttPosTable22FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttPosTable22FMTowns), kEoB2MonsterCloseAttPosTable22FMTowns };
+
+static const byte kEoB2MonsterCloseAttUnkTableFMTowns[12] = {
+ 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x02, 0xFF, 0x01
+};
+
+static const ByteProvider kEoB2MonsterCloseAttUnkTableFMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttUnkTableFMTowns), kEoB2MonsterCloseAttUnkTableFMTowns };
+
+static const byte kEoB2MonsterCloseAttChkTable1FMTowns[16] = {
+ 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00
+};
+
+static const ByteProvider kEoB2MonsterCloseAttChkTable1FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttChkTable1FMTowns), kEoB2MonsterCloseAttChkTable1FMTowns };
+
+static const byte kEoB2MonsterCloseAttChkTable2FMTowns[16] = {
+ 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2MonsterCloseAttChkTable2FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttChkTable2FMTowns), kEoB2MonsterCloseAttChkTable2FMTowns };
+
+static const byte kEoB2MonsterCloseAttDstTable1FMTowns[16] = {
+ 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00,
+ 0x00, 0x01, 0x02, 0x03, 0x03, 0x00, 0x01, 0x02
+};
+
+static const ByteProvider kEoB2MonsterCloseAttDstTable1FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttDstTable1FMTowns), kEoB2MonsterCloseAttDstTable1FMTowns };
+
+static const byte kEoB2MonsterCloseAttDstTable2FMTowns[48] = {
+ 0x01, 0x00, 0x03, 0x02, 0x05, 0x04, 0x00, 0x01,
+ 0x02, 0x03, 0x04, 0x05, 0x05, 0x03, 0x01, 0x04,
+ 0x02, 0x00, 0x01, 0x03, 0x05, 0x00, 0x02, 0x04,
+ 0x04, 0x05, 0x02, 0x03, 0x00, 0x01, 0x05, 0x04,
+ 0x03, 0x02, 0x01, 0x00, 0x00, 0x02, 0x04, 0x01,
+ 0x03, 0x05, 0x04, 0x02, 0x00, 0x05, 0x03, 0x01
+};
+
+static const ByteProvider kEoB2MonsterCloseAttDstTable2FMTownsProvider = { ARRAYSIZE(kEoB2MonsterCloseAttDstTable2FMTowns), kEoB2MonsterCloseAttDstTable2FMTowns };
+
+static const byte kEoB2MonsterProximityTableFMTowns[32] = {
+ 0x02, 0x03, 0x00, 0x01, 0x03, 0x02, 0x01, 0x00,
+ 0x00, 0x02, 0x01, 0x03, 0x02, 0x00, 0x03, 0x01,
+ 0x01, 0x00, 0x03, 0x02, 0x00, 0x01, 0x02, 0x03,
+ 0x03, 0x01, 0x00, 0x02, 0x01, 0x03, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2MonsterProximityTableFMTownsProvider = { ARRAYSIZE(kEoB2MonsterProximityTableFMTowns), kEoB2MonsterProximityTableFMTowns };
+
+static const byte kEoB2FindBlockMonstersTableFMTowns[64] = {
+ 0x04, 0x02, 0x01, 0x03, 0x04, 0x03, 0x00, 0x02,
+ 0x04, 0x00, 0x03, 0x01, 0x04, 0x01, 0x02, 0x00,
+ 0x04, 0x01, 0x02, 0x03, 0x04, 0x00, 0x03, 0x02,
+ 0x04, 0x03, 0x00, 0x01, 0x04, 0x02, 0x01, 0x00,
+ 0x04, 0x02, 0x01, 0x03, 0x04, 0x03, 0x00, 0x02,
+ 0x04, 0x00, 0x03, 0x01, 0x04, 0x01, 0x02, 0x00,
+ 0x04, 0x01, 0x02, 0x03, 0x04, 0x00, 0x03, 0x02,
+ 0x04, 0x03, 0x00, 0x01, 0x04, 0x02, 0x01, 0x00
+};
+
+static const ByteProvider kEoB2FindBlockMonstersTableFMTownsProvider = { ARRAYSIZE(kEoB2FindBlockMonstersTableFMTowns), kEoB2FindBlockMonstersTableFMTowns };
+
+static const byte kEoB2MonsterDirChangeTableFMTowns[16] = {
+ 0xFF, 0x06, 0x02, 0xFF, 0x04, 0x05, 0x03, 0xFF,
+ 0x00, 0x07, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+};
+
+static const ByteProvider kEoB2MonsterDirChangeTableFMTownsProvider = { ARRAYSIZE(kEoB2MonsterDirChangeTableFMTowns), kEoB2MonsterDirChangeTableFMTowns };
+
+static const EoBCharacter kEoB2NpcPresetsFMTowns[6] = {
+ { 0x00, 0x01, "\x83""C""\x83\x93\x83""T""\x83\x8B",
+ 15, 15, 0, 0, 13, 13, 11, 11, 17, 17, 16, 16, 9, 9,
+ 3, 39, 10, 0, 10, 5, 5, -1, 8, { 6, 0, 0 },
+ { 0x00006ADA, 0x00000000, 0x00000000 }, 0x00000000,
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } },
+ { 0x00, 0x01, "\x83""J""\x83\x89\x83\x93\x83""h""\x83\x89",
+ 18, 18, 36, 36, 13, 13, 8, 8, 15, 15, 16, 16, 14, 14,
+ 4, 76, 10, 0, 1, 0, 2, -2, 12, { 9, 0, 0 },
+ { 0x0003DF35, 0x00000000, 0x00000000 }, 0x00000000,
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } },
+ { 0x00, 0x01, "\x83""V""\x83\x87\x81""[""\x83\x93",
+ 15, 15, 0, 0, 14, 14, 13, 13, 14, 14, 13, 13, 16, 16,
+ 40, 40, 10, 0, 6, 4, 3, -3, 100, { 8, 0, 0 },
+ { 0x00021730, 0x00000000, 0x00000000 }, 0x00000000,
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } },
+ { 0x00, 0x01, "\x83""T""\x83\x93\x83\x89\x81""[""\x83\x8B",
+ 11, 11, 0, 0, 18, 18, 13, 13, 14, 14, 16, 16, 9, 9,
+ 28, 28, 10, 0, 2, 3, 5, -4, 100, { 8, 0, 0 },
+ { 0x00017AF0, 0x00000000, 0x00000000 }, 0x096B4566,
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } },
+ { 0x00, 0x01, "\x83""^""\x83\x93\x83""O""\x83\x8D\x81""[",
+ 16, 16, 0, 0, 13, 13, 16, 16, 15, 15, 11, 11, 12, 12,
+ 53, 53, 9, 0, 4, 6, 1, -5, 100, { 7, 7, 0 },
+ { 0x00010FC2, 0x00010FC2, 0x00000000 }, 0xFFFFFFFF,
+ { 0x0004, 0x0008, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0024, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } },
+ { 0x00, 0x01, "\x83""A""\x83\x93\x83""o""\x81""[",
+ 14, 14, 0, 0, 17, 17, 12, 12, 18, 18, 9, 9, 17, 17,
+ 36, 36, 10, 0, 3, 10, 1, -6, 100, { 7, 7, 0 },
+ { 0x0000FAE6, 0x0000FAE6, 0x00000000 }, 0x00294566,
+ { 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
+ 0x0000, 0x0000, 0x0000 } }
+};
+
+static const EoBCharacterProvider kEoB2NpcPresetsFMTownsProvider = { ARRAYSIZE(kEoB2NpcPresetsFMTowns), kEoB2NpcPresetsFMTowns };
+
+static const byte kEoB2DreamStepsFMTowns[14] = {
+ 0x01, 0x02, 0x03, 0x02, 0x01, 0x00, 0x01, 0x02,
+ 0x03, 0x03, 0x02, 0x01, 0x00, 0xFF
+};
+
+static const ByteProvider kEoB2DreamStepsFMTownsProvider = { ARRAYSIZE(kEoB2DreamStepsFMTowns), kEoB2DreamStepsFMTowns };
+
+static const byte kEoB2HornSoundsFMTowns[4] = {
+ 0x40, 0x41, 0x42, 0x43
+};
+
+static const ByteProvider kEoB2HornSoundsFMTownsProvider = { ARRAYSIZE(kEoB2HornSoundsFMTowns), kEoB2HornSoundsFMTowns };
+
+static const uint16 kEoB2WallOfForceDsXFMTowns[18] = {
+ 0xFFCC, 0xFFF4, 0x001C, 0x0044, 0x006C, 0x0094, 0x00BC, 0xFFB8,
+ 0xFFF8, 0x0038, 0x0078, 0x00B8, 0xFFC8, 0x0028, 0x0088, 0x0000,
+ 0x0000, 0x0000
+};
+
+static const Uint16Provider kEoB2WallOfForceDsXFMTownsProvider = { ARRAYSIZE(kEoB2WallOfForceDsXFMTowns), kEoB2WallOfForceDsXFMTowns };
+
+static const byte kEoB2WallOfForceDsYFMTowns[3] = {
+ 0x20, 0x18, 0x10
+};
+
+static const ByteProvider kEoB2WallOfForceDsYFMTownsProvider = { ARRAYSIZE(kEoB2WallOfForceDsYFMTowns), kEoB2WallOfForceDsYFMTowns };
+
+static const byte kEoB2WallOfForceNumWFMTowns[3] = {
+ 0x01, 0x02, 0x03
+};
+
+static const ByteProvider kEoB2WallOfForceNumWFMTownsProvider = { ARRAYSIZE(kEoB2WallOfForceNumWFMTowns), kEoB2WallOfForceNumWFMTowns };
+
+static const byte kEoB2WallOfForceNumHFMTowns[3] = {
+ 0x02, 0x06, 0x09
+};
+
+static const ByteProvider kEoB2WallOfForceNumHFMTownsProvider = { ARRAYSIZE(kEoB2WallOfForceNumHFMTowns), kEoB2WallOfForceNumHFMTowns };
+
+static const byte kEoB2WallOfForceShpIdFMTowns[3] = {
+ 0x04, 0x02, 0x00
+};
+
+static const ByteProvider kEoB2WallOfForceShpIdFMTownsProvider = { ARRAYSIZE(kEoB2WallOfForceShpIdFMTowns), kEoB2WallOfForceShpIdFMTowns };
+
+static const byte kEoB2DscShapeIndexFMTowns[36] = {
+ 0x01, 0x01, 0x04, 0x0A, 0x04, 0x08, 0x04, 0x01,
+ 0x04, 0xF8, 0x04, 0xF6, 0x00, 0x00, 0x03, 0x09,
+ 0x03, 0x07, 0x03, 0x01, 0x03, 0xF9, 0x03, 0xF7,
+ 0x02, 0x06, 0x02, 0x01, 0x02, 0xFA, 0x01, 0x05,
+ 0x01, 0x01, 0x01, 0xFB
+};
+
+static const ByteProvider kEoB2DscShapeIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscShapeIndexFMTowns), kEoB2DscShapeIndexFMTowns };
+
+static const uint16 kEoB2DscXFMTowns[18] = {
+ 0xFF70, 0xFFA0, 0xFFD0, 0x0000, 0x0030, 0x0060, 0x0090, 0xFF60,
+ 0xFFB0, 0x0000, 0x0050, 0x00A0, 0xFF80, 0x0000, 0x0080, 0x0000,
+ 0x0000, 0x0000
+};
+
+static const Uint16Provider kEoB2DscXFMTownsProvider = { ARRAYSIZE(kEoB2DscXFMTowns), kEoB2DscXFMTowns };
+
+static const byte kEoB2DscTileIndexFMTowns[18] = {
+ 0x00, 0x06, 0x01, 0x05, 0x02, 0x04, 0x03, 0x07,
+ 0x0B, 0x08, 0x0A, 0x09, 0x0C, 0x0E, 0x0D, 0x0F,
+ 0x11, 0x10
+};
+
+static const ByteProvider kEoB2DscTileIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscTileIndexFMTowns), kEoB2DscTileIndexFMTowns };
+
+static const byte kEoB2DscDimData1FMTowns[324] = {
+ 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
+ 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
+ 0xD8, 0xD7, 0xD8, 0xD8, 0x02, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xFE, 0xD7, 0xD8, 0xD8, 0xD8, 0xD7, 0x03,
+ 0xD8, 0xFD, 0xD8, 0xD8, 0xD8, 0xFE, 0xD8, 0x08,
+ 0xD8, 0xD8, 0xD8, 0xFE, 0xD7, 0x06, 0xD8, 0xD8,
+ 0xFA, 0x03, 0xD8, 0xFD, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xFA, 0xD7,
+ 0x10, 0xD8, 0xFD, 0xD7, 0x13, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xF2, 0xD8, 0x14, 0xD8, 0xD8,
+ 0xD8, 0xF0, 0xD7, 0x14, 0xD8, 0xED, 0x10, 0xD8,
+ 0xD8, 0x13, 0xD8, 0xD8, 0xD8, 0xD8, 0xEC, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD7, 0x14, 0xD8, 0xED,
+ 0xD7, 0xD8, 0xD8, 0x13, 0xD7, 0xD7, 0xD7, 0xD7,
+ 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
+ 0xD7, 0xD7, 0xD7, 0xD7, 0xD8, 0xD7, 0xD7, 0xD7,
+ 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
+ 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD8, 0xD7,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0x06, 0xD8, 0xD8, 0xFA, 0x03, 0xD8, 0xFD,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xFA, 0xD8, 0x10, 0xD8, 0xFD, 0xD7,
+ 0x13, 0xFD, 0xD8, 0x13, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xF0, 0xD8, 0xD8,
+ 0xD8, 0xED, 0x10, 0xD8, 0xD8, 0x13, 0xD7, 0xD7,
+ 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
+ 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD8, 0xD7,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0x03, 0xD8, 0xFD,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xFD, 0xD8,
+ 0x13, 0xFD, 0xD8, 0x13, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xED, 0xD8, 0xD8, 0xD8, 0x13, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD8, 0xD8, 0xD8, 0xD8
+};
+
+static const ByteProvider kEoB2DscDimData1FMTownsProvider = { ARRAYSIZE(kEoB2DscDimData1FMTowns), kEoB2DscDimData1FMTowns };
+
+static const byte kEoB2DscDimData2FMTowns[648] = {
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x00, 0x16, 0x16, 0x00, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x02, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x02, 0x16, 0x00, 0x04, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x16, 0x00, 0x00, 0x03,
+ 0x00, 0x16, 0x03, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x02, 0x16, 0x00, 0x16, 0x00, 0x08,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x02,
+ 0x16, 0x00, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16,
+ 0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x00,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x08, 0x0E,
+ 0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x06, 0x10,
+ 0x00, 0x13, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x0E, 0x16,
+ 0x00, 0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x10, 0x16, 0x16, 0x00, 0x00, 0x14,
+ 0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x14, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x12, 0x16, 0x14, 0x16, 0x00, 0x16, 0x13, 0x16,
+ 0x16, 0x00, 0x00, 0x16, 0x00, 0x16, 0x00, 0x13,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x00, 0x16, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x06, 0x00, 0x16, 0x00, 0x16,
+ 0x06, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x06, 0x16, 0x00, 0x16,
+ 0x00, 0x10, 0x00, 0x16, 0x03, 0x16, 0x07, 0x0F,
+ 0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x10, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x13, 0x16, 0x00, 0x10, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x13, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00,
+ 0x16, 0x00, 0x16, 0x00, 0x00, 0x16, 0x16, 0x00,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x03, 0x00, 0x16, 0x03, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x03, 0x16, 0x00, 0x16,
+ 0x00, 0x13, 0x03, 0x16, 0x00, 0x16, 0x00, 0x13,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x13, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x13, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16,
+ 0x00, 0x16, 0x00, 0x16, 0x00, 0x16, 0x00, 0x16
+};
+
+static const ByteProvider kEoB2DscDimData2FMTownsProvider = { ARRAYSIZE(kEoB2DscDimData2FMTowns), kEoB2DscDimData2FMTowns };
+
+static const byte kEoB2DscBlockMapFMTowns[12] = {
+ 0x02, 0x03, 0x00, 0x01, 0x01, 0x02, 0x03, 0x00,
+ 0x03, 0x00, 0x01, 0x02
+};
+
+static const ByteProvider kEoB2DscBlockMapFMTownsProvider = { ARRAYSIZE(kEoB2DscBlockMapFMTowns), kEoB2DscBlockMapFMTowns };
+
+static const byte kEoB2DscDimMapFMTowns[18] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x03,
+ 0x03, 0x03
+};
+
+static const ByteProvider kEoB2DscDimMapFMTownsProvider = { ARRAYSIZE(kEoB2DscDimMapFMTowns), kEoB2DscDimMapFMTowns };
+
+static const byte kEoB2DscBlockIndexFMTowns[72] = {
+ 0x9D, 0x9E, 0x9F, 0xA0, 0xA1, 0xA2, 0xA3, 0xBE,
+ 0xBF, 0xC0, 0xC1, 0xC2, 0xDF, 0xE0, 0xE1, 0xFF,
+ 0x00, 0x01, 0xA3, 0xC3, 0xE3, 0x03, 0x23, 0x43,
+ 0x63, 0xC2, 0xE2, 0x02, 0x22, 0x42, 0xE1, 0x01,
+ 0x21, 0xE0, 0x00, 0x20, 0x63, 0x62, 0x61, 0x60,
+ 0x5F, 0x5E, 0x5D, 0x42, 0x41, 0x40, 0x3F, 0x3E,
+ 0x21, 0x20, 0x1F, 0x01, 0x00, 0xFF, 0x5D, 0x3D,
+ 0x1D, 0xFD, 0xDD, 0xBD, 0x9D, 0x3E, 0x1E, 0xFE,
+ 0xDE, 0xBE, 0x1F, 0xFF, 0xDF, 0x20, 0x00, 0xE0
+};
+
+static const ByteProvider kEoB2DscBlockIndexFMTownsProvider = { ARRAYSIZE(kEoB2DscBlockIndexFMTowns), kEoB2DscBlockIndexFMTowns };
+
+static const char *const kEoB2EnchantedStringFMTowns[1] = {
+ "+%d %s"
+};
+
+static const StringListProvider kEoB2EnchantedStringFMTownsProvider = { ARRAYSIZE(kEoB2EnchantedStringFMTowns), kEoB2EnchantedStringFMTowns };
+
+static const char *const kEoB2MenuStringsSpellNoFMTowns[3] = {
+ "6",
+ "7",
+ "8"
+};
+
+static const StringListProvider kEoB2MenuStringsSpellNoFMTownsProvider = { ARRAYSIZE(kEoB2MenuStringsSpellNoFMTowns), kEoB2MenuStringsSpellNoFMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData00FMTowns[5] = {
+ { 0x01, 0, 208, 16, 1, 1, 0, 0, 0, 0 },
+ { 0x01, 0, 208, 16, 1, 1, 0, 0, 0, 0 },
+ { 0x00, 0, 216, 51, 8, 0, 0, 0, 0, 0 },
+ { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData00FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData00FMTowns), kEoB2IntroAnimData00FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData01FMTowns[5] = {
+ { 0x01, 1, 184, 8, 1, 1, 0, 0, 0, 0 },
+ { 0x01, 1, 184, 8, 1, 1, 0, 0, 0, 0 },
+ { 0x00, 0, 216, 51, 7, 0, 0, 0, 0, 0 },
+ { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData01FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData01FMTowns), kEoB2IntroAnimData01FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData02FMTowns[5] = {
+ { 0x01, 2, 216, 51, 1, 0, 0, 0, 0, 0 },
+ { 0x01, 2, 216, 51, 1, 0, 0, 0, 0, 0 },
+ { 0x00, 0, 216, 51, 18, 0, 0, 0, 0, 0 },
+ { 0x06, 6, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData02FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData02FMTowns), kEoB2IntroAnimData02FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData03FMTowns[4] = {
+ { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 },
+ { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData03FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData03FMTowns), kEoB2IntroAnimData03FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData04FMTowns[3] = {
+ { 0x01, 0, 562, 8, 1, 0, 0, 0, 0, 0 },
+ { 0x01, 0, 562, 8, 1, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData04FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData04FMTowns), kEoB2IntroAnimData04FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData05FMTowns[4] = {
+ { 0x00, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
+ { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData05FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData05FMTowns), kEoB2IntroAnimData05FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData06FMTowns[16] = {
+ { 0x01, 12, 170, 11, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 188, 38, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 203, 63, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 218, 85, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 232, 107, 2, 0, 0, 0, 0, 0 },
+ { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x01, 3, 242, 125, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 4, 240, 125, 3, 0, 0, 0, 0, 0 },
+ { 0x01, 5, 238, 124, 3, 0, 0, 0, 0, 0 },
+ { 0x01, 6, 236, 123, 3, 0, 0, 0, 0, 0 },
+ { 0x01, 7, 232, 121, 3, 0, 0, 0, 0, 0 },
+ { 0x01, 8, 226, 120, 4, 0, 0, 0, 0, 0 },
+ { 0x01, 9, 220, 119, 4, 0, 0, 0, 0, 0 },
+ { 0x01, 10, 241, 115, 4, 0, 0, 0, 0, 0 },
+ { 0x01, 11, 241, 115, 4, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData06FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData06FMTowns), kEoB2IntroAnimData06FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData07FMTowns[5] = {
+ { 0x01, 12, 54, 17, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 80, 53, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 104, 87, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 130, 124, 2, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData07FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData07FMTowns), kEoB2IntroAnimData07FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData08FMTowns[6] = {
+ { 0x01, 12, 112, 8, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 126, 34, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 142, 60, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 12, 170, 109, 2, 0, 0, 0, 0, 0 },
+ { 0x06, 8, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData08FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData08FMTowns), kEoB2IntroAnimData08FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData09FMTowns[4] = {
+ { 0x05, 0, 184, 64, 6, 0, 30, 8, 3, 16 },
+ { 0x05, 0, 184, 64, 6, 0, 33, 8, 3, 16 },
+ { 0x05, 0, 184, 64, 6, 0, 36, 8, 3, 16 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData09FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData09FMTowns), kEoB2IntroAnimData09FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData10FMTowns[10] = {
+ { 0x05, 0, 184, 64, 0, 0, 30, 8, 3, 16 },
+ { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 },
+ { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 },
+ { 0x05, 0, 184, 64, 0, 0, 33, 8, 3, 16 },
+ { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 },
+ { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 },
+ { 0x05, 0, 184, 64, 0, 0, 36, 8, 3, 16 },
+ { 0x05, 0, 128, 88, 3, 0, 30, 32, 4, 24 },
+ { 0x05, 0, 128, 88, 3, 0, 34, 32, 4, 24 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData10FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData10FMTowns), kEoB2IntroAnimData10FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData11FMTowns[16] = {
+ { 0x03, 15, 36, 48, 1, 1, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 2, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 3, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 4, 0, 0, 0, 0 },
+ { 0x06, 11, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 5, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 6, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 90, 7, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 6, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 5, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 4, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 3, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 2, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 1, 0, 0, 0, 0 },
+ { 0x03, 15, 36, 48, 1, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData11FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData11FMTowns), kEoB2IntroAnimData11FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData12FMTowns[3] = {
+ { 0x02, 15, 36, 48, 90, 0, 0, 0, 0, 0 },
+ { 0x07, 15, 36, 48, 0, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData12FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData12FMTowns), kEoB2IntroAnimData12FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData13FMTowns[4] = {
+ { 0x06, 10, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 104, 24, 5, 0, 0, 8, 15, 112 },
+ { 0x05, 0, 104, 24, 5, 0, 15, 8, 15, 112 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData13FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData13FMTowns), kEoB2IntroAnimData13FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData14FMTowns[6] = {
+ { 0x05, 0, 184, 64, 0, 0, 30, 8, 3, 16 },
+ { 0x05, 0, 104, 72, 5, 0, 10, 120, 10, 64 },
+ { 0x05, 0, 184, 64, 0, 0, 33, 8, 3, 16 },
+ { 0x05, 0, 104, 72, 5, 0, 20, 120, 10, 64 },
+ { 0x05, 0, 184, 64, 0, 0, 36, 8, 3, 16 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData14FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData14FMTowns), kEoB2IntroAnimData14FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData15FMTowns[4] = {
+ { 0x05, 0, 104, 0, 8, 0, 0, 0, 13, 200 },
+ { 0x05, 0, 104, 0, 8, 0, 13, 0, 13, 200 },
+ { 0x05, 0, 104, 0, 8, 0, 26, 0, 13, 200 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData15FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData15FMTowns), kEoB2IntroAnimData15FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData16FMTowns[11] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 6, 112, 72, 6, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 7, 112, 72, 6, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 8, 112, 72, 6, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData16FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData16FMTowns), kEoB2IntroAnimData16FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData17FMTowns[12] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData17FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData17FMTowns), kEoB2IntroAnimData17FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData18FMTowns[8] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 6, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData18FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData18FMTowns), kEoB2IntroAnimData18FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData19FMTowns[14] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 10, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 11, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 12, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 10, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData19FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData19FMTowns), kEoB2IntroAnimData19FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData20FMTowns[14] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 11, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 10, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 13, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 12, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 11, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 13, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData20FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData20FMTowns), kEoB2IntroAnimData20FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData21FMTowns[14] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 14, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 9, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 15, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 16, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 4, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 17, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 14, 136, 40, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 224, 72, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 5, 240, 40, 3, 0, 0, 0, 0, 0 },
+ { 0x02, 17, 136, 40, 3, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData21FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData21FMTowns), kEoB2IntroAnimData21FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData22FMTowns[2] = {
+ { 0x05, 0, 104, 32, 0, 0, 10, 0, 10, 96 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData22FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData22FMTowns), kEoB2IntroAnimData22FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData23FMTowns[2] = {
+ { 0x05, 0, 104, 32, 3, 0, 20, 0, 10, 96 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData23FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData23FMTowns), kEoB2IntroAnimData23FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData24FMTowns[2] = {
+ { 0x05, 0, 104, 32, 0, 0, 30, 0, 10, 96 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData24FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData24FMTowns), kEoB2IntroAnimData24FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData25FMTowns[2] = {
+ { 0x05, 0, 104, 32, 0, 0, 0, 96, 10, 96 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData25FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData25FMTowns), kEoB2IntroAnimData25FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData26FMTowns[2] = {
+ { 0x05, 0, 104, 32, 3, 0, 10, 96, 10, 96 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData26FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData26FMTowns), kEoB2IntroAnimData26FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData27FMTowns[2] = {
+ { 0x05, 0, 104, 32, 0, 0, 20, 96, 10, 96 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData27FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData27FMTowns), kEoB2IntroAnimData27FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData28FMTowns[2] = {
+ { 0x05, 0, 104, 32, 0, 0, 0, 0, 10, 96 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData28FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData28FMTowns), kEoB2IntroAnimData28FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData29FMTowns[2] = {
+ { 0x05, 0, 104, 32, 3, 0, 0, 0, 10, 96 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData29FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData29FMTowns), kEoB2IntroAnimData29FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData30FMTowns[2] = {
+ { 0x05, 0, 104, 32, 4, 0, 10, 0, 10, 96 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData30FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData30FMTowns), kEoB2IntroAnimData30FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData31FMTowns[2] = {
+ { 0x05, 0, 104, 32, 8, 0, 20, 0, 10, 96 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData31FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData31FMTowns), kEoB2IntroAnimData31FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData32FMTowns[5] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 176, 56, 3, 0, 19, 136, 2, 8 },
+ { 0x05, 0, 176, 56, 3, 0, 21, 136, 2, 8 },
+ { 0x05, 0, 176, 56, 3, 0, 23, 136, 2, 8 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData32FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData32FMTowns), kEoB2IntroAnimData32FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData33FMTowns[14] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 176, 56, 0, 0, 19, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 5, 0, 1, 136, 6, 40 },
+ { 0x05, 0, 176, 56, 0, 0, 21, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 3, 0, 7, 136, 6, 40 },
+ { 0x05, 0, 176, 56, 2, 0, 23, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 3, 0, 13, 136, 6, 40 },
+ { 0x05, 0, 176, 56, 0, 0, 19, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 6, 0, 1, 136, 6, 40 },
+ { 0x05, 0, 176, 56, 0, 0, 21, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 3, 0, 7, 136, 6, 40 },
+ { 0x05, 0, 176, 56, 0, 0, 23, 136, 2, 8 },
+ { 0x05, 0, 144, 88, 3, 0, 1, 136, 6, 40 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData33FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData33FMTowns), kEoB2IntroAnimData33FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData34FMTowns[8] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 80, 64, 0, 0, 1, 136, 2, 16 },
+ { 0x05, 0, 248, 64, 3, 0, 7, 136, 2, 16 },
+ { 0x05, 0, 80, 64, 0, 0, 3, 136, 2, 16 },
+ { 0x05, 0, 248, 64, 3, 0, 9, 136, 2, 16 },
+ { 0x05, 0, 80, 64, 0, 0, 5, 136, 2, 16 },
+ { 0x05, 0, 248, 64, 3, 0, 11, 136, 2, 16 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData34FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData34FMTowns), kEoB2IntroAnimData34FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData35FMTowns[5] = {
+ { 0x06, 255, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 16, 48, 0, 0, 0, 152, 14, 48 },
+ { 0x05, 0, 192, 48, 4, 0, 14, 128, 13, 48 },
+ { 0x05, 0, 16, 48, 0, 0, 1, 40, 35, 48 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData35FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData35FMTowns), kEoB2IntroAnimData35FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData36FMTowns[6] = {
+ { 0x06, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 168, 24, 3, 0, 0, 128, 2, 32 },
+ { 0x05, 0, 152, 16, 3, 0, 0, 88, 5, 40 },
+ { 0x05, 0, 128, 0, 3, 0, 0, 0, 10, 88 },
+ { 0x05, 0, 104, 0, 3, 0, 13, 0, 14, 88 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData36FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData36FMTowns), kEoB2IntroAnimData36FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData37FMTowns[2] = {
+ { 0x05, 0, 104, 0, 0, 0, 13, 0, 13, 200 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData37FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData37FMTowns), kEoB2IntroAnimData37FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData38FMTowns[43] = {
+ { 0x03, 17, 36, 48, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 1, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 2, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 3, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 4, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 4, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 4, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 5, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 5, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 5, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 6, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 6, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 6, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 7, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 7, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 54, 7, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 6, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 6, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 6, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 5, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 5, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 5, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 4, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 4, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 4, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 3, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 2, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 1, 0, 0, 0, 0 },
+ { 0x03, 17, 36, 48, 0, 0, 0, 0, 0, 0 },
+ { 0x03, 16, 142, 80, 0, 0, 0, 0, 0, 0 },
+ { 0x03, 19, 151, 28, 1, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData38FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData38FMTowns), kEoB2IntroAnimData38FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData39FMTowns[7] = {
+ { 0x02, 17, 36, 48, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 16, 142, 80, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 19, 151, 28, 54, 0, 0, 0, 0, 0 },
+ { 0x07, 17, 36, 48, 0, 0, 0, 0, 0, 0 },
+ { 0x07, 16, 142, 80, 0, 0, 0, 0, 0, 0 },
+ { 0x07, 19, 151, 28, 0, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData39FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData39FMTowns), kEoB2IntroAnimData39FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData40FMTowns[32] = {
+ { 0x03, 22, 21, 32, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 1, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 1, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 2, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 4, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 3, 0, 0, 0, 0 },
+ { 0x06, 11, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 5, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 4, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 6, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 5, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 7, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 18, 6, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 7, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 90, 6, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 6, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 5, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 5, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 4, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 4, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 3, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 3, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 2, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 2, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 1, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 1, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 1, 0, 0, 0, 0 },
+ { 0x03, 22, 21, 32, 0, 0, 0, 0, 0, 0 },
+ { 0x03, 23, 67, 80, 1, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData40FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData40FMTowns), kEoB2IntroAnimData40FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData41FMTowns[5] = {
+ { 0x02, 22, 21, 32, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 23, 67, 80, 90, 0, 0, 0, 0, 0 },
+ { 0x07, 22, 21, 32, 0, 0, 0, 0, 0, 0 },
+ { 0x07, 23, 67, 80, 0, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData41FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData41FMTowns), kEoB2IntroAnimData41FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData42FMTowns[3] = {
+ { 0x06, 3, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 2, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData42FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData42FMTowns), kEoB2IntroAnimData42FMTowns };
+
+static const DarkMoonAnimCommand kEoB2IntroAnimData43FMTowns[5] = {
+ { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0x00, 0, 0, 0, 1, 3, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2IntroAnimData43FMTownsProvider = { ARRAYSIZE(kEoB2IntroAnimData43FMTowns), kEoB2IntroAnimData43FMTowns };
+
+static const DarkMoonShapeDef kEoB2IntroShapes00FMTowns[15] = {
+ { 0, 1, 137, 4, 43 },
+ { 1, 5, 137, 4, 54 },
+ { 2, 9, 140, 4, 8 },
+ { 3, 1, 181, 1, 3 },
+ { 4, 9, 154, 1, 3 },
+ { 5, 9, 158, 2, 5 },
+ { 6, 9, 164, 3, 7 },
+ { 7, 9, 172, 3, 11 },
+ { 8, 9, 184, 5, 13 },
+ { 9, 15, 137, 6, 15 },
+ { 10, 15, 153, 2, 21 },
+ { 11, 17, 153, 2, 21 },
+ { 12, 1, 185, 1, 4 },
+ { 13, 1, 190, 1, 1 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes00FMTownsProvider = { ARRAYSIZE(kEoB2IntroShapes00FMTowns), kEoB2IntroShapes00FMTowns };
+
+static const DarkMoonShapeDef kEoB2IntroShapes01FMTowns[2] = {
+ { 0, 1, 137, 1, 16 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes01FMTownsProvider = { ARRAYSIZE(kEoB2IntroShapes01FMTowns), kEoB2IntroShapes01FMTowns };
+
+static const DarkMoonShapeDef kEoB2IntroShapes04FMTowns[10] = {
+ { 15, 2, 0, 32, 16 },
+ { 16, 5, 16, 5, 8 },
+ { 17, 2, 27, 32, 18 },
+ { 18, 0, 140, 35, 10 },
+ { 19, 21, 16, 3, 8 },
+ { 20, 0, 47, 22, 10 },
+ { 21, 0, 59, 31, 10 },
+ { 22, 0, 71, 35, 39 },
+ { 23, 0, 119, 24, 15 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes04FMTownsProvider = { ARRAYSIZE(kEoB2IntroShapes04FMTowns), kEoB2IntroShapes04FMTowns };
+
+static const DarkMoonShapeDef kEoB2IntroShapes07FMTowns[18] = {
+ { -9, 1, 136, 6, 40 },
+ { -1, 7, 136, 6, 40 },
+ { -2, 13, 136, 6, 40 },
+ { 3, 19, 136, 2, 16 },
+ { 4, 21, 136, 2, 16 },
+ { 5, 23, 136, 2, 16 },
+ { 6, 19, 152, 1, 8 },
+ { 7, 20, 152, 1, 8 },
+ { 8, 21, 152, 1, 8 },
+ { -10, 25, 136, 2, 16 },
+ { -11, 27, 136, 2, 16 },
+ { -12, 29, 136, 2, 16 },
+ { -13, 31, 136, 2, 16 },
+ { -14, 25, 152, 2, 16 },
+ { -15, 27, 152, 2, 16 },
+ { -16, 29, 152, 2, 16 },
+ { -17, 31, 152, 2, 16 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2IntroShapes07FMTownsProvider = { ARRAYSIZE(kEoB2IntroShapes07FMTowns), kEoB2IntroShapes07FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData00FMTowns[11] = {
+ { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 136, 8, 8, 0, 5, 136, 11, 48 },
+ { 0x02, 1, 136, 8, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 80, 8, 0, 0, 0, 136, 5, 40 },
+ { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 232, 88, 4, 0, 0, 88, 8, 48 },
+ { 0x02, 3, 80, 8, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 232, 88, 4, 0, 8, 88, 8, 48 },
+ { 0x05, 0, 232, 88, 4, 0, 16, 88, 8, 48 },
+ { 0x02, 2, 232, 88, 4, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData00FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData00FMTowns), kEoB2FinaleAnimData00FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData01FMTowns[9] = {
+ { 0x06, 4, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 136, 8, 12, 0, 5, 136, 11, 48 },
+ { 0x02, 1, 136, 8, 0, 0, 0, 0, 0, 0 },
+ { 0x06, 5, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 232, 88, 6, 0, 0, 88, 8, 48 },
+ { 0x05, 0, 232, 88, 6, 0, 8, 88, 8, 48 },
+ { 0x05, 0, 232, 88, 6, 0, 16, 88, 8, 48 },
+ { 0x02, 2, 232, 88, 6, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData01FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData01FMTowns), kEoB2FinaleAnimData01FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData02FMTowns[4] = {
+ { 0x05, 0, 232, 112, 6, 0, 24, 176, 3, 16 },
+ { 0x05, 0, 232, 112, 6, 0, 27, 176, 3, 16 },
+ { 0x05, 0, 232, 112, 6, 0, 30, 176, 3, 16 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData02FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData02FMTowns), kEoB2FinaleAnimData02FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData03FMTowns[6] = {
+ { 0x05, 0, 80, 8, 0, 0, 0, 136, 5, 40 },
+ { 0x05, 0, 232, 112, 3, 0, 24, 176, 3, 16 },
+ { 0x02, 3, 80, 8, 3, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 232, 112, 3, 0, 27, 176, 3, 16 },
+ { 0x05, 0, 232, 112, 3, 0, 30, 176, 3, 16 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData03FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData03FMTowns), kEoB2FinaleAnimData03FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData04FMTowns[8] = {
+ { 0x06, 6, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 104, 40, 3, 0, 32, 88, 8, 88 },
+ { 0x05, 0, 104, 40, 3, 0, 32, 0, 8, 88 },
+ { 0x05, 0, 104, 40, 3, 0, 24, 0, 8, 88 },
+ { 0x05, 0, 104, 40, 3, 0, 16, 0, 8, 88 },
+ { 0x05, 0, 104, 40, 3, 0, 0, 0, 8, 88 },
+ { 0x05, 0, 104, 40, 3, 0, 24, 88, 8, 88 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData04FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData04FMTowns), kEoB2FinaleAnimData04FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData05FMTowns[7] = {
+ { 0x05, 0, 232, 112, 0, 0, 24, 176, 3, 16 },
+ { 0x05, 0, 128, 40, 4, 0, 33, 176, 2, 16 },
+ { 0x05, 0, 232, 112, 0, 0, 27, 176, 3, 16 },
+ { 0x05, 0, 128, 40, 4, 0, 35, 176, 2, 16 },
+ { 0x05, 0, 232, 112, 0, 0, 30, 176, 3, 16 },
+ { 0x05, 0, 128, 40, 4, 0, 37, 176, 2, 16 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData05FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData05FMTowns), kEoB2FinaleAnimData05FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData06FMTowns[2] = {
+ { 0x05, 0, 104, 40, 0, 0, 16, 136, 8, 48 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData06FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData06FMTowns), kEoB2FinaleAnimData06FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData07FMTowns[6] = {
+ { 0x05, 0, 208, 80, 4, 0, 0, 128, 6, 56 },
+ { 0x05, 0, 208, 80, 4, 0, 6, 128, 6, 56 },
+ { 0x05, 0, 208, 80, 4, 0, 12, 128, 6, 56 },
+ { 0x05, 0, 208, 80, 4, 0, 18, 128, 6, 56 },
+ { 0x05, 0, 208, 80, 4, 0, 24, 128, 6, 56 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData07FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData07FMTowns), kEoB2FinaleAnimData07FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData08FMTowns[3] = {
+ { 0x05, 0, 224, 56, 3, 0, 0, 184, 4, 16 },
+ { 0x05, 0, 224, 56, 0, 0, 4, 184, 4, 16 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData08FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData08FMTowns), kEoB2FinaleAnimData08FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData09FMTowns[8] = {
+ { 0x01, 1, -10, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 1, 0, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 1, 10, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 1, 20, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 1, 30, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x01, 1, 40, 40, 2, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 48, 40, 2, 0, 0, 0, 0, 0 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData09FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData09FMTowns), kEoB2FinaleAnimData09FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData10FMTowns[14] = {
+ { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 },
+ { 0x05, 1, 8, 40, 0, 0, 32, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 28, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 13, 80, 1, 16 },
+ { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 14, 80, 1, 16 },
+ { 0x06, 8, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData10FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData10FMTowns), kEoB2FinaleAnimData10FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData11FMTowns[18] = {
+ { 0x05, 1, 40, 32, 0, 0, 16, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 18, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 0, 0, 0, 152, 12, 24 },
+ { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 0, 0, 14, 80, 1, 16 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 14, 80, 1, 16 },
+ { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 },
+ { 0x05, 1, 8, 40, 0, 0, 16, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 36, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 15, 80, 1, 16 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData11FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData11FMTowns), kEoB2FinaleAnimData11FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData12FMTowns[23] = {
+ { 0x05, 1, 40, 32, 0, 0, 16, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 18, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 0, 0, 0, 152, 12, 24 },
+ { 0x05, 1, 8, 40, 0, 0, 24, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 32, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 0, 0, 14, 80, 1, 16 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 8, 40, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 24, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 12, 80, 1, 16 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 8, 40, 0, 0, 16, 80, 8, 80 },
+ { 0x05, 1, 280, 96, 0, 0, 36, 160, 4, 40 },
+ { 0x05, 1, 96, 96, 3, 0, 15, 80, 1, 16 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData12FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData12FMTowns), kEoB2FinaleAnimData12FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData13FMTowns[23] = {
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData13FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData13FMTowns), kEoB2FinaleAnimData13FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData14FMTowns[24] = {
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData14FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData14FMTowns), kEoB2FinaleAnimData14FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData15FMTowns[19] = {
+ { 0x05, 1, 40, 32, 0, 0, 0, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 0, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 80, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 168, 16, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 16, 0, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 6, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 104, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 9, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 1, 40, 32, 0, 0, 0, 40, 16, 40 },
+ { 0x05, 1, 248, 88, 0, 0, 12, 176, 6, 24 },
+ { 0x05, 1, 96, 80, 3, 0, 0, 128, 12, 24 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData15FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData15FMTowns), kEoB2FinaleAnimData15FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData16FMTowns[13] = {
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 1, 168, 16, 3, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 2, 168, 16, 3, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0x06, 15, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x02, 3, 168, 16, 3, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 168, 16, 0, 0, 32, 0, 8, 80 },
+ { 0x05, 0, 232, 16, 0, 0, 32, 80, 8, 80 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData16FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData16FMTowns), kEoB2FinaleAnimData16FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData17FMTowns[20] = {
+ { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x06, 10, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData17FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData17FMTowns), kEoB2FinaleAnimData17FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData18FMTowns[28] = {
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 3, 0, 16, 0, 16, 80 },
+ { 0x05, 0, 168, 16, 1, 0, 0, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 2, 0, 16, 80, 16, 80 },
+ { 0x05, 0, 168, 16, 0, 0, 16, 80, 16, 80 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData18FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData18FMTowns), kEoB2FinaleAnimData18FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData19FMTowns[7] = {
+ { 0x05, 0, 80, 80, 4, 0, 0, 128, 6, 56 },
+ { 0x05, 0, 80, 80, 4, 0, 6, 128, 6, 56 },
+ { 0x05, 0, 80, 80, 4, 0, 12, 128, 6, 56 },
+ { 0x05, 0, 80, 80, 4, 0, 18, 128, 6, 56 },
+ { 0x05, 0, 80, 80, 4, 0, 24, 128, 6, 56 },
+ { 0x05, 0, 80, 80, 4, 0, 30, 128, 6, 56 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData19FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData19FMTowns), kEoB2FinaleAnimData19FMTowns };
+
+static const DarkMoonAnimCommand kEoB2FinaleAnimData20FMTowns[3] = {
+ { 0x05, 0, 96, 56, 3, 0, 0, 184, 4, 16 },
+ { 0x05, 0, 96, 56, 0, 0, 4, 184, 4, 16 },
+ { 0xFF, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonAnimCommandProvider kEoB2FinaleAnimData20FMTownsProvider = { ARRAYSIZE(kEoB2FinaleAnimData20FMTowns), kEoB2FinaleAnimData20FMTowns };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes00FMTowns[4] = {
+ { -1, 16, 0, 11, 48 },
+ { -2, 28, 80, 8, 48 },
+ { -3, 9, 0, 5, 40 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes00FMTownsProvider = { ARRAYSIZE(kEoB2FinaleShapes00FMTowns), kEoB2FinaleShapes00FMTowns };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes03FMTowns[3] = {
+ { -1, 30, 0, 8, 96 },
+ { -2, 30, 104, 10, 96 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes03FMTownsProvider = { ARRAYSIZE(kEoB2FinaleShapes03FMTowns), kEoB2FinaleShapes03FMTowns };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes07FMTowns[4] = {
+ { 1, 0, 0, 16, 72 },
+ { 2, 16, 0, 16, 72 },
+ { 3, 0, 72, 16, 72 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes07FMTownsProvider = { ARRAYSIZE(kEoB2FinaleShapes07FMTowns), kEoB2FinaleShapes07FMTowns };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes09FMTowns[9] = {
+ { 0, 0, 0, 32, 16 },
+ { 2, 0, 36, 35, 41 },
+ { 3, 0, 77, 24, 17 },
+ { 4, 0, 94, 15, 33 },
+ { 5, 24, 77, 10, 17 },
+ { 6, 16, 99, 23, 69 },
+ { -10, 0, 136, 8, 64 },
+ { -11, 8, 136, 8, 64 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes09FMTownsProvider = { ARRAYSIZE(kEoB2FinaleShapes09FMTowns), kEoB2FinaleShapes09FMTowns };
+
+static const DarkMoonShapeDef kEoB2FinaleShapes10FMTowns[5] = {
+ { 1, 0, 0, 40, 30 },
+ { 15, 9, 37, 21, 48 },
+ { 16, 16, 88, 6, 56 },
+ { 17, 0, 152, 40, 48 },
+ { 0, 0, 0, 0, 0 }
+};
+
+static const DarkMoonShapeDefProvider kEoB2FinaleShapes10FMTownsProvider = { ARRAYSIZE(kEoB2FinaleShapes10FMTowns), kEoB2FinaleShapes10FMTowns };
+
+static const byte kEoB2IntroCpsDataStreet1FMTowns[15648] = {
+ 0x13, 0x3D, 0x00, 0x00, 0x2C, 0x6D, 0x6E, 0x00,
+ 0x01, 0x2E, 0x00, 0x52, 0x00, 0x72, 0x0C, 0x0C,
+ 0x62, 0x0C, 0x01, 0x01, 0x00, 0x03, 0x2F, 0x2F,
+ 0x2E, 0x00, 0xF0, 0x6D, 0x74, 0x2D, 0x00, 0x07,
+ 0x01, 0xE0, 0x00, 0x27, 0x2F, 0x00, 0xD3, 0x2C,
+ 0x2C, 0x41, 0x2B, 0x00, 0x06, 0x28, 0x28, 0x2B,
+ 0x2B, 0x2A, 0x00, 0xE0, 0x01, 0x29, 0x29, 0x2B,
+ 0x2C, 0x2B, 0x2A, 0x2A, 0x00, 0xA1, 0x84, 0x00,
+ 0xC2, 0x2B, 0x2A, 0x28, 0x28, 0x00, 0x61, 0x2B,
+ 0x2C, 0x3F, 0x29, 0x29, 0x01, 0x60, 0x00, 0x2F,
+ 0x01, 0x4F, 0x02, 0x6F, 0x03, 0x8F, 0x04, 0xAF,
+ 0x9A, 0x05, 0xC7, 0x0C, 0x2F, 0x00, 0x07, 0x0B,
+ 0x80, 0x6F, 0x00, 0x00, 0x0C, 0xCE, 0x00, 0x52,
+ 0x00, 0x36, 0x6D, 0x6C, 0x00, 0x63, 0x00, 0x05,
+ 0x0C, 0x81, 0x2A, 0x10, 0x2A, 0x2D, 0x2D, 0x0C,
+ 0x22, 0x2C, 0x2C, 0x6D, 0x6B, 0x00, 0x6A, 0x6B,
+ 0x6C, 0x6C, 0x6C, 0x6B, 0x6B, 0x6A, 0x81, 0x0C,
+ 0x62, 0x6B, 0x6B, 0x6C, 0x6D, 0x6B, 0x00, 0x00,
+ 0x0C, 0xFD, 0x13, 0xFD, 0x11, 0xF2, 0x13, 0xF5,
+ 0x08, 0x01, 0x13, 0xF1, 0x14, 0x00, 0x0C, 0x00,
+ 0x10, 0xD7, 0x13, 0xEB, 0x09, 0xD2, 0x2E, 0x15,
+ 0x02, 0x2C, 0x06, 0xC0, 0x07, 0xA1, 0x14, 0x04,
+ 0x83, 0x13, 0x50, 0x2A, 0x2B, 0x29, 0x2B, 0x29,
+ 0x14, 0x01, 0x08, 0x60, 0xC7, 0x15, 0x00, 0x14,
+ 0xD0, 0x2A, 0x2B, 0x28, 0x01, 0x30, 0x14, 0xD3,
+ 0x00, 0x1F, 0xFC, 0x01, 0x33, 0x15, 0x8F, 0x16,
+ 0xAF, 0x17, 0xCF, 0x18, 0xEF, 0x13, 0xFF, 0x2D,
+ 0x2D, 0x6A, 0x6D, 0x13, 0xFF, 0x13, 0xFE, 0x6C,
+ 0x13, 0xFA, 0x2B, 0x13, 0xA1, 0x6B, 0x52, 0x6A,
+ 0x14, 0x30, 0x6A, 0x21, 0x20, 0x2A, 0x2C, 0x00,
+ 0xC0, 0x6B, 0xBF, 0x13, 0xFE, 0x2D, 0x13, 0xFF,
+ 0x13, 0xF7, 0x27, 0xF0, 0x28, 0xD0, 0x13, 0x80,
+ 0x29, 0x40, 0xBE, 0x13, 0xF2, 0x2C, 0x28, 0xE1,
+ 0x13, 0xFA, 0x28, 0x05, 0x12, 0x63, 0x27, 0x60,
+ 0x28, 0xFF, 0x14, 0x01, 0x06, 0xF1, 0x14, 0x01,
+ 0x27, 0xF1, 0x15, 0x82, 0x28, 0x03, 0x14, 0x01,
+ 0x29, 0x80, 0xFF, 0x02, 0x20, 0x28, 0xB0, 0x14,
+ 0x6F, 0x15, 0x8F, 0x15, 0x3F, 0x2B, 0xBF, 0x2C,
+ 0xDF, 0x27, 0xFF, 0xFE, 0x0B, 0x90, 0x13, 0xFF,
+ 0x27, 0xFF, 0x1E, 0xB3, 0x36, 0xD0, 0x33, 0xB1,
+ 0x13, 0xF0, 0x6B, 0xCB, 0x14, 0x01, 0x00, 0x40,
+ 0x6A, 0x2C, 0x35, 0x20, 0x2A, 0x00, 0x91, 0x13,
+ 0xFF, 0x79, 0x2E, 0x3B, 0xB1, 0x27, 0xFF, 0x28,
+ 0x06, 0x29, 0x20, 0x6D, 0x6D, 0x3B, 0x52, 0xEF,
+ 0x13, 0xF7, 0x31, 0x82, 0x28, 0x11, 0x0C, 0x27,
+ 0xF3, 0x3C, 0x14, 0x27, 0x42, 0x14, 0x11, 0xDE,
+ 0x27, 0xF0, 0x14, 0x01, 0x29, 0x3D, 0x80, 0x30,
+ 0x82, 0x3D, 0x00, 0x28, 0x02, 0x28, 0xFF, 0x16,
+ 0x12, 0x14, 0x03, 0x14, 0x1F, 0x29, 0x7F, 0x2A,
+ 0x91, 0x2D, 0x90, 0x29, 0x9F, 0x40, 0x1F, 0xC7,
+ 0x41, 0x3F, 0x13, 0xFA, 0x2C, 0x2C, 0x6B, 0x3B,
+ 0xFF, 0x3B, 0xFF, 0x3B, 0xF1, 0x4D, 0x28, 0x13,
+ 0xF4, 0x2B, 0x2C, 0x3B, 0xA0, 0x14, 0x02, 0x6D,
+ 0x27, 0xF1, 0xFB, 0x3B, 0xF1, 0x27, 0xFF, 0x13,
+ 0xF1, 0x4F, 0xC0, 0x3B, 0xFC, 0x6D, 0x13, 0xFE,
+ 0x4F, 0x75, 0xBE, 0x50, 0xE1, 0x2F, 0x45, 0x82,
+ 0x00, 0xF4, 0x51, 0x04, 0x13, 0xF3, 0x28, 0x01,
+ 0x2A, 0x7E, 0x29, 0x4E, 0x91, 0x3C, 0x31, 0x0F,
+ 0xC2, 0x28, 0x12, 0x1B, 0xE0, 0x01, 0x60, 0x2B,
+ 0xC7, 0x29, 0xB0, 0x50, 0x11, 0x29, 0x29, 0x27,
+ 0x00, 0x00, 0x14, 0x3F, 0x3C, 0xEF, 0x47, 0x2A,
+ 0x47, 0xD0, 0x6C, 0x29, 0x0C, 0x3F, 0x0F, 0x3E,
+ 0xC3, 0x3F, 0xBF, 0xD7, 0x4F, 0xEF, 0x13, 0xF5,
+ 0x6C, 0x13, 0xF7, 0x6E, 0x00, 0x22, 0x00, 0x71,
+ 0x3B, 0xFF, 0xF1, 0x27, 0xF3, 0x5F, 0xD4, 0x00,
+ 0x69, 0x5B, 0x80, 0x6B, 0x6D, 0x6D, 0x3B, 0xFF,
+ 0xFF, 0x02, 0xB2, 0x13, 0xFF, 0x27, 0xF7, 0x13,
+ 0x30, 0x13, 0xF1, 0x63, 0x80, 0x1C, 0x40, 0x4F,
+ 0x87, 0xFF, 0x59, 0xB4, 0x13, 0xF5, 0x14, 0x02,
+ 0x62, 0xE0, 0x14, 0x06, 0x63, 0x91, 0x3C, 0xF0,
+ 0x14, 0x02, 0xEF, 0x13, 0xF3, 0x51, 0x32, 0x14,
+ 0x03, 0x2B, 0x14, 0x01, 0x00, 0x32, 0x28, 0x92,
+ 0x3C, 0xD7, 0xDF, 0x13, 0x13, 0x00, 0x3A, 0x29,
+ 0x13, 0xF7, 0x14, 0x8F, 0x54, 0xAF, 0x54, 0x97,
+ 0x13, 0xFF, 0xCF, 0x63, 0xF7, 0x14, 0x22, 0x6E,
+ 0x6E, 0x63, 0xF0, 0x14, 0x91, 0x63, 0xF5, 0x70,
+ 0x82, 0xEC, 0x3B, 0xF1, 0x47, 0x70, 0x6E, 0x31,
+ 0x6A, 0x00, 0x06, 0x3C, 0xD1, 0x2C, 0x6D, 0xFB,
+ 0x63, 0xE0, 0x4F, 0xFF, 0x76, 0x93, 0x27, 0xFF,
+ 0x3B, 0xF7, 0x6D, 0x63, 0xA2, 0x63, 0xE0, 0xBF,
+ 0x13, 0xE0, 0x2E, 0x13, 0xDA, 0x13, 0xF8, 0x28,
+ 0x11, 0x27, 0x31, 0x28, 0x02, 0x3A, 0x91, 0xFE,
+ 0x3C, 0x12, 0x57, 0x50, 0x64, 0x22, 0x64, 0x32,
+ 0x3C, 0x51, 0x28, 0x12, 0x52, 0x70, 0x26, 0xEF,
+ 0x14, 0x15, 0x63, 0x53, 0x13, 0x58, 0x6D, 0x00,
+ 0x31, 0x00, 0x46, 0x13, 0xD0, 0x81, 0x00, 0xFF,
+ 0x13, 0xFF, 0x68, 0x3F, 0x69, 0x5E, 0x27, 0xFC,
+ 0x12, 0xA2, 0x27, 0xF5, 0x28, 0x52, 0x13, 0xF2,
+ 0xF0, 0x77, 0xF9, 0x13, 0xF3, 0x3B, 0xF0, 0x3B,
+ 0xC1, 0x2B, 0x2C, 0x2A, 0x6C, 0x47, 0x6A, 0x77,
+ 0x20, 0x6C, 0x6B, 0x6D, 0x63, 0xF1, 0x86, 0x20,
+ 0x50, 0x40, 0x7B, 0x6C, 0x63, 0xFF, 0x8A, 0x94,
+ 0x3B, 0xFF, 0x77, 0xF4, 0x2E, 0x8C, 0x14, 0x13,
+ 0xFF, 0xFF, 0x13, 0xFB, 0x78, 0x40, 0x13, 0xF4,
+ 0x3A, 0x71, 0x50, 0x32, 0x27, 0x42, 0x14, 0x10,
+ 0x8D, 0x10, 0xFF, 0x50, 0x30, 0x13, 0xF2, 0x3E,
+ 0x32, 0x78, 0xF0, 0x81, 0x71, 0x00, 0x2F, 0x13,
+ 0x71, 0x00, 0x21, 0xBF, 0x13, 0xEC, 0x0C, 0x2A,
+ 0x53, 0x14, 0x87, 0x7C, 0x1F, 0x7D, 0x3F, 0x13,
+ 0xF9, 0x6F, 0x80, 0x7F, 0x6B, 0x13, 0xF8, 0x14,
+ 0x03, 0x3B, 0xF4, 0x3C, 0xD0, 0x27, 0xF6, 0x3B,
+ 0xF5, 0x98, 0xE4, 0x7F, 0x6A, 0x64, 0x01, 0x64,
+ 0x40, 0x77, 0xF4, 0x29, 0x60, 0x77, 0xFF, 0x3E,
+ 0xB6, 0x4F, 0xFF, 0xBF, 0x13, 0xF5, 0x6E, 0x91,
+ 0xF0, 0x27, 0xF4, 0x77, 0xF0, 0x27, 0xFF, 0x13,
+ 0xF8, 0x8B, 0x62, 0xFE, 0x26, 0x63, 0x64, 0x40,
+ 0x00, 0xB1, 0x13, 0xF0, 0x4F, 0xD1, 0x1C, 0xD0,
+ 0x14, 0x09, 0x29, 0x7F, 0x2B, 0x14, 0x04, 0x83,
+ 0x63, 0x27, 0x18, 0x13, 0xE2, 0x32, 0x90, 0x84,
+ 0xE2, 0x13, 0xE4, 0xFF, 0x13, 0xF7, 0x3E, 0xE4,
+ 0x00, 0x6F, 0x01, 0x87, 0x27, 0xFF, 0x9F, 0xC0,
+ 0x13, 0xF0, 0x63, 0xFE, 0xFF, 0x13, 0x81, 0x13,
+ 0xFC, 0x77, 0xF5, 0x8A, 0xE2, 0x13, 0xF6, 0x8B,
+ 0xF2, 0x51, 0x25, 0x77, 0xFF, 0xEF, 0x52, 0xC6,
+ 0x63, 0xFF, 0x13, 0xF5, 0x2D, 0xA0, 0x01, 0xB2,
+ 0x82, 0x4F, 0xDB, 0x27, 0xFA, 0xFF, 0x28, 0x03,
+ 0xB3, 0x80, 0x8B, 0xB1, 0x14, 0x01, 0x9E, 0x81,
+ 0x3C, 0x62, 0x8C, 0xF2, 0x28, 0x06, 0x8F, 0x8C,
+ 0xB2, 0x29, 0x29, 0x69, 0x13, 0xDA, 0x13, 0x64,
+ 0x3B, 0xE1, 0xAC, 0xD6, 0xFF, 0x63, 0x70, 0xBA,
+ 0xD4, 0x27, 0xE5, 0x14, 0x0F, 0x15, 0x0F, 0x16,
+ 0x26, 0x13, 0xFB, 0x63, 0xF0, 0xFF, 0x3B, 0xF5,
+ 0x64, 0x17, 0x3B, 0xFF, 0x27, 0xF4, 0x26, 0xB0,
+ 0xB3, 0x01, 0x28, 0x00, 0x77, 0xF5, 0xFF, 0xC4,
+ 0x21, 0xA1, 0x31, 0xB3, 0xFE, 0x66, 0xB8, 0x3B,
+ 0xFF, 0x27, 0xF3, 0x8B, 0xD4, 0x78, 0x03, 0xFF,
+ 0x4F, 0xFF, 0x50, 0x16, 0x9E, 0x93, 0xC6, 0xC1,
+ 0x78, 0x31, 0xB4, 0x81, 0xB3, 0x71, 0x50, 0xE3,
+ 0xFF, 0xC8, 0xD1, 0x50, 0x12, 0x8D, 0x82, 0xB5,
+ 0x11, 0x3A, 0xE4, 0xAB, 0xC7, 0x3B, 0x93, 0x29,
+ 0x03, 0xAF, 0x5A, 0xB0, 0x2D, 0x13, 0xE6, 0x0C,
+ 0xA3, 0x11, 0x14, 0xA9, 0x28, 0x6F, 0x29, 0x8F,
+ 0xFE, 0x9F, 0xDA, 0x27, 0xF2, 0x13, 0xF7, 0x50,
+ 0x44, 0x4F, 0xFF, 0x8B, 0xF4, 0xC0, 0xF2, 0x2C,
+ 0x3B, 0x2C, 0x6A, 0x50, 0x00, 0xB3, 0xD1, 0x27,
+ 0xF8, 0x2D, 0xC7, 0xFF, 0xDA, 0xB5, 0xF3, 0x64,
+ 0x73, 0x4F, 0xFC, 0xDA, 0xE9, 0x94, 0x40, 0x2C,
+ 0x2C, 0x13, 0xFC, 0xDC, 0xFA, 0xFF, 0xA0, 0x54,
+ 0x62, 0x12, 0x9E, 0xD1, 0xA0, 0xD2, 0xC5, 0x61,
+ 0xDD, 0x54, 0x79, 0x42, 0x29, 0xE2, 0xFF, 0xC9,
+ 0x22, 0x4F, 0x15, 0x27, 0xE5, 0x27, 0xC5, 0x3D,
+ 0x43, 0x76, 0xF1, 0xE2, 0xC6, 0x4F, 0xF4, 0xFF,
+ 0x3B, 0xEF, 0x3D, 0x0F, 0x27, 0xEF, 0x3B, 0xF1,
+ 0xD8, 0x40, 0xDB, 0xFB, 0x13, 0xF6, 0x50, 0xD0,
+ 0xFF, 0x4F, 0xFB, 0xDB, 0xF0, 0xE8, 0xF3, 0xDB,
+ 0xF0, 0x3C, 0x04, 0xB3, 0xF1, 0xB4, 0xF0, 0xEC,
+ 0x61, 0xF9, 0xDB, 0xFF, 0x14, 0x0A, 0x9F, 0xF4,
+ 0x29, 0x54, 0xDA, 0x12, 0x6E, 0x2E, 0xCF, 0xC0,
+ 0xFF, 0xF0, 0x12, 0x13, 0xF2, 0xB3, 0x62, 0x00,
+ 0x0F, 0xF0, 0x88, 0x3C, 0x01, 0xA0, 0x50, 0xC6,
+ 0xF1, 0xDF, 0xA0, 0x41, 0x4F, 0x82, 0x2A, 0x8D,
+ 0x10, 0xF0, 0x20, 0xC8, 0xC1, 0x3D, 0xF1, 0xCA,
+ 0xB3, 0xFF, 0x63, 0x47, 0x77, 0x13, 0x3B, 0xA5,
+ 0x77, 0xF0, 0x9F, 0x30, 0xF6, 0xA9, 0x13, 0xFF,
+ 0x50, 0x9F, 0xCF, 0x3B, 0xEF, 0x4F, 0xE7, 0x2D,
+ 0x6C, 0xB3, 0xF0, 0x77, 0xF4, 0x77, 0xE5, 0x13,
+ 0xF5, 0xCF, 0x63, 0xFC, 0x07, 0x80, 0x2D, 0x2C,
+ 0xC8, 0x01, 0xB7, 0x20, 0xF0, 0x00, 0x09, 0x72,
+ 0xFD, 0x4F, 0xFF, 0xEF, 0xFB, 0xA2, 0xF7, 0xB1,
+ 0x63, 0x13, 0xFD, 0x64, 0x01, 0x2C, 0xCD, 0x51,
+ 0xFF, 0xDB, 0xF9, 0x14, 0x4F, 0xF0, 0x80, 0x36,
+ 0xD2, 0xDA, 0xC1, 0x26, 0xC1, 0x3C, 0x13, 0xEF,
+ 0xB0, 0xFF, 0xB0, 0xA0, 0xEF, 0xC0, 0x64, 0x11,
+ 0xFA, 0x10, 0x8C, 0x71, 0x14, 0x07, 0x13, 0x84,
+ 0x64, 0xB4, 0xFF, 0x78, 0x24, 0xB3, 0x11, 0x1E,
+ 0xD0, 0xF6, 0xC7, 0x40, 0xE2, 0x63, 0xEF, 0x64,
+ 0xEF, 0x66, 0x05, 0x23, 0x27, 0x27, 0x63, 0xEA,
+ 0x6C, 0x6C, 0x2B, 0xC7, 0xF6, 0x77, 0xD4, 0xFE,
+ 0xEF, 0x82, 0x63, 0xFF, 0xC0, 0x00, 0x22, 0x81,
+ 0xFC, 0xA1, 0xEF, 0x00, 0xA0, 0x10, 0x6D, 0xCF,
+ 0x14, 0x20, 0xDB, 0xF0, 0x2D, 0x2B, 0xB4, 0x42,
+ 0x4F, 0xFF, 0xC7, 0x73, 0x3D, 0x90, 0xE7, 0x26,
+ 0x22, 0xC5, 0x83, 0x27, 0xFA, 0x2E, 0x2E, 0x27,
+ 0xD3, 0x13, 0xFF, 0x28, 0x6F, 0xFF, 0xF2, 0x61,
+ 0x0E, 0xD0, 0xC6, 0x51, 0x14, 0x02, 0xC4, 0x30,
+ 0x14, 0x02, 0x28, 0xE2, 0x50, 0xB1, 0xFB, 0xF2,
+ 0x71, 0x01, 0x02, 0x28, 0x15, 0x9E, 0xE8, 0x50,
+ 0xE6, 0x69, 0x67, 0xB0, 0xE0, 0xF0, 0xFD, 0x28,
+ 0x0C, 0x77, 0xEF, 0x78, 0xDF, 0x79, 0xFF, 0x14,
+ 0x90, 0x3B, 0xE1, 0x6D, 0x13, 0xF7, 0xFC, 0xB3,
+ 0x70, 0xB3, 0xB1, 0x13, 0xF5, 0x9F, 0xFF, 0x8B,
+ 0xF1, 0xFB, 0x70, 0x2D, 0x2B, 0x7B, 0x6D, 0x28,
+ 0x00, 0xA8, 0xF2, 0x63, 0xF1, 0x4F, 0xE3, 0x2C,
+ 0x13, 0xFF, 0xDB, 0xA1, 0xFF, 0x3A, 0x02, 0x9F,
+ 0x15, 0xEE, 0xF0, 0x65, 0x53, 0xC6, 0x13, 0xDD,
+ 0xE1, 0xCD, 0x07, 0x3B, 0xAB, 0x3F, 0x2F, 0x2E,
+ 0xC9, 0x23, 0x52, 0x37, 0x7A, 0x83, 0xAF, 0x61,
+ 0x9E, 0xC4, 0xED, 0x02, 0xFF, 0xF0, 0xC1, 0x50,
+ 0xF2, 0x50, 0x74, 0xDD, 0xF2, 0xF0, 0xC0, 0x78,
+ 0x41, 0x77, 0x06, 0x63, 0xA4, 0xE3, 0x13, 0xD0,
+ 0x13, 0xE2, 0x13, 0xF7, 0x48, 0x48, 0x0C, 0xDE,
+ 0xF0, 0x8B, 0xDF, 0xFF, 0x8C, 0xDF, 0x8D, 0xFF,
+ 0xF6, 0xA0, 0x47, 0xE0, 0x13, 0xFA, 0x63, 0xE6,
+ 0x77, 0xFE, 0x4F, 0xF5, 0xB0, 0x4F, 0xD2, 0x2D,
+ 0x4F, 0xF3, 0xBD, 0x00, 0x6B, 0x6A, 0x2D, 0x2A,
+ 0xF3, 0x27, 0xE1, 0xDC, 0x50, 0x13, 0xFF, 0xEF,
+ 0x91, 0x6D, 0x2D, 0x00, 0x31, 0x13, 0x26, 0xFF,
+ 0x3A, 0xF0, 0x13, 0xFA, 0x9F, 0xE1, 0xC4, 0x31,
+ 0xC7, 0xF1, 0xC7, 0xEB, 0x13, 0xF0, 0x00, 0x03,
+ 0xFF, 0x13, 0xEB, 0xC3, 0x10, 0xC3, 0x52, 0xF7,
+ 0x61, 0x9F, 0x81, 0x14, 0x05, 0xF9, 0xC0, 0x50,
+ 0x20, 0xDF, 0x8D, 0xD2, 0x50, 0x02, 0x2A, 0x8C,
+ 0x51, 0x27, 0x88, 0xC7, 0xB1, 0x27, 0xC0, 0x2B,
+ 0xE2, 0xC3, 0x27, 0xF0, 0xF7, 0x45, 0x48, 0x47,
+ 0x0C, 0x2A, 0x39, 0x00, 0x14, 0x40, 0xF7, 0x00,
+ 0x1F, 0xE0, 0x26, 0xA1, 0xAF, 0x13, 0xF9, 0x2D,
+ 0x3B, 0xF5, 0xE1, 0xFC, 0xC7, 0xFF, 0xFF, 0x13,
+ 0xF3, 0xFC, 0xF2, 0xEE, 0xE0, 0x28, 0x21, 0x9F,
+ 0xF2, 0xF1, 0x34, 0x27, 0xFF, 0x3B, 0xF3, 0xE9,
+ 0x50, 0x55, 0xBA, 0xE4, 0x27, 0xFB, 0x2C, 0xB3,
+ 0xF0, 0x2B, 0x0C, 0x69, 0x11, 0xFA, 0x77, 0xED,
+ 0x13, 0xF6, 0x14, 0x33, 0x13, 0xE6, 0xF4, 0x50,
+ 0x47, 0x4B, 0x72, 0x2A, 0x7F, 0x0C, 0x8B, 0x81,
+ 0x9F, 0x22, 0x28, 0xB2, 0x65, 0x41, 0xA1, 0xE3,
+ 0xA2, 0x80, 0xF2, 0xB1, 0xC7, 0xB4, 0x76, 0x9F,
+ 0xF4, 0x29, 0x28, 0x27, 0xF2, 0x21, 0x47, 0xF1,
+ 0x50, 0x05, 0x7F, 0x48, 0x13, 0xF0, 0x28, 0x00,
+ 0x13, 0xFF, 0x13, 0xEF, 0x4F, 0x92, 0x27, 0xFE,
+ 0xE0, 0xE0, 0xFF, 0x78, 0x00, 0xB3, 0x97, 0x00,
+ 0x9D, 0xB3, 0xFF, 0x0E, 0xA1, 0x9F, 0xF0, 0x27,
+ 0xA0, 0xDC, 0x30, 0x27, 0x6C, 0x6D, 0x27, 0xF1,
+ 0x2B, 0x2E, 0x50, 0x21, 0x9F, 0xFF, 0x13, 0xF7,
+ 0xFF, 0xEF, 0x41, 0xBA, 0xF5, 0x3B, 0xE6, 0xC7,
+ 0xF4, 0xF0, 0x30, 0xB3, 0xE1, 0x8B, 0xE5, 0xA0,
+ 0x56, 0xF7, 0x8D, 0x32, 0x14, 0x36, 0x3B, 0xD2,
+ 0x66, 0x25, 0x47, 0x00, 0x00, 0xA1, 0x65, 0x1D,
+ 0x83, 0xBF, 0xA1, 0xC2, 0x28, 0xDC, 0xB0, 0xF1,
+ 0x70, 0x50, 0xD2, 0x65, 0xA1, 0xDC, 0x93, 0xC8,
+ 0x74, 0x3F, 0x29, 0x29, 0xF1, 0x10, 0x02, 0xA3,
+ 0x27, 0xF8, 0xF6, 0x21, 0x27, 0xFF, 0x27, 0x8F,
+ 0xC7, 0x64, 0x1B, 0x4F, 0xF7, 0x6D, 0x6D, 0x2C,
+ 0xB3, 0xF1, 0x14, 0x0F, 0x13, 0xFF, 0xC7, 0x8B,
+ 0xF3, 0x4F, 0xD2, 0x2C, 0x2B, 0x6A, 0xF1, 0x80,
+ 0x14, 0x01, 0x3B, 0xF1, 0xFF, 0x79, 0x42, 0x51,
+ 0x30, 0xB3, 0xFD, 0x4C, 0x74, 0x4C, 0xE4, 0xCE,
+ 0xF6, 0x13, 0xF9, 0x8B, 0xF0, 0xFF, 0x64, 0x20,
+ 0xAC, 0x50, 0xEE, 0x30, 0x3B, 0xFD, 0x13, 0xFA,
+ 0x8E, 0x23, 0x52, 0x39, 0x14, 0x31, 0xFF, 0x14,
+ 0x43, 0xA9, 0x10, 0xC9, 0xD3, 0xF1, 0x91, 0x65,
+ 0xB4, 0xD6, 0xB3, 0xF0, 0xA1, 0xDC, 0x54, 0xFD,
+ 0x13, 0xD1, 0xAB, 0x91, 0xE0, 0x80, 0x5C, 0x01,
+ 0xBB, 0x24, 0x27, 0xF0, 0x46, 0x27, 0xFF, 0xE4,
+ 0x3C, 0x3F, 0x77, 0x95, 0x3D, 0x6B, 0x27, 0x27,
+ 0xED, 0xE0, 0x2C, 0x6C, 0xDF, 0x27, 0xFF, 0x27,
+ 0xFF, 0x0C, 0xB2, 0x45, 0xEE, 0x90, 0xC6, 0xB1,
+ 0x13, 0x90, 0x9F, 0xB0, 0xEF, 0xB4, 0x41, 0xD5,
+ 0x92, 0xF1, 0x51, 0x6B, 0x13, 0xFF, 0x13, 0xF9,
+ 0xF7, 0x33, 0x27, 0xFD, 0xFE, 0xEE, 0x34, 0xF3,
+ 0xF0, 0xDB, 0xED, 0x27, 0xFA, 0xA2, 0x15, 0x7C,
+ 0xC2, 0x78, 0xE8, 0x47, 0x2F, 0x47, 0x45, 0x00,
+ 0x10, 0x47, 0xF0, 0x70, 0xF9, 0x90, 0x64, 0xE3,
+ 0x28, 0x01, 0xD8, 0xDD, 0xF0, 0x79, 0xF2, 0x28,
+ 0x5A, 0x31, 0xF0, 0x41, 0x0C, 0x29, 0x25, 0x47,
+ 0x28, 0xBF, 0x70, 0x3B, 0x3B, 0x3F, 0x14, 0x22,
+ 0x13, 0xF9, 0x8C, 0x10, 0xFF, 0x4F, 0xFF, 0x50,
+ 0xEF, 0x52, 0x0F, 0x53, 0x21, 0x97, 0xC1, 0x4E,
+ 0xA5, 0x3C, 0x4F, 0x63, 0xF9, 0xA3, 0xC7, 0x61,
+ 0x2B, 0xEF, 0xF0, 0x2D, 0x2B, 0x2D, 0xE8, 0xA1,
+ 0xB3, 0x91, 0xB7, 0xA0, 0x31, 0x6A, 0xB3, 0xF1,
+ 0x00, 0xE2, 0x6B, 0x13, 0xFF, 0x13, 0xFB, 0xED,
+ 0xF2, 0x9F, 0x13, 0xFE, 0x6E, 0x6C, 0xC7, 0xB0,
+ 0x3B, 0xE1, 0xEF, 0xF6, 0xDC, 0x65, 0x3B, 0xF8,
+ 0xF3, 0xB6, 0x04, 0x13, 0xF4, 0xB7, 0x02, 0x51,
+ 0x09, 0x47, 0x45, 0xE0, 0x42, 0x4F, 0x61, 0xED,
+ 0x79, 0x61, 0x3C, 0x12, 0x28, 0x12, 0x28, 0x14,
+ 0x01, 0x27, 0xC2, 0x25, 0x27, 0xC2, 0x0F, 0x3B,
+ 0x3B, 0x3B, 0x2C, 0x14, 0x21, 0xA0, 0x09, 0x28,
+ 0x01, 0x63, 0xFF, 0xFF, 0x64, 0xFF, 0x66, 0x1F,
+ 0x13, 0xF2, 0x13, 0xE1, 0x6F, 0x8C, 0xF1, 0xC6,
+ 0xC2, 0xE2, 0x27, 0xFA, 0xFE, 0xEE, 0x82, 0xE7,
+ 0x01, 0x63, 0x90, 0xF9, 0xF1, 0xC7, 0xF0, 0x58,
+ 0xF2, 0xC8, 0xC1, 0x6D, 0xF7, 0x3B, 0xFF, 0x13,
+ 0xFC, 0xF7, 0x60, 0x4F, 0xFE, 0x2E, 0xE8, 0xD0,
+ 0x13, 0xF0, 0xF3, 0xF0, 0x7F, 0x2E, 0x13, 0xFE,
+ 0xCE, 0x92, 0x13, 0xE8, 0x27, 0xF1, 0xA2, 0xF4,
+ 0x14, 0x33, 0x65, 0x17, 0x1F, 0x45, 0x45, 0x45,
+ 0x65, 0x50, 0xD1, 0xB2, 0xA2, 0x11, 0x00, 0x32,
+ 0x8D, 0x60, 0xC2, 0x14, 0x02, 0x13, 0xD0, 0x28,
+ 0x29, 0x2F, 0x2F, 0xE7, 0x72, 0x3F, 0xD2, 0x28,
+ 0x30, 0x14, 0x20, 0x44, 0x54, 0x96, 0x48, 0x47,
+ 0x3C, 0x10, 0x0C, 0x0F, 0x0C, 0x26, 0x26, 0x26,
+ 0x78, 0x2F, 0x79, 0x4F, 0x27, 0xFF, 0xF5, 0xA0,
+ 0xFF, 0xAD, 0x91, 0xAD, 0xC2, 0x13, 0xFF, 0x13,
+ 0xF7, 0xFC, 0x20, 0xDB, 0xE1, 0x62, 0xD1, 0x3A,
+ 0xC2, 0xFE, 0xFA, 0x11, 0x78, 0x30, 0xEF, 0xF1,
+ 0xA0, 0xE0, 0x78, 0x80, 0x27, 0xFF, 0x13, 0xFF,
+ 0x0C, 0xFF, 0x63, 0xFF, 0x13, 0xF3, 0x52, 0x28,
+ 0x63, 0xF8, 0x86, 0xB3, 0x13, 0xE7, 0x3B, 0xF2,
+ 0x64, 0xC4, 0xFC, 0x14, 0x3E, 0x65, 0x10, 0xF3,
+ 0x12, 0x14, 0x06, 0x13, 0xE2, 0xA1, 0xB0, 0x25,
+ 0x25, 0xBB, 0xFF, 0x60, 0x2B, 0x13, 0xF2, 0x3B,
+ 0xE2, 0x00, 0x61, 0x3F, 0xA6, 0xD3, 0x9F, 0xD0,
+ 0xFF, 0xF8, 0x53, 0x13, 0xE1, 0x14, 0x20, 0x00,
+ 0x25, 0x8C, 0xD4, 0x00, 0xB9, 0x8E, 0x0D, 0x16,
+ 0xF2, 0x7F, 0x0C, 0x9F, 0xE0, 0x27, 0xE8, 0x5E,
+ 0x67, 0x27, 0xFF, 0x13, 0xF5, 0xF0, 0x11, 0x77,
+ 0xF1, 0x7F, 0x6C, 0x8C, 0x10, 0x4F, 0xF0, 0x13,
+ 0xF6, 0x3B, 0xFF, 0xC7, 0xF6, 0x8C, 0x64, 0xEF,
+ 0xE3, 0xFF, 0xB4, 0xB8, 0xB3, 0xF1, 0xD4, 0x56,
+ 0x7C, 0x40, 0xB5, 0x34, 0x77, 0xF7, 0xEE, 0x91,
+ 0x5E, 0xC3, 0xF5, 0x28, 0x84, 0x13, 0xF5, 0x14,
+ 0x09, 0x8D, 0x87, 0x2D, 0x24, 0xA0, 0x46, 0x79,
+ 0x81, 0xF1, 0xDD, 0x60, 0x8C, 0x22, 0x13, 0xE1,
+ 0x79, 0x61, 0x27, 0x28, 0x27, 0x13, 0xF4, 0xAF,
+ 0x3B, 0xF1, 0x3B, 0xF6, 0xB0, 0x44, 0xBA, 0xD6,
+ 0x8C, 0x10, 0x7C, 0xB0, 0x11, 0xBD, 0xFE, 0x14,
+ 0x87, 0x15, 0x4D, 0x16, 0x2A, 0x13, 0xF2, 0x3B,
+ 0x2D, 0x3B, 0xFF, 0x27, 0xF2, 0x0C, 0x3C, 0x2C,
+ 0x2A, 0x84, 0x41, 0xC2, 0xF8, 0xED, 0xA5, 0xC9,
+ 0x30, 0x6D, 0x6A, 0xFF, 0x14, 0xF0, 0xDB, 0xFF,
+ 0x8B, 0xF7, 0x13, 0xF6, 0xB4, 0xB7, 0x00, 0xF4,
+ 0x63, 0xB0, 0x3C, 0x00, 0xFF, 0x3B, 0xF1, 0x13,
+ 0xFE, 0x74, 0x41, 0x7F, 0x32, 0x6A, 0x14, 0x27,
+ 0xFA, 0x28, 0x69, 0xE2, 0x35, 0xFE, 0xA1, 0xD5,
+ 0xCA, 0x21, 0x3C, 0x12, 0xE7, 0x31, 0x8B, 0x80,
+ 0x13, 0xF1, 0x90, 0xE5, 0x3F, 0xE8, 0x50, 0x21,
+ 0x27, 0xF0, 0xF6, 0xE4, 0x48, 0x00, 0x01, 0x0C,
+ 0x27, 0x67, 0x0F, 0x6A, 0x67, 0x67, 0x67, 0xB4,
+ 0x90, 0x14, 0x7F, 0x00, 0x4F, 0x2A, 0x87, 0xF9,
+ 0x13, 0xFF, 0x28, 0x5A, 0x13, 0xFD, 0xEA, 0x82,
+ 0x80, 0x01, 0x2A, 0x2A, 0xEF, 0xD0, 0xCB, 0x00,
+ 0x24, 0xD2, 0xD0, 0x2C, 0x2D, 0x78, 0xD1, 0x6C,
+ 0xEF, 0xFF, 0x13, 0xFF, 0xFF, 0x9E, 0xE1, 0xDB,
+ 0xE7, 0xEF, 0xF0, 0x41, 0x91, 0x13, 0xF1, 0xB3,
+ 0xF5, 0xC8, 0x57, 0x13, 0xF0, 0x7B, 0x27, 0xD9,
+ 0xA0, 0xFA, 0x20, 0x28, 0x63, 0xF7, 0x60, 0x2E,
+ 0x8C, 0x10, 0x13, 0xE7, 0xEF, 0xA1, 0x86, 0x13,
+ 0xF5, 0xDF, 0x05, 0x47, 0xB6, 0x13, 0x14, 0x08,
+ 0x13, 0xF4, 0x77, 0xF3, 0x30, 0x2C, 0x3F, 0x13,
+ 0xF8, 0xF6, 0x53, 0x6A, 0x69, 0x6A, 0x6C, 0x6B,
+ 0x6C, 0x0D, 0x93, 0x50, 0x90, 0x25, 0x00, 0x0A,
+ 0x26, 0x00, 0x10, 0x00, 0x83, 0xE5, 0x28, 0xE2,
+ 0x00, 0x93, 0x02, 0x42, 0x26, 0x26, 0xF5, 0xE0,
+ 0x2C, 0x63, 0xDF, 0xFC, 0x3C, 0x85, 0x13, 0xFF,
+ 0x77, 0xE1, 0xB4, 0x02, 0x8B, 0xD1, 0x77, 0xE0,
+ 0x6B, 0x6D, 0xE7, 0x4F, 0xF2, 0xEE, 0x13, 0x9F,
+ 0xFD, 0x6D, 0x6E, 0xF0, 0x11, 0x13, 0xFF, 0x13,
+ 0xF9, 0xF2, 0x41, 0x02, 0x64, 0x01, 0x9D, 0xB0,
+ 0x9F, 0xFE, 0x28, 0x26, 0xB1, 0x41, 0x2D, 0xFF,
+ 0xB1, 0x70, 0x1B, 0x42, 0x13, 0xF1, 0xF8, 0x61,
+ 0x13, 0xEA, 0x79, 0x74, 0x65, 0x4E, 0xCA, 0x32,
+ 0x7F, 0x2D, 0xCD, 0x91, 0x28, 0x13, 0x13, 0xF4,
+ 0x77, 0xF3, 0x3B, 0xF1, 0xF6, 0xF7, 0x28, 0x01,
+ 0xFF, 0xF5, 0x51, 0xA1, 0xB1, 0x43, 0x11, 0x50,
+ 0x82, 0x12, 0x53, 0x14, 0x25, 0x01, 0x06, 0x14,
+ 0xC0, 0xFF, 0x16, 0x04, 0x52, 0xE2, 0xF5, 0x90,
+ 0x77, 0xCF, 0x64, 0xD6, 0x27, 0xFF, 0x27, 0xF1,
+ 0xDB, 0xE2, 0xFF, 0xB3, 0xD0, 0xF9, 0x43, 0xEF,
+ 0xF2, 0x28, 0xE3, 0x13, 0xFF, 0x13, 0xFF, 0x27,
+ 0xFD, 0xA5, 0x64, 0xE7, 0xA5, 0xE0, 0x27, 0x98,
+ 0xEF, 0xF5, 0x28, 0x26, 0x14, 0x01, 0x74, 0x61,
+ 0x3C, 0x82, 0x3F, 0x2A, 0x2A, 0x13, 0xF2, 0x8C,
+ 0x01, 0xA7, 0x22, 0xC9, 0xCA, 0x3C, 0xF9, 0xF3,
+ 0x17, 0xCD, 0xF3, 0x21, 0xB5, 0x11, 0x29, 0x28,
+ 0xEF, 0x20, 0xF6, 0x70, 0x40, 0x4F, 0xF2, 0xFF,
+ 0x3B, 0xF3, 0xB8, 0xB7, 0x3C, 0x30, 0x56, 0xA0,
+ 0xD0, 0x40, 0x56, 0xF1, 0xF3, 0x90, 0x14, 0x13,
+ 0xF7, 0x3B, 0xDF, 0x3C, 0xFF, 0x27, 0xEF, 0x8B,
+ 0xFA, 0x6D, 0x3B, 0xFF, 0xFB, 0x70, 0x00, 0x10,
+ 0xFD, 0xB7, 0x30, 0xF9, 0xC0, 0x77, 0x51, 0xEF,
+ 0xF0, 0xFE, 0x70, 0xDC, 0xC0, 0x6C, 0x63, 0xFF,
+ 0xF9, 0x27, 0xFF, 0x27, 0xFF, 0xFC, 0x74, 0x4D,
+ 0xB1, 0x13, 0xFF, 0x26, 0x27, 0x9C, 0x53, 0xFF,
+ 0x9C, 0xB2, 0xD9, 0xE0, 0xF1, 0x21, 0xA8, 0x31,
+ 0x3C, 0xF5, 0x8E, 0x04, 0x3C, 0xF7, 0x8D, 0x78,
+ 0xBB, 0x8E, 0x14, 0x2B, 0xB9, 0x80, 0xC9, 0xC1,
+ 0xFF, 0x60, 0x2F, 0xF2, 0x10, 0xF5, 0x32, 0x7F,
+ 0x42, 0x13, 0xF3, 0x3E, 0xE5, 0xF0, 0x71, 0x28,
+ 0x02, 0x67, 0x80, 0xF4, 0xA0, 0x57, 0x31, 0xEF,
+ 0x4F, 0x9C, 0x65, 0xBF, 0x13, 0xF5, 0x6D, 0x9F,
+ 0xBF, 0x13, 0xF9, 0x00, 0x06, 0x73, 0x91, 0xDF,
+ 0xEB, 0xC1, 0xEF, 0xF3, 0x2A, 0x4E, 0xE1, 0x9F,
+ 0x32, 0x9F, 0xF2, 0x4F, 0xF0, 0xCC, 0x40, 0xCF,
+ 0x77, 0xFF, 0x3B, 0xF1, 0x6D, 0x2D, 0xF0, 0x65,
+ 0x4F, 0xFF, 0x5C, 0x42, 0xAC, 0xC0, 0xFF, 0x8B,
+ 0xF1, 0x77, 0xF5, 0x27, 0xFA, 0xEB, 0x21, 0x9C,
+ 0x52, 0xD9, 0x10, 0x50, 0xB0, 0x27, 0xF2, 0xFF,
+ 0xC5, 0x81, 0x00, 0x07, 0xCF, 0xA1, 0x64, 0x12,
+ 0xF2, 0x8B, 0x13, 0xE6, 0x13, 0xF0, 0x2B, 0xB4,
+ 0xFF, 0x13, 0xF0, 0xDB, 0xE1, 0xFF, 0xE2, 0xE8,
+ 0x80, 0x90, 0x92, 0xF0, 0x48, 0x28, 0x04, 0xCB,
+ 0x51, 0x76, 0x29, 0x22, 0x20, 0xF5, 0x10, 0xC6,
+ 0xCA, 0x28, 0x30, 0xB0, 0x79, 0xEF, 0x26, 0xFD,
+ 0x11, 0x40, 0xB3, 0xCF, 0x13, 0xFF, 0x13, 0xF2,
+ 0x8B, 0xE3, 0x4F, 0xF2, 0x2D, 0x12, 0xE1, 0xFD,
+ 0x9F, 0xD0, 0xC7, 0xF1, 0x29, 0x02, 0x00, 0xB1,
+ 0x8B, 0xFF, 0x13, 0xF2, 0x6D, 0x8C, 0x63, 0x66,
+ 0x6E, 0x63, 0xF9, 0xEF, 0xE6, 0x0C, 0x0C, 0xB9,
+ 0x21, 0xC7, 0xB1, 0x2A, 0xFF, 0x4F, 0xFA, 0xA9,
+ 0x21, 0x27, 0xF3, 0xFA, 0xB4, 0x88, 0x41, 0x13,
+ 0xF3, 0x65, 0x30, 0xED, 0xE4, 0xFC, 0x51, 0x54,
+ 0x13, 0xD3, 0x28, 0xC6, 0xCC, 0x92, 0xB5, 0xE7,
+ 0xEC, 0x28, 0x2F, 0x2C, 0x70, 0x28, 0x32, 0xB1,
+ 0x14, 0x30, 0xFC, 0x80, 0x2B, 0x2E, 0x2E, 0x2B,
+ 0xF7, 0x13, 0xF9, 0x28, 0x07, 0x14, 0x02, 0xCC,
+ 0x81, 0x26, 0xEF, 0x06, 0x79, 0x7F, 0xA2, 0xC4,
+ 0xDF, 0x2D, 0x40, 0xFD, 0x81, 0x2B, 0xA3, 0xB3,
+ 0xA6, 0x40, 0x27, 0xFF, 0xF0, 0x05, 0x13, 0xF5,
+ 0xEF, 0xC6, 0xF4, 0xC7, 0x00, 0xDB, 0x41, 0x6C,
+ 0xDB, 0xF0, 0xB5, 0x30, 0xDB, 0xFF, 0x63, 0xF6,
+ 0xFF, 0xA0, 0x41, 0x14, 0x32, 0x13, 0xFF, 0x4F,
+ 0x71, 0xED, 0x93, 0x08, 0x20, 0x13, 0xFF, 0x3B,
+ 0xF2, 0xFF, 0xFB, 0x50, 0x0A, 0x50, 0x14, 0x01,
+ 0x23, 0x60, 0x13, 0xF4, 0xB1, 0x51, 0xD9, 0xD2,
+ 0x65, 0x91, 0xFF, 0xBD, 0x31, 0xB5, 0x40, 0x3D,
+ 0x05, 0xB5, 0xE6, 0xB1, 0x97, 0xC5, 0x91, 0x13,
+ 0xF4, 0xFF, 0xA2, 0xDF, 0x47, 0x01, 0x0C, 0x72,
+ 0x2C, 0xCC, 0x18, 0x28, 0x00, 0x64, 0x21, 0x56,
+ 0x62, 0x2E, 0x14, 0xF7, 0x27, 0x95, 0x00, 0x1C,
+ 0x29, 0x6B, 0x14, 0x13, 0x2B, 0x14, 0x1F, 0xC9,
+ 0x50, 0x13, 0xFB, 0xEF, 0x3B, 0xF5, 0xAC, 0xC1,
+ 0xB2, 0xF2, 0x6D, 0x14, 0x31, 0xDB, 0xF2, 0x8B,
+ 0xF2, 0xDB, 0xFE, 0xF8, 0x13, 0xFF, 0x8B, 0xFD,
+ 0xEB, 0x50, 0xEC, 0xF0, 0x9F, 0xF0, 0x2A, 0x2F,
+ 0x2A, 0xFF, 0x9F, 0xF4, 0x4F, 0xFD, 0xC4, 0x20,
+ 0x28, 0x22, 0xEC, 0xC1, 0x27, 0xF5, 0x28, 0x21,
+ 0x15, 0x02, 0xFF, 0xEE, 0x40, 0x8D, 0xE2, 0xC9,
+ 0x40, 0x29, 0xD0, 0x7A, 0x44, 0xDD, 0xBB, 0xC4,
+ 0xF6, 0x27, 0xF2, 0xBF, 0x2C, 0xE5, 0x2F, 0xD4,
+ 0x73, 0x13, 0xF9, 0x14, 0x03, 0xBB, 0x22, 0x50,
+ 0x32, 0xA7, 0xA0, 0xFF, 0x14, 0x0F, 0x00, 0xBF,
+ 0x14, 0x1C, 0x13, 0xFF, 0x13, 0xFE, 0xDB, 0xE2,
+ 0x3B, 0xE2, 0x4F, 0x41, 0xFF, 0xEF, 0xF2, 0x50,
+ 0xF0, 0x3B, 0xFF, 0x27, 0xF8, 0x28, 0x02, 0x9F,
+ 0xFF, 0x13, 0xF1, 0xCD, 0x03, 0xEF, 0x94, 0x40,
+ 0x13, 0xFE, 0xB3, 0xF1, 0x26, 0xC4, 0x31, 0x8C,
+ 0x50, 0xFB, 0x60, 0x13, 0xF5, 0xFF, 0x50, 0xA1,
+ 0x29, 0x40, 0x79, 0x74, 0x14, 0x21, 0x13, 0xF4,
+ 0x29, 0x02, 0xD2, 0x34, 0xF1, 0x97, 0xCF, 0xC4,
+ 0xD5, 0x4C, 0x20, 0x2F, 0x2C, 0x4C, 0x70, 0x40,
+ 0xF3, 0x13, 0xF0, 0xFB, 0x61, 0xFF, 0x13, 0xFA,
+ 0x50, 0x22, 0xCF, 0x33, 0x14, 0x03, 0xB4, 0xED,
+ 0x28, 0xDF, 0xF6, 0x00, 0x3C, 0x58, 0xD9, 0x3C,
+ 0x61, 0xAB, 0xD7, 0x2D, 0xFF, 0x80, 0x27, 0xFF,
+ 0x2D, 0x6B, 0x28, 0x01, 0xF3, 0x4F, 0xB2, 0xEF,
+ 0xD0, 0x8C, 0x40, 0x3B, 0xF1, 0x2B, 0x2D, 0x78,
+ 0xA2, 0x9F, 0xFD, 0xFF, 0x25, 0xB0, 0xCA, 0x37,
+ 0xDB, 0x32, 0x4F, 0xFD, 0xDB, 0xE6, 0xEF, 0xF8,
+ 0x4F, 0xE5, 0x13, 0xF7, 0xFF, 0x3A, 0xF2, 0xC8,
+ 0xB2, 0x63, 0xF3, 0x3C, 0xB2, 0x50, 0xF1, 0x13,
+ 0xD3, 0x13, 0xF5, 0x25, 0xC3, 0xFF, 0x13, 0xDB,
+ 0xF8, 0x11, 0x63, 0x31, 0xED, 0xC0, 0x3B, 0xF3,
+ 0x27, 0xF7, 0x13, 0xF2, 0xF3, 0x14, 0x3D, 0x2B,
+ 0x2B, 0x50, 0x23, 0x8C, 0x31, 0x8C, 0x01, 0x55,
+ 0xD3, 0x29, 0x77, 0xCE, 0xFE, 0x3C, 0xEA, 0xCA,
+ 0x0B, 0x4F, 0xB3, 0x50, 0x17, 0x13, 0xFF, 0x8C,
+ 0xC3, 0x8B, 0x00, 0x2C, 0x1F, 0x2B, 0x6C, 0x2B,
+ 0xB3, 0xB1, 0x50, 0x12, 0x8B, 0xF1, 0x3C, 0xF1,
+ 0x8D, 0x00, 0xF7, 0x13, 0xFF, 0x13, 0xF9, 0xF6,
+ 0x03, 0x13, 0xFC, 0x6E, 0x4F, 0xF2, 0x50, 0x12,
+ 0x57, 0xC7, 0xFF, 0xA0, 0xB4, 0xDB, 0xF0, 0x12,
+ 0xB4, 0xB4, 0x60, 0x13, 0xF9, 0x79, 0x23, 0x71,
+ 0x31, 0xED, 0xE2, 0xFF, 0x8D, 0x73, 0x52, 0x01,
+ 0x52, 0x32, 0xD2, 0x10, 0xF6, 0x92, 0x9E, 0x1A,
+ 0x14, 0x42, 0x3B, 0xF1, 0xFF, 0x17, 0x82, 0x27,
+ 0xF3, 0xF5, 0x92, 0xA5, 0xA3, 0xF2, 0x10, 0xF8,
+ 0x20, 0x16, 0xD3, 0xF7, 0x52, 0xFE, 0x14, 0x0A,
+ 0xDC, 0x68, 0x65, 0x0F, 0xF2, 0xC7, 0x63, 0xDA,
+ 0xF9, 0x53, 0x8B, 0xFA, 0x6D, 0x4F, 0x2F, 0xF0,
+ 0xC1, 0x6C, 0x6C, 0xFC, 0xC0, 0x13, 0xB2, 0xC7,
+ 0xE1, 0xC7, 0xF0, 0xFF, 0xAC, 0xB2, 0x77, 0xE1,
+ 0x13, 0xFF, 0x13, 0xFF, 0xDB, 0xF3, 0xB2, 0x05,
+ 0xF1, 0xF0, 0x3B, 0xF5, 0x6F, 0x2B, 0x1B, 0xA8,
+ 0xB3, 0xE5, 0x2B, 0x4E, 0x02, 0x14, 0x02, 0xB4,
+ 0x24, 0x13, 0xF9, 0xFF, 0x79, 0x74, 0xA1, 0x75,
+ 0x29, 0x63, 0x2A, 0x73, 0x13, 0xE5, 0x14, 0x2B,
+ 0x28, 0xA3, 0x3F, 0xB1, 0xFF, 0xC8, 0xD1, 0xCD,
+ 0x30, 0x13, 0xF2, 0xF2, 0x30, 0x18, 0xB2, 0x2A,
+ 0xE7, 0xCE, 0xD2, 0xB4, 0x51, 0xFB, 0x13, 0xFF,
+ 0xA1, 0x1F, 0xF2, 0x5A, 0x27, 0xD9, 0x13, 0xFC,
+ 0x2F, 0x13, 0xC0, 0x13, 0xF2, 0xBE, 0xB2, 0x80,
+ 0x2C, 0x63, 0xD2, 0x77, 0xA0, 0x8C, 0x40, 0xC7,
+ 0xF2, 0x3D, 0x00, 0x6C, 0xFF, 0xC8, 0xC0, 0x3B,
+ 0xFF, 0x27, 0xFE, 0xF4, 0xE1, 0xDA, 0x86, 0xC2,
+ 0x55, 0x27, 0xF1, 0x78, 0x02, 0xDF, 0x15, 0x86,
+ 0xF2, 0x12, 0x2D, 0x13, 0xF0, 0x6F, 0xCB, 0x27,
+ 0xF6, 0xC9, 0x54, 0x4C, 0xE1, 0xFF, 0x65, 0x75,
+ 0x13, 0xF5, 0xCB, 0x01, 0xC7, 0xB2, 0xCD, 0xD8,
+ 0xC6, 0xCA, 0x14, 0x32, 0x13, 0xF0, 0x9F, 0x14,
+ 0x01, 0x2C, 0x2D, 0xA5, 0x60, 0x3D, 0xE1, 0x13,
+ 0xF8, 0xDC, 0x73, 0x78, 0x43, 0xFF, 0x28, 0x09,
+ 0x8C, 0xBF, 0x8D, 0xDF, 0xF6, 0x60, 0x27, 0xD5,
+ 0xEF, 0x22, 0x13, 0xFF, 0xDB, 0x60, 0x68, 0x6B,
+ 0x8B, 0xD1, 0xB3, 0xB1, 0x6D, 0x13, 0xF2, 0x2B,
+ 0x2A, 0x2E, 0xFF, 0x13, 0xF1, 0xB4, 0xA0, 0x4F,
+ 0xFF, 0x4F, 0xF3, 0xFD, 0xE0, 0xFE, 0x20, 0x13,
+ 0xF8, 0x9F, 0xF5, 0x7F, 0x6E, 0x00, 0x10, 0x84,
+ 0x26, 0xCF, 0xCE, 0xEE, 0x32, 0xC0, 0xF1, 0x13,
+ 0xFF, 0x8B, 0xB3, 0xFF, 0x51, 0xA5, 0x63, 0xF6,
+ 0x64, 0xD2, 0xDE, 0xB0, 0xDB, 0xC4, 0xE2, 0x2B,
+ 0x28, 0xE5, 0xEF, 0x61, 0x35, 0x2C, 0x0C, 0x13,
+ 0xF7, 0x29, 0x02, 0x2A, 0x3F, 0x31, 0x2A, 0x28,
+ 0x46, 0xFF, 0x07, 0x71, 0x3C, 0x63, 0xA0, 0x1F,
+ 0xA1, 0x3F, 0xB6, 0x89, 0x27, 0xD6, 0x13, 0xFF,
+ 0x27, 0xF5, 0xFF, 0xC7, 0x40, 0xDB, 0x93, 0xF0,
+ 0x00, 0xDB, 0xF2, 0x36, 0x90, 0xB4, 0xC2, 0x63,
+ 0xFF, 0x13, 0xF7, 0xFF, 0xEF, 0x23, 0x13, 0xFF,
+ 0x4F, 0xF3, 0x94, 0x01, 0xD4, 0xD2, 0x27, 0x93,
+ 0x77, 0xF5, 0x00, 0x0C, 0xFF, 0xEF, 0xF3, 0xA0,
+ 0xB4, 0x65, 0x74, 0x77, 0x43, 0x13, 0xF5, 0xB5,
+ 0xA4, 0xEF, 0xC4, 0xF6, 0x50, 0xE7, 0x6C, 0x18,
+ 0x28, 0xAE, 0xDD, 0x40, 0x2A, 0x2B, 0xB9, 0xF2,
+ 0xC5, 0xD0, 0x13, 0xFB, 0xFF, 0xFE, 0xD2, 0x14,
+ 0x32, 0xB4, 0x1F, 0xB5, 0x3F, 0x3C, 0xB9, 0xDB,
+ 0x53, 0x27, 0xE1, 0xEF, 0x20, 0xE7, 0x4F, 0x02,
+ 0x27, 0xFF, 0xB3, 0xB2, 0x6D, 0x6D, 0x64, 0x00,
+ 0xF0, 0x10, 0x4F, 0xF0, 0xFF, 0xC4, 0x20, 0x28,
+ 0xC2, 0x77, 0xFD, 0x0B, 0xD5, 0x78, 0x53, 0x27,
+ 0xFF, 0x27, 0xF2, 0xFF, 0xB0, 0xFF, 0x8B, 0xC1,
+ 0x0A, 0xE0, 0x28, 0x3C, 0x27, 0xF3, 0x14, 0x3B,
+ 0xDA, 0x56, 0xEA, 0x62, 0x79, 0x63, 0xEF, 0x13,
+ 0xF7, 0xF2, 0xB6, 0x60, 0x73, 0x2C, 0xF5, 0xF2,
+ 0x00, 0x05, 0x3C, 0xAD, 0x41, 0xCD, 0xFF, 0x27,
+ 0xF7, 0xDD, 0x66, 0xB4, 0x48, 0xC8, 0x8F, 0xC9,
+ 0xAF, 0xF1, 0xC2, 0xEF, 0x43, 0x13, 0xE1, 0x7E,
+ 0x6D, 0x84, 0xF0, 0x4F, 0xFF, 0x8B, 0x20, 0x9F,
+ 0x72, 0x50, 0x82, 0x64, 0x32, 0x2E, 0xEF, 0x0A,
+ 0x72, 0xF8, 0xF1, 0x13, 0xFE, 0x2F, 0x13, 0xFF,
+ 0x3B, 0xFE, 0x4E, 0xB2, 0xEB, 0xD2, 0xFF, 0x8E,
+ 0x02, 0xF7, 0xB7, 0x60, 0x27, 0x13, 0xEF, 0x29,
+ 0x49, 0x8B, 0xF5, 0xA0, 0xB3, 0xF2, 0xB2, 0xFF,
+ 0x13, 0xF4, 0x43, 0x71, 0xF1, 0x25, 0x14, 0x68,
+ 0xF1, 0xE1, 0xCD, 0x03, 0xF5, 0xC2, 0xCE, 0x22,
+ 0x3F, 0x27, 0x27, 0x3B, 0xF7, 0xE1, 0xF1, 0xF4,
+ 0x60, 0x14, 0x25, 0xDC, 0x3F, 0xDD, 0x5F, 0xDF,
+ 0xF1, 0x77, 0xEF, 0x36, 0x6C, 0x63, 0x20, 0x27,
+ 0xFF, 0x4B, 0xD2, 0x59, 0x9A, 0xF9, 0x20, 0x13,
+ 0x2E, 0x2A, 0x2A, 0xF0, 0x70, 0x6A, 0x6A, 0x13,
+ 0xFF, 0x47, 0xF3, 0xFF, 0x27, 0xFF, 0x8B, 0xF7,
+ 0x04, 0xF2, 0x63, 0xB2, 0xA2, 0xA3, 0x4B, 0x28,
+ 0x5C, 0x63, 0xFF, 0xA0, 0xBF, 0x60, 0x9A, 0x44,
+ 0x29, 0x5F, 0x29, 0x78, 0x79, 0x93, 0x13, 0xF5,
+ 0xE1, 0xB3, 0x40, 0x64, 0xF7, 0x14, 0x48, 0x13,
+ 0xF1, 0xDF, 0xE3, 0xB9, 0x81, 0x28, 0x64, 0x02,
+ 0x4F, 0xF4, 0xF8, 0x90, 0xBE, 0x9F, 0xC4, 0x29,
+ 0xF2, 0xB0, 0x14, 0x0F, 0x77, 0x5F, 0x8E, 0x3B,
+ 0xEF, 0x24, 0x6C, 0xFE, 0x74, 0xF0, 0x13, 0xF9,
+ 0xFD, 0x00, 0x77, 0xF5, 0x12, 0xA2, 0x00, 0x48,
+ 0x63, 0xF0, 0x2A, 0xF7, 0xDC, 0xF3, 0x27, 0xFF,
+ 0x13, 0xFF, 0x13, 0xFD, 0x6E, 0xEA, 0xD0, 0xEF,
+ 0xD1, 0xFF, 0xA0, 0xFC, 0x36, 0xC2, 0x73, 0x58,
+ 0xAF, 0x60, 0xDB, 0x83, 0x14, 0x75, 0xEF, 0xE2,
+ 0x3F, 0x44, 0x9F, 0x00, 0x05, 0x2C, 0x2E, 0x00,
+ 0x41, 0x29, 0x8F, 0x37, 0xF3, 0x74, 0x40, 0xE1,
+ 0x91, 0xFF, 0xEE, 0xB1, 0x54, 0x78, 0xF1, 0x95,
+ 0x90, 0x15, 0xCD, 0x92, 0xF1, 0x32, 0x17, 0x86,
+ 0x51, 0x71, 0xF9, 0xC7, 0xE3, 0xF1, 0x12, 0xB2,
+ 0x26, 0x13, 0xDF, 0x14, 0x2F, 0x26, 0x26, 0x13,
+ 0xE6, 0x7F, 0x6C, 0xFC, 0x21, 0x13, 0xFF, 0xC7,
+ 0x61, 0xEF, 0x91, 0x50, 0x53, 0xF0, 0x60, 0x63,
+ 0xF2, 0x7F, 0x2D, 0x50, 0xA2, 0x3B, 0xFF, 0x88,
+ 0xA3, 0x4F, 0xFF, 0xB3, 0xF8, 0xF6, 0x20, 0x63,
+ 0xF1, 0xF0, 0x4A, 0xEC, 0x13, 0xF2, 0xEF, 0x76,
+ 0x8B, 0xE9, 0x3E, 0x3C, 0x3C, 0x3C, 0x04, 0x3B,
+ 0x3B, 0x3B, 0x3E, 0x3E, 0x28, 0x80, 0x3F, 0x3F,
+ 0xFF, 0x14, 0xD4, 0x3E, 0x9C, 0x4D, 0xF4, 0xF2,
+ 0xD1, 0xF1, 0x42, 0x68, 0x8C, 0xC6, 0x91, 0xFF,
+ 0xA1, 0xFF, 0xF8, 0x70, 0xB4, 0xF5, 0x14, 0x15,
+ 0xB7, 0xA1, 0xEA, 0x13, 0x77, 0xF3, 0xED, 0x43,
+ 0x26, 0xBF, 0xFF, 0x27, 0xDF, 0x13, 0xF9, 0x13,
+ 0xE1, 0xE9, 0x10, 0x4F, 0xFF, 0x4F, 0xE3, 0xDB,
+ 0xD4, 0xEF, 0xB0, 0xFF, 0x63, 0xF5, 0x9F, 0xF1,
+ 0xEF, 0xFF, 0xEE, 0x43, 0x98, 0x95, 0x9F, 0xF5,
+ 0x4F, 0x21, 0xDB, 0xF6, 0x1F, 0x2E, 0x2E, 0x6D,
+ 0xC7, 0xE2, 0xCD, 0x30, 0x3C, 0x35, 0xE3, 0xA1,
+ 0x8F, 0x02, 0x3E, 0x2C, 0x27, 0xB3, 0x71, 0xB2,
+ 0xB4, 0xDA, 0x65, 0x79, 0x37, 0x3C, 0x80, 0x3B,
+ 0x1F, 0x3B, 0x3C, 0x3C, 0x14, 0xF0, 0x14, 0xB2,
+ 0xDC, 0x92, 0xB3, 0x38, 0x13, 0xF9, 0xEF, 0x00,
+ 0x48, 0x29, 0xE4, 0xE0, 0x21, 0x2E, 0xF1, 0x20,
+ 0x14, 0x02, 0xA6, 0x19, 0x4F, 0xF2, 0x7F, 0x28,
+ 0xFE, 0x43, 0x28, 0x70, 0x13, 0xFF, 0x3B, 0x7F,
+ 0x27, 0xFD, 0x27, 0xC1, 0x27, 0xE3, 0xFD, 0x77,
+ 0xF8, 0xC7, 0xC1, 0x63, 0xF5, 0x28, 0x04, 0xC7,
+ 0xD0, 0xA0, 0x40, 0x6A, 0x85, 0x51, 0x9E, 0xDC,
+ 0xE0, 0x6D, 0x6C, 0x4F, 0xFF, 0xF4, 0x84, 0x13,
+ 0xFF, 0xB2, 0x55, 0x6E, 0xFF, 0xDA, 0x72, 0x9E,
+ 0x82, 0x8B, 0xF0, 0x72, 0xF3, 0xDB, 0xC0, 0xA2,
+ 0xF2, 0x27, 0xF1, 0xF9, 0xA0, 0xE5, 0xC7, 0xA1,
+ 0xEB, 0x60, 0x8A, 0x65, 0x2C, 0x3B, 0x28, 0x02,
+ 0x3E, 0x27, 0xF2, 0xFF, 0x14, 0xB9, 0xF2, 0x13,
+ 0xDD, 0x03, 0x27, 0xF8, 0x03, 0xD5, 0xA2, 0xD2,
+ 0xEF, 0x20, 0xC5, 0xB1, 0xFF, 0x13, 0xF4, 0x14,
+ 0x00, 0x13, 0xF0, 0xB8, 0xA4, 0x42, 0xC1, 0xF1,
+ 0xC0, 0xCB, 0xA1, 0xE1, 0x01, 0xFB, 0xF0, 0x12,
+ 0xF1, 0x71, 0x4E, 0x6F, 0x4F, 0x8F, 0xF2, 0x61,
+ 0x6A, 0x3B, 0xF6, 0x13, 0xE5, 0xFC, 0x3B, 0xFA,
+ 0xDB, 0xB2, 0x27, 0xF8, 0xC8, 0x03, 0xDC, 0xD1,
+ 0xB3, 0xF1, 0x2B, 0x2C, 0xFF, 0xC8, 0xA0, 0xB3,
+ 0xFF, 0xC4, 0xD8, 0x27, 0xFF, 0x13, 0xF3, 0xEF,
+ 0xF1, 0xF7, 0x80, 0x27, 0xF1, 0xFF, 0xD7, 0x27,
+ 0x4F, 0xF5, 0xFE, 0xB0, 0x13, 0xF3, 0x0D, 0x81,
+ 0x50, 0x71, 0x27, 0xFD, 0x3C, 0xA0, 0x5F, 0x3C,
+ 0x28, 0x20, 0x3B, 0x3C, 0xB1, 0xDE, 0x13, 0xF1,
+ 0x23, 0xEC, 0x84, 0x65, 0x07, 0xEE, 0xDB, 0x41,
+ 0xCB, 0x45, 0x8A, 0xA1, 0x29, 0x3B, 0x45, 0x27,
+ 0xF3, 0xF4, 0x10, 0x2A, 0x71, 0x28, 0xF5, 0x90,
+ 0x1A, 0x60, 0x29, 0xB2, 0x29, 0x28, 0x3F, 0x7D,
+ 0x62, 0xE7, 0x3B, 0xFF, 0x63, 0x5F, 0x13, 0xE4,
+ 0x6A, 0x2A, 0x4F, 0xF4, 0x27, 0xD3, 0x63, 0x01,
+ 0xFE, 0x13, 0xFF, 0x4F, 0xF6, 0xDA, 0xE1, 0xC7,
+ 0xF0, 0xC8, 0xD1, 0x9F, 0xF1, 0xB3, 0xF2, 0x6A,
+ 0xF8, 0x9F, 0xFE, 0x2C, 0x22, 0xC0, 0x46, 0x27,
+ 0xFF, 0x63, 0xE2, 0x2D, 0x6D, 0x2D, 0x6A, 0x0C,
+ 0x42, 0xB1, 0x13, 0xEE, 0x2E, 0x74, 0xC0, 0x27,
+ 0x27, 0xD2, 0x29, 0xCF, 0x21, 0x70, 0xEE, 0x65,
+ 0x2C, 0x3D, 0x00, 0x00, 0x50, 0x11, 0x27, 0xFD,
+ 0xC8, 0xB4, 0xFF, 0xC7, 0xF6, 0x13, 0xF4, 0xB7,
+ 0xEA, 0xF4, 0xC1, 0xDD, 0x6B, 0xE0, 0xB5, 0x13,
+ 0xE0, 0xF8, 0x70, 0xCB, 0xE0, 0xD0, 0x3D, 0xB3,
+ 0x2A, 0x3F, 0xDB, 0xC0, 0x3F, 0x4F, 0xF1, 0xCC,
+ 0x71, 0xFB, 0x76, 0xAF, 0x13, 0xEF, 0xF3, 0x30,
+ 0xF0, 0x72, 0x3B, 0xC3, 0x6C, 0xFE, 0x14, 0x3B,
+ 0xEF, 0xFA, 0x4F, 0xC3, 0xEE, 0xD0, 0xEF, 0xB1,
+ 0xC8, 0x71, 0xDB, 0xF2, 0x2C, 0xA1, 0x30, 0x6B,
+ 0xF7, 0x13, 0xFF, 0xEC, 0xF9, 0x4F, 0xF9, 0x77,
+ 0xE8, 0x2D, 0xC7, 0x60, 0xC6, 0x72, 0xE0, 0x60,
+ 0xEF, 0x3B, 0xE3, 0xAF, 0x61, 0xF0, 0x12, 0x2C,
+ 0x71, 0xB4, 0xEA, 0x20, 0x23, 0xC2, 0xEF, 0xE3,
+ 0xFF, 0x27, 0xFA, 0x4F, 0xF0, 0x50, 0x02, 0x13,
+ 0xF2, 0xA0, 0x05, 0x13, 0xFF, 0xB8, 0x19, 0xA4,
+ 0xE8, 0xFD, 0xCD, 0xF6, 0x13, 0xF2, 0xBC, 0x80,
+ 0x13, 0xF5, 0x77, 0xD3, 0x13, 0xF0, 0x2A, 0x31,
+ 0x50, 0x2E, 0x2D, 0x0C, 0x14, 0x0D, 0x66, 0x12,
+ 0xC5, 0x13, 0xEA, 0x28, 0x03, 0x2C, 0xFC, 0x13,
+ 0xE6, 0x3B, 0xFE, 0x4F, 0xE7, 0xDB, 0xE1, 0xC8,
+ 0x20, 0x77, 0xF6, 0x2B, 0x2C, 0xFF, 0x79, 0x62,
+ 0x13, 0xFF, 0x14, 0x09, 0x13, 0xFF, 0x8B, 0xE1,
+ 0xF6, 0x51, 0xEE, 0x83, 0xB8, 0x63, 0xFC, 0xC2,
+ 0xA8, 0x13, 0xF2, 0x4F, 0x80, 0xFA, 0x41, 0xC5,
+ 0xA2, 0x4F, 0xF3, 0x3D, 0x3D, 0x9F, 0x13, 0x51,
+ 0x3D, 0x3B, 0x27, 0xFD, 0xC8, 0xA3, 0xDB, 0xF6,
+ 0x40, 0xDB, 0xE0, 0xB6, 0xFF, 0xBE, 0xD1, 0xB4,
+ 0xF9, 0xA2, 0x32, 0x13, 0xF3, 0x3C, 0x01, 0x63,
+ 0xF3, 0x8B, 0xD3, 0xC7, 0xE1, 0x7F, 0x2B, 0xCB,
+ 0xF3, 0x26, 0xCF, 0xA9, 0xB5, 0x3B, 0xB2, 0x01,
+ 0x04, 0xF0, 0xC0, 0x13, 0xE2, 0xFE, 0x77, 0xA2,
+ 0x4F, 0xFF, 0x63, 0xE8, 0xC8, 0x20, 0xDB, 0xE0,
+ 0xF0, 0xB1, 0xEF, 0xF2, 0x2A, 0x7C, 0x2D, 0x50,
+ 0xE2, 0x27, 0xFF, 0x14, 0x09, 0x27, 0xFD, 0x63,
+ 0xE2, 0x6D, 0x6C, 0xF7, 0xEF, 0x60, 0xEE, 0x81,
+ 0xB2, 0x67, 0xD6, 0xB6, 0x2C, 0x97, 0x34, 0xAE,
+ 0x32, 0xC2, 0xA1, 0xEF, 0x4F, 0xFF, 0x27, 0xF1,
+ 0x78, 0x20, 0x3F, 0x4F, 0xF2, 0xF1, 0x51, 0x52,
+ 0x83, 0x8B, 0xF5, 0xFE, 0x13, 0xD6, 0xF8, 0x90,
+ 0xF0, 0x88, 0x7F, 0x01, 0xA1, 0x39, 0x27, 0xF2,
+ 0x4F, 0xF6, 0x2D, 0xE9, 0x8B, 0xF5, 0x8C, 0x11,
+ 0x13, 0xF4, 0x2D, 0xEE, 0x78, 0x6A, 0x6B, 0x68,
+ 0x42, 0x8F, 0xBD, 0xC4, 0x27, 0x27, 0x2A, 0x14,
+ 0xE8, 0x27, 0xD1, 0x4B, 0x54, 0xFD, 0x70, 0xED,
+ 0xC2, 0xF4, 0x77, 0xEC, 0x3C, 0x15, 0x6A, 0x63,
+ 0x30, 0x9F, 0xF5, 0x2B, 0xA1, 0x72, 0xE7, 0x3B,
+ 0xFF, 0x14, 0x09, 0x13, 0xFF, 0x2E, 0x6E, 0xF4,
+ 0x50, 0x6A, 0x80, 0x8B, 0xE1, 0xFF, 0xEA, 0xE4,
+ 0x28, 0x19, 0x13, 0xF0, 0xAB, 0x40, 0xD6, 0x40,
+ 0x13, 0xF3, 0x77, 0xF5, 0x50, 0x00, 0xBF, 0x8B,
+ 0x71, 0x3C, 0x27, 0xFE, 0xD8, 0x80, 0xDB, 0xE3,
+ 0x77, 0xF5, 0x88, 0x54, 0x9C, 0xF1, 0xC3, 0xFA,
+ 0x20, 0xEE, 0xF2, 0x2B, 0x2E, 0x2B, 0x2B, 0x4E,
+ 0xA0, 0x13, 0xFD, 0xFF, 0xC6, 0xF0, 0xA0, 0x93,
+ 0x9F, 0xF0, 0x13, 0xF4, 0xA0, 0x54, 0xF3, 0xF5,
+ 0xB3, 0xE7, 0x15, 0xC5, 0xAF, 0x14, 0x06, 0x27,
+ 0x92, 0x37, 0x6A, 0x4F, 0x90, 0xFC, 0x50, 0x13,
+ 0xB1, 0x13, 0xFF, 0xF7, 0x4F, 0xF8, 0x00, 0x23,
+ 0xEF, 0xF0, 0xB3, 0xF4, 0x2C, 0xC7, 0xFF, 0x13,
+ 0xF5, 0xDA, 0xB6, 0xFF, 0x9F, 0xF4, 0xB3, 0x20,
+ 0xEF, 0xE6, 0x00, 0xB1, 0xF0, 0xC2, 0xE1, 0x4C,
+ 0x3F, 0x82, 0x13, 0xF4, 0xF3, 0x27, 0xF4, 0xED,
+ 0xD1, 0x77, 0xFF, 0x14, 0x82, 0x3C, 0x3C, 0x27,
+ 0xF3, 0x13, 0xF2, 0xFF, 0x3E, 0x92, 0xB3, 0xF4,
+ 0x8C, 0xF5, 0xE0, 0x21, 0x24, 0x20, 0x68, 0x60,
+ 0xA6, 0x41, 0x13, 0xFF, 0xBC, 0x8F, 0xB2, 0x2A,
+ 0x2B, 0xE2, 0x13, 0xF2, 0xDD, 0x91, 0x14, 0x0B,
+ 0x2C, 0x0C, 0xFF, 0x28, 0x13, 0xC5, 0x71, 0x15,
+ 0xA6, 0x14, 0x0F, 0xF4, 0x60, 0xDA, 0xC3, 0xF7,
+ 0x02, 0xF0, 0x00, 0xEF, 0x27, 0xFF, 0x4F, 0xF3,
+ 0x64, 0x63, 0x6C, 0xB3, 0xF2, 0xEF, 0xF1, 0x3B,
+ 0xFF, 0x13, 0xF7, 0xE2, 0xEE, 0xC5, 0x13, 0xFF,
+ 0xDB, 0xD0, 0x6E, 0x2C, 0x6C, 0xB3, 0x90, 0x2D,
+ 0xB1, 0xDB, 0xF0, 0x2A, 0xB4, 0x17, 0xF0, 0x83,
+ 0x2E, 0x2A, 0x26, 0xF9, 0x10, 0xAD, 0x13, 0xF7,
+ 0x27, 0x27, 0xF6, 0x3E, 0x28, 0x02, 0xF0, 0x88,
+ 0x44, 0xCB, 0xE0, 0xF9, 0x89, 0x22, 0xED, 0x32,
+ 0x9C, 0x42, 0xC7, 0xF1, 0x39, 0xC3, 0x2D, 0x2D,
+ 0x13, 0xF4, 0xFD, 0x29, 0x01, 0xFB, 0xD0, 0x27,
+ 0xFF, 0xF3, 0x54, 0xC8, 0xA1, 0x3B, 0xF1, 0x2D,
+ 0x8E, 0x97, 0xBA, 0xF0, 0x71, 0x2A, 0x31, 0xC0,
+ 0x3C, 0x15, 0xAA, 0x82, 0x6B, 0x2A, 0x09, 0x2B,
+ 0xBF, 0x28, 0x0B, 0x2A, 0xFE, 0x01, 0x13, 0xD3,
+ 0xC7, 0x31, 0x3B, 0xFF, 0xC7, 0xF2, 0x4F, 0xB0,
+ 0xFB, 0xDB, 0xE5, 0x3B, 0xFF, 0x13, 0xFF, 0x00,
+ 0x07, 0x27, 0xF1, 0x0C, 0xB3, 0xD4, 0x27, 0xF1,
+ 0x13, 0x2D, 0x6E, 0x6D, 0x5A, 0x10, 0x2C, 0x2E,
+ 0xBA, 0xC2, 0xD6, 0x70, 0xFE, 0xB3, 0x83, 0xEF,
+ 0xF5, 0x13, 0xF4, 0x63, 0xF2, 0x9C, 0x01, 0xC7,
+ 0xFF, 0x4F, 0xE2, 0x3C, 0xFF, 0x64, 0xA2, 0x7A,
+ 0x50, 0x9C, 0x92, 0x13, 0xFF, 0x55, 0xB2, 0x11,
+ 0x50, 0xC5, 0x52, 0x4F, 0xFF, 0xD6, 0x3B, 0xF2,
+ 0xA2, 0x64, 0x27, 0xF0, 0x11, 0x2D, 0xB8, 0x84,
+ 0xEF, 0xF1, 0x2A, 0x7F, 0x2B, 0x4F, 0x94, 0xEF,
+ 0xE2, 0xBE, 0x72, 0x13, 0xF6, 0x3C, 0x0C, 0xF4,
+ 0x30, 0x13, 0xF5, 0xFC, 0xFE, 0x51, 0xD6, 0xA0,
+ 0x4F, 0xFF, 0xF1, 0xA1, 0x9F, 0xF4, 0x14, 0x13,
+ 0x6C, 0x6B, 0x3F, 0x6A, 0x2E, 0x3B, 0xFF, 0x27,
+ 0xFB, 0x14, 0x08, 0x13, 0xF9, 0xEF, 0xD0, 0xFD,
+ 0xF0, 0x7F, 0x6D, 0xDB, 0x90, 0xE0, 0x00, 0x27,
+ 0xD0, 0x14, 0x03, 0xDB, 0xB2, 0x13, 0xFF, 0xA0,
+ 0x30, 0x9F, 0x27, 0xF4, 0x3E, 0x3E, 0xA0, 0x11,
+ 0xF0, 0x10, 0x27, 0xF9, 0xB2, 0x81, 0xF2, 0x70,
+ 0xFF, 0xB2, 0x61, 0xC6, 0xB1, 0x27, 0xFB, 0x3B,
+ 0xF4, 0xD9, 0x43, 0xEF, 0x31, 0x63, 0xFF, 0x67,
+ 0xB4, 0xFE, 0xF7, 0x00, 0xF3, 0xA1, 0xE2, 0xC2,
+ 0x77, 0x90, 0x64, 0x11, 0xF4, 0x60, 0xF1, 0x90,
+ 0x2A, 0xFF, 0x76, 0x41, 0x00, 0x22, 0x27, 0xFC,
+ 0x8E, 0x21, 0x50, 0xE5, 0xFA, 0x72, 0xDB, 0x16,
+ 0x13, 0xFF, 0xF3, 0xDC, 0xD4, 0xB3, 0x71, 0x8B,
+ 0xC0, 0xFB, 0x26, 0x2B, 0x2C, 0x59, 0x30, 0x9F,
+ 0xFF, 0xCC, 0x13, 0xF8, 0x28, 0x17, 0x0C, 0x6E,
+ 0x27, 0xF0, 0xDB, 0xC6, 0x6D, 0x6C, 0x5F, 0x2D,
+ 0xF3, 0x60, 0x2D, 0x04, 0x00, 0xF0, 0x12, 0xF2,
+ 0xE6, 0x77, 0xF5, 0xDB, 0xE0, 0xFF, 0x8C, 0x22,
+ 0x8B, 0xF2, 0x27, 0xFF, 0xF0, 0x20, 0x00, 0x05,
+ 0x13, 0xE1, 0x3B, 0xB4, 0xC6, 0x71, 0xBF, 0xEF,
+ 0xF2, 0x29, 0x3B, 0xF3, 0xB1, 0x50, 0xB0, 0xB0,
+ 0xF8, 0x50, 0x13, 0xE5, 0x63, 0xF1, 0xED, 0x8B,
+ 0xFE, 0xDB, 0xD3, 0xB3, 0xF3, 0x0C, 0xF6, 0xD1,
+ 0x8B, 0x81, 0x2C, 0xB4, 0x40, 0xDF, 0x50, 0xC1,
+ 0xF1, 0x71, 0x27, 0x14, 0x04, 0x3B, 0xC0, 0x3B,
+ 0xFB, 0x64, 0xEC, 0x27, 0x91, 0x2F, 0x0C, 0x0C,
+ 0x71, 0x50, 0x2F, 0x4F, 0xFF, 0xF0, 0xD2, 0xD6,
+ 0x45, 0x04, 0xF5, 0xFF, 0xC7, 0xF3, 0x9F, 0xFF,
+ 0xDB, 0xF7, 0x3B, 0xF9, 0xC7, 0x10, 0x13, 0xF4,
+ 0xB3, 0xB1, 0xE0, 0x00, 0xFF, 0xDB, 0x91, 0x71,
+ 0xD0, 0xDE, 0xA4, 0xA0, 0x46, 0xC7, 0xF2, 0x4F,
+ 0xE0, 0xD6, 0x81, 0x21, 0x72, 0xFF, 0xC8, 0x01,
+ 0x27, 0xF4, 0x28, 0x02, 0x9F, 0xF2, 0x78, 0x70,
+ 0x28, 0x80, 0x3B, 0xF2, 0xC7, 0xD2, 0xCC, 0x00,
+ 0x32, 0x13, 0xFD, 0x2A, 0x28, 0x50, 0x00, 0x13,
+ 0xF2, 0x3B, 0x3F, 0xFF, 0x63, 0xF4, 0xB3, 0xFF,
+ 0x4F, 0xF5, 0x27, 0xF3, 0xF4, 0x90, 0xA2, 0x22,
+ 0x3B, 0xF1, 0x13, 0xFC, 0x05, 0x6A, 0x2A, 0x2B,
+ 0x6A, 0x67, 0x00, 0x07, 0x2B, 0x27, 0xE1, 0xFB,
+ 0x78, 0xF9, 0x4F, 0xC0, 0xFE, 0x41, 0x13, 0xFF,
+ 0x3B, 0xF6, 0x6D, 0x18, 0x95, 0xB4, 0x93, 0xFB,
+ 0x63, 0xF1, 0xEE, 0x14, 0x13, 0xFF, 0x14, 0x1D,
+ 0x13, 0xE1, 0x6E, 0x77, 0xC5, 0xB2, 0xB1, 0xFF,
+ 0x27, 0xE0, 0xC7, 0xA0, 0xF0, 0xF0, 0xD5, 0xE0,
+ 0x64, 0x31, 0x8C, 0x44, 0xB4, 0x32, 0x13, 0xF0,
+ 0xFF, 0xEB, 0x71, 0xEB, 0xE3, 0xC7, 0xFF, 0x3B,
+ 0xFB, 0x60, 0x24, 0x13, 0xFF, 0x4F, 0x70, 0x13,
+ 0xF8, 0xFF, 0x63, 0xF2, 0x26, 0x22, 0x9E, 0x52,
+ 0x8D, 0x54, 0xF6, 0x22, 0x06, 0x83, 0xF3, 0xA1,
+ 0xF6, 0xB1, 0xEF, 0xBD, 0x30, 0x2B, 0x20, 0x13,
+ 0xF6, 0x28, 0x63, 0xA2, 0xD2, 0x83, 0x13, 0xF9,
+ 0x3B, 0xE2, 0xFF, 0xA3, 0x02, 0xF4, 0x21, 0x13,
+ 0xF3, 0x63, 0xB1, 0x27, 0xFF, 0xDB, 0xF6, 0xB3,
+ 0x71, 0x9F, 0xE1, 0xEF, 0xDC, 0x00, 0xA0, 0x30,
+ 0xB3, 0xF3, 0x2A, 0x2D, 0xA2, 0x27, 0xFF, 0x13,
+ 0xFF, 0x13, 0xF4, 0x4F, 0x2E, 0x14, 0x60, 0x0C,
+ 0x6C, 0x35, 0xE2, 0xD5, 0x41, 0x73, 0xF0, 0xDC,
+ 0x32, 0x37, 0x2C, 0x2C, 0xF2, 0xC4, 0x13, 0xF2,
+ 0x28, 0x9F, 0xE1, 0x9D, 0x33, 0xC7, 0xF8, 0x83,
+ 0x28, 0x00, 0x3E, 0x3E, 0x3B, 0x3B, 0x3D, 0x27,
+ 0xF2, 0xA0, 0x92, 0xFA, 0x27, 0xF3, 0x00, 0x18,
+ 0x77, 0xF9, 0xEF, 0x40, 0x27, 0xF5, 0x3F, 0x13,
+ 0xF3, 0x27, 0xFF, 0x13, 0xFF, 0x4F, 0xC3, 0xE2,
+ 0xD1, 0x13, 0xFB, 0x3B, 0xF1, 0x69, 0x63, 0x77,
+ 0xA0, 0xB2, 0x02, 0xFF, 0x5A, 0xE0, 0xEE, 0xB1,
+ 0xB4, 0x25, 0x27, 0xF2, 0xCA, 0x93, 0x14, 0x22,
+ 0x13, 0xFF, 0xB3, 0xFE, 0xEF, 0x77, 0x72, 0xEF,
+ 0xE1, 0xDB, 0xE2, 0x6D, 0xF3, 0x90, 0xB3, 0xF0,
+ 0x00, 0xE2, 0x3B, 0xFF, 0xB1, 0x27, 0xFF, 0x6E,
+ 0xA5, 0xE0, 0xEF, 0xA2, 0x0C, 0x2D, 0x6C, 0xFE,
+ 0x60, 0xFF, 0x3E, 0x2E, 0xB4, 0x55, 0x4F, 0xF3,
+ 0x63, 0x51, 0x9B, 0x60, 0x71, 0x05, 0xEF, 0xF1,
+ 0x4F, 0x36, 0xBF, 0x4F, 0xFE, 0x29, 0xF1, 0xD6,
+ 0x8B, 0xF9, 0xF3, 0x60, 0x13, 0xF8, 0x9F, 0xF2,
+ 0x27, 0xFA, 0xFF, 0xF5, 0x70, 0xF6, 0x41, 0x50,
+ 0x15, 0x27, 0xF3, 0x17, 0x30, 0x53, 0xA2, 0xC8,
+ 0x11, 0x8C, 0xB3, 0x67, 0x26, 0xC6, 0x04, 0xFA,
+ 0xB0, 0x6A, 0x2A, 0x32, 0xB0, 0x00, 0x30, 0x13,
+ 0xF4, 0xFF, 0x33, 0x71, 0x00, 0x61, 0x27, 0xFF,
+ 0xC7, 0xFF, 0xEF, 0xF6, 0x4F, 0x70, 0xDC, 0x94,
+ 0xDB, 0xF5, 0xF8, 0xC9, 0x80, 0x4F, 0xFF, 0x3B,
+ 0xFF, 0x13, 0xF4, 0x7C, 0x70, 0x0C, 0x0C, 0x2C,
+ 0xC5, 0x00, 0x40, 0x3B, 0x91, 0x2B, 0x2A, 0x2F,
+ 0xDB, 0xF0, 0x2C, 0xC8, 0x80, 0xFF, 0x83, 0x10,
+ 0x14, 0x07, 0x13, 0xF1, 0xEC, 0xF3, 0xED, 0xB4,
+ 0x63, 0xFB, 0x00, 0xBF, 0x13, 0xFB, 0xFF, 0x63,
+ 0xF4, 0x27, 0xE0, 0x13, 0xFB, 0xA1, 0xE2, 0x13,
+ 0xF8, 0x63, 0x82, 0x00, 0x16, 0x13, 0xFC, 0xBD,
+ 0x39, 0xF6, 0x0C, 0xC6, 0x53, 0x13, 0xF2, 0xD2,
+ 0xD0, 0x28, 0x91, 0x2B, 0xE7, 0x40, 0xFF, 0xA0,
+ 0x02, 0x3C, 0x71, 0x13, 0xF7, 0xFF, 0x20, 0x4F,
+ 0xFF, 0x8B, 0xF9, 0xA0, 0x33, 0xA0, 0x02, 0xDF,
+ 0xDC, 0x30, 0x27, 0xF1, 0x2D, 0xC7, 0xF1, 0x27,
+ 0xFF, 0xE7, 0x28, 0xF0, 0x84, 0x13, 0xF8, 0x4F,
+ 0x2C, 0xF5, 0x40, 0x2C, 0x6C, 0x4F, 0x81, 0xB4,
+ 0x00, 0xB3, 0xF0, 0x14, 0x41, 0xFF, 0xE7, 0x50,
+ 0x26, 0x51, 0x27, 0xF6, 0xED, 0x33, 0xFC, 0xA1,
+ 0x13, 0x8F, 0x14, 0xAF, 0xEE, 0x07, 0xFF, 0x77,
+ 0xF8, 0x87, 0xB0, 0x13, 0xFD, 0x27, 0xFC, 0x77,
+ 0xA4, 0x13, 0xFA, 0x63, 0xF1, 0xA9, 0x81, 0xDF,
+ 0x78, 0x01, 0xF0, 0x83, 0x2A, 0xDA, 0x50, 0xF1,
+ 0x30, 0x4F, 0xF2, 0xBE, 0xA0, 0xB5, 0x41, 0xFF,
+ 0x28, 0x61, 0xB4, 0x03, 0x50, 0x71, 0x63, 0xF6,
+ 0xFE, 0x62, 0x77, 0xFF, 0x9F, 0xFB, 0xA0, 0x11,
+ 0xFF, 0xDB, 0xE2, 0xC7, 0xF2, 0xA5, 0x30, 0xF1,
+ 0x41, 0x13, 0xFF, 0xD9, 0x0A, 0x3B, 0xF8, 0x8C,
+ 0x60, 0x38, 0x6C, 0x6D, 0x5A, 0x21, 0xDA, 0x50,
+ 0x70, 0x13, 0x2B, 0x29, 0x2B, 0xC7, 0xF0, 0x80,
+ 0xA0, 0xC0, 0x29, 0x27, 0x2A, 0xF3, 0x25, 0x26,
+ 0xDF, 0x13, 0x1F, 0xFB, 0x94, 0x44, 0xF3, 0xC1,
+ 0x50, 0x37, 0xC7, 0xF8, 0x63, 0xD0, 0x2D, 0xB9,
+ 0x90, 0x77, 0xF7, 0xFE, 0xF2, 0x30, 0x63, 0xF9,
+ 0x2B, 0xAF, 0xF3, 0xA1, 0x13, 0xF4, 0xA3, 0xA1,
+ 0x13, 0xF3, 0x29, 0xFF, 0x13, 0xF0, 0x50, 0xD1,
+ 0xC7, 0xF1, 0xEF, 0xC8, 0x9F, 0xD1, 0x2A, 0x37,
+ 0x52, 0xE1, 0x13, 0xFF, 0xFF, 0x3B, 0xFF, 0xB3,
+ 0x40, 0xF0, 0x31, 0xC8, 0x40, 0xB4, 0x60, 0xEF,
+ 0xF1, 0x13, 0xF1, 0xB4, 0x90, 0xF7, 0x27, 0xFF,
+ 0x60, 0xA5, 0x13, 0xFC, 0x8C, 0x61, 0x2C, 0xCE,
+ 0x60, 0x9F, 0x23, 0x8E, 0x6A, 0xBF, 0xE7, 0xC0,
+ 0x29, 0xCA, 0xB4, 0xA1, 0x51, 0x26, 0x0C, 0x26,
+ 0x58, 0x87, 0x72, 0xEE, 0x14, 0xFF, 0xF8, 0x00,
+ 0x63, 0xFF, 0x9F, 0xF2, 0x63, 0xD1, 0x13, 0xF9,
+ 0xE0, 0x71, 0x13, 0xFF, 0x13, 0xFE, 0xFD, 0x3F,
+ 0x41, 0x13, 0xF8, 0x78, 0x70, 0x4E, 0x52, 0x3B,
+ 0x20, 0x64, 0x62, 0x3B, 0xF8, 0x75, 0xFE, 0x64,
+ 0x07, 0xF2, 0xF5, 0x27, 0xF5, 0xEF, 0xFF, 0xEF,
+ 0xF5, 0x14, 0x13, 0x78, 0x60, 0x6C, 0xD7, 0xDC,
+ 0x52, 0x77, 0xF1, 0x2C, 0x3B, 0xF1, 0x6A, 0x3B,
+ 0xFF, 0x9C, 0xA2, 0xB0, 0xF0, 0xCF, 0x00, 0x41,
+ 0x63, 0xF9, 0x6E, 0x6E, 0xF4, 0xA2, 0xDB, 0x80,
+ 0xC8, 0x31, 0xE5, 0x20, 0x97, 0x3B, 0xA2, 0x2C,
+ 0x2F, 0xFC, 0x80, 0x2F, 0x62, 0xF0, 0x27, 0xF5,
+ 0x21, 0xC5, 0xDB, 0x1F, 0x51, 0xD6, 0x31, 0x2C,
+ 0xEF, 0xF1, 0xD5, 0xB3, 0x2B, 0xDC, 0xA3, 0xD6,
+ 0x94, 0xFF, 0x13, 0xF6, 0x9F, 0xFE, 0x27, 0xE2,
+ 0x27, 0xF5, 0x86, 0x40, 0x76, 0x35, 0x8B, 0xF6,
+ 0xEB, 0xA7, 0x9F, 0xCA, 0x61, 0x2B, 0x2A, 0x13,
+ 0xFF, 0x67, 0xE0, 0xC6, 0x63, 0x13, 0xF7, 0x63,
+ 0xC2, 0x3B, 0x3B, 0x3B, 0x8B, 0xC7, 0xF1, 0x17,
+ 0xB3, 0xE1, 0x2F, 0xF0, 0x14, 0x27, 0xFF, 0xFB,
+ 0x8C, 0x04, 0xDB, 0xE1, 0xEF, 0xD0, 0xA0, 0xB0,
+ 0x3B, 0xF3, 0x2D, 0x3B, 0xF0, 0x14, 0xF0, 0xFE,
+ 0x4F, 0xFF, 0xD8, 0xB4, 0x13, 0xF6, 0x49, 0xA2,
+ 0x3B, 0xD1, 0xFA, 0x50, 0xC7, 0xD0, 0x2F, 0x6C,
+ 0x2E, 0xB4, 0x10, 0x8C, 0x11, 0x2F, 0xDC, 0x51,
+ 0x64, 0x51, 0x29, 0x2F, 0xFE, 0x3C, 0x90, 0x8C,
+ 0xF0, 0x3B, 0xF6, 0x11, 0x76, 0xD4, 0x71, 0xEF,
+ 0xF1, 0xFD, 0x62, 0x28, 0xF9, 0x3F, 0x65, 0x9F,
+ 0x33, 0x27, 0xF1, 0xEB, 0x42, 0xB3, 0xFE, 0x28,
+ 0x29, 0xCD, 0x61, 0xFF, 0xC7, 0xF5, 0xCC, 0xD1,
+ 0x62, 0x33, 0x13, 0xF7, 0x57, 0x20, 0x13, 0xC4,
+ 0xD8, 0x92, 0x27, 0xF5, 0x7F, 0x2B, 0x13, 0xFE,
+ 0xB2, 0x92, 0xF0, 0x02, 0xEF, 0xB2, 0xBB, 0xC0,
+ 0x8B, 0x64, 0xDC, 0xD8, 0xFD, 0x13, 0xF4, 0xCD,
+ 0xE3, 0x13, 0xFF, 0x8B, 0xF4, 0x3B, 0xD4, 0x50,
+ 0x10, 0x6D, 0xA0, 0x70, 0xBF, 0x9F, 0xF1, 0x2C,
+ 0xB4, 0x81, 0x13, 0xFF, 0xC4, 0xA6, 0xED, 0x20,
+ 0xEF, 0x44, 0xF0, 0x30, 0xA7, 0xB4, 0x51, 0x6D,
+ 0xCD, 0xE0, 0x6D, 0x2C, 0xDC, 0xF0, 0xD6, 0x00,
+ 0xDB, 0xC0, 0xFF, 0xB3, 0xF0, 0x6C, 0xD0, 0x50,
+ 0x01, 0xF1, 0xB5, 0xC7, 0xF2, 0x8B, 0x95, 0x37,
+ 0x52, 0x13, 0xF4, 0xFF, 0x8C, 0x97, 0xF0, 0xD1,
+ 0xAF, 0x52, 0x13, 0xF4, 0xDB, 0xF1, 0xDC, 0x41,
+ 0xDB, 0xF8, 0xEB, 0x90, 0xFF, 0x13, 0xF8, 0xB8,
+ 0xC5, 0x27, 0xFF, 0x62, 0x01, 0x6B, 0xC3, 0xF3,
+ 0xA1, 0xB4, 0x01, 0x13, 0xF4, 0xFF, 0xC8, 0x01,
+ 0x27, 0xF1, 0x76, 0x50, 0x11, 0xF2, 0x4F, 0xF5,
+ 0x27, 0x8F, 0x13, 0xF3, 0xDB, 0xF0, 0xFF, 0xFE,
+ 0x80, 0x13, 0xFF, 0x9F, 0xF9, 0xC7, 0x90, 0xB3,
+ 0xC0, 0x13, 0xA0, 0x3C, 0x02, 0xB3, 0xF1, 0x8F,
+ 0x27, 0xF0, 0x6C, 0x6A, 0x6D, 0x27, 0xFF, 0x4F,
+ 0xB5, 0x13, 0xF7, 0xC8, 0x44, 0x53, 0x2E, 0xE2,
+ 0x00, 0x0C, 0x63, 0xD0, 0x6E, 0x2E, 0xFE, 0x01,
+ 0x14, 0x01, 0xA3, 0x13, 0x83, 0x2F, 0x27, 0xE1,
+ 0x2B, 0x2F, 0x29, 0x13, 0xF7, 0xC5, 0x35, 0xFF,
+ 0xF0, 0x21, 0x13, 0xF3, 0xDC, 0xA1, 0x28, 0x82,
+ 0x3C, 0x31, 0x01, 0x72, 0x13, 0xFB, 0xFF, 0xD0,
+ 0xFE, 0xEF, 0xF3, 0xA0, 0xF0, 0xC7, 0xB0, 0x6A,
+ 0x30, 0x63, 0xF4, 0xB8, 0xA4, 0x13, 0xFC, 0x29,
+ 0xEF, 0xFF, 0xD0, 0xDA, 0x70, 0x28, 0x13, 0x2A,
+ 0x13, 0xF4, 0xEF, 0xF1, 0x13, 0xF9, 0x8A, 0x51,
+ 0xFF, 0xDA, 0x93, 0x27, 0xF4, 0x3B, 0x8F, 0xF0,
+ 0x94, 0x42, 0xE1, 0x27, 0xFF, 0x4F, 0xFD, 0x63,
+ 0xC1, 0xCB, 0x13, 0xC2, 0x63, 0xF3, 0x2A, 0x2C,
+ 0x78, 0xC0, 0x6B, 0x8B, 0xFF, 0x3B, 0xD3, 0xD8,
+ 0xED, 0x23, 0x13, 0xF6, 0x2E, 0x13, 0xD0, 0x13,
+ 0xF0, 0x6D, 0x0C, 0x2F, 0xFC, 0xC6, 0xC0, 0xFE,
+ 0x11, 0x14, 0x03, 0xA0, 0x20, 0xA0, 0x00, 0x8C,
+ 0xC1, 0x29, 0x2F, 0x7F, 0x2A, 0x14, 0x02, 0x27,
+ 0xF0, 0xEF, 0xA4, 0x9A, 0x31, 0x13, 0xF0, 0x4F,
+ 0xF3, 0xB5, 0x20, 0xFF, 0x3C, 0x83, 0x3C, 0xE3,
+ 0xB6, 0x00, 0x3B, 0xF3, 0xC2, 0x62, 0x13, 0xFB,
+ 0xC7, 0xB1, 0x13, 0xF6, 0xEF, 0xDD, 0xD2, 0x18,
+ 0x50, 0x13, 0xFE, 0x29, 0x89, 0xE1, 0xEE, 0x90,
+ 0x3B, 0xF6, 0x13, 0xF9, 0xDF, 0x81, 0x80, 0x13,
+ 0xF1, 0x2A, 0x81, 0x60, 0xEE, 0x82, 0xCD, 0x00,
+ 0xC6, 0xE5, 0x3B, 0x14, 0xFD, 0x50, 0x3B, 0x13,
+ 0xFF, 0xB3, 0xFF, 0xDB, 0xA0, 0x00, 0x13, 0xDC,
+ 0xA0, 0x6D, 0xEF, 0xF1, 0x3D, 0x2A, 0x2B, 0xF1,
+ 0x51, 0x9F, 0xFF, 0x63, 0xD2, 0x13, 0xFE, 0x2D,
+ 0xEF, 0xB0, 0x3A, 0x6D, 0x2C, 0x55, 0xE1, 0x62,
+ 0x22, 0xDC, 0x11, 0x2D, 0xEF, 0xF1, 0x29, 0xFF,
+ 0x43, 0x70, 0x00, 0x61, 0x77, 0xF0, 0x28, 0x02,
+ 0x4A, 0xD2, 0xF0, 0x11, 0xC8, 0x21, 0x13, 0xF6,
+ 0xDF, 0x13, 0x00, 0x27, 0xE3, 0x29, 0x28, 0x03,
+ 0x14, 0x01, 0xF1, 0x70, 0xEF, 0xD3, 0xF0, 0x34,
+ 0xF7, 0xEF, 0xF5, 0xF0, 0x20, 0x27, 0xF7, 0x40,
+ 0x63, 0x27, 0x13, 0xFD, 0x89, 0xC2, 0x00, 0x21,
+ 0xDF, 0xA7, 0xA1, 0x13, 0xF7, 0x29, 0x13, 0xF7,
+ 0x95, 0xA0, 0x53, 0xA1, 0xDA, 0xF3, 0x68, 0x62,
+ 0xF7, 0xDB, 0x35, 0xDB, 0x63, 0x9D, 0x04, 0xC4,
+ 0xC2, 0x6A, 0x27, 0xFF, 0xDB, 0xFE, 0x78, 0x22,
+ 0xDF, 0x3A, 0xE0, 0xF0, 0x22, 0x6B, 0xDB, 0xF4,
+ 0xF1, 0x71, 0xB3, 0xFF, 0xEC, 0xC7, 0x3B, 0xF7,
+ 0xEC, 0xED, 0xB1, 0x77, 0xC1, 0x4F, 0x61, 0x2C,
+ 0x14, 0x04, 0xB4, 0x62, 0x29, 0x2E, 0x3F, 0x2F,
+ 0x2D, 0xEE, 0x10, 0x78, 0x71, 0xB4, 0x32, 0x5E,
+ 0xD1, 0xE9, 0x63, 0x4F, 0xD2, 0xFF, 0x27, 0xF5,
+ 0xDC, 0x73, 0xD7, 0x71, 0x64, 0xF4, 0x13, 0xF6,
+ 0xFE, 0xA4, 0x8B, 0xF6, 0xEF, 0xA0, 0xFF, 0x13,
+ 0xF9, 0xE0, 0x52, 0x13, 0xFE, 0xDA, 0x10, 0x9D,
+ 0x19, 0x13, 0xF8, 0x6E, 0x30, 0x7E, 0x44, 0xF0,
+ 0xE4, 0x04, 0xDC, 0x05, 0x36, 0xD0, 0xFE, 0xF1,
+ 0x6A, 0x69, 0x69, 0x69, 0xFF, 0x00, 0x72, 0x00,
+ 0x49, 0x3B, 0xFF, 0xDB, 0xFF, 0xB3, 0xF6, 0x8C,
+ 0x72, 0x4F, 0xF2, 0xDD, 0x62, 0xFE, 0xC7, 0xFF,
+ 0x64, 0x03, 0x64, 0x32, 0x4F, 0xF5, 0xC8, 0xA1,
+ 0xC2, 0x01, 0x63, 0x62, 0x2E, 0xFF, 0x14, 0x01,
+ 0xA0, 0x61, 0xAC, 0x72, 0x01, 0x80, 0xAC, 0xF2,
+ 0x64, 0x24, 0x13, 0xF4, 0x0F, 0x20, 0xFF, 0x27,
+ 0xF1, 0x4F, 0xE5, 0xF0, 0x64, 0x3D, 0x52, 0x28,
+ 0x03, 0x13, 0xFD, 0xDA, 0x02, 0xDB, 0xF1, 0xFF,
+ 0xF0, 0x11, 0x05, 0xE1, 0xEF, 0xF3, 0x2A, 0x91,
+ 0x2B, 0xB0, 0x27, 0xFF, 0x14, 0x06, 0xF3, 0xA5,
+ 0x7C, 0x0C, 0xCB, 0x83, 0xDD, 0x57, 0x9E, 0xB4,
+ 0xB4, 0x82, 0xA7, 0x35, 0x42, 0x3E, 0x41, 0x42,
+ 0x93, 0x34, 0x66, 0x68, 0x68, 0x69, 0x68, 0x00,
+ 0x03, 0xFE, 0x27, 0xF1, 0xDC, 0x00, 0x77, 0xFF,
+ 0x13, 0xFC, 0xDC, 0x51, 0x00, 0x84, 0xEF, 0xF2,
+ 0x2A, 0xFF, 0xB4, 0x91, 0xDB, 0xFF, 0x13, 0xFF,
+ 0x75, 0xB2, 0x5D, 0x31, 0xF0, 0x51, 0x78, 0xF3,
+ 0x00, 0x1F, 0x7F, 0x2A, 0x28, 0xA0, 0xF0, 0x50,
+ 0x4F, 0x41, 0x00, 0x23, 0x3B, 0xF1, 0x77, 0x44,
+ 0xFD, 0xB0, 0xFF, 0x27, 0x55, 0x28, 0x04, 0xB3,
+ 0xF3, 0x8C, 0x72, 0x61, 0xE3, 0x13, 0xF4, 0x8F,
+ 0x01, 0x13, 0xF9, 0xFF, 0x77, 0xD2, 0xEC, 0xB3,
+ 0x8B, 0xFB, 0xE1, 0xE5, 0x13, 0x19, 0x13, 0x89,
+ 0xBA, 0x73, 0xF8, 0xB2, 0xCB, 0xA4, 0x11, 0xF8,
+ 0xC2, 0x2A, 0x26, 0x00, 0x00, 0x2A, 0x00, 0x53,
+ 0x00, 0x70, 0x2F, 0x2A, 0x2C, 0x14, 0x04, 0x68,
+ 0x13, 0xFF, 0xEF, 0xFE, 0x63, 0xE3, 0x14, 0x31,
+ 0xDE, 0x3F, 0x12, 0x3B, 0xF1, 0x2C, 0xDD, 0x52,
+ 0xEF, 0xFF, 0xEF, 0xFD, 0x27, 0xF2, 0x2D, 0x13,
+ 0x2D, 0x0C, 0x6C, 0xBA, 0x12, 0x0C, 0x6C, 0x8B,
+ 0x91, 0xC8, 0x50, 0xE7, 0xB2, 0x32, 0xE5, 0x30,
+ 0xD7, 0xD1, 0x2F, 0x2D, 0x5A, 0xC1, 0xEC, 0xC1,
+ 0xFD, 0x81, 0xFF, 0x14, 0x25, 0x0B, 0x32, 0xB3,
+ 0xE3, 0x3B, 0x56, 0xFE, 0x60, 0xB4, 0x62, 0x8B,
+ 0xF3, 0xA2, 0x34, 0xFB, 0x27, 0xF7, 0x23, 0x73,
+ 0x27, 0xF7, 0xAE, 0xB7, 0xEF, 0xF7, 0x2B, 0x26,
+ 0xA2, 0x13, 0x9F, 0xBF, 0xF6, 0xF4, 0x0C, 0xD9,
+ 0x83, 0x12, 0xB0, 0x14, 0x12, 0x07, 0x44, 0x13,
+ 0x70, 0xB3, 0x79, 0x2F, 0x28, 0x2A, 0x2A, 0xA0,
+ 0x2A, 0x6C, 0xE0, 0x2C, 0x33, 0xE2, 0xE0, 0x9F,
+ 0xE3, 0xFF, 0xB3, 0xFF, 0xDB, 0xF3, 0x14, 0x05,
+ 0xF0, 0x92, 0xDB, 0xF3, 0xFF, 0x14, 0x8B, 0xEC,
+ 0xEF, 0xF8, 0xEF, 0x26, 0x75, 0x13, 0xF3, 0xC7,
+ 0x50, 0x0C, 0x64, 0x01, 0x13, 0xF1, 0x3A, 0xD2,
+ 0xA0, 0x31, 0xFF, 0x95, 0xE3, 0x87, 0x50, 0x00,
+ 0xA1, 0xD9, 0x20, 0x13, 0xF8, 0x77, 0xD3, 0x9F,
+ 0xE5, 0x4F, 0x44, 0xFF, 0xB5, 0x21, 0x3D, 0x25,
+ 0xDB, 0xF5, 0x8A, 0x12, 0x8E, 0x80, 0xEF, 0xF4,
+ 0xFE, 0xD1, 0x13, 0xFF, 0xFF, 0x27, 0xF4, 0xC2,
+ 0x22, 0x0F, 0xA1, 0x13, 0x8F, 0xBA, 0x41, 0xDA,
+ 0xB2, 0x01, 0xE7, 0xE2, 0x94, 0xCF, 0xBC, 0x30,
+ 0x3C, 0x66, 0x42, 0x3F, 0x67, 0x71, 0x29, 0x80,
+ 0xCB, 0xB2, 0x3E, 0xF5, 0xFE, 0xF5, 0x30, 0x13,
+ 0xFF, 0x9F, 0xFC, 0xEF, 0xF0, 0xB4, 0x31, 0xB3,
+ 0xD1, 0xF0, 0x50, 0x2E, 0xFB, 0xEF, 0xF2, 0xDC,
+ 0xB1, 0x13, 0xFF, 0x13, 0xFF, 0x13, 0xF3, 0x2E,
+ 0x8B, 0xC0, 0x8C, 0x10, 0x7B, 0x2D, 0x14, 0x01,
+ 0xE3, 0x00, 0xA0, 0x42, 0x8C, 0x44, 0x29, 0x78,
+ 0xA0, 0x6F, 0x00, 0xFF, 0x27, 0xFB, 0xC3, 0x82,
+ 0x8B, 0x59, 0x8B, 0x62, 0xDC, 0x75, 0xDB, 0xF8,
+ 0xED, 0xF2, 0xEF, 0xF3, 0xFF, 0xEA, 0xC2, 0xA5,
+ 0xE0, 0x5F, 0x82, 0x27, 0xF7, 0xEE, 0x33, 0x38,
+ 0x84, 0x66, 0x20, 0x27, 0x1A, 0xFF, 0x02, 0x15,
+ 0x03, 0xB3, 0x4F, 0x56, 0xA1, 0xD6, 0x50, 0x14,
+ 0x00, 0xB8, 0xA6, 0x60, 0x3C, 0x80, 0xFD, 0x6C,
+ 0xB0, 0x80, 0x13, 0xE1, 0x62, 0x27, 0xFF, 0xDB,
+ 0xF9, 0xF0, 0x13, 0x6D, 0xFC, 0x75, 0xFF, 0xF6,
+ 0x00, 0xDB, 0xF2, 0xC8, 0xA0, 0x27, 0xFF, 0x27,
+ 0xFD, 0xDC, 0x22, 0x64, 0xD5, 0x3B, 0x83, 0xDF,
+ 0xAD, 0xF1, 0x50, 0x45, 0x2C, 0x28, 0x11, 0xEE,
+ 0x41, 0xDE, 0xA2, 0x4F, 0xF7, 0x8C, 0x11, 0xFF,
+ 0x13, 0xF5, 0xDC, 0x34, 0x9F, 0x60, 0xEF, 0xC1,
+ 0xC9, 0x23, 0xEF, 0xF6, 0xC8, 0x33, 0x13, 0xF5,
+ 0xFF, 0xF2, 0xA3, 0xEE, 0x12, 0x43, 0x41, 0x61,
+ 0x82, 0x61, 0x61, 0xFE, 0xE0, 0x3A, 0xA8, 0x27,
+ 0x25, 0xFE, 0x15, 0xD5, 0x90, 0xB4, 0x13, 0xD8,
+ 0x4F, 0xB3, 0x4F, 0x02, 0x78, 0x42, 0x78, 0x93,
+ 0x42, 0x7F, 0x3F, 0xF3, 0xB5, 0x3B, 0xA3, 0x94,
+ 0x23, 0xF5, 0x64, 0xEF, 0xFF, 0xEF, 0xF5, 0xB1,
+ 0x15, 0xA7, 0x63, 0x90, 0x6A, 0xF0, 0xB1, 0x6A,
+ 0x2D, 0xC7, 0xF3, 0xF0, 0xA0, 0x3B, 0xFF, 0xF7,
+ 0x13, 0xFF, 0xD9, 0xB2, 0x8B, 0x60, 0xE2, 0x30,
+ 0x2F, 0x6A, 0x91, 0xEF, 0xB0, 0xCA, 0x60, 0xBF,
+ 0xA0, 0x42, 0x2A, 0x9F, 0xD1, 0x14, 0x51, 0xF2,
+ 0xA0, 0x27, 0xF1, 0x8B, 0xF2, 0x50, 0x24, 0xFF,
+ 0xEF, 0xE6, 0x77, 0xC4, 0x01, 0x11, 0xF1, 0x72,
+ 0x50, 0x12, 0x13, 0xF7, 0xDE, 0xB2, 0x27, 0xF5,
+ 0xC0, 0xD9, 0xB3, 0x13, 0x82, 0x0C, 0x2E, 0x0C,
+ 0x28, 0x44, 0x41, 0x6F, 0x41, 0x13, 0x25, 0x75,
+ 0xC4, 0x2A, 0xF8, 0x60, 0x43, 0x92, 0xEC, 0x57,
+ 0x27, 0x38, 0xFF, 0x4D, 0x70, 0x1A, 0x43, 0x27,
+ 0x27, 0xF2, 0xA0, 0x2B, 0x32, 0x13, 0x52, 0x04,
+ 0xC6, 0x50, 0x02, 0xFF, 0x3C, 0x14, 0xB4, 0x66,
+ 0xFE, 0x00, 0x27, 0xFF, 0xF0, 0x02, 0x8F, 0x3C,
+ 0xB3, 0xF0, 0xF9, 0xB1, 0xFF, 0xF5, 0x70, 0x4F,
+ 0xFF, 0x27, 0xFF, 0x77, 0xF2, 0xDD, 0x80, 0xF6,
+ 0x31, 0x14, 0x00, 0xDC, 0x30, 0xFB, 0xCF, 0x10,
+ 0x79, 0x21, 0x8B, 0x84, 0x04, 0x81, 0xC2, 0x61,
+ 0x2E, 0x41, 0x40, 0x77, 0xF6, 0xFE, 0xD7, 0x93,
+ 0xEF, 0x46, 0xB0, 0x61, 0xA1, 0xB4, 0xF0, 0x93,
+ 0xF1, 0x65, 0x13, 0xF9, 0x0C, 0x77, 0x2B, 0x13,
+ 0x30, 0x88, 0xE1, 0x3A, 0x86, 0x44, 0x27, 0x27,
+ 0xB0, 0x70, 0x6B, 0xF1, 0xFF, 0x61, 0xF4, 0x0F,
+ 0x45, 0xC5, 0xF2, 0x10, 0xF4, 0x8B, 0x62, 0xA6,
+ 0x20, 0xEE, 0xB1, 0x52, 0x53, 0xFB, 0x26, 0x71,
+ 0x2B, 0x25, 0x13, 0x86, 0x27, 0xE3, 0x2D, 0x33,
+ 0x2C, 0x7F, 0x21, 0xC8, 0x77, 0xFF, 0x13, 0xFF,
+ 0x3B, 0xE4, 0x9F, 0xD2, 0x64, 0x72, 0x8C, 0x60,
+ 0x05, 0xE1, 0x4F, 0xF0, 0xB9, 0x72, 0xFF, 0x63,
+ 0xFF, 0x63, 0xFF, 0x27, 0xF2, 0x13, 0xF4, 0x4F,
+ 0xB2, 0x6A, 0xC3, 0xA0, 0x42, 0xF0, 0x40, 0xE7,
+ 0x97, 0x81, 0xEE, 0xD1, 0xB4, 0x00, 0x2A, 0x2B,
+ 0x77, 0xD9, 0x5B, 0xA1, 0x12, 0xA4, 0xFF, 0xB0,
+ 0x73, 0x79, 0x42, 0xDB, 0xC0, 0x78, 0x22, 0x27,
+ 0xF8, 0xC2, 0xC1, 0xEC, 0x42, 0x13, 0x84, 0xEF,
+ 0x27, 0x28, 0x27, 0xF4, 0x50, 0x22, 0x28, 0xC4,
+ 0x11, 0xC4, 0x77, 0x9D, 0xD3, 0x4F, 0x47, 0xFF,
+ 0xBC, 0x61, 0x4F, 0xC6, 0x54, 0x81, 0x79, 0x14,
+ 0x3B, 0x26, 0x78, 0xC0, 0x8B, 0xE1, 0x28, 0xB4,
+ 0xFF, 0x3C, 0x52, 0x53, 0x25, 0x54, 0x93, 0x27,
+ 0xFF, 0xC7, 0xF7, 0xC8, 0x31, 0xF9, 0x00, 0x87,
+ 0x40, 0xFF, 0x87, 0x50, 0x8B, 0xF2, 0xF5, 0xA2,
+ 0x77, 0xFF, 0x77, 0xFF, 0x3B, 0xF2, 0xF0, 0xE1,
+ 0x63, 0x04, 0xEF, 0x13, 0xA1, 0xDB, 0xC0, 0x64,
+ 0x41, 0x2B, 0xF0, 0x10, 0xF0, 0x01, 0xFC, 0xF0,
+ 0x4E, 0x60, 0xFF, 0x27, 0xF8, 0x6F, 0xF4, 0x13,
+ 0xF7, 0xEC, 0x81, 0xC9, 0xC2, 0xC8, 0x45, 0x77,
+ 0xF4, 0xFC, 0x23, 0xD8, 0x4E, 0x0C, 0x62, 0x74,
+ 0x2A, 0x3B, 0xF0, 0xB0, 0x83, 0x44, 0x44, 0x44,
+ 0xFB, 0xD7, 0xE0, 0x87, 0x70, 0xD8, 0x62, 0x50,
+ 0x23, 0x4C, 0x86, 0x29, 0x92, 0x11, 0x14, 0xC7,
+ 0xFF, 0x14, 0x92, 0xCA, 0x12, 0x14, 0x26, 0xB4,
+ 0x92, 0x9F, 0xD2, 0xCB, 0x68, 0x54, 0x83, 0xA7,
+ 0x30, 0x9B, 0xF0, 0xF8, 0x6D, 0x2D, 0x63, 0x15,
+ 0xEF, 0xFC, 0x2B, 0x86, 0xD0, 0x43, 0x64, 0xFF,
+ 0xF4, 0xE0, 0xEF, 0xF0, 0x14, 0x91, 0x27, 0xFF,
+ 0x8B, 0xFF, 0xEF, 0xF4, 0xF1, 0x30, 0x92, 0x43,
+ 0xFF, 0xDC, 0x00, 0x92, 0xB1, 0xF1, 0x20, 0xDC,
+ 0x01, 0xFA, 0x51, 0x1B, 0xC4, 0x9F, 0xE1, 0x4F,
+ 0xF4, 0xFF, 0x12, 0x73, 0x62, 0xB6, 0xC7, 0x94,
+ 0x28, 0x05, 0xEF, 0x30, 0x28, 0x03, 0xE9, 0x28,
+ 0xC2, 0x83, 0xFF, 0xB0, 0xCC, 0x71, 0x52, 0x76,
+ 0x04, 0xFF, 0x38, 0x75, 0x48, 0xC4, 0xD4, 0x78,
+ 0x68, 0x29, 0x29, 0xFF, 0x00, 0x7B, 0x3C, 0x07,
+ 0xB4, 0x71, 0x14, 0xC4, 0xCE, 0xE0, 0x40, 0xA6,
+ 0xF1, 0x31, 0x28, 0x21, 0xFF, 0xEF, 0xFF, 0x7E,
+ 0x33, 0x44, 0x01, 0x3B, 0x43, 0x13, 0xF1, 0x2A,
+ 0xD0, 0xF8, 0xB0, 0x27, 0xFF, 0xFF, 0xB3, 0xEE,
+ 0xDB, 0xF1, 0xF0, 0x61, 0x63, 0x51, 0x50, 0x02,
+ 0x8B, 0x92, 0xF1, 0x61, 0x83, 0xE3, 0xFF, 0x8B,
+ 0xC1, 0xFF, 0x11, 0x51, 0x21, 0x63, 0xF4, 0x62,
+ 0xA3, 0xEE, 0x51, 0x13, 0xF8, 0x79, 0x03, 0xFF,
+ 0xE9, 0x53, 0x9A, 0x92, 0xEF, 0x93, 0x2A, 0xE6,
+ 0x35, 0x47, 0xF0, 0xF2, 0x8C, 0x92, 0xFF, 0x85,
+ 0x1E, 0x43, 0x43, 0x2A, 0x28, 0x10, 0x77, 0xB4,
+ 0x14, 0xFD, 0x8F, 0x32, 0x26, 0x7C, 0x26, 0x3A,
+ 0xE3, 0x4E, 0x5A, 0x12, 0x84, 0x3B, 0x11, 0xA1,
+ 0x83, 0x42, 0x42, 0xBF, 0x64, 0x74, 0x26, 0x3C,
+ 0xB1, 0x50, 0x13, 0xB5, 0x84, 0xEE, 0x35, 0x27,
+ 0xE7, 0xEF, 0xF6, 0xFF, 0xBC, 0x62, 0xBC, 0xB0,
+ 0x13, 0x22, 0x27, 0xE0, 0xC3, 0x50, 0x3B, 0xF5,
+ 0x63, 0xFF, 0x13, 0xFF, 0xFF, 0xC7, 0xF2, 0x28,
+ 0x62, 0xFD, 0x82, 0xBA, 0xD0, 0xBB, 0x02, 0x29,
+ 0x41, 0xFA, 0xD2, 0x77, 0xC3, 0xFF, 0xF0, 0xA0,
+ 0xC7, 0xF6, 0xEF, 0xC1, 0x75, 0x53, 0x62, 0xA3,
+ 0xDA, 0x73, 0xDA, 0xB3, 0xBF, 0xF3, 0xF8, 0x39,
+ 0xC2, 0x3A, 0xDC, 0x71, 0xC7, 0x9D, 0x52, 0xC7,
+ 0xD1, 0x2A, 0x2A, 0x44, 0x5F, 0x41, 0xEF, 0x40,
+ 0x43, 0x27, 0xA9, 0xF4, 0xC0, 0x60, 0x96, 0xAF,
+ 0xC2, 0x4B, 0xD5, 0xFC, 0xA3, 0xB1, 0xC5, 0x83,
+ 0x13, 0xFD, 0x14, 0x75, 0x2C, 0x19, 0x42, 0x36,
+ 0x2C, 0x2B, 0x7B, 0x68, 0x13, 0xB5, 0x14, 0x1C,
+ 0xEF, 0xF4, 0xD0, 0x63, 0x2A, 0x4F, 0xB0, 0x14,
+ 0x32, 0xFD, 0xD7, 0x51, 0xF9, 0xC0, 0x29, 0x13,
+ 0x77, 0xFF, 0x27, 0xFF, 0xDB, 0xF3, 0x2D, 0xEF,
+ 0x64, 0xFF, 0x63, 0xB4, 0xF1, 0x32, 0xA0, 0x36,
+ 0x50, 0x82, 0xC7, 0xF4, 0xB3, 0xA3, 0x77, 0xD2,
+ 0x13, 0xF7, 0xFF, 0x3B, 0x53, 0x13, 0xA3, 0x84,
+ 0x18, 0x62, 0xEB, 0xDC, 0xE0, 0xDB, 0xD1, 0xC6,
+ 0x43, 0xD7, 0x01, 0xFE, 0x3C, 0xA8, 0xD7, 0xF4,
+ 0x74, 0x17, 0xD8, 0x11, 0xB1, 0x52, 0xDB, 0x83,
+ 0xF2, 0x61, 0x26, 0xFF, 0xB3, 0xB2, 0x54, 0xF4,
+ 0xEE, 0x11, 0x13, 0xF8, 0x04, 0xD3, 0x05, 0x53,
+ 0x92, 0x44, 0xF2, 0xA4, 0x7D, 0x6C, 0x14, 0x0F,
+ 0x13, 0xFF, 0x76, 0xB2, 0xBC, 0xA2, 0xCE, 0x41,
+ 0x2A, 0x9F, 0xF1, 0xFF, 0x27, 0xFF, 0xDB, 0xFF,
+ 0x13, 0xF8, 0x26, 0xD2, 0x4F, 0xE1, 0x00, 0x08,
+ 0x68, 0xE0, 0xA1, 0x80, 0x3F, 0x2C, 0x29, 0xF0,
+ 0xD0, 0x63, 0xF1, 0x8C, 0x00, 0xDB, 0x62, 0xF0,
+ 0x21, 0xE9, 0x45, 0xFE, 0xEF, 0x83, 0xE7, 0x54,
+ 0x75, 0xBA, 0x13, 0xFE, 0x13, 0xA3, 0xB2, 0x81,
+ 0x89, 0xA7, 0x44, 0x41, 0x41, 0xEA, 0x21, 0x44,
+ 0x2A, 0x43, 0x28, 0x43, 0x66, 0x93, 0xFF, 0xF1,
+ 0x12, 0x9D, 0xEA, 0xF8, 0x00, 0xC7, 0x25, 0x55,
+ 0x24, 0xB6, 0xD3, 0x06, 0xFE, 0x4E, 0x43, 0xF1,
+ 0xFF, 0xC0, 0xD7, 0x71, 0x9D, 0x00, 0xB3, 0xE5,
+ 0x68, 0x68, 0x2C, 0x28, 0x1F, 0xFF, 0xEF, 0xF7,
+ 0x86, 0x92, 0x8A, 0xB0, 0x27, 0xC3, 0x50, 0x94,
+ 0xDB, 0xF1, 0xCF, 0x92, 0xEF, 0xFF, 0xFD, 0x4F,
+ 0xFD, 0xC7, 0xF4, 0x14, 0x04, 0x63, 0xE2, 0x8B,
+ 0x93, 0x13, 0xF1, 0x2B, 0x8B, 0xE0, 0xFF, 0xE5,
+ 0xA0, 0x78, 0x80, 0xE5, 0xF0, 0x13, 0xF3, 0x13,
+ 0xC7, 0xB3, 0xF5, 0x13, 0x9A, 0xFF, 0x61, 0xCF,
+ 0x5B, 0xB5, 0xFF, 0xE6, 0x2C, 0x0C, 0xE0, 0xC1,
+ 0x4D, 0x7F, 0xF5, 0x62, 0xB6, 0x66, 0xEE, 0x3C,
+ 0x61, 0x51, 0x47, 0x65, 0x0D, 0x6A, 0xD5, 0x50,
+ 0xD9, 0x02, 0x1A, 0x79, 0x68, 0x43, 0x68, 0x3E,
+ 0x95, 0x2A, 0x6A, 0x6A, 0x68, 0x13, 0x31, 0x02,
+ 0x70, 0xD7, 0x00, 0x24, 0x03, 0x42, 0x68, 0x14,
+ 0x01, 0x28, 0xED, 0x30, 0x3C, 0x3F, 0x13, 0xFC,
+ 0xFC, 0x63, 0xD1, 0x3C, 0x11, 0x9F, 0x60, 0x9F,
+ 0xF4, 0x8C, 0xA1, 0xEF, 0xDB, 0x00, 0x00, 0xFF,
+ 0x63, 0xFF, 0x00, 0x11, 0xEF, 0xF2, 0x77, 0x62,
+ 0x4F, 0xF2, 0x4F, 0x53, 0x4F, 0x91, 0x13, 0xF1,
+ 0xFF, 0xFB, 0x20, 0xB4, 0x20, 0xD7, 0xA0, 0x27,
+ 0xF2, 0xB2, 0x00, 0xFD, 0x86, 0xFF, 0x60, 0xDB,
+ 0xA4, 0xFF, 0x13, 0x53, 0x5B, 0x60, 0xD5, 0x10,
+ 0xD8, 0xD4, 0xFE, 0x75, 0x3B, 0x13, 0x75, 0xDA,
+ 0xFF, 0xC3, 0x8E, 0xDC, 0xD2, 0x41, 0x41, 0x44,
+ 0xF0, 0x41, 0x64, 0x00, 0xEC, 0x62, 0x44, 0xF2,
+ 0x9D, 0x81, 0xA7, 0xE3, 0xBB, 0xE3, 0xEF, 0xE0,
+ 0x6B, 0x6C, 0x00, 0x00, 0x6A, 0xCB, 0xFC, 0xC0,
+ 0xDB, 0xF2, 0x68, 0x68, 0x74, 0x94, 0x28, 0xAF,
+ 0x41, 0x15, 0x50, 0x80, 0xC3, 0xA2, 0x68, 0x68,
+ 0x68, 0x6B, 0x68, 0x6B, 0x2B, 0xFB, 0x27, 0x52,
+ 0x15, 0x33, 0xE1, 0x10, 0x15, 0x12, 0xFC, 0xE1,
+ 0x28, 0x28, 0x0D, 0x64, 0x73, 0xBF, 0x78, 0xA0,
+ 0x2F, 0x27, 0xE1, 0x63, 0xF5, 0x8B, 0x90, 0xF9,
+ 0x13, 0xB3, 0xF2, 0x8B, 0xFF, 0xFE, 0x13, 0xFF,
+ 0x3B, 0xF9, 0x50, 0x42, 0xB3, 0xD4, 0xF0, 0x22,
+ 0xEF, 0x32, 0xC8, 0xE0, 0x2A, 0x3F, 0x2C, 0x29,
+ 0xC8, 0x20, 0xF9, 0x50, 0x13, 0xF7, 0x72, 0x33,
+ 0x9A, 0x75, 0x13, 0x63, 0x82, 0x13, 0xD0, 0x43,
+ 0x43, 0x43, 0x28, 0x27, 0x14, 0x11, 0x2A, 0xFE,
+ 0x75, 0x11, 0x13, 0xBA, 0xFF, 0xB5, 0x9C, 0xE1,
+ 0xF0, 0x37, 0x8D, 0xFB, 0xD8, 0xD3, 0x2B, 0x0F,
+ 0x2A, 0x6A, 0x6C, 0x69, 0xFE, 0x23, 0x84, 0xF1,
+ 0x13, 0xA0, 0x13, 0xE1, 0xBC, 0x39, 0x13, 0x2C,
+ 0x14, 0x81, 0xD6, 0xB0, 0x12, 0x82, 0xD7, 0x31,
+ 0x6B, 0x2B, 0xBB, 0x00, 0x11, 0x68, 0x3B, 0x30,
+ 0x14, 0x71, 0xA6, 0x81, 0x68, 0x00, 0x20, 0x14,
+ 0xD0, 0x77, 0x28, 0x3C, 0x02, 0x15, 0xD2, 0x28,
+ 0x01, 0x0C, 0x18, 0x31, 0x28, 0x5B, 0x13, 0xF8,
+ 0xFD, 0xE2, 0xE8, 0xE3, 0x92, 0x27, 0xF5, 0xC7,
+ 0xFF, 0x27, 0xFF, 0x77, 0xF4, 0x2C, 0xA0, 0x01,
+ 0xFF, 0x77, 0x93, 0xC7, 0xF3, 0x28, 0x02, 0xEF,
+ 0xA2, 0xFC, 0xC0, 0xB4, 0x32, 0xF0, 0x31, 0x85,
+ 0xE4, 0xFF, 0xFE, 0xB7, 0xFC, 0xD1, 0x13, 0x60,
+ 0x13, 0x80, 0xFF, 0xE3, 0x00, 0xB7, 0x27, 0x75,
+ 0x24, 0x83, 0xF3, 0xED, 0x40, 0xB7, 0x24, 0xFE,
+ 0x82, 0x29, 0x83, 0x2C, 0x2A, 0xDB, 0xF3, 0x10,
+ 0x81, 0xB2, 0x72, 0x38, 0x69, 0x26, 0xC1, 0xDA,
+ 0x11, 0x68, 0x68, 0xF2, 0xE2, 0x68, 0x01, 0x6C,
+ 0x6C, 0x68, 0x68, 0x66, 0x66, 0x66, 0x26, 0x40,
+ 0xFE, 0xF0, 0x81, 0xEA, 0xB4, 0x13, 0xA0, 0x9D,
+ 0x12, 0x9D, 0xB5, 0x9E, 0x01, 0x3C, 0x40, 0x2A,
+ 0x00, 0x28, 0x6A, 0x28, 0x66, 0x26, 0x66, 0x66,
+ 0x26, 0x7E, 0x68, 0x15, 0x50, 0x3D, 0x62, 0xF5,
+ 0x80, 0x03, 0x70, 0xDA, 0x12, 0x00, 0x0A, 0x6B,
+ 0xFF, 0x27, 0xF1, 0xD6, 0xA2, 0xE2, 0x96, 0xB3,
+ 0x22, 0x3B, 0xF6, 0xB3, 0xFF, 0x3B, 0xFF, 0x9F,
+ 0xF2, 0xFF, 0x8B, 0x92, 0xDB, 0xB2, 0x13, 0x73,
+ 0x8C, 0x91, 0x13, 0xF3, 0x14, 0x00, 0xF0, 0x22,
+ 0xB4, 0xA1, 0xFF, 0xF3, 0x00, 0xA5, 0x50, 0x75,
+ 0x5E, 0xFF, 0x84, 0x14, 0x42, 0x00, 0x43, 0x62,
+ 0xB2, 0x08, 0x92, 0xFA, 0x38, 0x95, 0xAF, 0xC4,
+ 0x89, 0x92, 0xFE, 0x34, 0x35, 0x90, 0x69, 0x00,
+ 0x00, 0x84, 0x81, 0x00, 0x41, 0x69, 0x69, 0x6B,
+ 0x6B, 0x68, 0x68, 0x27, 0x13, 0xE7, 0xFC, 0x91,
+ 0x12, 0x36, 0xFD, 0x63, 0x2A, 0x2A, 0x28, 0x13,
+ 0xEA, 0x42, 0x9C, 0x73, 0xFE, 0xFD, 0xC0, 0x3B,
+ 0x20, 0x28, 0x44, 0x3B, 0xD0, 0x16, 0x62, 0x7A,
+ 0x21, 0x16, 0x60, 0x26, 0x3E, 0x26, 0x66, 0x63,
+ 0xB0, 0x14, 0x20, 0x64, 0x31, 0x18, 0x32, 0x64,
+ 0x20, 0x2F, 0xFF, 0x8C, 0x4A, 0xB4, 0xD4, 0x13,
+ 0xFD, 0xEF, 0x10, 0x27, 0xF7, 0x9F, 0xFF, 0x4F,
+ 0xFF, 0xB3, 0xF2, 0xFF, 0xF0, 0x73, 0x47, 0x36,
+ 0xB3, 0x62, 0xF0, 0xA1, 0xB3, 0xF2, 0xDB, 0xE0,
+ 0x28, 0x21, 0xF2, 0x82, 0xFF, 0xE4, 0x21, 0xD8,
+ 0x3C, 0xEF, 0x72, 0x27, 0x85, 0xED, 0x75, 0x4B,
+ 0xD5, 0xFB, 0x11, 0x3A, 0x57, 0xFC, 0xEB, 0xD0,
+ 0x25, 0x80, 0x11, 0x86, 0xC0, 0xD2, 0x12, 0xC2,
+ 0xAD, 0x94, 0x67, 0x67, 0x3F, 0x67, 0x6A, 0x00,
+ 0x30, 0x25, 0xF3, 0xF0, 0x71, 0x39, 0xF2, 0x14,
+ 0x03, 0x14, 0x97, 0xFA, 0x15, 0x85, 0x11, 0x64,
+ 0x4F, 0x92, 0x63, 0x72, 0xF8, 0xB0, 0x6A, 0x2A,
+ 0x30, 0x66, 0xFB, 0x76, 0xF0, 0x64, 0x90, 0x6C,
+ 0x66, 0x51, 0x91, 0x51, 0x22, 0x2D, 0xA0, 0x51,
+ 0xB9, 0xAE, 0xFF, 0x13, 0xFD, 0x4F, 0xF4, 0x8B,
+ 0xF0, 0x3B, 0xFF, 0xB4, 0x62, 0xEF, 0x44, 0x8A,
+ 0x57, 0x9F, 0xB2, 0xFF, 0xDC, 0x23, 0x13, 0xF8,
+ 0x28, 0x52, 0x5C, 0x12, 0x27, 0xB2, 0xF2, 0xA1,
+ 0xE4, 0x91, 0xD8, 0x1D, 0xFF, 0xF0, 0x43, 0x27,
+ 0xA5, 0xBF, 0xC1, 0xB1, 0x95, 0xEC, 0x94, 0x0C,
+ 0x02, 0x25, 0xB0, 0x00, 0x13, 0xE0, 0x70, 0xE0,
+ 0x25, 0x03, 0x60, 0xB0, 0x28, 0x28, 0x6C, 0x2C,
+ 0x6C, 0xC4, 0x00, 0xE2, 0xB6, 0xE1, 0x27, 0x27,
+ 0x67, 0x02, 0x42, 0x28, 0x2A, 0xAF, 0x14, 0x60,
+ 0x67, 0xD6, 0x91, 0x68, 0x02, 0x20, 0x62, 0x40,
+ 0x76, 0x11, 0xC7, 0xB0, 0xDE, 0xC8, 0x11, 0xF0,
+ 0x03, 0x2A, 0x3F, 0x72, 0xDC, 0x6A, 0x40, 0x34,
+ 0x7A, 0x21, 0x28, 0x7B, 0x66, 0x77, 0x00, 0x27,
+ 0x13, 0x04, 0xE3, 0xCE, 0xE3, 0x2A, 0x1D, 0x30,
+ 0xF0, 0x69, 0xFF, 0x13, 0xFF, 0xC8, 0x15, 0xE4,
+ 0x03, 0x4F, 0xF5, 0x77, 0xFF, 0xC6, 0x12, 0x3A,
+ 0x33, 0xB1, 0xB4, 0xFE, 0x6E, 0xF5, 0x12, 0x42,
+ 0xDC, 0x02, 0x8C, 0x02, 0xDC, 0xE2, 0x13, 0xF3,
+ 0xB4, 0x22, 0x2B, 0xDB, 0x26, 0xA7, 0x27, 0xFD,
+ 0x42, 0x00, 0x00, 0xD3, 0xB1, 0x42, 0xF2, 0xF2,
+ 0xFD, 0x90, 0xFF, 0x98, 0x40, 0x10, 0x11, 0x86,
+ 0x04, 0x98, 0x11, 0x36, 0xC1, 0x5F, 0xB4, 0x25,
+ 0x45, 0x71, 0xA0, 0xAF, 0x86, 0xF2, 0x2A, 0x74,
+ 0x80, 0x67, 0x5E, 0x51, 0xFE, 0x87, 0xA5, 0x0E,
+ 0x74, 0x21, 0xFD, 0xDD, 0xC4, 0xD9, 0x11, 0x64,
+ 0x71, 0x65, 0x32, 0xED, 0x44, 0x9E, 0xE2, 0x6A,
+ 0x79, 0x81, 0xFF, 0xF4, 0x36, 0xCF, 0x26, 0x78,
+ 0x81, 0x31, 0x13, 0x14, 0x0F, 0x27, 0x34, 0x95,
+ 0x87, 0xF8, 0xB4, 0xFF, 0xDF, 0x41, 0xFB, 0x94,
+ 0x13, 0xFF, 0xD9, 0xE2, 0xC6, 0x52, 0x77, 0x13,
+ 0xF8, 0xD5, 0xFC, 0xA1, 0xFF, 0xC8, 0x34, 0x2A,
+ 0x49, 0xEE, 0x03, 0xFF, 0xA2, 0x13, 0xFF, 0x01,
+ 0x37, 0xAD, 0xB2, 0x84, 0xB1, 0xFF, 0xAB, 0xA1,
+ 0x23, 0xE1, 0xAB, 0x50, 0x70, 0x82, 0x4C, 0x14,
+ 0xFF, 0x61, 0x9E, 0xC6, 0xFD, 0x20, 0xFF, 0xC7,
+ 0x21, 0xEE, 0x8C, 0x8C, 0x82, 0xB4, 0x26, 0xEC,
+ 0x84, 0x0D, 0x7A, 0x99, 0x01, 0xE1, 0xB0, 0xFF,
+ 0xEF, 0x11, 0x3A, 0xB1, 0x4E, 0x80, 0x4E, 0xC0,
+ 0xCE, 0xF7, 0xDF, 0x38, 0xC8, 0x23, 0xF7, 0x24,
+ 0xFC, 0x90, 0xF4, 0x19, 0xF7, 0x14, 0x1D, 0xC7,
+ 0xD3, 0x80, 0xBE, 0x13, 0xFF, 0x00, 0x00, 0xFF,
+ 0xE4, 0xD5, 0xF0, 0x21, 0x13, 0x64, 0x96, 0xC8,
+ 0x00, 0x57, 0xE8, 0xC3, 0xD4, 0x01, 0xED, 0xA7,
+ 0xF0, 0x27, 0xFF, 0xDC, 0x32, 0x62, 0xD3, 0xFF,
+ 0x70, 0x43, 0x43, 0x2B, 0x83, 0x87, 0x60, 0x70,
+ 0x81, 0x83, 0x68, 0x83, 0xEE, 0x32, 0x89, 0x7A,
+ 0x13, 0x83, 0xEF, 0xDB, 0x37, 0x37, 0xF4, 0x13,
+ 0xA8, 0x44, 0xDC, 0x45, 0xBA, 0xB1, 0x55, 0x63,
+ 0xDD, 0x52, 0xFF, 0xA4, 0x32, 0xF4, 0xD0, 0xF5,
+ 0x71, 0x28, 0x72, 0xE1, 0x97, 0xF0, 0x32, 0xF2,
+ 0x83, 0x13, 0xF9, 0xFF, 0xF8, 0x40, 0xAB, 0x30,
+ 0xF2, 0x06, 0x6C, 0x65, 0x3C, 0x1F, 0xBA, 0x0A,
+ 0x13, 0xFF, 0x27, 0xFF, 0x3F, 0x00, 0x2B, 0xB1,
+ 0xB1, 0x13, 0xB4, 0xAA, 0x58, 0x14, 0x09, 0xFC,
+ 0xA6, 0xC1, 0xA5, 0xFF, 0x27, 0x85, 0x3B, 0xFF,
+ 0x88, 0x53, 0x08, 0x5F, 0xC7, 0x21, 0xF0, 0x18,
+ 0x66, 0x32, 0xFF, 0xD3, 0xFF, 0x9F, 0x23, 0x03,
+ 0x36, 0xF3, 0x03, 0x28, 0x97, 0xA4, 0x10, 0xA0,
+ 0xA7, 0xCA, 0x9B, 0x26, 0x1A, 0xFF, 0xF6, 0x54,
+ 0xE2, 0xD9, 0x23, 0xEF, 0xF1, 0xE5, 0x13, 0xF6,
+ 0x50, 0x2F, 0x13, 0xFF, 0x27, 0xFF, 0xFF, 0x27,
+ 0xFD, 0x27, 0x84, 0x13, 0xF5, 0x27, 0xE9, 0x13,
+ 0x9D, 0x13, 0xD3, 0x27, 0xE4, 0x50, 0x0F, 0xE3,
+ 0x62, 0xE3, 0x32, 0xD9, 0x50, 0x60, 0x3F, 0x42,
+ 0x42, 0xDB, 0xDC, 0xC6, 0xC0, 0xF9, 0x77, 0xF2,
+ 0x39, 0x05, 0x2A, 0xE2, 0xD8, 0xC0, 0x27, 0xD6,
+ 0x43, 0x43, 0xEE, 0x30, 0xFF, 0xB7, 0xC0, 0xDB,
+ 0xC5, 0xE1, 0x28, 0xB6, 0x2E, 0x2D, 0x56, 0x40,
+ 0x11, 0xF7, 0x0A, 0x29, 0x75, 0xFF, 0x13, 0x98,
+ 0x27, 0xFB, 0x3C, 0x1F, 0x27, 0xFF, 0x3B, 0xFF,
+ 0x3B, 0xFC, 0xE7, 0x61, 0xB2, 0x61, 0xFF, 0x3B,
+ 0xC6, 0x27, 0x69, 0x36, 0xA8, 0x27, 0x85, 0x14,
+ 0x46, 0x4F, 0xFE, 0x4D, 0x01, 0x5E, 0xD2, 0x1F,
+ 0x2A, 0x41, 0x41, 0xB3, 0xA2, 0xE8, 0x40, 0x23,
+ 0xD2, 0x29, 0x75, 0x49, 0x66, 0xFF, 0x3B, 0xB5,
+ 0xAA, 0x77, 0xBE, 0xA3, 0xEF, 0xB7, 0x7B, 0x01,
+ 0x3A, 0x31, 0xDA, 0x22, 0x30, 0x8B, 0xFF, 0xCB,
+ 0xA5, 0xCC, 0x44, 0x4E, 0x56, 0xBC, 0x92, 0xF6,
+ 0x77, 0x3C, 0xA2, 0xF8, 0x29, 0x13, 0xFF, 0xFD,
+ 0x78, 0x3F, 0x3B, 0xFF, 0x4F, 0xFF, 0x4F, 0xFF,
+ 0x63, 0x2A, 0x13, 0xCA, 0x29, 0xD5, 0xC2, 0xFE,
+ 0x27, 0xEA, 0x9E, 0x03, 0x63, 0xFE, 0x83, 0xD2,
+ 0x72, 0x24, 0xD8, 0x46, 0xC8, 0x82, 0x41, 0x3F,
+ 0x3D, 0x41, 0xB4, 0xB3, 0xC6, 0x64, 0x38, 0x65,
+ 0x55, 0x46, 0xF0, 0x55, 0x51, 0xF4, 0x7D, 0x44,
+ 0x62, 0x42, 0x5E, 0xE4, 0x39, 0x65, 0xCF, 0xB1,
+ 0x14, 0xB6, 0x2A, 0xEC, 0x00, 0xFF, 0x3F, 0xD4,
+ 0x00, 0xA0, 0xF5, 0xD1, 0x39, 0x94, 0x3A, 0x9C,
+ 0x64, 0x54, 0x14, 0x0E, 0x13, 0xF7, 0xFF, 0x8C,
+ 0x4F, 0x4F, 0xFF, 0x63, 0xFF, 0x8B, 0xFA, 0x00,
+ 0x0E, 0x4E, 0xEC, 0x13, 0xCE, 0x4F, 0xFF, 0xE7,
+ 0x13, 0xC3, 0x36, 0x37, 0xF1, 0x00, 0x41, 0x41,
+ 0xEC, 0xE4, 0xD9, 0xF8, 0xDE, 0x33, 0xFF, 0x74,
+ 0xA1, 0x70, 0xC4, 0x00, 0xF4, 0xA1, 0xC1, 0xDC,
+ 0x34, 0x13, 0xF3, 0xF0, 0x92, 0x4F, 0xE3, 0xFF,
+ 0x97, 0xF4, 0x8C, 0xA3, 0x9F, 0x52, 0xF5, 0xC0,
+ 0x56, 0x34, 0x4C, 0xE4, 0x53, 0x13, 0xE0, 0x21,
+ 0xFF, 0x14, 0x17, 0x8F, 0xA9, 0x51, 0x66, 0x3B,
+ 0xFF, 0x8C, 0x4F, 0x63, 0xFF, 0x42, 0x98, 0xFB,
+ 0x31, 0xFF, 0x13, 0xFF, 0x31, 0xFE, 0xA9, 0x73,
+ 0x13, 0x6F, 0x28, 0x2C, 0x8B, 0xE5, 0xAB, 0x75,
+ 0xFF, 0xA5, 0x10, 0x41, 0x2A, 0x43, 0x3B, 0xE0,
+ 0x29, 0x43, 0x41, 0x41, 0xCF, 0x60, 0xA2, 0x27,
+ 0xE0, 0x41, 0x41, 0x4C, 0xE0, 0xAE, 0x43, 0x68,
+ 0x75, 0x4B, 0xA8, 0xFF, 0x66, 0x77, 0x7A, 0x04,
+ 0xFC, 0x10, 0x29, 0x52, 0x88, 0x46, 0x71, 0x77,
+ 0x39, 0x04, 0x14, 0x10, 0xFF, 0xCC, 0x31, 0x8A,
+ 0x78, 0xB1, 0x84, 0x8B, 0xC0, 0x8B, 0x96, 0xAF,
+ 0x94, 0xBB, 0x52, 0xA4, 0xC3, 0xFC, 0x3B, 0xFF,
+ 0xB4, 0x5F, 0x77, 0xFF, 0xB9, 0xA7, 0xED, 0xF1,
+ 0xC7, 0xFD, 0x0C, 0x0C, 0x77, 0x0C, 0x8A, 0xAC,
+ 0x01, 0x10, 0x01, 0x40, 0x29, 0x00, 0x63, 0x01,
+ 0xE5, 0x3C, 0x1F, 0xE7, 0x9F, 0xF4, 0x5F, 0x73,
+ 0x89, 0xAC, 0x43, 0x41, 0x9D, 0x21, 0x9D, 0xD1,
+ 0x94, 0x56, 0xFE, 0x8F, 0x91, 0x82, 0x3C, 0x8D,
+ 0x05, 0xA9, 0xA4, 0xDD, 0xA0, 0xDD, 0xE2, 0xFC,
+ 0x11, 0x44, 0xF8, 0x14, 0x31, 0x98, 0x2D, 0x85,
+ 0xC9, 0xAD, 0x00, 0xF7, 0x94, 0x27, 0x27, 0x27,
+ 0xFF, 0x77, 0x0C, 0x8D, 0x04, 0x06, 0xFC, 0x13,
+ 0xE7, 0x27, 0xFA, 0xC8, 0x6F, 0x24, 0x16, 0x4D,
+ 0x89, 0xFF, 0xCD, 0xB6, 0xDB, 0xFD, 0x5A, 0x1B,
+ 0x3C, 0xDF, 0x15, 0x6C, 0x00, 0x5D, 0xD3, 0x08,
+ 0x39, 0xF6, 0xF7, 0xDA, 0x72, 0x63, 0xC0, 0x3C,
+ 0x50, 0xF0, 0xD1, 0x41, 0xBC, 0xC7, 0xAD, 0x64,
+ 0xF2, 0x32, 0xFF, 0xB0, 0x47, 0xBF, 0x11, 0xAC,
+ 0xF3, 0xAF, 0xA8, 0xFC, 0x71, 0x9F, 0xE4, 0xA1,
+ 0xF5, 0xB4, 0x13, 0xF7, 0xAD, 0x97, 0x3F, 0x63,
+ 0xF5, 0xF0, 0x14, 0x20, 0x27, 0x9F, 0x15, 0xB3,
+ 0xA6, 0x7A, 0xD4, 0xFF, 0x13, 0xEF, 0x13, 0xFD,
+ 0xDC, 0x7A, 0xAF, 0xCC, 0x7A, 0x96, 0x36, 0x15,
+ 0x13, 0xFF, 0x99, 0x80, 0xFE, 0x64, 0x3A, 0x51,
+ 0x0F, 0x52, 0x2F, 0xB5, 0xCB, 0x1E, 0xBB, 0x0D,
+ 0xB5, 0xDD, 0xD4, 0x43, 0xBF, 0xF1, 0x23, 0x41,
+ 0x16, 0x67, 0xC6, 0x62, 0xC7, 0x53, 0x17, 0x38,
+ 0x10, 0x31, 0xEC, 0x73, 0xFF, 0x52, 0x65, 0x75,
+ 0x76, 0xDC, 0x35, 0xC4, 0xA5, 0x52, 0xF2, 0x8C,
+ 0xAC, 0x28, 0x52, 0xC7, 0x85, 0xDF, 0xB5, 0x01,
+ 0xD6, 0xE3, 0x2F, 0xF7, 0x33, 0x16, 0x01, 0x00,
+ 0x33, 0x27, 0xFF, 0xF0, 0x77, 0xFF, 0x01, 0x6B,
+ 0x7A, 0x47, 0x49, 0xD4, 0xA7, 0x63, 0x8B, 0xFF,
+ 0xC8, 0x13, 0xBD, 0x75, 0x64, 0xFF, 0xFF, 0xF9,
+ 0x66, 0x2D, 0x2B, 0x70, 0xC6, 0x21, 0x3A, 0xD3,
+ 0x06, 0xA3, 0x3B, 0x9C, 0xE0, 0x27, 0x11, 0xFF,
+ 0xD8, 0xB5, 0xB0, 0x92, 0x01, 0x41, 0xD6, 0x78,
+ 0xC8, 0x01, 0x24, 0x90, 0x2B, 0x91, 0x7B, 0x82,
+ 0xFF, 0xFD, 0xE0, 0x00, 0x42, 0xFE, 0x5D, 0x2E,
+ 0xA9, 0xDA, 0xA7, 0x12, 0x12, 0xB3, 0xE7, 0x56,
+ 0x15, 0xCF, 0x15, 0xC6, 0x3E, 0x50, 0x29, 0x29,
+ 0x14, 0x35, 0x12, 0x8F, 0x13, 0xAF, 0xEC, 0x86,
+ 0x9F, 0xBD, 0xEA, 0x2A, 0x2B, 0x9F, 0xFF, 0xF9,
+ 0x64, 0x66, 0xBD, 0xCF, 0xB6, 0xFA, 0xB1, 0xF6,
+ 0xF4, 0x70, 0xDC, 0x86, 0x49, 0x1E, 0xF0, 0x0A,
+ 0x43, 0x77, 0xA0, 0x27, 0x30, 0x28, 0xDF, 0x8B,
+ 0x50, 0xE8, 0x85, 0x29, 0x10, 0x66, 0x8A, 0xC7,
+ 0xDA, 0xF4, 0xE6, 0x5F, 0x28, 0x08, 0x5F, 0x2B,
+ 0x23, 0x73, 0x28, 0x29, 0xB2, 0x26, 0x03, 0x14,
+ 0x3A, 0x3D, 0x96, 0xEF, 0x14, 0xFF, 0x50, 0x91,
+ 0xAA, 0x34, 0x8C, 0x97, 0x27, 0xE6, 0xF6, 0xA2,
+ 0x28, 0x83, 0x26, 0x8F, 0x27, 0x1F, 0xFF, 0x35,
+ 0xB5, 0xBD, 0xE6, 0xE4, 0xC4, 0x4F, 0xFE, 0xDF,
+ 0x25, 0xBB, 0xAA, 0xA8, 0x48, 0x7B, 0xB7, 0xFF,
+ 0x14, 0x91, 0xF9, 0xA6, 0x6F, 0xB9, 0xFB, 0x17,
+ 0xD7, 0x00, 0x24, 0x03, 0xEB, 0x16, 0x51, 0x46,
+ 0xFE, 0xEF, 0xF8, 0xD8, 0x36, 0x8B, 0xF5, 0xC6,
+ 0x46, 0xFE, 0x73, 0xDB, 0x41, 0x8B, 0x41, 0x2B,
+ 0xFF, 0x23, 0x30, 0x3E, 0xB4, 0x0F, 0xB6, 0x7A,
+ 0x03, 0xEA, 0x56, 0xDA, 0xCD, 0xF9, 0xA0, 0xA0,
+ 0xB7, 0xFF, 0x3B, 0x67, 0x27, 0xE1, 0xF5, 0x92,
+ 0x13, 0xFF, 0x3B, 0x5F, 0xD7, 0xDB, 0xBD, 0xE6,
+ 0xC1, 0xA3, 0xFF, 0xC7, 0xFF, 0x0C, 0x4A, 0x7E,
+ 0xC5, 0xE4, 0x39, 0x6C, 0x95, 0xE5, 0xF1, 0xE7,
+ 0x2E, 0xE6, 0xD9, 0xFE, 0x28, 0xAB, 0xFF, 0xA1,
+ 0x8C, 0x33, 0xA0, 0xD0, 0xFD, 0xA2, 0xFF, 0x91,
+ 0xE0, 0x78, 0x2C, 0x8E, 0x0D, 0xFA, 0x27, 0x2C,
+ 0x2B, 0x60, 0x40, 0xA0, 0xC6, 0x8E, 0x92, 0x2D,
+ 0xFF, 0xEF, 0x35, 0xDF, 0xFC, 0xFF, 0xE0, 0xF2,
+ 0xF8, 0xE1, 0xA9, 0xFA, 0x41, 0xDA, 0xC6, 0x05,
+ 0xFB, 0xFF, 0x50, 0x47, 0x4E, 0x8F, 0x4F, 0x1F,
+ 0xCD, 0x91, 0xBD, 0xEB, 0xFA, 0x93, 0x77, 0xFF,
+ 0xBE, 0xD2, 0xFF, 0xE3, 0x27, 0x12, 0x1F, 0xF9,
+ 0xA7, 0xAE, 0x33, 0xFA, 0x18, 0x5A, 0xF4, 0x5F,
+ 0x16, 0xFB, 0xE8, 0xFD, 0xB4, 0x02, 0x3E, 0x27,
+ 0xFF, 0x31, 0xE0, 0xD5, 0x5D, 0x19, 0x21, 0x56,
+ 0x2B, 0x14, 0xE2, 0xBF, 0xAF, 0x73, 0x2A, 0x12,
+ 0x11, 0x12, 0x43, 0xF2, 0x13, 0xF5, 0x15, 0x65,
+ 0x61, 0x12, 0xF6, 0xFF, 0x05, 0x52, 0xDF, 0xD2,
+ 0xF5, 0xEA, 0xEE, 0xC9, 0x14, 0x1F, 0x3B, 0xFF,
+ 0x63, 0x6F, 0xFF, 0xD4, 0xFF, 0x81, 0x02, 0xBD,
+ 0xE7, 0xAA, 0x93, 0x8B, 0xFF, 0x46, 0xC5, 0x13,
+ 0x5F, 0x28, 0x6B, 0x4A, 0x3F, 0xFF, 0x3C, 0x2C,
+ 0x60, 0xA9, 0xAB, 0x25, 0xA0, 0x60, 0xFF, 0x84,
+ 0x3B, 0xE8, 0xEF, 0xC2, 0x13, 0x93, 0xFF, 0x15,
+ 0x91, 0xC8, 0x34, 0xF3, 0xD4, 0x9C, 0xD0, 0x70,
+ 0x97, 0xAF, 0xC3, 0xE3, 0xEB, 0xF5, 0x50, 0xFF,
+ 0xCE, 0x83, 0xE2, 0xB1, 0x33, 0x8E, 0xF8, 0x41,
+ 0x14, 0x08, 0x28, 0x9F, 0x4F, 0xFF, 0x77, 0x7F,
+ 0xFF, 0xEC, 0xC5, 0xBD, 0xEA, 0x96, 0x83, 0xDB,
+ 0xFD, 0x38, 0xEE, 0xAB, 0x5D, 0x5D, 0x59, 0xBF,
+ 0x29, 0xF7, 0x3B, 0xEF, 0x4F, 0x66, 0xF2, 0xE3,
+ 0x76, 0xD7, 0x29, 0xAC, 0x9D, 0x78, 0x58, 0xB5,
+ 0x1A, 0xEF, 0x39, 0xE5, 0x38, 0x16, 0xF1, 0x94,
+ 0x29, 0xB8, 0xA0, 0x13, 0x43, 0xE1, 0x12, 0x78,
+ 0xBA, 0xFF, 0x6D, 0x97, 0xD0, 0x54, 0x13, 0xDF,
+ 0x28, 0xFD, 0x8A, 0x8F, 0x8B, 0x1F, 0x13, 0xE1,
+ 0xD1, 0xFB, 0xFF, 0xE7, 0xC3, 0xB3, 0xFF, 0x26,
+ 0x6F, 0x3A, 0x19, 0x5A, 0x3F, 0x66, 0x3A, 0x50,
+ 0x8A, 0xC8, 0xF2, 0xFF, 0xEC, 0x64, 0xA9, 0x6B,
+ 0xE8, 0x74, 0xD8, 0xA6, 0xC9, 0x92, 0xB6, 0xF7,
+ 0xF3, 0x82, 0xB8, 0x50, 0xFF, 0xF1, 0x16, 0x13,
+ 0xC5, 0xEC, 0x57, 0x64, 0x55, 0x3A, 0xD3, 0xF2,
+ 0x03, 0x2D, 0x73, 0xCC, 0x71, 0xFF, 0x27, 0x1F,
+ 0x28, 0x3F, 0x3D, 0x67, 0x9E, 0x8F, 0x9F, 0x1F,
+ 0xB3, 0xA1, 0xED, 0x14, 0xF2, 0xE4, 0xFF, 0xF5,
+ 0xA3, 0xC7, 0xFE, 0x3A, 0x0F, 0x3B, 0x2F, 0x51,
+ 0xE3, 0x3B, 0x1E, 0x64, 0x9E, 0xF1, 0xA6, 0xFE,
+ 0xEB, 0x58, 0xC9, 0x46, 0xB6, 0xD5, 0xF5, 0x91,
+ 0x13, 0x14, 0xF7, 0x21, 0x68, 0xAB, 0x28, 0x7E,
+ 0x44, 0x14, 0x05, 0x4D, 0xC6, 0x62, 0x29, 0x3C,
+ 0x36, 0xF3, 0x51, 0x2B, 0x24, 0x2A, 0x3F, 0x0C,
+ 0x0C, 0x63, 0x1F, 0xB2, 0xB6, 0x3C, 0xBF, 0x13,
+ 0xFF, 0xB3, 0x1F, 0xC7, 0xB5, 0xFF, 0xBD, 0xE9,
+ 0x13, 0xFF, 0x3B, 0xF2, 0x76, 0x9C, 0x4E, 0x1D,
+ 0x76, 0x7A, 0xBE, 0x2A, 0xB2, 0xA6, 0xFF, 0x39,
+ 0xCF, 0xB2, 0x53, 0xB0, 0x01, 0x35, 0xDA, 0xBA,
+ 0xA7, 0xDD, 0x05, 0x3D, 0x7F, 0xFF, 0x50, 0x5F,
+ 0x44, 0xB2, 0xA6, 0x44, 0x78, 0x62, 0xF4, 0xA1,
+ 0xCA, 0xB5, 0xDF, 0x81, 0x28, 0xB6, 0x8F, 0xF8,
+ 0x72, 0x2A, 0x28, 0x0C, 0x8A, 0xAD, 0x14, 0x1F,
+ 0x27, 0xFF, 0xC6, 0xCF, 0xFF, 0xB3, 0xAF, 0xDC,
+ 0x91, 0xF5, 0x47, 0xFB, 0xD3, 0x27, 0xFF, 0xAB,
+ 0xAF, 0x13, 0xAF, 0xE9, 0xA7, 0xF3, 0x37, 0x48,
+ 0xDA, 0xFB, 0xAD, 0xD7, 0x4F, 0xF7, 0x29, 0x43,
+ 0xCF, 0x82, 0xDE, 0xAA, 0xF7, 0xEC, 0x85, 0x19,
+ 0x69, 0xA7, 0x08, 0xFF, 0x80, 0x44, 0xEB, 0x66,
+ 0xB1, 0xC2, 0x58, 0xFB, 0xFF, 0x55, 0x83, 0xB2,
+ 0x71, 0xF6, 0xA1, 0x3C, 0xF1, 0xE9, 0x61, 0x8A,
+ 0x9F, 0x8B, 0xBF, 0xDC, 0x07, 0xFF, 0xDA, 0x8F,
+ 0xDB, 0x1F, 0xD5, 0xFA, 0xCC, 0x58, 0xB3, 0xFE,
+ 0x26, 0x7F, 0xBD, 0x97, 0x9C, 0xBA, 0xFF, 0xD4,
+ 0x8F, 0x3A, 0x58, 0xA6, 0x33, 0xEF, 0x00, 0xB6,
+ 0x84, 0x00, 0x1F, 0xEF, 0xE5, 0x68, 0x67, 0xF3,
+ 0x3B, 0xF1, 0x91, 0xB9, 0x04, 0xE9, 0xF4, 0x70,
+ 0x44, 0x44, 0xDC, 0x40, 0xC6, 0x43, 0xFF, 0x5B,
+ 0xF8, 0x13, 0x33, 0xBF, 0x05, 0x7C, 0xA3, 0x27,
+ 0xDF, 0x9F, 0x9F, 0xF0, 0x29, 0xEE, 0x8F, 0xFF,
+ 0xEF, 0x1F, 0x33, 0x37, 0xE4, 0x19, 0x13, 0xFF,
+ 0x9E, 0x5F, 0xFB, 0xB5, 0xDD, 0x27, 0xAA, 0xB9,
+ 0xFF, 0xAD, 0x93, 0xCC, 0xD5, 0xEF, 0x66, 0xFD,
+ 0x32, 0x72, 0x60, 0xF3, 0x4D, 0xE4, 0x67, 0xCD,
+ 0x7C, 0xEF, 0x86, 0xA2, 0x15, 0x35, 0xE1, 0x1D,
+ 0x2B, 0x13, 0xA0, 0xBD, 0x17, 0xB9, 0x4A, 0x64,
+ 0x92, 0xFF, 0xBC, 0xA1, 0xD5, 0x04, 0xF6, 0x71,
+ 0xB2, 0x7F, 0xB3, 0x9F, 0x51, 0x79, 0x76, 0xBA,
+ 0x00, 0xCF, 0xFF, 0xDB, 0xF9, 0xCC, 0x28, 0xA6,
+ 0xF3, 0x27, 0xFF, 0xF8, 0xC9, 0xC6, 0x85, 0xB2,
+ 0x07, 0x5B, 0xF3, 0xFF, 0xA4, 0x16, 0x61, 0x1A,
+ 0x02, 0x97, 0xA3, 0xD5, 0x92, 0x21, 0x6B, 0x92,
+ 0xF8, 0x82, 0xC2, 0x71, 0x07, 0x2C, 0x28, 0x43,
+ 0x43, 0x41, 0xD9, 0x00, 0xEE, 0xF2, 0xF6, 0x67,
+ 0xE7, 0xFD, 0xE2, 0x31, 0xB7, 0xFE, 0xC7, 0x44,
+ 0x43, 0x4F, 0xE0, 0xCC, 0xB3, 0x6F, 0xA7, 0xFF,
+ 0xDA, 0xF1, 0xE0, 0xC0, 0xE1, 0x01, 0xCB, 0xC5,
+ 0xF4, 0x97, 0xA4, 0xF0, 0xC6, 0x8F, 0xC7, 0xAF,
+ 0xFF, 0xC7, 0xFF, 0x14, 0x6F, 0xEF, 0xFD, 0xBD,
+ 0xE9, 0xFC, 0x24, 0x9F, 0xFF, 0xB5, 0xB7, 0xF2,
+ 0x42, 0xFF, 0x00, 0x76, 0x4E, 0x0A, 0x62, 0x8F,
+ 0x03, 0x07, 0x99, 0x65, 0x11, 0x32, 0xFF, 0xD3,
+ 0x37, 0x91, 0x0F, 0x28, 0x2A, 0x43, 0x41, 0x00,
+ 0x00, 0xF0, 0xD2, 0x3A, 0xB2, 0x28, 0x52, 0xFB,
+ 0xF1, 0xA2, 0xD6, 0x62, 0xCE, 0xD7, 0xCB, 0x93,
+ 0xE4, 0x37, 0x2D, 0xEF, 0x62, 0x83, 0x34, 0xFF,
+ 0xD3, 0xD5, 0xA5, 0x14, 0xE2, 0x42, 0xB9, 0x50,
+ 0xCF, 0xA1, 0xBF, 0x74, 0xF6, 0xA0, 0xDB, 0x1F,
+ 0xFF, 0xDB, 0xBF, 0xCF, 0x27, 0x27, 0xFF, 0x27,
+ 0xFF, 0xEF, 0xD4, 0xBD, 0xE7, 0x96, 0x84, 0xB3,
+ 0xFD, 0xFF, 0x5A, 0x43, 0xF0, 0x52, 0x46, 0xA5,
+ 0x4D, 0xF8, 0x96, 0xD6, 0xDF, 0xF4, 0xAB, 0x44,
+ 0xEE, 0x74, 0xE7, 0xB9, 0xE7, 0xAE, 0x00, 0x79,
+ 0xDA, 0x28, 0x29, 0x27, 0x50, 0x27, 0x61, 0x86,
+ 0xF6, 0xFD, 0xDB, 0xC2, 0xE0, 0x14, 0xB6, 0x09,
+ 0x64, 0xE3, 0x8A, 0x97, 0xD9, 0x50, 0x29, 0xDB,
+ 0xD4, 0xFF, 0x84, 0x05, 0xE2, 0x76, 0xB9, 0x45,
+ 0x17, 0x15, 0xCE, 0x34, 0x13, 0xF8, 0xC7, 0x5F,
+ 0x8C, 0xBE, 0x1F, 0x2B, 0x2F, 0x2F, 0x3B, 0xFF,
+ 0x3B, 0xEE, 0xBD, 0xEF, 0x96, 0x84, 0x63, 0xFF,
+ 0xFF, 0xC1, 0xBF, 0xC1, 0x4A, 0x27, 0x4F, 0xCA,
+ 0x0B, 0x48, 0x34, 0x72, 0x47, 0xC7, 0xC9, 0xE1,
+ 0xD6, 0xFF, 0xF3, 0xB3, 0x8B, 0x09, 0x87, 0xB2,
+ 0xCA, 0xF2, 0x3D, 0x91, 0xC4, 0x34, 0x60, 0xC1,
+ 0x8A, 0x32, 0xFF, 0x97, 0xB1, 0xDB, 0x6B, 0x3B,
+ 0x8A, 0x3B, 0xE4, 0xCE, 0x16, 0xC7, 0x4A, 0x8C,
+ 0x6E, 0xA0, 0xA8, 0xFF, 0x13, 0xD0, 0x13, 0xFF,
+ 0x3B, 0x9F, 0xBD, 0xEF, 0x8B, 0xFF, 0x27, 0xF5,
+ 0xF8, 0x65, 0x89, 0x3B, 0xFF, 0x9D, 0x96, 0x71,
+ 0x29, 0x13, 0xDB, 0x7A, 0x2F, 0x8D, 0x17, 0xAE,
+ 0x43, 0xF2, 0xDB, 0xF0, 0x16, 0xFF, 0xCA, 0x92,
+ 0x3F, 0x15, 0xF1, 0x83, 0x9C, 0x93, 0x8F, 0xD8,
+ 0xB8, 0x62, 0xA8, 0x3F, 0xCE, 0x32, 0xFF, 0xDC,
+ 0x61, 0xB7, 0x70, 0xF8, 0x87, 0xF5, 0x00, 0xB3,
+ 0x9A, 0xFC, 0x57, 0xB4, 0x6B, 0x13, 0xD2, 0x7F,
+ 0x2F, 0x3B, 0xFF, 0xEF, 0x78, 0xBD, 0xE8, 0x6B,
+ 0xDD, 0xFD, 0x82, 0x8B, 0xFF, 0x8A, 0xD2, 0xFF,
+ 0xE5, 0x2A, 0x61, 0xD9, 0x6F, 0xFD, 0x3B, 0xA9,
+ 0x50, 0x46, 0xC6, 0x98, 0x0F, 0xDA, 0x13, 0xDB,
+ 0xF8, 0xE9, 0xC1, 0xF6, 0x88, 0x8D, 0x0A, 0x6A,
+ 0xB6, 0xF8, 0x96, 0x44, 0x29, 0x2A, 0x7E, 0x44,
+ 0x1A, 0x2C, 0x96, 0x1B, 0xA3, 0x79, 0x14, 0x0B,
+ 0xBF, 0xAE, 0xF4, 0xF1, 0x28, 0x5F, 0x28, 0x13,
+ 0xC2, 0x2F, 0xE1, 0xB0, 0x77, 0xFF, 0xB3, 0x59,
+ 0xFA, 0xBF, 0xA8, 0xC8, 0xFF, 0x3B, 0xFF, 0x13,
+ 0x9F, 0xEB, 0x7E, 0x2C, 0x59, 0xC9, 0x6E, 0xF6,
+ 0x03, 0xCA, 0xDF, 0xB7, 0x5A, 0xFB, 0x3A, 0x12,
+ 0xE0, 0x47, 0xCD, 0xBF, 0xF8, 0x14, 0xF1, 0x33,
+ 0x44, 0xDC, 0x41, 0xDC, 0x81, 0xEF, 0xB6, 0x7A,
+ 0x07, 0x9F, 0xF8, 0xF8, 0x00, 0x2A, 0xFF, 0xD4,
+ 0x0C, 0x27, 0x92, 0xF5, 0x83, 0xDF, 0x8B, 0xFF,
+ 0xEF, 0x43, 0x2F, 0xBD, 0xEF, 0xBD, 0xED, 0xDB,
+ 0xFE, 0x00, 0xFF, 0x02, 0x1F, 0xFF, 0x03, 0x3F,
+ 0x04, 0x5F, 0x05, 0x7F, 0x06, 0x9F, 0x07, 0xBF,
+ 0x08, 0xDF, 0x09, 0xFF, 0x0B, 0x1F, 0xFF, 0x0C,
+ 0x3F, 0x0D, 0x5F, 0x0E, 0x7F, 0x0F, 0x9F, 0x10,
+ 0xBF, 0x11, 0xDF, 0x12, 0xFF, 0x14, 0x1F, 0xFF,
+ 0x15, 0x3F, 0x16, 0x5F, 0x17, 0x7F, 0x18, 0x9F,
+ 0x19, 0xBF, 0x1A, 0xDF, 0x1B, 0xFF, 0x1D, 0x1F,
+ 0xFF, 0x1E, 0x3F, 0x1F, 0x5F, 0x20, 0x7F, 0x21,
+ 0x9F, 0x22, 0xBF, 0x23, 0xDF, 0x24, 0xFF, 0x26,
+ 0x1F, 0xFF, 0x27, 0x3F, 0x28, 0x5F, 0x29, 0x7F,
+ 0x2A, 0x9F, 0x2B, 0xBF, 0x2C, 0xDF, 0x2D, 0xFF,
+ 0x2F, 0x1F, 0xFF, 0x30, 0x3F, 0x31, 0x5F, 0x32,
+ 0x7F, 0x33, 0x9F, 0x34, 0xBF, 0x35, 0xDF, 0x36,
+ 0xFF, 0x38, 0x1F, 0xFF, 0x39, 0x3F, 0x3A, 0x5F,
+ 0x3B, 0x7F, 0x3C, 0x9F, 0x3D, 0xBF, 0x3E, 0xDF,
+ 0x3F, 0xFF, 0x41, 0x1F, 0xFF, 0x42, 0x3F, 0x43,
+ 0x5F, 0x44, 0x7F, 0x45, 0x9F, 0x46, 0xBF, 0x47,
+ 0xDF, 0x48, 0xFF, 0x4A, 0x1F, 0xFF, 0x4B, 0x3F,
+ 0x4C, 0x5F, 0x4D, 0x7F, 0x4E, 0x9F, 0x4F, 0xBF,
+ 0x50, 0xDF, 0x51, 0xFF, 0x53, 0x1F, 0xFF, 0x54,
+ 0x3F, 0x55, 0x5F, 0x56, 0x7F, 0x57, 0x9F, 0x58,
+ 0xBF, 0x59, 0xDF, 0x5A, 0xFF, 0x5C, 0x1F, 0xFF,
+ 0x5D, 0x3F, 0x5E, 0x5F, 0x5F, 0x7F, 0x60, 0x9F,
+ 0x61, 0xBF, 0x62, 0xDF, 0x63, 0xFF, 0x65, 0x1F,
+ 0xFF, 0x66, 0x3F, 0x67, 0x5F, 0x68, 0x7F, 0x69,
+ 0x9F, 0x6A, 0xBF, 0x6B, 0xDF, 0x6C, 0xFF, 0x6E,
+ 0x1F, 0xFF, 0x6F, 0x3F, 0x70, 0x5F, 0x71, 0x7F,
+ 0x72, 0x9F, 0x73, 0xBF, 0x74, 0xDF, 0x75, 0xFF,
+ 0x77, 0x1F, 0xFF, 0x78, 0x3F, 0x79, 0x5F, 0x7A,
+ 0x7F, 0x7B, 0x9F, 0x7C, 0xBF, 0x7D, 0xDF, 0x7E,
+ 0xFF, 0x80, 0x1F, 0xFF, 0x81, 0x3F, 0x82, 0x5F,
+ 0x83, 0x7F, 0x84, 0x9F, 0x85, 0xBF, 0x86, 0xDF,
+ 0x87, 0xFF, 0x89, 0x1F, 0xFF, 0x8A, 0x3F, 0x8B,
+ 0x5F, 0x8C, 0x7F, 0x8D, 0x9F, 0x8E, 0xBF, 0x8F,
+ 0xDF, 0x90, 0xFF, 0x92, 0x1F, 0xFF, 0x93, 0x3F,
+ 0x94, 0x5F, 0x95, 0x7F, 0x96, 0x9F, 0x97, 0xBF,
+ 0x98, 0xDF, 0x99, 0xFF, 0x9B, 0x1F, 0xFF, 0x9C,
+ 0x3F, 0x9D, 0x5F, 0x9E, 0x7F, 0x9F, 0x9F, 0xA0,
+ 0xBF, 0xA1, 0xDF, 0xA2, 0xFF, 0xA4, 0x1F, 0xFF,
+ 0xA5, 0x3F, 0xA6, 0x5F, 0xA7, 0x7F, 0xA8, 0x9F,
+ 0xA9, 0xBF, 0xAA, 0xDF, 0xAB, 0xFF, 0xAD, 0x1F,
+ 0xFE, 0xAE, 0x3F, 0xAF, 0x5F, 0xB0, 0x7F, 0xB1,
+ 0x9F, 0xB2, 0xBF, 0xB3, 0xDF, 0xF0, 0xE7, 0x25,
+ 0x9C, 0x00, 0x20, 0x22, 0x22, 0x00, 0x50, 0xB6,
+ 0x2F, 0xF3, 0x31, 0x17, 0x10, 0xFE, 0xB7, 0xAF,
+ 0xB8, 0xCF, 0xB9, 0xEF, 0xBB, 0x0F, 0xF8, 0x13,
+ 0xFE, 0xCF, 0xFF, 0x7A, 0x2B, 0xFF, 0xE9, 0x9A,
+ 0xBF, 0x5F, 0xC0, 0x7F, 0xC1, 0x9F, 0xC2, 0xBF,
+ 0xC3, 0xDF, 0xC4, 0xFF, 0xC6, 0x1F, 0xE4, 0xC7,
+ 0x3F, 0xC8, 0x5F, 0xF1, 0x60, 0x24, 0x22, 0x00,
+ 0x02, 0x1F, 0x22, 0x09, 0x1F, 0x1F, 0x1F, 0x23,
+ 0xCA, 0x7F, 0x17, 0x17, 0xCB, 0xBF, 0xF3, 0xCC,
+ 0xDF, 0xCD, 0xFF, 0xCF, 0x1F, 0x13, 0xF9, 0x26,
+ 0x26, 0xFF, 0x91, 0xFE, 0x38, 0xBF, 0xFE, 0xE4,
+ 0x2C, 0x13, 0xFF, 0xD3, 0xAF, 0xD4, 0xCF, 0xD5,
+ 0xEF, 0xD7, 0x0F, 0xD8, 0x2F, 0xFD, 0xD9, 0x4F,
+ 0xDA, 0x6F, 0xDB, 0x8F, 0x14, 0x0F, 0x00, 0x02,
+ 0x14, 0x43, 0x1F, 0xDE, 0x8F, 0xFB, 0x28, 0x0F,
+ 0xE0, 0xCF, 0xE1, 0xEF, 0xE3, 0x0F, 0x13, 0xFB,
+ 0x25, 0x00, 0x01, 0x14, 0x75, 0xBF, 0x28, 0x66,
+ 0x29, 0xFC, 0xD3, 0x27, 0xFF, 0xE7, 0xFF, 0xE9,
+ 0x1F, 0xEA, 0x3F, 0xEB, 0x5F, 0xFA, 0xEC, 0x7F,
+ 0xED, 0x9F, 0xEE, 0xBF, 0xEF, 0xDF, 0x3C, 0x4D,
+ 0x25, 0x14, 0x24, 0x24, 0xB1, 0xF2, 0x8F, 0x10,
+ 0x28, 0x0F, 0x17, 0xB9, 0x22, 0x22, 0x20, 0x00,
+ 0x00, 0xE0, 0xF5, 0xF8, 0x00, 0xE1, 0x04, 0x91,
+ 0x24, 0x24, 0x00, 0x23, 0x23, 0xF7, 0x2D, 0x0E,
+ 0x13, 0xC5, 0x14, 0x7A, 0x14, 0xB7, 0x29, 0xFD,
+ 0x34, 0x28, 0x73, 0xFB, 0x5F, 0xFF, 0xFC, 0x7F,
+ 0xFD, 0x9F, 0xFE, 0xBF, 0xFF, 0xDF, 0x00, 0xFF,
+ 0x02, 0x1F, 0x03, 0x3F, 0x04, 0x5F, 0xF9, 0x14,
+ 0x08, 0x14, 0x21, 0x13, 0xFF, 0x50, 0x1F, 0x2B,
+ 0xCE, 0x00, 0x00, 0x14, 0x33, 0x18, 0x20, 0x20,
+ 0x1C, 0x00, 0x62, 0x13, 0xC3, 0x24, 0x22, 0x23,
+ 0xF3, 0x01, 0xA1, 0x4F, 0xFF, 0x13, 0xCB, 0x3C,
+ 0x2A, 0x25, 0x25, 0x3B, 0xF6, 0x28, 0x52, 0xFF,
+ 0x0F, 0x5F, 0x10, 0x7F, 0x11, 0x9F, 0x12, 0xBF,
+ 0x13, 0xDF, 0x14, 0xFF, 0x16, 0x1F, 0x17, 0x3F,
+ 0xFE, 0x18, 0x5F, 0x28, 0x18, 0x35, 0x10, 0x10,
+ 0xC2, 0x3C, 0x0F, 0x50, 0x1F, 0x68, 0x5C, 0x22,
+ 0x9F, 0x14, 0x62, 0x22, 0x21, 0x13, 0xF0, 0x54,
+ 0xC1, 0x04, 0x63, 0x04, 0xCF, 0x6B, 0xB1, 0x75,
+ 0x27, 0x4F, 0x88, 0x13, 0xCB, 0x51, 0x92, 0x2D,
+ 0x50, 0x08, 0x2C, 0x63, 0xFF, 0xFF, 0x24, 0x6F,
+ 0x25, 0x8F, 0x26, 0xAF, 0x27, 0xCF, 0x28, 0xEF,
+ 0x2A, 0x0F, 0x2B, 0x2F, 0x2C, 0x4F, 0xC3, 0x3C,
+ 0x5F, 0x50, 0x83, 0x10, 0x23, 0x22, 0x22, 0x78,
+ 0x28, 0x64, 0x2F, 0xDF, 0x30, 0xFF, 0x7D, 0x81,
+ 0x1C, 0x29, 0x27, 0x33, 0x0F, 0x77, 0xF4, 0x77,
+ 0x24, 0x13, 0xEF, 0xBF, 0x65, 0x91, 0x28, 0x13,
+ 0x51, 0x14, 0x07, 0x37, 0x5F, 0x38, 0x7F, 0x39,
+ 0x9F, 0x3A, 0xBF, 0xFF, 0x3B, 0xDF, 0x3C, 0xFF,
+ 0x3E, 0x1F, 0x3F, 0x3F, 0x40, 0x5F, 0x28, 0x0A,
+ 0x50, 0x64, 0x64, 0xF0, 0x4E, 0x10, 0x4B, 0x9A,
+ 0x17, 0x10, 0x8C, 0x4F, 0x45, 0x0F, 0x91, 0x90,
+ 0x1F, 0x7F, 0x21, 0x46, 0x7F, 0x13, 0xFF, 0x8B,
+ 0x45, 0x63, 0xAB, 0x78, 0xD2, 0x4F, 0xE0, 0x13,
+ 0xFF, 0xFF, 0x4B, 0xBF, 0x4C, 0xDF, 0x4D, 0xFF,
+ 0x4F, 0x1F, 0x50, 0x3F, 0x51, 0x5F, 0x52, 0x7F,
+ 0x53, 0x9F, 0xFF, 0x54, 0xBF, 0xA0, 0x73, 0x5C,
+ 0xA6, 0x13, 0xF0, 0x3C, 0x9C, 0x28, 0x2F, 0x59,
+ 0x0F, 0x28, 0x07, 0xFF, 0x5A, 0xCF, 0x27, 0xFF,
+ 0x13, 0xFF, 0x8C, 0xF1, 0x13, 0xFF, 0x5F, 0x8F,
+ 0x60, 0xAF, 0x61, 0xCF, 0xFF, 0x62, 0xEF, 0x64,
+ 0x0F, 0x65, 0x2F, 0x66, 0x4F, 0x67, 0x6F, 0x68,
+ 0x8F, 0xB5, 0x1F, 0x27, 0xF0, 0xFF, 0x28, 0xD1,
+ 0xB4, 0x6B, 0xB4, 0x7F, 0x6D, 0x3F, 0x28, 0x0F,
+ 0x4F, 0xFF, 0x28, 0x0F, 0xB4, 0x48, 0x7F, 0x28,
+ 0x4F, 0xFF, 0x73, 0x9F, 0x74, 0xBF, 0x75, 0xDF,
+ 0x76, 0xFF, 0x78, 0x1F, 0x79, 0x3F, 0xF9, 0x7A,
+ 0x5F, 0x7B, 0x7F, 0x7C, 0x9F, 0x7D, 0xBF, 0x8B,
+ 0x2F, 0x1C, 0x14, 0x3C, 0x3F, 0xFF, 0x81, 0x3F,
+ 0x28, 0x0F, 0x63, 0xFF, 0xB3, 0x41, 0x3B, 0x18,
+ 0x3C, 0x1C, 0x77, 0xFF, 0x87, 0x9F, 0xFF, 0x88,
+ 0xBF, 0x89, 0xDF, 0x8A, 0xFF, 0x8C, 0x1F, 0x8D,
+ 0x3F, 0x8E, 0x5F, 0x8F, 0x7F, 0x90, 0x9F, 0xEF,
+ 0xA0, 0x49, 0xB3, 0x2F, 0xDF, 0x04, 0x14, 0x50,
+ 0x51, 0xC8, 0xAF, 0x95, 0x7F, 0x96, 0x9F, 0xFF,
+ 0x13, 0xFC, 0x13, 0x7B, 0xC8, 0x2A, 0xDB, 0xE5,
+ 0x9F, 0xFF, 0x9B, 0xFF, 0x9D, 0x1F, 0x9E, 0x3F,
+ 0xFF, 0x9F, 0x5F, 0xA0, 0x7F, 0xA1, 0x9F, 0xA2,
+ 0xBF, 0xA3, 0xDF, 0x8B, 0xDF, 0x8C, 0x04, 0xAF,
+ 0x20, 0x37, 0x23, 0x23, 0x3B, 0xE1, 0xF1, 0x1C,
+ 0x14, 0x64, 0x73, 0xF0, 0xDF, 0xA9, 0x9F, 0xF0,
+ 0xAA, 0xBF, 0xEF, 0xFF, 0xDB, 0xA3, 0x14, 0x1A,
+ 0x28, 0x29, 0x2B, 0x2F, 0x7F, 0x2F, 0xC7, 0xFF,
+ 0xAF, 0x9F, 0xB0, 0xBF, 0xB1, 0xDF, 0xB2, 0xFF,
+ 0xB4, 0x1F, 0xB5, 0x3F, 0xFB, 0xB6, 0x5F, 0xB7,
+ 0x7F, 0xB8, 0x9F, 0xC8, 0x8B, 0x13, 0xE1, 0x17,
+ 0x78, 0xD2, 0xF0, 0x6B, 0x9F, 0x89, 0xB3, 0x17,
+ 0x10, 0xBC, 0x9F, 0xBD, 0xBF, 0xBE, 0xDF, 0x27,
+ 0xFB, 0x27, 0xC9, 0x9F, 0xC8, 0x06, 0x2A, 0x2E,
+ 0x00, 0x00, 0xEF, 0xFF, 0xC3, 0x9F, 0xC4, 0xBF,
+ 0xC5, 0xDF, 0xFF, 0xC6, 0xFF, 0xC8, 0x1F, 0xC9,
+ 0x3F, 0xCA, 0x5F, 0xCB, 0x7F, 0xCC, 0x9F, 0xDB,
+ 0x0F, 0x78, 0xC0, 0xFB, 0xF0, 0x6E, 0x14, 0x0F,
+ 0xD1, 0x3F, 0xD2, 0x5F, 0xF4, 0xDE, 0x28, 0x00,
+ 0x06, 0x3B, 0xCD, 0xFF, 0x27, 0xD0, 0x27, 0xF0,
+ 0x13, 0xFF, 0xD7, 0xAF, 0xD8, 0xCF, 0xD9, 0xEF,
+ 0xDB, 0x0F, 0xDC, 0x2F, 0xFF, 0xDD, 0x4F, 0xDE,
+ 0x6F, 0xDF, 0x8F, 0xE0, 0xAF, 0xEF, 0x0D, 0xE2,
+ 0xCF, 0x3C, 0x15, 0x01, 0xDF, 0xFF, 0xE5, 0x8F,
+ 0xE6, 0xAF, 0xE7, 0xCF, 0xE8, 0xEF, 0xEA, 0x0F,
+ 0xEB, 0x2F, 0xEC, 0x4F, 0xED, 0x6F, 0xFF, 0xEE,
+ 0x8F, 0xEF, 0xAF, 0xF0, 0xCF, 0xF1, 0xEF, 0xF3,
+ 0x0F, 0xF4, 0x2F, 0xF5, 0x4F, 0x27, 0xE4, 0xFF,
+ 0xF6, 0xDF, 0xC8, 0x61, 0x15, 0xDF, 0xF9, 0x5F,
+ 0xFA, 0x7F, 0x63, 0xEF, 0xDB, 0xE4, 0x39, 0xD2,
+ 0xFF, 0x00, 0xFD, 0xFE, 0x7F, 0xFF, 0x9F, 0x00,
+ 0xBF, 0x01, 0xDF, 0x02, 0xFF, 0x04, 0x1F, 0x05,
+ 0x3F, 0xFE, 0x06, 0x5F, 0x07, 0x7F, 0x08, 0x9F,
+ 0x13, 0xEF, 0x0A, 0xDF, 0x14, 0x07, 0x50, 0x1C,
+ 0x24, 0x1C, 0x1D, 0x1D, 0x1F, 0xB6, 0xAA, 0x0E,
+ 0x9F, 0xEF, 0xEA, 0x29, 0x29, 0xE7, 0xDC, 0x05,
+ 0x13, 0xF3, 0x00, 0xF6, 0x27, 0x2B, 0x12, 0x3F,
+ 0x13, 0x5F, 0x14, 0x7F, 0xFF, 0x15, 0x9F, 0x16,
+ 0xBF, 0x17, 0xDF, 0x18, 0xFF, 0x1A, 0x1F, 0x1B,
+ 0x3F, 0x1C, 0x5F, 0x3B, 0xCF, 0xE0, 0x27, 0xDF,
+ 0xED, 0xD6, 0x14, 0x0F, 0x00, 0x00, 0x1D, 0x27,
+ 0x00, 0x3B, 0x27, 0x1D, 0x21, 0xDF, 0x22, 0xFF,
+ 0xF6, 0x43, 0x29, 0x00, 0x01, 0x12, 0xF8, 0xBF,
+ 0x00, 0xF8, 0x2A, 0x26, 0x3F, 0x27, 0x5F, 0x28,
+ 0x7F, 0x29, 0x9F, 0x2A, 0xBF, 0x2B, 0xDF, 0xFF,
+ 0x2C, 0xFF, 0x2E, 0x1F, 0x2F, 0x3F, 0x30, 0x5F,
+ 0x3B, 0xCF, 0x63, 0xAF, 0xA0, 0x37, 0x78, 0x3F,
+ 0x07, 0x00, 0x24, 0x1F, 0x1D, 0x1D, 0x27, 0xFF,
+ 0x36, 0xEF, 0x13, 0xF5, 0x6F, 0x2B, 0x00, 0x01,
+ 0xF0, 0x32, 0x29, 0x00, 0xFC, 0x13, 0xFF, 0x3B,
+ 0x4F, 0x3C, 0x6F, 0xFF, 0x3D, 0x8F, 0x3E, 0xAF,
+ 0x3F, 0xCF, 0x40, 0xEF, 0x42, 0x0F, 0x43, 0x2F,
+ 0x44, 0x4F, 0x63, 0xBF, 0xFF, 0x46, 0x8F, 0xB4,
+ 0x38, 0x50, 0x2F, 0x49, 0x7F, 0x4A, 0x9F, 0x8B,
+ 0xEF, 0x13, 0xF7, 0xDB, 0x97, 0x7F, 0x29, 0x8A,
+ 0xDF, 0x4F, 0x4F, 0x50, 0x6F, 0x51, 0x8F, 0x52,
+ 0xAF, 0x53, 0xCF, 0x54, 0xEF, 0xFE, 0x56, 0x0F,
+ 0x57, 0x2F, 0x58, 0x4F, 0x77, 0xBF, 0x5A, 0x8F,
+ 0x27, 0xFF, 0xA0, 0x39, 0x26, 0x00, 0x24, 0x22,
+ 0x21, 0x21, 0x22, 0x22, 0x24, 0x26, 0xE7, 0x5E,
+ 0x1F, 0x5F, 0x3F, 0x9F, 0xE8, 0x29, 0x2A, 0x63,
+ 0xF8, 0xEF, 0xA3, 0x62, 0x3F, 0xFF, 0x63, 0x5F,
+ 0x64, 0x7F, 0x65, 0x9F, 0x66, 0xBF, 0x67, 0xDF,
+ 0x68, 0xFF, 0x6A, 0x1F, 0x6B, 0x3F, 0xF8, 0x6C,
+ 0x5F, 0x8B, 0xBF, 0x6E, 0x9F, 0xF0, 0x37, 0x7A,
+ 0x0F, 0x00, 0x24, 0x21, 0x5F, 0x25, 0xB0, 0x41,
+ 0x21, 0x64, 0x3F, 0x73, 0x2F, 0xB3, 0xEA, 0x26,
+ 0xF3, 0xEF, 0xE8, 0xFF, 0xB2, 0xDF, 0x77, 0x4F,
+ 0x78, 0x6F, 0x79, 0x8F, 0x7A, 0xAF, 0x7B, 0xCF,
+ 0x7C, 0xEF, 0x7E, 0x0F, 0xFA, 0x7F, 0x2F, 0x80,
+ 0x4F, 0x8B, 0xBF, 0x82, 0x8F, 0xC8, 0x27, 0x1B,
+ 0xA1, 0xFF, 0x00, 0x00, 0x22, 0x25, 0x27, 0x27,
+ 0x23, 0x27, 0x27, 0x25, 0x7F, 0x22, 0x86, 0x1F,
+ 0x87, 0x3F, 0xDB, 0xE4, 0x12, 0xF8, 0x00, 0xFD,
+ 0x8A, 0x7F, 0x8B, 0x9F, 0xFF, 0x8C, 0xBF, 0x8D,
+ 0xDF, 0x8E, 0xFF, 0x90, 0x1F, 0x91, 0x3F, 0x92,
+ 0x5F, 0x93, 0x7F, 0x94, 0x9F, 0xF7, 0x9F, 0xAF,
+ 0x96, 0xDF, 0xB4, 0x08, 0xB5, 0xFB, 0x25, 0x14,
+ 0x01, 0x13, 0xE0, 0xCB, 0x1F, 0xFF, 0x9B, 0x2F,
+ 0xEF, 0xE7, 0x9F, 0xF6, 0x00, 0xFD, 0x9E, 0x7F,
+ 0x9F, 0x9F, 0xA0, 0xBF, 0xA1, 0xDF, 0xFF, 0xA2,
+ 0xFF, 0xA4, 0x1F, 0xA5, 0x3F, 0xA6, 0x5F, 0xA7,
+ 0x7F, 0xA8, 0x9F, 0xB3, 0x9F, 0xAA, 0xDF, 0xC9,
+ 0x13, 0xFF, 0xEC, 0xF5, 0x25, 0x22, 0x00, 0x01,
+ 0x25, 0x27, 0xAE, 0x1F, 0xFF, 0xAF, 0x3F, 0x13,
+ 0xFA, 0x9E, 0xF2, 0xDC, 0x17, 0x4F, 0xFF, 0xB3,
+ 0x3F, 0xB4, 0x5F, 0xB5, 0x7F, 0xFF, 0xB6, 0x9F,
+ 0xB7, 0xBF, 0xB8, 0xDF, 0xB9, 0xFF, 0xBB, 0x1F,
+ 0xBC, 0x3F, 0xDB, 0x8F, 0xBE, 0x7F, 0xFF, 0x27,
+ 0xFF, 0x02, 0x6F, 0xC1, 0xDF, 0xC2, 0xFF, 0x27,
+ 0xFE, 0x9E, 0xF2, 0xF0, 0x17, 0x77, 0xFF, 0xFF,
+ 0xC7, 0x3F, 0xC8, 0x5F, 0xC9, 0x7F, 0xCA, 0x9F,
+ 0xCB, 0xBF, 0xCC, 0xDF, 0xCD, 0xFF, 0xCF, 0x1F,
+ 0xF8, 0xD0, 0x3F, 0xEF, 0x8F, 0xD2, 0x7F, 0x3B,
+ 0xFF, 0xDE, 0x09, 0x26, 0x26, 0x24, 0x6F, 0x23,
+ 0x00, 0x02, 0x28, 0x50, 0x24, 0xD8, 0x4F, 0x8B,
+ 0xFF, 0xDC, 0x07, 0xB2, 0xF2, 0xFF, 0x00, 0xF7,
+ 0x8B, 0xFF, 0xDB, 0x3F, 0xDC, 0x5F, 0xDD, 0x7F,
+ 0xDE, 0x9F, 0xDF, 0xBF, 0xE0, 0xDF, 0xFF, 0xE1,
+ 0xFF, 0xE3, 0x1F, 0xE4, 0x3F, 0xEE, 0x1D, 0x28,
+ 0x0F, 0xF0, 0x0F, 0xDC, 0x11, 0xF2, 0x17, 0x7F,
+ 0x24, 0x13, 0x63, 0xED, 0x01, 0x00, 0xA2, 0x24,
+ 0x4F, 0x13, 0xFF, 0xF0, 0x24, 0x13, 0xF9, 0xFF,
+ 0xF1, 0x20, 0x8B, 0xFF, 0xEF, 0x3F, 0xF0, 0x5F,
+ 0xF1, 0x7F, 0xF2, 0x9F, 0xF3, 0xBF, 0xF4, 0xDF,
+ 0xFF, 0xF5, 0xFF, 0xF7, 0x1F, 0xF8, 0x3F, 0xF9,
+ 0x5D, 0x3C, 0x0F, 0x77, 0xFA, 0xCA, 0x46, 0xF0,
+ 0x27, 0xEF, 0x13, 0xD3, 0x28, 0x20, 0x14, 0x13,
+ 0x26, 0xA0, 0x6F, 0x27, 0xFF, 0xEF, 0xF4, 0xEE,
+ 0xF2, 0xFF, 0x00, 0xF8, 0x3B, 0xFF, 0x01, 0x0F,
+ 0x02, 0x2F, 0x03, 0x4F, 0x04, 0x6F, 0x05, 0x8F,
+ 0x06, 0xAF, 0xFD, 0x07, 0xCF, 0x08, 0xEF, 0x0A,
+ 0x0F, 0x28, 0x0F, 0x0C, 0x4F, 0x2A, 0x6F, 0x10,
+ 0x8C, 0x27, 0x7F, 0x24, 0xFF, 0xD1, 0x00, 0x41,
+ 0x00, 0x80, 0x14, 0x70, 0x13, 0xFF, 0x3B, 0xFF,
+ 0x9E, 0xFA, 0xFF, 0x9F, 0xFF, 0x14, 0x5F, 0x15,
+ 0x7F, 0x16, 0x9F, 0x17, 0xBF, 0x18, 0xDF, 0x19,
+ 0xFF, 0x1B, 0x1F, 0xFE, 0x1C, 0x3F, 0x1D, 0x5F,
+ 0x1E, 0x7F, 0x28, 0x0F, 0x20, 0xBF, 0x3E, 0x5B,
+ 0xB4, 0x35, 0x24, 0x8B, 0x8B, 0xD1, 0x27, 0x24,
+ 0x24, 0x14, 0x72, 0x25, 0x13, 0xFF, 0x4F, 0xFF,
+ 0xBF, 0xDC, 0x15, 0x2B, 0xC7, 0xFC, 0x00, 0xF3,
+ 0x28, 0x3F, 0x29, 0x5F, 0x2A, 0x7F, 0x2B, 0x9F,
+ 0xFF, 0x2C, 0xBF, 0x2D, 0xDF, 0x2E, 0xFF, 0x30,
+ 0x1F, 0x31, 0x3F, 0x32, 0x5F, 0x3C, 0x0F, 0x34,
+ 0x9F, 0xC6, 0x3E, 0x4E, 0xDC, 0x34, 0x25, 0x23,
+ 0x23, 0x14, 0x12, 0x13, 0xD2, 0x23, 0x73, 0x25,
+ 0x38, 0x4F, 0xB3, 0xFF, 0x8B, 0xC3, 0x2F, 0x2F,
+ 0x9F, 0xFA, 0x00, 0xF5, 0xFF, 0x3C, 0x3F, 0x3D,
+ 0x5F, 0x3E, 0x7F, 0x3F, 0x9F, 0x40, 0xBF, 0x41,
+ 0xDF, 0x42, 0xFF, 0x44, 0x1F, 0xFF, 0x45, 0x3F,
+ 0x46, 0x5F, 0x50, 0x0F, 0x48, 0x9F, 0xC8, 0x58,
+ 0xDB, 0xD3, 0xF0, 0x34, 0xC7, 0x90, 0xFA, 0x78,
+ 0x02, 0x28, 0x10, 0x28, 0xA2, 0x88, 0x4F, 0xC7,
+ 0xFF, 0x29, 0x13, 0xC0, 0x2F, 0x3F, 0x2D, 0x2D,
+ 0xB3, 0xF8, 0x01, 0x01, 0x13, 0xFF, 0x50, 0xFF,
+ 0x52, 0x1F, 0x53, 0x3F, 0xFF, 0x54, 0x5F, 0x55,
+ 0x7F, 0x56, 0x9F, 0x57, 0xBF, 0x58, 0xDF, 0x59,
+ 0xFF, 0x5B, 0x1F, 0xA0, 0x2F, 0xFC, 0x66, 0x3F,
+ 0x66, 0xBF, 0x5F, 0x9F, 0x60, 0xBF, 0xDB, 0xF6,
+ 0x13, 0xE2, 0x2F, 0x2F, 0xFF, 0x3B, 0xF3, 0x13,
+ 0xD6, 0x15, 0x00, 0x63, 0xFF, 0x65, 0x1F, 0x66,
+ 0x3F, 0x67, 0x5F, 0x68, 0x7F, 0xFD, 0x69, 0x9F,
+ 0x6A, 0xBF, 0x6B, 0xDF, 0x6C, 0xFF, 0x6E, 0x1F,
+ 0x78, 0x0D, 0x16, 0x70, 0x4F, 0xFE, 0x7A, 0x2C,
+ 0x78, 0x57, 0xD8, 0xF7, 0x61, 0x58, 0x4D, 0x92,
+ 0xB0, 0xAF, 0xEF, 0xF7, 0x28, 0x57, 0x28, 0x13,
+ 0xE2, 0x2C, 0x4F, 0xF3, 0x28, 0x00, 0x00, 0x14,
+ 0xE2, 0x14, 0xF4, 0xFF, 0x78, 0x3F, 0x79, 0x5F,
+ 0x7A, 0x7F, 0x7B, 0x9F, 0x7C, 0xBF, 0x7D, 0xDF,
+ 0x7E, 0xFF, 0x80, 0x1F, 0xFF, 0x81, 0x3F, 0x82,
+ 0x5F, 0xA0, 0x0F, 0x84, 0x9F, 0x85, 0xBF, 0xF0,
+ 0x73, 0xFF, 0xE1, 0x50, 0x30, 0xDD, 0x00, 0x14,
+ 0x3C, 0x53, 0x28, 0x24, 0xAF, 0xF4, 0xB6, 0x27,
+ 0x92, 0x2B, 0xEF, 0xF7, 0x2F, 0x28, 0x28, 0x28,
+ 0xD4, 0x2B, 0x8B, 0xFF, 0x8C, 0xFF, 0x8E, 0x1F,
+ 0x8F, 0x3F, 0xFE, 0x90, 0x5F, 0x91, 0x7F, 0x92,
+ 0x9F, 0x93, 0xBF, 0x94, 0xDF, 0x95, 0xFF, 0xB4,
+ 0x0F, 0x10, 0xF6, 0xC5, 0xC9, 0x99, 0x0F, 0xA2,
+ 0xEE, 0x13, 0xC2, 0x25, 0xED, 0x58, 0x65, 0x00,
+ 0x2A, 0xFF, 0x38, 0xAF, 0x9D, 0xAF, 0x9E, 0xCF,
+ 0x9F, 0xEF, 0xA1, 0x0F, 0xA2, 0x2F, 0xA3, 0x4F,
+ 0xA4, 0x6F, 0xFF, 0xA5, 0x8F, 0xA6, 0xAF, 0xA7,
+ 0xCF, 0xA8, 0xEF, 0xAA, 0x0F, 0xAB, 0x2F, 0xB4,
+ 0x3F, 0xAD, 0x6F, 0xAA, 0xB6, 0xE8, 0x25, 0x13,
+ 0xC4, 0x25, 0x64, 0x01, 0x24, 0x14, 0x83, 0x2D,
+ 0x7F, 0x2A, 0xEC, 0xAF, 0xB1, 0xBF, 0xB2, 0xDF,
+ 0xB3, 0xFF, 0xB5, 0x1F, 0xB6, 0x3F, 0xB7, 0x5F,
+ 0xFF, 0xB8, 0x7F, 0xB9, 0x9F, 0xBA, 0xBF, 0xBB,
+ 0xDF, 0xBC, 0xFF, 0xBE, 0x1F, 0xBF, 0x3F, 0xC5,
+ 0xB7, 0xF8, 0xC0, 0xFF, 0xCA, 0xEF, 0x13, 0xE6,
+ 0xDC, 0x23, 0x28, 0x91, 0x29, 0x2D, 0x2D, 0xFF,
+ 0xED, 0xA2, 0xC4, 0xEF, 0xC6, 0x0F, 0xC7, 0x2F,
+ 0xC8, 0x4F, 0xC9, 0x6F, 0xCA, 0x8F, 0xCB, 0xAF,
+ 0xFF, 0xCC, 0xCF, 0xCD, 0xEF, 0xCF, 0x0F, 0xD0,
+ 0x2F, 0xD1, 0x4F, 0xD2, 0x6F, 0xDC, 0x3B, 0x14,
+ 0x0F, 0xFB, 0xD5, 0x8F, 0x8C, 0x96, 0xC7, 0xF2,
+ 0xB3, 0x90, 0x64, 0x23, 0x26, 0x3C, 0x91, 0x89,
+ 0x90, 0xFF, 0x13, 0xFF, 0xD9, 0xBF, 0xDA, 0xDF,
+ 0xDB, 0xFF, 0xDD, 0x1F, 0xDE, 0x3F, 0xDF, 0x5F,
+ 0xE0, 0x7F, 0xFF, 0xE1, 0x9F, 0xE2, 0xBF, 0xE3,
+ 0xDF, 0xE4, 0xFF, 0xE6, 0x1F, 0xE7, 0x3F, 0xF0,
+ 0x4F, 0xE9, 0x7F, 0xBF, 0xF2, 0xD7, 0x24, 0x13,
+ 0x85, 0x14, 0x66, 0x27, 0xFF, 0xED, 0x7F, 0xEE,
+ 0x9F, 0xEF, 0xBF, 0xFF, 0xF0, 0xDF, 0xF1, 0xFF,
+ 0xF3, 0x1F, 0xF4, 0x3F, 0xF5, 0x5F, 0xF6, 0x7F,
+ 0xF7, 0x9F, 0xF8, 0xBF, 0xFF, 0xF9, 0xDF, 0xFA,
+ 0xFF, 0xED, 0xF4, 0xFC, 0x8F, 0xFD, 0xAF, 0x77,
+ 0xF5, 0x14, 0x06, 0x00, 0x01, 0xFF, 0x8C, 0x82,
+ 0x4F, 0xFF, 0x00, 0xDF, 0x01, 0xFF, 0x03, 0x1F,
+ 0x04, 0x3F, 0x05, 0x5F, 0x06, 0x7F, 0xFF, 0x07,
+ 0x9F, 0x08, 0xBF, 0x09, 0xDF, 0x0A, 0xFF, 0x0C,
+ 0x1F, 0x0D, 0x3F, 0x0E, 0x5F, 0x0F, 0x7F, 0xCF,
+ 0x10, 0x9F, 0xDC, 0x8A, 0x27, 0x26, 0x63, 0x51,
+ 0x9F, 0xF8, 0x50, 0x30, 0x77, 0xFF, 0xFF, 0x14,
+ 0xEF, 0x16, 0x0F, 0x17, 0x2F, 0x18, 0x4F, 0x19,
+ 0x6F, 0x1A, 0x8F, 0x1B, 0xAF, 0x1C, 0xCF, 0xF9,
+ 0x1D, 0xEF, 0x1F, 0x0F, 0x20, 0x2F, 0x21, 0x4F,
+ 0xE8, 0xF0, 0x22, 0x26, 0x22, 0xBF, 0xFF, 0x23,
+ 0xDF, 0x24, 0xFF, 0x8E, 0xC1, 0xDB, 0xF2, 0x13,
+ 0x21, 0x00, 0x05, 0x28, 0x41, 0xB3, 0xE1, 0xFF,
+ 0x27, 0xFF, 0x29, 0x0F, 0x2A, 0x2F, 0x2B, 0x4F,
+ 0x2C, 0x6F, 0x2D, 0x8F, 0x2E, 0xAF, 0x2F, 0xCF,
+ 0xF8, 0x30, 0xEF, 0x32, 0x0F, 0x33, 0x2F, 0x34,
+ 0x4F, 0x35, 0x6F, 0x22, 0x1A, 0x22, 0xFF, 0x36,
+ 0xBF, 0x37, 0xDF, 0x38, 0xFF, 0x66, 0x84, 0x27,
+ 0x55, 0xA0, 0x17, 0xED, 0xC0, 0xD8, 0xAF, 0xFF,
+ 0x3C, 0xFF, 0x3E, 0x1F, 0x3F, 0x3F, 0x40, 0x5F,
+ 0x41, 0x7F, 0x42, 0x9F, 0x43, 0xBF, 0x44, 0xDF,
+ 0xF0, 0x45, 0xFF, 0x47, 0x1F, 0x48, 0x3F, 0x49,
+ 0x5F, 0x00, 0x27, 0x22, 0x27, 0xFF, 0x4A, 0xBF,
+ 0x4B, 0xDF, 0x4C, 0xFF, 0x27, 0xF4, 0x4E, 0x8F,
+ 0x4F, 0xAF, 0x50, 0xCF, 0x51, 0xEF, 0xFF, 0x53,
+ 0x0F, 0x54, 0x2F, 0x55, 0x4F, 0x56, 0x6F, 0x57,
+ 0x8F, 0x58, 0xAF, 0x59, 0xCF, 0x5A, 0xEF, 0xFF,
+ 0x5C, 0x0F, 0x5D, 0x2F, 0x5E, 0x4F, 0x5F, 0x6F,
+ 0x60, 0x8F, 0xDB, 0xFF, 0xEF, 0xDB, 0xF0, 0xB5,
+ 0xFF, 0xC8, 0x50, 0x00, 0x13, 0x64, 0xBF, 0x65,
+ 0xDF, 0x66, 0xFF, 0x68, 0x1F, 0x69, 0x3F, 0x6A,
+ 0x5F, 0xFE, 0x6B, 0x7F, 0x6C, 0x9F, 0x6D, 0xBF,
+ 0x6E, 0xDF, 0x6F, 0xFF, 0x71, 0x1F, 0xFD, 0x92,
+ 0x20, 0xFE, 0x72, 0x9F, 0x73, 0xBF, 0x74, 0xDF,
+ 0xEF, 0xFA, 0xDB, 0x84, 0x4F, 0xD2, 0x00, 0x35,
+ 0x26, 0x7F, 0x27, 0xB4, 0x60, 0x13, 0xFF, 0x79,
+ 0x7F, 0x7A, 0x9F, 0x7B, 0xBF, 0x7C, 0xDF, 0x7D,
+ 0xFF, 0xFF, 0x7F, 0x1F, 0x80, 0x3F, 0x81, 0x5F,
+ 0x82, 0x7F, 0x83, 0x9F, 0x84, 0xBF, 0x14, 0x0F,
+ 0x86, 0xFF, 0xFC, 0x88, 0x1F, 0x8B, 0xFF, 0x13,
+ 0xF5, 0xDB, 0xC2, 0xF0, 0x37, 0x8C, 0xE3, 0x2B,
+ 0x2B, 0xFF, 0x64, 0x81, 0x64, 0xBF, 0x8D, 0xAF,
+ 0x8E, 0xCF, 0x8F, 0xEF, 0x91, 0x0F, 0x92, 0x2F,
+ 0x93, 0x4F, 0xFD, 0x94, 0x6F, 0x95, 0x8F, 0x96,
+ 0xAF, 0x97, 0xCF, 0x98, 0xEF, 0xEC, 0x86, 0x1E,
+ 0x9A, 0xAF, 0xFF, 0x9B, 0xCF, 0x9C, 0xEF, 0x3B,
+ 0xF7, 0xEF, 0x91, 0xF0, 0x33, 0xA0, 0x33, 0xA0,
+ 0x72, 0xC8, 0x63, 0xFF, 0x14, 0x23, 0xA0, 0xBF,
+ 0xA1, 0xDF, 0xA2, 0xFF, 0xA4, 0x1F, 0xA5, 0x3F,
+ 0xA6, 0x5F, 0xA7, 0x7F, 0xFF, 0xA8, 0x9F, 0xA9,
+ 0xBF, 0xAA, 0xDF, 0xAB, 0xFF, 0xAD, 0x1F, 0x14,
+ 0x0F, 0xAF, 0x5F, 0xB0, 0x7F, 0xFF, 0x9F, 0xFD,
+ 0x13, 0xC6, 0xB4, 0x10, 0x3C, 0xB7, 0xF1, 0x50,
+ 0x4F, 0xF3, 0x28, 0x40, 0xB4, 0xBF, 0xFF, 0xB5,
+ 0xDF, 0xB6, 0xFF, 0xB8, 0x1F, 0xB9, 0x3F, 0xBA,
+ 0x5F, 0xBB, 0x7F, 0xBC, 0x9F, 0xBD, 0xBF, 0xFF,
+ 0xBE, 0xDF, 0xBF, 0xFF, 0xC1, 0x1F, 0xC2, 0x3F,
+ 0xC3, 0x5F, 0xC4, 0x7F, 0xDB, 0xFC, 0xDB, 0x70,
+ 0xF7, 0x4F, 0xF5, 0x8C, 0x38, 0x00, 0xD1, 0x4F,
+ 0xF5, 0x2B, 0xC8, 0xBF, 0xC9, 0xDF, 0xCA, 0xFF,
+ 0xFF, 0xCC, 0x1F, 0xCD, 0x3F, 0xCE, 0x5F, 0xCF,
+ 0x7F, 0xD0, 0x9F, 0xD1, 0xBF, 0xD2, 0xDF, 0xD3,
+ 0xFF, 0xDF, 0xD5, 0x1F, 0xEC, 0xB2, 0x1A, 0xD6,
+ 0x9F, 0xD7, 0xBF, 0xD8, 0xDF, 0x13, 0xF9, 0xC7,
+ 0x85, 0xFF, 0xC8, 0x49, 0x13, 0xFF, 0xDD, 0x1F,
+ 0xDE, 0x3F, 0xDF, 0x5F, 0xE0, 0x7F, 0xE1, 0x9F,
+ 0xE2, 0xBF, 0xFF, 0xE3, 0xDF, 0xE4, 0xFF, 0xE6,
+ 0x1F, 0xE7, 0x3F, 0xE8, 0x5F, 0xE9, 0x7F, 0xEA,
+ 0x9F, 0xEB, 0xBF, 0xFF, 0xEC, 0xDF, 0xF3, 0x36,
+ 0xDB, 0xB7, 0x8C, 0x6B, 0x27, 0xFF, 0xF1, 0x2F,
+ 0xF2, 0x4F, 0xF3, 0x6F, 0xFF, 0xF4, 0x8F, 0xF5,
+ 0xAF, 0xF6, 0xCF, 0xF7, 0xEF, 0xF9, 0x0F, 0xFA,
+ 0x2F, 0xFB, 0x4F, 0xFC, 0x6F, 0xFF, 0xFD, 0x8F,
+ 0xFE, 0xAF, 0xFF, 0xCF, 0x00, 0xEF, 0xDF, 0xF6,
+ 0x8A, 0xA1, 0xC8, 0x35, 0x27, 0xF8, 0x7F, 0x27,
+ 0x4F, 0xFF, 0x05, 0x3F, 0x06, 0x5F, 0x07, 0x7F,
+ 0x08, 0x9F, 0x09, 0xBF, 0x0A, 0xDF, 0xFF, 0x0B,
+ 0xFF, 0x0D, 0x1F, 0x0E, 0x3F, 0x0F, 0x5F, 0x10,
+ 0x7F, 0x11, 0x9F, 0x12, 0xBF, 0x13, 0xDF, 0xFB,
+ 0x14, 0xFF, 0xCB, 0xF5, 0x8A, 0xA1, 0x28, 0x45,
+ 0x8C, 0x19, 0x27, 0x77, 0xFF, 0x19, 0x4F, 0xFF,
+ 0x1A, 0x6F, 0x1B, 0x8F, 0x1C, 0xAF, 0x1D, 0xCF,
+ 0x1E, 0xEF, 0x20, 0x0F, 0x21, 0x2F, 0x22, 0x4F,
+ 0xFF, 0x23, 0x6F, 0x24, 0x8F, 0x25, 0xAF, 0x26,
+ 0xCF, 0x27, 0xEF, 0x29, 0x0F, 0x13, 0xF5, 0x9E,
+ 0xD3, 0xDF, 0x14, 0x47, 0x01, 0x14, 0x29, 0x9F,
+ 0xFF, 0x2D, 0x4F, 0x2E, 0x6F, 0x2F, 0x8F, 0x30,
+ 0xAF, 0xFF, 0x31, 0xCF, 0x32, 0xEF, 0x34, 0x0F,
+ 0x35, 0x2F, 0x36, 0x4F, 0x37, 0x6F, 0x38, 0x8F,
+ 0x39, 0xAF, 0xFB, 0x3A, 0xCF, 0x3B, 0xEF, 0x3D,
+ 0x0F, 0x3B, 0xF4, 0x4F, 0xF7, 0x25, 0xB4, 0x62,
+ 0x00, 0x33, 0x1F, 0x29, 0x2F, 0x2F, 0xDB, 0xE5,
+ 0x3B, 0xFF, 0x41, 0xCF, 0x42, 0xEF, 0x44, 0x0F,
+ 0xFF, 0x45, 0x2F, 0x46, 0x4F, 0x47, 0x6F, 0x48,
+ 0x8F, 0x49, 0xAF, 0x4A, 0xCF, 0x4B, 0xEF, 0x4D,
+ 0x0F, 0xFC, 0x4E, 0x2F, 0x4F, 0x4F, 0x50, 0x6F,
+ 0x3B, 0xFF, 0x77, 0x59, 0xDC, 0xD6, 0x2B, 0x2F,
+ 0xFF, 0x00, 0x00, 0xEF, 0xFF, 0x55, 0x6F, 0x56,
+ 0x8F, 0x57, 0xAF, 0x58, 0xCF, 0x59, 0xEF, 0x5B,
+ 0x0F, 0xFF, 0x5C, 0x2F, 0x5D, 0x4F, 0x5E, 0x6F,
+ 0x5F, 0x8F, 0x60, 0xAF, 0x61, 0xCF, 0x62, 0xEF,
+ 0x64, 0x0F, 0xFF, 0x65, 0x2F, 0x66, 0x4F, 0x67,
+ 0x6F, 0x68, 0x8F, 0x69, 0xAF, 0x6A, 0xCF, 0x6B,
+ 0xEF, 0x6D, 0x0F, 0xFF, 0x6E, 0x2F, 0x6F, 0x4F,
+ 0x70, 0x6F, 0x71, 0x8F, 0x72, 0xAF, 0x73, 0xCF,
+ 0x74, 0xEF, 0x76, 0x0F, 0xFF, 0x77, 0x2F, 0x78,
+ 0x4F, 0x79, 0x6F, 0x7A, 0x8F, 0x7B, 0xAF, 0x7C,
+ 0xCF, 0x7D, 0xEF, 0x7F, 0x0F, 0xFF, 0x80, 0x2F,
+ 0x81, 0x4F, 0x82, 0x6F, 0x83, 0x8F, 0x84, 0xAF,
+ 0x85, 0xCF, 0x86, 0xEF, 0x88, 0x0F, 0xFF, 0x89,
+ 0x2F, 0x8A, 0x4F, 0x8B, 0x6F, 0x8C, 0x8F, 0x8D,
+ 0xAF, 0x8E, 0xCF, 0x8F, 0xEF, 0x91, 0x0F, 0xFF,
+ 0x92, 0x2F, 0x93, 0x4F, 0x94, 0x6F, 0x95, 0x8F,
+ 0x96, 0xAF, 0x97, 0xCF, 0x98, 0xEF, 0x9A, 0x0F,
+ 0xE0, 0x9B, 0x2F, 0x9C, 0x4F, 0xFF, 0xC7, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2IntroCpsDataStreet1FMTownsProvider = { ARRAYSIZE(kEoB2IntroCpsDataStreet1FMTowns), kEoB2IntroCpsDataStreet1FMTowns };
+
+static const byte kEoB2IntroCpsDataStreet2FMTowns[15712] = {
+ 0x55, 0x3D, 0x00, 0x00, 0x07, 0x6B, 0x6B, 0x6D,
+ 0x6D, 0x6B, 0x00, 0x06, 0x00, 0xA0, 0x00, 0xE1,
+ 0x66, 0x6C, 0x01, 0x34, 0x00, 0xA2, 0x6C, 0x6B,
+ 0x00, 0x20, 0x02, 0x50, 0x6D, 0x71, 0x6D, 0x01,
+ 0x60, 0x00, 0x21, 0x02, 0x71, 0x6D, 0x6F, 0x6F,
+ 0x02, 0x50, 0x1C, 0x6F, 0x6F, 0x6F, 0x01, 0xD0,
+ 0x04, 0x14, 0x03, 0xB1, 0x6B, 0x0C, 0x00, 0x2C,
+ 0x0C, 0x6B, 0x6D, 0x0C, 0x0C, 0x2C, 0x2D, 0xE7,
+ 0x04, 0x41, 0x03, 0x82, 0x05, 0xC3, 0x6A, 0x0C,
+ 0x05, 0x41, 0x04, 0xC3, 0x04, 0x71, 0x8F, 0x03,
+ 0x41, 0x6D, 0x6A, 0x0C, 0x04, 0xB1, 0x02, 0x70,
+ 0x04, 0x31, 0x08, 0x70, 0x93, 0x06, 0x64, 0x6D,
+ 0x0C, 0x05, 0x20, 0x0C, 0x0C, 0x06, 0xF2, 0x04,
+ 0x31, 0xDA, 0x01, 0x11, 0x00, 0xE1, 0x6B, 0x00,
+ 0x51, 0x0A, 0xB3, 0x2D, 0x00, 0x01, 0x2B, 0x1B,
+ 0x2B, 0x2B, 0x2C, 0x00, 0x40, 0x00, 0xB0, 0x2C,
+ 0x00, 0xA0, 0x00, 0x82, 0x35, 0x2B, 0x2E, 0x00,
+ 0x0A, 0x02, 0x31, 0x2D, 0x02, 0x30, 0x2C, 0x02,
+ 0x21, 0xCB, 0x02, 0x63, 0x02, 0xA1, 0x2A, 0x28,
+ 0x00, 0x06, 0x27, 0x00, 0x02, 0x04, 0x10, 0xDF,
+ 0x05, 0x12, 0x00, 0x48, 0x00, 0x00, 0x0F, 0x01,
+ 0x2F, 0x02, 0x40, 0x0F, 0x63, 0x14, 0x12, 0x7F,
+ 0x6C, 0x13, 0x74, 0x11, 0x02, 0x0E, 0x12, 0x13,
+ 0x70, 0x0D, 0xD2, 0x15, 0x63, 0x13, 0xA1, 0xDF,
+ 0x0E, 0x83, 0x14, 0xD1, 0x6F, 0x15, 0x80, 0x13,
+ 0xF0, 0x0F, 0x02, 0x11, 0x05, 0x13, 0xF1, 0x2F,
+ 0x2C, 0x6C, 0x0E, 0x71, 0x2D, 0x03, 0x24, 0x17,
+ 0x91, 0x1A, 0x11, 0x12, 0xA0, 0xF0, 0x12, 0x31,
+ 0x1A, 0x43, 0x13, 0xE2, 0x1B, 0x70, 0x6A, 0x0C,
+ 0x6D, 0x6C, 0xFF, 0x19, 0x31, 0x14, 0xF2, 0x08,
+ 0x35, 0x1C, 0xF0, 0x13, 0xA0, 0x13, 0xF1, 0x1D,
+ 0x16, 0x19, 0x11, 0xC3, 0x15, 0x33, 0x14, 0x51,
+ 0x6B, 0x6E, 0x6E, 0x6E, 0x12, 0x6B, 0x13, 0x41,
+ 0x48, 0x2C, 0x00, 0x01, 0x2B, 0x2A, 0x00, 0x0F,
+ 0x2A, 0x2E, 0x2E, 0x98, 0x15, 0x50, 0x2D, 0x2B,
+ 0x16, 0xE1, 0x17, 0x32, 0x2D, 0x2B, 0x2A, 0xFF,
+ 0x13, 0x53, 0x00, 0x57, 0x13, 0xFF, 0x13, 0xFF,
+ 0x15, 0x0F, 0x13, 0xF4, 0x0D, 0x73, 0x1F, 0xD5,
+ 0xFF, 0x20, 0xB3, 0x29, 0x43, 0x1F, 0xC2, 0x01,
+ 0x53, 0x15, 0x85, 0x29, 0xE5, 0x28, 0x00, 0x28,
+ 0x42, 0x7F, 0x6F, 0x29, 0xF1, 0x2B, 0x96, 0x13,
+ 0xF5, 0x0C, 0x90, 0x2C, 0xA3, 0x2B, 0xB0, 0x24,
+ 0x33, 0xFF, 0x12, 0xA0, 0x2B, 0x62, 0x2D, 0xA5,
+ 0x2C, 0xD1, 0x15, 0x43, 0x1A, 0x94, 0x06, 0x91,
+ 0x14, 0xA1, 0xF4, 0x13, 0xF5, 0x12, 0x40, 0x31,
+ 0x67, 0x12, 0xF0, 0x2B, 0x32, 0x40, 0x2E, 0x2E,
+ 0xBD, 0x32, 0xA0, 0x6A, 0x00, 0x03, 0x12, 0x9F,
+ 0x28, 0x32, 0x00, 0x4F, 0x2C, 0x13, 0xF3, 0xFF,
+ 0x28, 0x92, 0x2A, 0xE1, 0x2A, 0xB0, 0x13, 0xFF,
+ 0x27, 0xF3, 0x28, 0x49, 0x27, 0xFF, 0x29, 0x1F,
+ 0xFF, 0x27, 0xF2, 0x22, 0x12, 0x3B, 0x01, 0x21,
+ 0x63, 0x28, 0xE3, 0x13, 0x64, 0x21, 0xD1, 0x23,
+ 0x13, 0xF7, 0x3D, 0xC3, 0x0E, 0x42, 0x02, 0xB3,
+ 0x27, 0x90, 0x6B, 0x27, 0xF1, 0x0F, 0x11, 0x16,
+ 0x63, 0xCF, 0x3E, 0xD2, 0x27, 0xF4, 0x2C, 0x2C,
+ 0x18, 0x15, 0x41, 0x44, 0x3B, 0xF0, 0x13, 0x22,
+ 0xDD, 0x04, 0xD5, 0x27, 0x80, 0x6C, 0x15, 0x40,
+ 0x00, 0x51, 0x00, 0x35, 0x6E, 0x13, 0xC0, 0xBE,
+ 0x13, 0x40, 0x6E, 0x13, 0xB2, 0x40, 0x30, 0x05,
+ 0x61, 0x3B, 0x21, 0x3B, 0xB0, 0x2B, 0xF4, 0x41,
+ 0x10, 0x46, 0x40, 0x3B, 0xE6, 0x47, 0x00, 0x2B,
+ 0x27, 0x02, 0x2C, 0x2D, 0xDF, 0x28, 0x9F, 0x3B,
+ 0x72, 0x2D, 0x01, 0x8C, 0x3B, 0xD1, 0x3A, 0x31,
+ 0x2A, 0x41, 0x27, 0xFF, 0xBF, 0x3B, 0xF3, 0x2C,
+ 0x3C, 0x51, 0x02, 0x52, 0x3B, 0xFF, 0x3C, 0xEF,
+ 0x3B, 0xF5, 0x4B, 0xD5, 0xFF, 0x35, 0x43, 0x4E,
+ 0xB2, 0x3C, 0x80, 0x3A, 0x87, 0x51, 0x57, 0x49,
+ 0xB2, 0x37, 0xF4, 0x4F, 0xF1, 0x7F, 0x6B, 0x27,
+ 0xF3, 0x01, 0x64, 0x3F, 0x53, 0x13, 0xF5, 0x4F,
+ 0xF1, 0x4D, 0xC2, 0x11, 0x50, 0xFF, 0x36, 0xF0,
+ 0x12, 0xA4, 0x00, 0xC1, 0x12, 0xE6, 0x12, 0x80,
+ 0x4F, 0xF1, 0x03, 0xF4, 0x57, 0x22, 0xFB, 0x2B,
+ 0x04, 0x13, 0xA1, 0x13, 0x83, 0x50, 0x41, 0x5A,
+ 0x00, 0x2D, 0x19, 0x01, 0x13, 0xF1, 0xF6, 0x12,
+ 0xEF, 0x50, 0x60, 0x00, 0x21, 0x39, 0xE0, 0x2C,
+ 0x4D, 0xB0, 0x00, 0xA2, 0x2C, 0xFF, 0x50, 0x52,
+ 0x51, 0x91, 0x51, 0xC2, 0x50, 0x60, 0x3C, 0x20,
+ 0x02, 0x53, 0x2A, 0x34, 0x3B, 0xFE, 0xFF, 0x15,
+ 0xB1, 0x50, 0x25, 0x14, 0x13, 0x4F, 0xFF, 0x51,
+ 0x1F, 0x13, 0xF5, 0x35, 0x51, 0x62, 0x70, 0xFF,
+ 0x5E, 0xC2, 0x31, 0xE4, 0x00, 0x6F, 0x01, 0x8A,
+ 0x52, 0xC1, 0x38, 0xB0, 0x4F, 0xF1, 0x27, 0xD4,
+ 0x97, 0x4E, 0x82, 0x6B, 0x6D, 0x48, 0x70, 0x6C,
+ 0x49, 0xD2, 0x24, 0xE0, 0x12, 0xA1, 0x6F, 0x6E,
+ 0x67, 0xA1, 0x4E, 0x40, 0x6C, 0x26, 0xA1, 0x2E,
+ 0x81, 0x6A, 0x32, 0x11, 0xC4, 0xFF, 0x00, 0x6F,
+ 0x13, 0x55, 0x68, 0x31, 0x08, 0xA8, 0x19, 0x61,
+ 0x69, 0xC2, 0x38, 0x15, 0x60, 0xD0, 0xFD, 0x60,
+ 0xF4, 0x28, 0x0F, 0x50, 0xC1, 0x65, 0x61, 0x29,
+ 0x1E, 0x62, 0x27, 0x26, 0x00, 0x04, 0x9F, 0x63,
+ 0xD3, 0x26, 0x26, 0x63, 0xFC, 0x2A, 0x91, 0x63,
+ 0xFF, 0x65, 0x1F, 0x27, 0xF3, 0xFF, 0x00, 0x1F,
+ 0x01, 0x39, 0x36, 0x71, 0x02, 0x3F, 0x49, 0x31,
+ 0x78, 0xE0, 0x4A, 0x42, 0x7B, 0xF5, 0xF7, 0x67,
+ 0xA2, 0x63, 0xF5, 0x12, 0x1F, 0x13, 0x39, 0x2A,
+ 0x1A, 0x5D, 0x26, 0x10, 0x78, 0xE0, 0xFF, 0x12,
+ 0xB3, 0x77, 0xF7, 0x41, 0x82, 0x52, 0x92, 0x69,
+ 0x61, 0x18, 0x30, 0x27, 0xF4, 0x3B, 0x4A, 0xFF,
+ 0x27, 0x82, 0x61, 0xE2, 0x15, 0x43, 0x78, 0xA1,
+ 0x3B, 0x24, 0x4F, 0xE2, 0x79, 0x20, 0x50, 0x20,
+ 0xF1, 0x7A, 0xC0, 0x52, 0x98, 0x13, 0xF5, 0x14,
+ 0x72, 0x24, 0x24, 0x24, 0x3B, 0x56, 0x7F, 0x45,
+ 0x77, 0xFF, 0x78, 0x8F, 0x13, 0xFF, 0x48, 0x63,
+ 0x5B, 0x31, 0x00, 0x23, 0x44, 0xEF, 0xFC, 0x46,
+ 0x7D, 0x71, 0x03, 0x8B, 0xF2, 0x37, 0xA5, 0x54,
+ 0x72, 0x0E, 0x82, 0x0C, 0x2C, 0x43, 0x2A, 0x12,
+ 0x16, 0x6D, 0x2C, 0x0C, 0x6C, 0x2B, 0xEF, 0x64,
+ 0xB3, 0xFF, 0x64, 0xD4, 0x77, 0x33, 0x8C, 0x64,
+ 0x8A, 0xD2, 0x8B, 0x12, 0x65, 0x52, 0x6D, 0x24,
+ 0x3B, 0xF2, 0xFF, 0x41, 0xC1, 0x88, 0x61, 0x3A,
+ 0xF4, 0x74, 0xD2, 0x8B, 0x1D, 0x78, 0xC5, 0x8D,
+ 0x50, 0x4F, 0xFB, 0xE0, 0x63, 0xD1, 0x8E, 0xF0,
+ 0x8E, 0x92, 0x2A, 0x26, 0x25, 0x26, 0x25, 0xF7,
+ 0x00, 0x02, 0x28, 0x21, 0x27, 0xD0, 0x4F, 0x56,
+ 0x3D, 0x00, 0x12, 0x52, 0xB1, 0x8B, 0xFF, 0xFF,
+ 0x8D, 0x1F, 0x8E, 0x31, 0x57, 0x6C, 0x44, 0xC5,
+ 0x44, 0xD8, 0x44, 0xE7, 0x96, 0x60, 0x02, 0x24,
+ 0x7D, 0x2C, 0x99, 0x00, 0xA2, 0xC0, 0x3B, 0xF2,
+ 0x53, 0x02, 0x63, 0xF4, 0x6A, 0x77, 0xF5, 0xFF,
+ 0x63, 0xF1, 0xA4, 0x54, 0x62, 0x40, 0x67, 0xF6,
+ 0x55, 0xB3, 0x7D, 0x13, 0x7C, 0x63, 0x2E, 0x22,
+ 0xFF, 0x8D, 0xF3, 0x41, 0x22, 0xA4, 0xD1, 0x8B,
+ 0xF5, 0x00, 0x13, 0xA4, 0x81, 0x3B, 0xF4, 0x4F,
+ 0xFF, 0xFF, 0x4D, 0x94, 0x4E, 0xA2, 0x0A, 0x02,
+ 0x8A, 0x32, 0x63, 0x23, 0x3E, 0x42, 0x77, 0xF7,
+ 0xA0, 0x72, 0xFF, 0x0C, 0x21, 0x9F, 0xF3, 0x3C,
+ 0x30, 0x14, 0x02, 0x13, 0xE1, 0x9F, 0xF6, 0x13,
+ 0xF5, 0x9F, 0xFF, 0xFF, 0xA0, 0xFF, 0xA2, 0x13,
+ 0x57, 0x44, 0x44, 0xBF, 0x44, 0xEF, 0x27, 0xFB,
+ 0x63, 0xF5, 0x9B, 0x21, 0xE7, 0x7A, 0x25, 0xB1,
+ 0x10, 0x27, 0xF3, 0x2C, 0x2D, 0x50, 0xF3, 0xA5,
+ 0x30, 0x77, 0x91, 0xFF, 0x7E, 0x22, 0xA6, 0x94,
+ 0xB9, 0xF3, 0x93, 0x34, 0xB6, 0x03, 0xA1, 0xF3,
+ 0xB8, 0x84, 0x63, 0xF2, 0xFF, 0x9F, 0xF2, 0x81,
+ 0x04, 0x69, 0x64, 0x77, 0xF2, 0xB1, 0x53, 0x62,
+ 0x02, 0x12, 0x75, 0x50, 0x15, 0xFF, 0xB3, 0xA4,
+ 0x3B, 0xC3, 0x9E, 0xE0, 0xA1, 0x53, 0xB5, 0x05,
+ 0x3E, 0x03, 0xB6, 0x73, 0xB3, 0xF3, 0xFF, 0x13,
+ 0xA1, 0x50, 0x75, 0xB3, 0xFF, 0xB3, 0xFF, 0xB5,
+ 0x0F, 0x27, 0xFE, 0x43, 0x21, 0x44, 0xC4, 0xFA,
+ 0x6C, 0xC2, 0x44, 0xD4, 0x44, 0xE9, 0xBB, 0xF1,
+ 0xBC, 0xB1, 0x2E, 0x13, 0xF0, 0x6D, 0xF3, 0x63,
+ 0xF1, 0x27, 0x94, 0x12, 0xE4, 0x27, 0xF5, 0x0C,
+ 0x2D, 0xC5, 0x24, 0xB3, 0x91, 0xC7, 0xBA, 0x04,
+ 0xB4, 0x02, 0x6D, 0x6A, 0x69, 0x00, 0x05, 0x39,
+ 0xF4, 0xA2, 0x23, 0xFC, 0xB5, 0xF1, 0xCE, 0x22,
+ 0xC6, 0xD2, 0x77, 0xF2, 0xCF, 0x07, 0xC9, 0x10,
+ 0x2C, 0x2C, 0xFF, 0xC8, 0x52, 0x25, 0x84, 0x4F,
+ 0x84, 0x00, 0x66, 0x8A, 0xD1, 0x13, 0xFA, 0x13,
+ 0x85, 0xC9, 0x06, 0xFF, 0xCA, 0x63, 0x78, 0x02,
+ 0x27, 0xF4, 0x3C, 0x03, 0x3C, 0x53, 0x27, 0xFF,
+ 0xC7, 0xFF, 0xC9, 0x0F, 0xFF, 0x27, 0xF3, 0x7E,
+ 0x75, 0x44, 0xBF, 0x44, 0xEF, 0x27, 0xFB, 0x3B,
+ 0xF4, 0xB7, 0x04, 0x38, 0x51, 0xDF, 0x27, 0xF3,
+ 0xC8, 0x41, 0x2D, 0x90, 0x21, 0xE1, 0x92, 0xB3,
+ 0x91, 0xD9, 0xA3, 0xCD, 0x93, 0xFF, 0x75, 0x58,
+ 0xE2, 0x46, 0xDD, 0xF0, 0x17, 0x00, 0xB6, 0xC3,
+ 0x13, 0xF8, 0xDE, 0xB4, 0xE3, 0xD0, 0xEE, 0x3B,
+ 0xF5, 0xC6, 0xB4, 0x26, 0x97, 0x2D, 0x28, 0xD0,
+ 0x26, 0x50, 0xDB, 0x80, 0x2B, 0xFF, 0x9F, 0x53,
+ 0x63, 0xC0, 0x01, 0x10, 0x28, 0x61, 0xA2, 0x10,
+ 0x01, 0xC1, 0xDD, 0x20, 0xC7, 0xF5, 0xFF, 0xDC,
+ 0xA1, 0xC8, 0x81, 0x13, 0xF7, 0x78, 0x34, 0x3B,
+ 0xFF, 0xDB, 0xFF, 0xDD, 0x0F, 0x27, 0xFF, 0xFF,
+ 0xCE, 0x24, 0x59, 0xB3, 0x44, 0xD6, 0x44, 0xE6,
+ 0x96, 0x63, 0x94, 0x52, 0x3B, 0xF8, 0x89, 0x42,
+ 0xBF, 0xC5, 0xC4, 0x6A, 0x4F, 0x91, 0xC7, 0xF2,
+ 0x4B, 0xD3, 0xF3, 0x80, 0x27, 0xF2, 0xC5, 0x72,
+ 0xFF, 0xCD, 0xF5, 0xDC, 0x66, 0x29, 0x75, 0xDD,
+ 0xE1, 0x25, 0xF0, 0xE3, 0xA4, 0x63, 0xF8, 0xBB,
+ 0x96, 0xFF, 0xE1, 0x61, 0xCD, 0x71, 0x12, 0xE0,
+ 0x10, 0xF2, 0x76, 0x31, 0x11, 0xB1, 0x0A, 0x73,
+ 0x11, 0x32, 0xFF, 0x9E, 0xE2, 0x78, 0x81, 0xEC,
+ 0xC1, 0x4F, 0xC1, 0xEF, 0x74, 0x29, 0xA3, 0xDB,
+ 0xA2, 0x3B, 0xFA, 0xC7, 0x8B, 0xE6, 0xEF, 0xFB,
+ 0x46, 0x2D, 0x44, 0xEF, 0xFF, 0xF0, 0xCF, 0x27,
+ 0xF8, 0xFF, 0x19, 0xA4, 0x61, 0x62, 0x45, 0x35,
+ 0xF9, 0x70, 0x43, 0x55, 0x47, 0x03, 0x96, 0x73,
+ 0xBB, 0xE1, 0xFD, 0xBC, 0xD3, 0x4F, 0xF0, 0xB4,
+ 0x42, 0xC7, 0xF0, 0xC4, 0x36, 0x36, 0x30, 0x2A,
+ 0x63, 0x92, 0xFE, 0xDB, 0xF2, 0x13, 0x15, 0x13,
+ 0xF3, 0xF4, 0xA0, 0x50, 0x03, 0x77, 0xB2, 0xF6,
+ 0xF1, 0x69, 0x03, 0x6D, 0x2A, 0x2A, 0x6C, 0x6B,
+ 0x2B, 0x3B, 0xE5, 0x68, 0x34, 0xF9, 0x13, 0xF3,
+ 0x3B, 0x11, 0x3F, 0x63, 0x7A, 0x54, 0xE1, 0x11,
+ 0x2D, 0x2B, 0xB9, 0x60, 0xF8, 0x9D, 0x92, 0x6C,
+ 0x52, 0x39, 0x02, 0x13, 0x11, 0x46, 0x44, 0x2D,
+ 0x2D, 0x2A, 0xFF, 0x14, 0x02, 0x12, 0x83, 0x02,
+ 0x13, 0xD9, 0x52, 0xB3, 0xF2, 0xB6, 0x54, 0x16,
+ 0x12, 0x63, 0xF3, 0xFF, 0x00, 0x39, 0x9F, 0xFC,
+ 0xDC, 0xA1, 0x76, 0x8E, 0x01, 0x0F, 0x63, 0xF3,
+ 0xBC, 0x44, 0x57, 0x6A, 0xF3, 0x44, 0x55, 0x44,
+ 0xD5, 0x01, 0x76, 0x58, 0xF5, 0x2D, 0x0C, 0xDB,
+ 0xF0, 0x77, 0xF2, 0xDE, 0xFC, 0x6F, 0xC8, 0x42,
+ 0x2D, 0xC9, 0x25, 0x13, 0xF2, 0xEF, 0x54, 0x4F,
+ 0xA1, 0x6D, 0x53, 0x69, 0x13, 0xF6, 0x29, 0x50,
+ 0xA2, 0x2B, 0x2D, 0xF4, 0xE0, 0x66, 0x42, 0xFF,
+ 0x8A, 0xC5, 0x63, 0xF4, 0xB6, 0x4A, 0xD7, 0x61,
+ 0xC8, 0x50, 0xC4, 0x16, 0xC2, 0xB3, 0x6F, 0xA3,
+ 0xFF, 0x4D, 0x82, 0x5A, 0xA4, 0x14, 0xE4, 0xEC,
+ 0xE0, 0xC6, 0xD2, 0x78, 0xC3, 0xC7, 0xF1, 0x16,
+ 0x63, 0xCB, 0xDB, 0xF1, 0x77, 0xF4, 0x27, 0x27,
+ 0x00, 0x31, 0x27, 0x78, 0x24, 0xEF, 0xA4, 0xFF,
+ 0xDB, 0xD3, 0xE1, 0x71, 0x13, 0xFF, 0x15, 0x1F,
+ 0x8B, 0xF7, 0x94, 0x65, 0x58, 0xC6, 0x5A, 0x23,
+ 0xFD, 0x14, 0x76, 0x13, 0x76, 0x13, 0xF9, 0xDB,
+ 0xF2, 0x5F, 0xB1, 0xCB, 0x37, 0x2C, 0x5E, 0x81,
+ 0xF9, 0xF0, 0x41, 0x63, 0xF2, 0xDD, 0xB1, 0x63,
+ 0xF2, 0xEF, 0x62, 0x6A, 0x69, 0xC4, 0xA2, 0x94,
+ 0x9F, 0xF5, 0x6A, 0x2D, 0xCC, 0x60, 0x6A, 0x64,
+ 0xE0, 0x29, 0x2B, 0x7F, 0x2B, 0x7A, 0x43, 0x9E,
+ 0xE3, 0x13, 0xF2, 0xDB, 0xF1, 0xAF, 0x08, 0xDB,
+ 0xF1, 0xFF, 0x70, 0x7F, 0x0C, 0x22, 0x4C, 0x00,
+ 0xEF, 0x02, 0x0F, 0x51, 0x32, 0xDC, 0xD4, 0xA0,
+ 0x05, 0x13, 0xF3, 0xFF, 0x77, 0xA5, 0x77, 0xFF,
+ 0xF3, 0xE1, 0x27, 0xFF, 0x29, 0x1F, 0x9F, 0xF7,
+ 0x58, 0xB4, 0x58, 0xC7, 0xFB, 0x57, 0xA0, 0x58,
+ 0xD6, 0x58, 0xE6, 0x58, 0xF3, 0x95, 0xF1, 0x2B,
+ 0x13, 0xF2, 0xDB, 0xF1, 0xFE, 0x88, 0x03, 0x76,
+ 0x24, 0x9F, 0xF2, 0x4F, 0xF3, 0x01, 0x75, 0x13,
+ 0xF4, 0x77, 0x61, 0x6A, 0x7C, 0x6A, 0xDC, 0x21,
+ 0xDC, 0x31, 0xDE, 0xC2, 0x2A, 0x22, 0x65, 0x01,
+ 0x2D, 0x29, 0x3F, 0x2B, 0x2A, 0x27, 0xF3, 0x78,
+ 0xF2, 0xF1, 0x60, 0xFE, 0xD0, 0x13, 0xF0, 0x26,
+ 0x64, 0xE7, 0xEC, 0x71, 0xF5, 0x11, 0x3B, 0xF1,
+ 0x0C, 0x2D, 0xC4, 0x47, 0x3B, 0x00, 0x00, 0x0F,
+ 0xFE, 0x01, 0xA5, 0xBC, 0x10, 0xC6, 0xC5, 0x4F,
+ 0xF8, 0xC8, 0xF1, 0xDF, 0xD0, 0xC8, 0x94, 0x29,
+ 0x3F, 0x29, 0x29, 0x13, 0xFD, 0xF0, 0x31, 0xEF,
+ 0xFF, 0x3C, 0xBF, 0xB3, 0xF8, 0xCE, 0xF2, 0xFF,
+ 0x58, 0xB4, 0xCF, 0x30, 0x58, 0xC5, 0x58, 0xD7,
+ 0xD1, 0xD0, 0x58, 0xE4, 0x58, 0xF3, 0xAA, 0x32,
+ 0xFF, 0x27, 0xF2, 0xC8, 0x01, 0x9F, 0xF3, 0xF3,
+ 0xC1, 0xF0, 0x51, 0xB3, 0xF1, 0x86, 0xD2, 0x63,
+ 0xF0, 0xFD, 0x89, 0xA2, 0xA1, 0x21, 0x8B, 0x31,
+ 0xD9, 0xD2, 0x76, 0xD6, 0xF3, 0xE2, 0x2D, 0xB5,
+ 0x44, 0x3B, 0x6B, 0x2D, 0x0C, 0x80, 0x8E, 0xF1,
+ 0x90, 0x83, 0x6D, 0x13, 0xB0, 0xD9, 0x00, 0xFF,
+ 0x13, 0xF2, 0x4D, 0xC2, 0xFD, 0xB1, 0x3C, 0x00,
+ 0xEF, 0x60, 0x91, 0x70, 0x09, 0x83, 0xDA, 0xD1,
+ 0x7F, 0x2A, 0x74, 0xD3, 0x9D, 0x13, 0xB1, 0x81,
+ 0xF1, 0x12, 0xC9, 0x62, 0x15, 0xB0, 0xC9, 0xF3,
+ 0xFF, 0xB5, 0x22, 0xB3, 0xF3, 0x6F, 0xD3, 0xA0,
+ 0x44, 0x17, 0x88, 0x18, 0x52, 0x13, 0x84, 0x27,
+ 0xFF, 0xFF, 0x50, 0x5F, 0xC8, 0x0D, 0x41, 0x74,
+ 0x58, 0xB3, 0x42, 0x54, 0xC6, 0x62, 0x58, 0xD7,
+ 0x58, 0xE4, 0xFF, 0xFF, 0xD0, 0xF6, 0x51, 0xE8,
+ 0xD0, 0x00, 0x40, 0x9F, 0x93, 0x13, 0xF2, 0xD8,
+ 0x03, 0x9F, 0xFB, 0xC8, 0x4F, 0xF0, 0xF5, 0x85,
+ 0x6A, 0x0C, 0x27, 0xA1, 0x2A, 0x2D, 0x2A, 0xEF,
+ 0xDA, 0x82, 0xA0, 0xB4, 0xDB, 0xC1, 0x2B, 0xA1,
+ 0x44, 0x05, 0x20, 0xA0, 0xD2, 0xA2, 0x64, 0xFF,
+ 0x27, 0xB1, 0x27, 0xF2, 0x11, 0x22, 0x61, 0x93,
+ 0xCE, 0xE1, 0x50, 0x52, 0x3C, 0x10, 0x38, 0x84,
+ 0xFD, 0x13, 0xF0, 0x50, 0xB5, 0x1E, 0xD1, 0x9D,
+ 0x73, 0x4D, 0xC1, 0xDD, 0x70, 0x2A, 0x14, 0x63,
+ 0xFF, 0x14, 0xC3, 0x63, 0xF4, 0x61, 0xFA, 0x27,
+ 0xB0, 0x00, 0x10, 0x13, 0xFA, 0x28, 0x08, 0x3B,
+ 0xFF, 0xFF, 0x64, 0xCF, 0xEF, 0xF8, 0xFA, 0x11,
+ 0xF3, 0xD0, 0x21, 0x00, 0xD9, 0xE2, 0xFB, 0x20,
+ 0xDA, 0x52, 0xFF, 0x0C, 0xA1, 0xF5, 0x51, 0x00,
+ 0x72, 0x86, 0xB3, 0x37, 0xD2, 0xC3, 0x73, 0xB3,
+ 0x91, 0x27, 0xF4, 0xFC, 0xB1, 0xA5, 0xC7, 0xF4,
+ 0xFF, 0xC0, 0xB3, 0xF2, 0x15, 0x64, 0x3B, 0x83,
+ 0x6A, 0x6A, 0xF8, 0x05, 0x13, 0x3E, 0x85, 0xDA,
+ 0xB1, 0x7A, 0x30, 0xEF, 0x12, 0x2D, 0x6B, 0x6A,
+ 0xBF, 0x14, 0x00, 0x6A, 0x8D, 0xE4, 0x07, 0xC1,
+ 0x3A, 0xC1, 0x3B, 0xF2, 0xEE, 0x63, 0x3B, 0xF2,
+ 0xFD, 0x3C, 0xF1, 0xCD, 0x71, 0x63, 0xB3, 0xD8,
+ 0x41, 0x26, 0xF2, 0xD8, 0xD1, 0x29, 0x28, 0xA0,
+ 0xFE, 0xE6, 0x81, 0x14, 0x72, 0x4D, 0xF2, 0x27,
+ 0xD5, 0x79, 0xD2, 0x9F, 0xF4, 0x3E, 0xCD, 0x29,
+ 0x3F, 0x2A, 0x28, 0x3C, 0x66, 0x8B, 0xF8, 0x28,
+ 0x84, 0xEF, 0xFF, 0x79, 0x0F, 0xF0, 0xB2, 0x8F,
+ 0xFA, 0x21, 0x6E, 0x6D, 0x6C, 0xF9, 0xE1, 0xAC,
+ 0xC4, 0xFD, 0xD0, 0x22, 0x35, 0xFF, 0x4B, 0x00,
+ 0xFD, 0x61, 0x9C, 0x03, 0x9E, 0x76, 0x13, 0x83,
+ 0x4F, 0x91, 0xDC, 0x00, 0xFE, 0x42, 0xFD, 0xC5,
+ 0xE2, 0x3C, 0x21, 0x3B, 0xF2, 0x63, 0xF1, 0x25,
+ 0xC2, 0x4F, 0x77, 0x6B, 0x28, 0x00, 0xDE, 0x62,
+ 0x60, 0xF1, 0x40, 0x2B, 0x3D, 0x92, 0x4F, 0xE1,
+ 0xF5, 0x02, 0x3B, 0xD0, 0x2A, 0x9F, 0xB4, 0x92,
+ 0x6A, 0x2A, 0xB4, 0xF0, 0xF2, 0x11, 0x91, 0xB1,
+ 0x76, 0xB1, 0x50, 0x41, 0xFF, 0xE5, 0x95, 0x3B,
+ 0xF2, 0x77, 0xF1, 0x3B, 0x24, 0xFA, 0x61, 0x8A,
+ 0xD1, 0xB2, 0xF1, 0x9F, 0xD3, 0xFF, 0x4C, 0xB0,
+ 0xA9, 0x94, 0xFB, 0xA0, 0x3B, 0xF1, 0xDA, 0xB5,
+ 0xC9, 0xE2, 0xD3, 0xD5, 0xF2, 0x02, 0xFE, 0x3B,
+ 0xEA, 0x28, 0x91, 0x3B, 0xF5, 0x8B, 0xD8, 0x63,
+ 0xFF, 0x8C, 0xFF, 0x27, 0xF4, 0x6F, 0x9F, 0x00,
+ 0x10, 0x6D, 0x6C, 0xD6, 0xF0, 0xE8, 0xC1, 0x4C,
+ 0x21, 0x20, 0xA1, 0xFC, 0xA2, 0x7F, 0x6C, 0x9A,
+ 0xB1, 0xD9, 0xA6, 0xEA, 0xA3, 0x12, 0x93, 0xFE,
+ 0x30, 0x27, 0xF6, 0xDB, 0xF3, 0xF3, 0x4D, 0x54,
+ 0x63, 0xF7, 0xC5, 0x64, 0xAF, 0xF4, 0x6B, 0x6B,
+ 0x5D, 0x42, 0xFD, 0x93, 0xEF, 0xF2, 0xF2, 0x88,
+ 0x13, 0x9B, 0x62, 0x6A, 0xF1, 0xD2, 0x13, 0xF0,
+ 0xF2, 0xF2, 0x63, 0xA2, 0xFF, 0x4F, 0xF1, 0x4E,
+ 0x74, 0xE3, 0x42, 0x9F, 0xF2, 0x78, 0x51, 0x8B,
+ 0xF5, 0x26, 0xD0, 0xE6, 0x44, 0xFF, 0x9D, 0x42,
+ 0x7C, 0x30, 0x28, 0xF1, 0x8D, 0xB4, 0x27, 0xF2,
+ 0x8B, 0x16, 0x8B, 0xF3, 0x52, 0xA6, 0xEB, 0x13,
+ 0xF3, 0x3B, 0xF1, 0x3C, 0x12, 0x29, 0x3C, 0x70,
+ 0x29, 0x3B, 0xE6, 0x77, 0xFF, 0xE2, 0xA0, 0x7F,
+ 0x3B, 0xFC, 0x27, 0xD0, 0x6D, 0x6F, 0x6B, 0x34,
+ 0xC1, 0x6D, 0x3F, 0x6D, 0x6E, 0x84, 0x33, 0x85,
+ 0x62, 0x9A, 0x70, 0x25, 0x94, 0x4E, 0x15, 0x28,
+ 0xB3, 0xFF, 0xD8, 0xA3, 0x13, 0xF7, 0xD8, 0x23,
+ 0xDC, 0x33, 0x63, 0xF3, 0x13, 0xF3, 0xC6, 0x72,
+ 0x3B, 0x70, 0xED, 0x79, 0xB3, 0xB8, 0x04, 0xFE,
+ 0xA2, 0x48, 0x6B, 0x23, 0x49, 0x34, 0x2C, 0x13,
+ 0x82, 0x1F, 0x6D, 0x6B, 0x2A, 0x8C, 0xF1, 0xF4,
+ 0xA0, 0x77, 0xA2, 0x77, 0xF5, 0xF8, 0x35, 0xF1,
+ 0x13, 0x93, 0x13, 0xF9, 0x63, 0xF0, 0x62, 0x45,
+ 0x2C, 0x2D, 0x29, 0xFA, 0xA1, 0x7F, 0x29, 0x64,
+ 0xF6, 0x65, 0xA2, 0xB4, 0x41, 0xFA, 0xF2, 0xB3,
+ 0xF5, 0xFB, 0xC3, 0x8B, 0xF2, 0xFF, 0x13, 0x51,
+ 0x77, 0xD0, 0x78, 0x44, 0x3F, 0xF0, 0x8B, 0xFF,
+ 0xB3, 0xFF, 0xB5, 0x1F, 0x27, 0xF3, 0xF9, 0x3C,
+ 0x01, 0x34, 0xD0, 0xEA, 0x10, 0x72, 0xF2, 0x24,
+ 0x62, 0x69, 0x6B, 0x45, 0x60, 0xF7, 0x11, 0x34,
+ 0xD9, 0xB5, 0x4B, 0x10, 0x10, 0x37, 0x2D, 0x4F,
+ 0xF1, 0xC8, 0x01, 0xEE, 0x31, 0xFF, 0x29, 0x95,
+ 0x13, 0xF3, 0x27, 0xF4, 0xED, 0x52, 0xA1, 0x10,
+ 0x76, 0x62, 0x13, 0xD8, 0x13, 0xF0, 0xFF, 0x04,
+ 0x46, 0xB0, 0x54, 0xF0, 0x62, 0x88, 0xE1, 0x16,
+ 0x92, 0x13, 0xF8, 0x6D, 0xB4, 0x77, 0x91, 0xFC,
+ 0xAF, 0x71, 0xC8, 0x52, 0x6E, 0x72, 0xF9, 0x00,
+ 0x4F, 0xF9, 0xC9, 0xD2, 0x2C, 0x2A, 0xFF, 0xA4,
+ 0x90, 0x65, 0xA4, 0xA2, 0xE2, 0x02, 0xD4, 0xEF,
+ 0xF4, 0xC9, 0x31, 0x01, 0x22, 0x77, 0xE8, 0xFF,
+ 0x50, 0x11, 0x3B, 0xF2, 0x27, 0xFF, 0xC7, 0xFF,
+ 0xC9, 0x1F, 0x13, 0xF4, 0xFA, 0x71, 0x63, 0xF1,
+ 0xD0, 0xFE, 0x04, 0x1C, 0xE0, 0x2A, 0x3C, 0xE1,
+ 0x2A, 0x29, 0x2C, 0x6D, 0x6F, 0x6E, 0xF1, 0xEA,
+ 0x95, 0x50, 0x2E, 0xFF, 0xB5, 0x8B, 0xF5, 0x4B,
+ 0x43, 0x13, 0xF8, 0xFF, 0xFF, 0xC0, 0x4F, 0xF3,
+ 0x4F, 0x40, 0x61, 0x40, 0x63, 0x81, 0x13, 0xDA,
+ 0x13, 0xF8, 0x14, 0x07, 0x8F, 0x78, 0x51, 0x6A,
+ 0x6A, 0x2A, 0x52, 0x11, 0x4F, 0xF6, 0x9B, 0x02,
+ 0xED, 0x33, 0xFE, 0x13, 0xF2, 0x28, 0x54, 0x8B,
+ 0xE4, 0xDA, 0xD1, 0x83, 0x22, 0x13, 0xE1, 0x63,
+ 0x75, 0x29, 0xFF, 0x8D, 0x03, 0x79, 0xA2, 0xEE,
+ 0xB3, 0x8B, 0xF5, 0xAB, 0xD1, 0xF1, 0x01, 0xFC,
+ 0x22, 0x8B, 0x40, 0xFF, 0xC6, 0x53, 0xA2, 0x51,
+ 0x4F, 0xFF, 0xB3, 0xFF, 0xDC, 0xCF, 0x77, 0xF8,
+ 0xFD, 0xD1, 0x13, 0xF0, 0x8F, 0xD8, 0x75, 0x2B,
+ 0x2A, 0x69, 0x5E, 0xF0, 0xC2, 0xF1, 0x7E, 0x40,
+ 0xC5, 0xA8, 0x9F, 0xC3, 0x61, 0x6A, 0x6A, 0x4B,
+ 0xC0, 0xB3, 0x13, 0xB3, 0x91, 0xF0, 0x01, 0xEB,
+ 0x65, 0xDF, 0x67, 0xB4, 0x13, 0xF1, 0x6C, 0x9A,
+ 0xD1, 0xFE, 0xE0, 0xC6, 0x81, 0x14, 0x02, 0xDE,
+ 0x2B, 0xFF, 0x13, 0xF8, 0x28, 0x16, 0xFF, 0x50,
+ 0x64, 0x40, 0x3E, 0xD1, 0x13, 0xF2, 0xFC, 0xC0,
+ 0x4F, 0xF3, 0xFF, 0x74, 0x64, 0xDB, 0x90, 0xA0,
+ 0x01, 0xC8, 0x53, 0xA0, 0x04, 0x77, 0xF1, 0xF1,
+ 0x41, 0x27, 0x41, 0xFF, 0xD2, 0xE1, 0xAB, 0x02,
+ 0xCC, 0xB0, 0xA1, 0xA2, 0x78, 0x83, 0xDD, 0x93,
+ 0xB3, 0xF2, 0xDB, 0x71, 0xFF, 0xFB, 0xD0, 0x8E,
+ 0x74, 0xCC, 0x7E, 0x4F, 0xFF, 0xEF, 0xFF, 0xF1,
+ 0x1F, 0xDB, 0xF6, 0xFF, 0x50, 0xFC, 0xD8, 0x47,
+ 0x13, 0xE1, 0x63, 0xF4, 0xD5, 0xA0, 0x63, 0xF6,
+ 0x51, 0x83, 0x2E, 0x6C, 0xFF, 0xB1, 0x53, 0x4F,
+ 0xF9, 0x8D, 0x43, 0xC7, 0xF6, 0xDB, 0xF0, 0xA0,
+ 0x51, 0x27, 0xE1, 0xEE, 0xA2, 0x4F, 0x2A, 0x13,
+ 0xFE, 0x6E, 0x6E, 0x2D, 0x76, 0x99, 0x16, 0xDD,
+ 0x33, 0xCA, 0x20, 0xFF, 0x77, 0xF6, 0x74, 0x06,
+ 0xD7, 0x80, 0x13, 0xF2, 0x28, 0x53, 0xF0, 0x25,
+ 0x9F, 0xF3, 0x25, 0x31, 0xBF, 0xB3, 0xC0, 0x48,
+ 0x41, 0x30, 0xA1, 0x53, 0xA1, 0xA7, 0xF1, 0x13,
+ 0x8B, 0xF4, 0xB3, 0xE2, 0xFF, 0x14, 0x22, 0xEF,
+ 0xF1, 0x13, 0xFF, 0xDB, 0xFF, 0x00, 0x0F, 0x01,
+ 0x2F, 0xF0, 0x70, 0x38, 0xD3, 0xFE, 0x0E, 0xA4,
+ 0xEA, 0x53, 0xD9, 0x20, 0xF8, 0x80, 0xEB, 0x23,
+ 0x86, 0xE2, 0x64, 0x46, 0x6D, 0xFE, 0x13, 0xF0,
+ 0x8C, 0x06, 0x8B, 0xF4, 0x8E, 0x20, 0x00, 0x26,
+ 0xDB, 0xF5, 0xB4, 0x52, 0x6D, 0x7F, 0x6A, 0xB3,
+ 0x20, 0xB1, 0x01, 0x40, 0x3A, 0x13, 0xB0, 0x13,
+ 0xF1, 0x00, 0x22, 0x50, 0x48, 0xFF, 0x8D, 0xB1,
+ 0x2F, 0x32, 0xB3, 0xA3, 0x8C, 0x43, 0x3A, 0x83,
+ 0xD0, 0x11, 0xF5, 0x11, 0x50, 0x52, 0xE8, 0xD8,
+ 0x71, 0xD1, 0x52, 0xF0, 0xA5, 0x29, 0xF1, 0x81,
+ 0x3D, 0x41, 0x48, 0xFF, 0x14, 0x10, 0xED, 0xF1,
+ 0x78, 0x52, 0x8D, 0xA3, 0x9D, 0x05, 0x27, 0xF3,
+ 0x27, 0xD3, 0x2B, 0x33, 0xFF, 0x27, 0xFF, 0xEF,
+ 0xF4, 0x7D, 0xD6, 0xEF, 0xFF, 0x14, 0xFF, 0xF0,
+ 0x43, 0xFE, 0x21, 0xEB, 0xD4, 0xFF, 0xD6, 0xE1,
+ 0x63, 0x90, 0xB3, 0x71, 0xEF, 0x21, 0xB3, 0x12,
+ 0x14, 0x00, 0x9F, 0x03, 0xED, 0xF4, 0xEF, 0x13,
+ 0xF1, 0xEA, 0x62, 0xB3, 0xF1, 0x6C, 0x64, 0x50,
+ 0x10, 0xB5, 0x11, 0x34, 0x13, 0xF6, 0x2F, 0x2C,
+ 0x6A, 0xD8, 0x80, 0x2B, 0xDC, 0x20, 0x13, 0xEA,
+ 0x13, 0x92, 0x13, 0xF6, 0xFF, 0x28, 0x72, 0xFE,
+ 0xE4, 0x68, 0x14, 0xE3, 0x90, 0x9F, 0xF6, 0x25,
+ 0xE3, 0xF0, 0x62, 0x28, 0xD3, 0xF0, 0xFE, 0x37,
+ 0x14, 0x63, 0x3B, 0xD1, 0xDA, 0xB1, 0x2E, 0x3B,
+ 0x3B, 0x41, 0x1F, 0x2E, 0x45, 0x47, 0x14, 0x10,
+ 0xED, 0xB1, 0xB0, 0x85, 0xEE, 0x64, 0x9F, 0xF3,
+ 0xFF, 0xE9, 0x61, 0xEF, 0xE5, 0x3B, 0xFF, 0xEF,
+ 0xF4, 0x91, 0xB6, 0xF7, 0xA0, 0x27, 0xFF, 0x29,
+ 0x1F, 0xEE, 0x4F, 0xF4, 0x76, 0x35, 0xD4, 0xD1,
+ 0x69, 0xB0, 0x70, 0xF0, 0xC0, 0x30, 0xF1, 0x2E,
+ 0x9B, 0xED, 0x92, 0x69, 0x2A, 0x28, 0x92, 0xB3,
+ 0xB4, 0x69, 0x9B, 0xC0, 0xAF, 0xF3, 0xBD, 0xDB,
+ 0xF1, 0x6D, 0x78, 0x50, 0xF8, 0xC2, 0xED, 0xB0,
+ 0xFD, 0x72, 0x6A, 0xB3, 0xA1, 0x5F, 0x6B, 0xEF,
+ 0xF1, 0x2C, 0x88, 0xD0, 0xC7, 0x30, 0xFF, 0xD0,
+ 0x13, 0xDD, 0x13, 0xFB, 0xFD, 0x14, 0x06, 0xB9,
+ 0xB4, 0xEC, 0x51, 0xB3, 0xF4, 0x00, 0x1B, 0xA0,
+ 0x01, 0x0C, 0xC4, 0x3D, 0x93, 0x12, 0xD2, 0x2B,
+ 0x41, 0x13, 0xF2, 0x41, 0x47, 0x28, 0x21, 0xDC,
+ 0xD1, 0xFF, 0x61, 0x51, 0x13, 0x92, 0xF2, 0x93,
+ 0x13, 0xF3, 0xF2, 0x21, 0xDD, 0xE3, 0x13, 0xFF,
+ 0x50, 0x05, 0xFE, 0x13, 0xFF, 0x3C, 0x5F, 0xDB,
+ 0xFF, 0xFD, 0x25, 0xFD, 0x91, 0x63, 0xA0, 0x23,
+ 0x10, 0x3D, 0x77, 0x3B, 0x14, 0x00, 0x31, 0x01,
+ 0xED, 0xC1, 0x6A, 0xFD, 0xA4, 0x89, 0xF3, 0x27,
+ 0xF2, 0xBF, 0x13, 0xF5, 0x6B, 0x8C, 0x50, 0xDD,
+ 0x34, 0x8E, 0x01, 0xED, 0x10, 0xB3, 0xF5, 0xFE,
+ 0xE0, 0xFF, 0xDB, 0x41, 0xF4, 0x01, 0x13, 0xEE,
+ 0x13, 0xFB, 0x14, 0x09, 0x2A, 0xC0, 0xFE, 0x31,
+ 0x4F, 0xF5, 0xFF, 0xFE, 0x58, 0xCD, 0x11, 0x8C,
+ 0x50, 0x51, 0x33, 0xC6, 0x75, 0xB4, 0x43, 0xB9,
+ 0x33, 0xB9, 0x70, 0x7F, 0x47, 0x28, 0x00, 0x8B,
+ 0x62, 0x38, 0x47, 0xF4, 0x02, 0x63, 0xC0, 0xB3,
+ 0xF6, 0xF1, 0x72, 0xFF, 0x77, 0xF5, 0xEE, 0xD4,
+ 0x00, 0x43, 0x8D, 0xD1, 0x27, 0xE8, 0x27, 0xFF,
+ 0x51, 0x0F, 0x27, 0xF6, 0xD0, 0xE8, 0x73, 0xDA,
+ 0xF1, 0x69, 0xDA, 0x70, 0x2D, 0x2E, 0x3B, 0x37,
+ 0x97, 0x30, 0xE2, 0x48, 0x48, 0x15, 0x33, 0x2C,
+ 0xF1, 0xB0, 0xDB, 0xF0, 0x3B, 0xF7, 0xBF, 0x63,
+ 0xF5, 0x6C, 0xEF, 0xF2, 0xA3, 0x53, 0x01, 0xF4,
+ 0x4F, 0x92, 0x72, 0xD1, 0xE0, 0x61, 0xFF, 0x4C,
+ 0xE2, 0x13, 0xEE, 0x13, 0xFC, 0x3C, 0x25, 0x06,
+ 0x11, 0xED, 0xA3, 0xDB, 0xF7, 0x34, 0xE6, 0xF9,
+ 0xEF, 0x93, 0x28, 0x53, 0xB5, 0x55, 0xFF, 0x20,
+ 0x26, 0xB0, 0x2B, 0x2B, 0x3B, 0xB0, 0x97, 0x3B,
+ 0xF1, 0x3B, 0x46, 0x14, 0x00, 0x48, 0x8B, 0x54,
+ 0x10, 0x66, 0xFD, 0x30, 0xFF, 0xB3, 0xF4, 0xCA,
+ 0x92, 0xCA, 0x15, 0x13, 0x66, 0x77, 0xF8, 0xCD,
+ 0xA7, 0x13, 0xFF, 0x64, 0xDF, 0xDE, 0x8B, 0xF8,
+ 0xB3, 0x65, 0x6D, 0x27, 0xE0, 0xE8, 0xF0, 0x44,
+ 0xE0, 0x13, 0xF0, 0x41, 0x67, 0x45, 0x1C, 0xF1,
+ 0xC5, 0x32, 0x6A, 0x2C, 0x64, 0x45, 0x8B, 0xF0,
+ 0xF0, 0x33, 0xF9, 0x13, 0x91, 0x13, 0xF5, 0xB6,
+ 0x45, 0x5F, 0xF2, 0x13, 0xF4, 0x2C, 0x44, 0xC4,
+ 0xC1, 0xBF, 0xC5, 0x40, 0x2A, 0xB3, 0x36, 0x52,
+ 0x87, 0x13, 0xFC, 0x50, 0x34, 0xB4, 0xE2, 0x37,
+ 0x41, 0xFE, 0x4F, 0xF9, 0xDC, 0x15, 0xC7, 0xF6,
+ 0xED, 0x64, 0x38, 0x85, 0xCC, 0x81, 0x1E, 0xC0,
+ 0x3B, 0x0B, 0x3B, 0x3E, 0x2E, 0x37, 0x0B, 0x00,
+ 0x47, 0x50, 0x11, 0x4C, 0x24, 0xFF, 0xE1, 0xC2,
+ 0xF2, 0xF1, 0xC7, 0xF3, 0x4F, 0x2F, 0xA0, 0x02,
+ 0x8B, 0xF7, 0x13, 0xEB, 0x4F, 0xFF, 0xFD, 0x79,
+ 0x0F, 0x63, 0xF3, 0xEB, 0xC6, 0xD6, 0xD1, 0xDB,
+ 0xE0, 0x44, 0xE1, 0x39, 0x45, 0x20, 0xEF, 0x14,
+ 0x00, 0x81, 0x50, 0xEC, 0x42, 0x2B, 0x3C, 0x82,
+ 0x63, 0xF5, 0xEF, 0xE0, 0xF2, 0x80, 0xFF, 0xEF,
+ 0xF5, 0xF1, 0xE5, 0xC8, 0x53, 0x77, 0xF6, 0x13,
+ 0xF2, 0xDB, 0x61, 0x8B, 0x38, 0x3B, 0xFF, 0xFE,
+ 0x78, 0x79, 0xA3, 0x03, 0x3C, 0x21, 0xA3, 0xE1,
+ 0xDC, 0x42, 0xEB, 0x17, 0xDB, 0xF5, 0x0C, 0xE0,
+ 0xB0, 0x32, 0xF1, 0x66, 0x27, 0xE2, 0x3B, 0x40,
+ 0x2E, 0x3E, 0x3E, 0x7F, 0x42, 0x3C, 0x23, 0x64,
+ 0x21, 0x26, 0x67, 0x60, 0xB3, 0xB3, 0xF3, 0xC7,
+ 0x47, 0xC6, 0xF1, 0xFE, 0x3C, 0x06, 0x28, 0x05,
+ 0x27, 0xD8, 0x13, 0xFF, 0x8C, 0xBF, 0xEF, 0xF9,
+ 0x9B, 0xE6, 0x6C, 0xB9, 0xFC, 0x10, 0x6D, 0x44,
+ 0xE6, 0x45, 0x03, 0xA0, 0xA1, 0x6B, 0x6C, 0x78,
+ 0x40, 0xFF, 0xDC, 0x63, 0x27, 0xF5, 0x9F, 0xF7,
+ 0xB3, 0x94, 0xF1, 0x53, 0x13, 0xF8, 0x3B, 0xF2,
+ 0x8B, 0xB7, 0x7F, 0x88, 0x13, 0xFF, 0x78, 0x59,
+ 0x3B, 0xF4, 0x44, 0x41, 0x77, 0xF7, 0xB2, 0xB5,
+ 0xF0, 0xD2, 0xF0, 0x27, 0xF5, 0x38, 0x58, 0xF0,
+ 0xB3, 0xF5, 0x65, 0x41, 0x3E, 0x2E, 0x45, 0x7F,
+ 0x45, 0x50, 0x10, 0xC9, 0xE3, 0xDC, 0x01, 0xDE,
+ 0xC3, 0x13, 0xF5, 0x28, 0xD3, 0x63, 0xFE, 0xFE,
+ 0x3C, 0x14, 0x13, 0xED, 0x77, 0xFF, 0xA1, 0x0F,
+ 0x27, 0xF4, 0xED, 0xD3, 0xB1, 0xE0, 0x6A, 0xA5,
+ 0xF0, 0x00, 0x2C, 0x44, 0xE6, 0x3B, 0x41, 0x45,
+ 0x01, 0x88, 0x4F, 0x82, 0xFB, 0x85, 0x50, 0xF1,
+ 0x72, 0x77, 0xF0, 0xF2, 0x65, 0xDB, 0xF4, 0x87,
+ 0xEF, 0xC2, 0xB4, 0x06, 0xE7, 0x3B, 0xF6, 0x78,
+ 0x61, 0x9F, 0xB9, 0x6E, 0x6E, 0x14, 0x10, 0x14,
+ 0x44, 0x13, 0xFF, 0xFF, 0xF0, 0x90, 0xA3, 0xD1,
+ 0xA2, 0xE3, 0xDB, 0xF7, 0xDA, 0xA4, 0x3B, 0xF1,
+ 0x13, 0xF6, 0xD8, 0x02, 0xE3, 0xC8, 0x25, 0xDA,
+ 0xC1, 0x27, 0xF1, 0x3C, 0x3C, 0x3E, 0x5B, 0x40,
+ 0x13, 0xF2, 0xFF, 0x3C, 0x15, 0xB4, 0x27, 0x27,
+ 0xF4, 0xEF, 0xD3, 0x13, 0xFF, 0xC8, 0xBD, 0xB9,
+ 0xE4, 0xB3, 0xFF, 0xF6, 0xB5, 0x1F, 0x77, 0xFC,
+ 0xC2, 0xE1, 0x44, 0xE3, 0x37, 0x08, 0xE1, 0x50,
+ 0x11, 0x47, 0x3E, 0x2E, 0x6E, 0xB0, 0x33, 0x28,
+ 0x04, 0x13, 0xF2, 0xDB, 0xF4, 0xDC, 0x52, 0x87,
+ 0xFF, 0xC7, 0xA5, 0xA1, 0xF4, 0x77, 0xF5, 0xFF,
+ 0x51, 0xFC, 0x41, 0x3B, 0xEA, 0x13, 0xFF, 0xB4,
+ 0x95, 0xE8, 0x63, 0xE1, 0x68, 0x34, 0xEF, 0xF5,
+ 0x46, 0x4F, 0x72, 0x28, 0x25, 0x28, 0xF2, 0x14,
+ 0x04, 0xC9, 0x33, 0xA0, 0x64, 0x3D, 0xB7, 0x3E,
+ 0x35, 0x0A, 0xC0, 0x35, 0x57, 0x35, 0x4F, 0xF0,
+ 0x35, 0x27, 0xF0, 0x47, 0x26, 0x92, 0x3E, 0x17,
+ 0xF2, 0xB1, 0xFF, 0x9F, 0xF2, 0x9D, 0x86, 0xF3,
+ 0xE1, 0xDB, 0xF7, 0xCB, 0xB1, 0xA0, 0xCF, 0xF9,
+ 0x61, 0xC7, 0xFF, 0xF2, 0xC9, 0x1F, 0x9F, 0xF8,
+ 0xEB, 0xB1, 0xFF, 0x20, 0x2C, 0x2C, 0x13, 0xB3,
+ 0x3E, 0x3B, 0x2E, 0x3E, 0xA9, 0x20, 0x13, 0xF2,
+ 0xDC, 0xC1, 0x6A, 0xC9, 0x00, 0x77, 0x82, 0xFF,
+ 0xEF, 0xF1, 0x3B, 0xF5, 0x27, 0xF4, 0x50, 0xF1,
+ 0x50, 0x16, 0x8B, 0xF6, 0x46, 0x55, 0x63, 0xC5,
+ 0x7D, 0x88, 0x27, 0xE2, 0x3C, 0x53, 0x3B, 0xFF,
+ 0x13, 0xF4, 0xE0, 0x62, 0x45, 0xDB, 0xF2, 0x0B,
+ 0x0C, 0x0C, 0x46, 0x45, 0x63, 0x82, 0x29, 0x64,
+ 0x73, 0xC8, 0xE2, 0xFB, 0xF5, 0x71, 0xED, 0x61,
+ 0xEC, 0x62, 0x27, 0xC2, 0x13, 0xF0, 0x39, 0x1E,
+ 0xC1, 0x63, 0xF0, 0xBF, 0x27, 0xF0, 0x41, 0x64,
+ 0x00, 0xDC, 0x61, 0x52, 0x43, 0x4C, 0xA5, 0xDB,
+ 0xF5, 0xE0, 0xB4, 0xFF, 0xB3, 0xFF, 0xB4, 0xDF,
+ 0x13, 0xFF, 0xDC, 0xEF, 0x4F, 0xF7, 0x4F, 0xD5,
+ 0x97, 0xF1, 0x58, 0xE3, 0x6D, 0x3D, 0x58, 0xE3,
+ 0x59, 0x01, 0x6E, 0x28, 0x00, 0xEF, 0xE0, 0x2B,
+ 0xC2, 0x03, 0x39, 0x6A, 0x2E, 0x76, 0xD4, 0xEF,
+ 0x91, 0xCB, 0xA0, 0x6F, 0x86, 0xEF, 0xA2, 0xC7,
+ 0x22, 0x61, 0x27, 0xFA, 0x2C, 0x2C, 0x82, 0xEF,
+ 0xE0, 0x8B, 0xD7, 0x27, 0xE4, 0xFA, 0x13, 0xFF,
+ 0x3D, 0x34, 0xB3, 0xF0, 0xF4, 0x55, 0x13, 0xF1,
+ 0x45, 0x9E, 0xA0, 0x45, 0x2F, 0x43, 0x45, 0xEF,
+ 0x21, 0x2D, 0x13, 0xFC, 0xF1, 0x36, 0xF0, 0x74,
+ 0xF5, 0xB6, 0xBF, 0x4F, 0xF0, 0x3B, 0xC8, 0x31,
+ 0xC8, 0x40, 0xCB, 0x51, 0xDC, 0x27, 0x63, 0xF3,
+ 0x8F, 0x84, 0xFF, 0xCB, 0x62, 0x4F, 0xF9, 0xC8,
+ 0xAF, 0x27, 0xFF, 0xF0, 0xBF, 0xC7, 0xFB, 0xEF,
+ 0xC6, 0x08, 0xEA, 0xBF, 0x8C, 0x31, 0x45, 0xFE,
+ 0xB0, 0xC7, 0x92, 0xEA, 0x00, 0xA0, 0x21, 0x13,
+ 0xF2, 0x4F, 0xF4, 0x4E, 0x85, 0xDC, 0x51, 0x86,
+ 0x85, 0x13, 0xF2, 0x22, 0x61, 0xF4, 0x11, 0x84,
+ 0xBB, 0xB3, 0xF5, 0x81, 0xF3, 0x62, 0xD3, 0xC1,
+ 0x63, 0xE7, 0x88, 0x28, 0x41, 0xDB, 0xFB, 0x9D,
+ 0x65, 0x65, 0x2D, 0x2D, 0xE4, 0x70, 0xF6, 0x93,
+ 0x27, 0xF1, 0x41, 0x13, 0xF1, 0x31, 0x42, 0x41,
+ 0x14, 0x61, 0xC8, 0x71, 0x2B, 0x2B, 0x44, 0xF1,
+ 0x31, 0x7A, 0x45, 0xDC, 0x52, 0xEC, 0x51, 0x73,
+ 0x28, 0x82, 0xC2, 0x41, 0x63, 0xC0, 0x35, 0x7F,
+ 0x38, 0x13, 0xF0, 0x50, 0x02, 0x9D, 0x56, 0x77,
+ 0x42, 0x63, 0xF7, 0xF4, 0xF4, 0x3B, 0xFA, 0xFF,
+ 0x50, 0x5F, 0x3B, 0xFF, 0x00, 0xAF, 0xEF, 0xF9,
+ 0x86, 0x83, 0x63, 0xD1, 0x86, 0xE2, 0x58, 0xE2,
+ 0xFC, 0x4F, 0xF3, 0x08, 0xF2, 0xFE, 0xF0, 0x50,
+ 0x08, 0x27, 0xF2, 0xDC, 0x12, 0x6F, 0x87, 0x82,
+ 0x13, 0x90, 0x6D, 0x6F, 0x85, 0x83, 0x85, 0xF1,
+ 0x11, 0x0C, 0x2C, 0x6D, 0x0C, 0xF1, 0xF2, 0x82,
+ 0xC7, 0xA0, 0xEF, 0xF1, 0x0C, 0x81, 0xFF, 0xF5,
+ 0x22, 0x9F, 0xD5, 0x3B, 0xF0, 0x13, 0xFF, 0x3D,
+ 0x07, 0x4F, 0xF0, 0x13, 0xE1, 0xF6, 0x33, 0x90,
+ 0x13, 0x31, 0x41, 0x46, 0x28, 0x30, 0x40, 0x41,
+ 0x41, 0x2C, 0x8B, 0xDC, 0x53, 0x2D, 0x42, 0x42,
+ 0xF1, 0x31, 0x41, 0x86, 0xB8, 0xB3, 0xE0, 0x83,
+ 0x29, 0xE0, 0x2D, 0x2B, 0x39, 0x2E, 0x39, 0x4F,
+ 0xB0, 0x4F, 0xF1, 0x3F, 0x3B, 0x3B, 0x97, 0x31,
+ 0x27, 0xF6, 0x8B, 0x03, 0xDB, 0xF3, 0x13, 0xF7,
+ 0x77, 0xFF, 0xFF, 0x64, 0x6F, 0x4F, 0xFF, 0x14,
+ 0xBF, 0xF0, 0x37, 0xFD, 0xD5, 0x3A, 0x53, 0x58,
+ 0xA0, 0x58, 0xE1, 0x89, 0x63, 0xF0, 0x37, 0x35,
+ 0x41, 0xA9, 0x20, 0x45, 0x47, 0x87, 0x80, 0xBC,
+ 0xFD, 0xA1, 0x2C, 0x13, 0xF5, 0xDC, 0xA5, 0x27,
+ 0x91, 0xC7, 0xF0, 0x85, 0x82, 0x3A, 0x81, 0x85,
+ 0x12, 0xF1, 0xEA, 0xE1, 0x27, 0xE0, 0x82, 0xFF,
+ 0xB0, 0x85, 0x7F, 0x86, 0x13, 0xF2, 0x27, 0xF2,
+ 0x8B, 0xD6, 0x77, 0xD1, 0x00, 0x01, 0xEF, 0xFB,
+ 0x51, 0x53, 0xE0, 0xF0, 0xE6, 0x37, 0x13, 0x13,
+ 0xF4, 0x44, 0x40, 0x40, 0x3E, 0x45, 0x00, 0x3E,
+ 0x45, 0x37, 0x34, 0x37, 0x3E, 0x45, 0x45, 0x4D,
+ 0x40, 0xF1, 0x30, 0x46, 0x41, 0xA1, 0x82, 0xC2,
+ 0x66, 0x44, 0xFE, 0x61, 0x90, 0x13, 0xF3, 0x39,
+ 0x39, 0x5B, 0x00, 0x40, 0x2E, 0x42, 0x42, 0x7F,
+ 0x46, 0x3B, 0xF5, 0x9E, 0x41, 0xC8, 0xA4, 0x8B,
+ 0xF5, 0xDD, 0x76, 0x8B, 0xF6, 0xB4, 0x06, 0xFF,
+ 0xB4, 0x87, 0x63, 0xFF, 0x28, 0x8F, 0xEF, 0xFA,
+ 0xEA, 0x61, 0xEA, 0xA1, 0xAE, 0xD3, 0x08, 0xA0,
+ 0xFF, 0x77, 0xB1, 0x08, 0xE0, 0x78, 0x32, 0x59,
+ 0x00, 0x13, 0xF1, 0xFD, 0xB0, 0xDC, 0x30, 0xDB,
+ 0xF4, 0xC8, 0xFE, 0x82, 0xDB, 0x90, 0x86, 0x81,
+ 0x13, 0xF2, 0x80, 0x81, 0x81, 0x42, 0x6C, 0xFE,
+ 0xB4, 0x2D, 0x82, 0x82, 0x80, 0xFF, 0xB0, 0x81,
+ 0xFF, 0x13, 0xF2, 0x3B, 0xF3, 0xC7, 0xC4, 0x3B,
+ 0x93, 0x63, 0xF0, 0x13, 0xFB, 0x01, 0x01, 0x3D,
+ 0x33, 0xC5, 0x27, 0xE3, 0x30, 0xB0, 0x6A, 0x85,
+ 0x43, 0x3B, 0x30, 0x40, 0x27, 0xF0, 0x10, 0x42,
+ 0x3F, 0x3E, 0x13, 0xD0, 0x41, 0x32, 0x32, 0x34,
+ 0x3B, 0x34, 0x3E, 0x13, 0xF6, 0xDC, 0x73, 0xEC,
+ 0xB3, 0x41, 0xEE, 0xB1, 0xF5, 0xD7, 0x5F, 0x43,
+ 0xDC, 0x60, 0x3E, 0x50, 0x01, 0xF2, 0x01, 0xF2,
+ 0x15, 0x8B, 0xF8, 0x27, 0xFF, 0xFE, 0xC8, 0xCD,
+ 0x00, 0xBA, 0x3B, 0xFF, 0x3D, 0x1F, 0x77, 0xF8,
+ 0xD6, 0xD2, 0x13, 0xF1, 0x3E, 0xDD, 0x4F, 0x71,
+ 0x4F, 0x80, 0x45, 0xF9, 0x44, 0xAF, 0x80, 0x71,
+ 0x91, 0x2C, 0xFD, 0xF0, 0xD4, 0xB1, 0xF1, 0xEC,
+ 0xD5, 0x2D, 0x13, 0xF0, 0x85, 0xEF, 0xF0, 0x84,
+ 0x80, 0x2A, 0x80, 0x7E, 0x22, 0x50, 0x3E, 0x22,
+ 0x63, 0x80, 0x27, 0xF0, 0x46, 0xA1, 0x13, 0xF2,
+ 0x7E, 0x27, 0xF9, 0x48, 0x88, 0x87, 0x87, 0x63,
+ 0xFE, 0xBE, 0xA0, 0xF2, 0x87, 0x79, 0x34, 0x3B,
+ 0xE4, 0xF4, 0x81, 0x26, 0xA0, 0x3B, 0xF2, 0x40,
+ 0xBB, 0x13, 0xE0, 0x3E, 0x13, 0xF1, 0x14, 0x01,
+ 0x3B, 0xF1, 0x46, 0x28, 0x40, 0xB1, 0x52, 0xC1,
+ 0xFE, 0x74, 0x13, 0xF1, 0x2D, 0x39, 0x2E, 0x3B,
+ 0x38, 0x77, 0xF3, 0xFF, 0x00, 0x61, 0x13, 0xF2,
+ 0xF1, 0x90, 0xEC, 0xB5, 0xDE, 0xE2, 0x77, 0xC0,
+ 0xF6, 0x20, 0xB1, 0x75, 0xFE, 0x13, 0xFF, 0x14,
+ 0xCF, 0x8B, 0xFF, 0x50, 0xDF, 0x8B, 0xF9, 0xD8,
+ 0x15, 0xC7, 0xB7, 0x43, 0xCC, 0xBC, 0xE0, 0x81,
+ 0x61, 0x45, 0x47, 0x0E, 0x10, 0xA0, 0x21, 0x2C,
+ 0x2D, 0xB2, 0xD6, 0x63, 0x2B, 0x2A, 0xF4, 0x4F,
+ 0x90, 0x81, 0x83, 0xF0, 0x50, 0x82, 0x15, 0x7F,
+ 0x7E, 0x7E, 0x22, 0x50, 0x37, 0x22, 0x64, 0x7C,
+ 0x13, 0xF1, 0x5F, 0x85, 0x5F, 0x50, 0x3E, 0xDB,
+ 0xD9, 0x13, 0xF0, 0x8B, 0xB1, 0x00, 0x33, 0x13,
+ 0xF8, 0xF5, 0x3C, 0x03, 0x13, 0xF8, 0xF6, 0x51,
+ 0x13, 0xF1, 0x3E, 0x4F, 0xF0, 0x3E, 0x07, 0xD0,
+ 0x23, 0x37, 0x34, 0x13, 0xF1, 0x32, 0x34, 0x37,
+ 0x63, 0xA0, 0x3B, 0xF0, 0xF0, 0xDC, 0x01, 0xF1,
+ 0x43, 0xF0, 0xD1, 0x27, 0xF1, 0x2B, 0x38, 0x2E,
+ 0x38, 0xD7, 0x13, 0xF0, 0x3B, 0xF1, 0x39, 0x4F,
+ 0xF1, 0x46, 0x27, 0xF5, 0xF2, 0x64, 0xF0, 0x21,
+ 0xFF, 0xDB, 0xF2, 0x77, 0xC4, 0xC7, 0xFF, 0x28,
+ 0xAF, 0x9F, 0xFF, 0x64, 0xBF, 0x13, 0xFC, 0xAB,
+ 0xA5, 0xE9, 0x4F, 0xF0, 0x6C, 0xE2, 0xF8, 0xE0,
+ 0x35, 0x1D, 0x62, 0x45, 0x45, 0x13, 0xF3, 0x0C,
+ 0x6D, 0x6C, 0x45, 0x2A, 0x3E, 0x77, 0x4F, 0x90,
+ 0x6F, 0x6F, 0x2D, 0x83, 0x80, 0x13, 0xF1, 0x80,
+ 0x13, 0xE0, 0x22, 0x50, 0x34, 0x22, 0x64, 0x49,
+ 0x3C, 0x9B, 0x70, 0x80, 0x83, 0x73, 0x50, 0x44,
+ 0x42, 0xD5, 0xC8, 0x3B, 0x48, 0x87, 0x13, 0xFF,
+ 0xA1, 0x11, 0xA1, 0x00, 0x87, 0x3B, 0xF9, 0x13,
+ 0xFC, 0x0A, 0x38, 0x45, 0x45, 0x41, 0x00, 0x03,
+ 0x45, 0x77, 0xA0, 0x0C, 0x34, 0x46, 0x3E, 0xF0,
+ 0x63, 0x9C, 0xA5, 0x3F, 0x13, 0xF3, 0x3A, 0x3C,
+ 0xFF, 0x77, 0xF1, 0xE7, 0x28, 0x63, 0xF4, 0xF3,
+ 0xD1, 0x9F, 0xF7, 0x27, 0xF6, 0xE1, 0x04, 0x3C,
+ 0x1F, 0xF9, 0xB3, 0xFF, 0x78, 0x2F, 0x79, 0x4F,
+ 0x27, 0xF4, 0xD3, 0xD2, 0x6D, 0x2B, 0x1C, 0x61,
+ 0xF9, 0x6C, 0xE1, 0x4F, 0xF1, 0xA9, 0x21, 0x6D,
+ 0x00, 0x27, 0xF4, 0x6C, 0x43, 0xF0, 0x21, 0xE0,
+ 0xEF, 0xC1, 0x8B, 0x00, 0xF1, 0x40, 0x6F, 0x6F,
+ 0x81, 0x81, 0x83, 0x03, 0x85, 0x6D, 0x6F, 0x7E,
+ 0x7B, 0x7B, 0x22, 0x55, 0x22, 0x61, 0x9F, 0x13,
+ 0xF1, 0x81, 0x81, 0x73, 0x21, 0xF9, 0x33, 0x13,
+ 0xF6, 0x12, 0x71, 0x50, 0x33, 0xFC, 0x9F, 0xF4,
+ 0xB5, 0x02, 0x3D, 0x70, 0x2D, 0xF1, 0x27, 0xFF,
+ 0x13, 0xF4, 0x34, 0x32, 0xF9, 0x27, 0xF7, 0x13,
+ 0xF6, 0xFE, 0xA5, 0x13, 0xF2, 0x33, 0x07, 0x3F,
+ 0x3D, 0x4F, 0xF8, 0xFF, 0xA0, 0x25, 0xF0, 0x81,
+ 0xB3, 0xF5, 0xF3, 0x58, 0xE5, 0xF1, 0xC7, 0x7F,
+ 0xC7, 0xFF, 0x8C, 0x4F, 0xFC, 0x27, 0xFF, 0xEB,
+ 0xC3, 0xFB, 0xD2, 0x13, 0xF5, 0x6C, 0xE1, 0xBD,
+ 0x21, 0x3F, 0x3B, 0x36, 0x3E, 0x46, 0x13, 0xFA,
+ 0x4A, 0x11, 0x85, 0x14, 0x11, 0xEF, 0xE0, 0x81,
+ 0x4E, 0x7E, 0x3B, 0xF1, 0x7E, 0x78, 0x13, 0xF0,
+ 0x0E, 0x53, 0x36, 0x61, 0x3E, 0xA0, 0xC3, 0x70,
+ 0x7E, 0x13, 0xF1, 0x44, 0x81, 0x81, 0x84, 0x6A,
+ 0xFE, 0xFA, 0x70, 0x13, 0xFA, 0xF0, 0x24, 0xB3,
+ 0xF4, 0xA0, 0xE0, 0x15, 0x70, 0x13, 0xFD, 0x2B,
+ 0xBB, 0x3B, 0xF5, 0x3B, 0x3B, 0xF1, 0x4F, 0xF2,
+ 0x13, 0xF6, 0x2D, 0xDB, 0xF3, 0xEF, 0xE4, 0xBF,
+ 0x27, 0xF4, 0x38, 0x8B, 0xB2, 0x78, 0x31, 0x3B,
+ 0xF8, 0x8E, 0x02, 0xF3, 0xB4, 0x3B, 0xF3, 0xFF,
+ 0xEE, 0x2A, 0x15, 0x94, 0x00, 0x15, 0x64, 0xEF,
+ 0xDB, 0xFF, 0xA0, 0xFF, 0xEF, 0xF6, 0x77, 0xD1,
+ 0x61, 0x6D, 0x13, 0xF5, 0x77, 0xB1, 0x3E, 0x3E,
+ 0x42, 0x2E, 0xC8, 0x14, 0xAB, 0x4F, 0xF0, 0x88,
+ 0x27, 0xF2, 0x41, 0xC8, 0x00, 0x6D, 0xB2, 0xC2,
+ 0xB2, 0x50, 0x8B, 0x13, 0xF3, 0x80, 0x6F, 0x6F,
+ 0x27, 0xF0, 0x78, 0x36, 0x56, 0xB6, 0xE0, 0x4F,
+ 0x3B, 0x13, 0xF5, 0x80, 0x84, 0xF0, 0xD1, 0x77,
+ 0xF5, 0x12, 0x74, 0x13, 0xFA, 0xEA, 0x8C, 0xE1,
+ 0x13, 0xFC, 0xF8, 0x81, 0x2B, 0x77, 0xF1, 0x3E,
+ 0xB2, 0xA0, 0x3E, 0x03, 0x3E, 0x3B, 0x3E, 0x3E,
+ 0x37, 0x3E, 0x4F, 0xE2, 0x63, 0xF1, 0xFF, 0x13,
+ 0xF9, 0x27, 0xF7, 0x9F, 0x40, 0x63, 0xF0, 0x7A,
+ 0x90, 0x3B, 0xFE, 0x64, 0x25, 0xB3, 0xF4, 0xFE,
+ 0xE5, 0x01, 0x00, 0x36, 0xB7, 0xF8, 0x14, 0x9A,
+ 0xEF, 0xFF, 0xB4, 0x6F, 0xC7, 0xFD, 0x6A, 0xED,
+ 0x6F, 0x61, 0x13, 0xF3, 0x80, 0xD7, 0x43, 0xEF,
+ 0xF0, 0xE5, 0x62, 0x45, 0x4B, 0xA1, 0xF0, 0x13,
+ 0xF5, 0xEF, 0xB2, 0xC7, 0x02, 0xEF, 0xE0, 0x80,
+ 0x7E, 0x83, 0x86, 0xF9, 0x13, 0xF3, 0x36, 0x54,
+ 0x5E, 0x61, 0x13, 0xF2, 0x8C, 0x40, 0x0C, 0x7E,
+ 0x13, 0xF2, 0xFF, 0x3B, 0xF8, 0x13, 0xF3, 0xC8,
+ 0x12, 0x77, 0xF5, 0x28, 0x03, 0xF1, 0x33, 0xE0,
+ 0xB0, 0xD5, 0xB0, 0xD3, 0xEF, 0xE2, 0xEF, 0xF0,
+ 0x3F, 0x13, 0xF3, 0x3B, 0x43, 0x7D, 0x70, 0x00,
+ 0x00, 0x17, 0x37, 0x45, 0x3A, 0xC8, 0x80, 0x45,
+ 0x4F, 0xF2, 0xEF, 0xC0, 0x4C, 0x23, 0xBF, 0x3B,
+ 0xFB, 0x44, 0xDB, 0xF2, 0x8B, 0xF7, 0xB2, 0x08,
+ 0xC7, 0xF4, 0xF1, 0x34, 0x3B, 0xF6, 0xFE, 0xDC,
+ 0x48, 0x28, 0xA6, 0x03, 0x48, 0xC7, 0xFF, 0xC9,
+ 0x1F, 0xEF, 0xF8, 0x27, 0xF2, 0x2D, 0xFB, 0x9F,
+ 0x71, 0x80, 0xE5, 0x81, 0x63, 0x13, 0xF2, 0xDB,
+ 0x31, 0x41, 0xC8, 0x03, 0x3B, 0xE1, 0x97, 0xC7,
+ 0xE2, 0x6F, 0x7F, 0x13, 0xF2, 0x7B, 0x4F, 0xF1,
+ 0x36, 0x53, 0x72, 0x61, 0x8F, 0x0E, 0x70, 0x46,
+ 0x3E, 0x7F, 0x13, 0xF3, 0xCD, 0x20, 0x27, 0xF8,
+ 0xB2, 0xA3, 0xFC, 0xB3, 0xF9, 0x28, 0x04, 0xF0,
+ 0xC8, 0x14, 0x20, 0xB3, 0xF3, 0x13, 0xF1, 0x3C,
+ 0x3C, 0x04, 0x3C, 0x3A, 0x3C, 0x43, 0x37, 0x00,
+ 0x00, 0x3E, 0x43, 0x47, 0x3E, 0x69, 0x70, 0x0C,
+ 0x45, 0x3F, 0xF0, 0x02, 0x4D, 0x85, 0x27, 0xF5,
+ 0xE1, 0xAB, 0x02, 0x5A, 0xC1, 0x8C, 0xA0, 0x3E,
+ 0x45, 0x48, 0x48, 0x4E, 0xA0, 0xFC, 0xEF, 0xF1,
+ 0x26, 0xB7, 0x13, 0xF5, 0x17, 0x95, 0xDB, 0xF4,
+ 0xDD, 0xB0, 0x2B, 0x2E, 0xFF, 0xD2, 0x01, 0xF2,
+ 0x22, 0xFE, 0xF4, 0x3D, 0x27, 0xDB, 0xFF, 0xDD,
+ 0x1F, 0x8B, 0xF7, 0x3B, 0xF4, 0xF3, 0x94, 0xA0,
+ 0x80, 0xE2, 0x44, 0xE1, 0x4F, 0xF2, 0x41, 0x46,
+ 0x27, 0xF8, 0xEE, 0xA0, 0xE6, 0x4F, 0xC1, 0x50,
+ 0x01, 0xEF, 0xE0, 0x7E, 0x7E, 0x63, 0xE0, 0x00,
+ 0x50, 0x7B, 0x7F, 0x7E, 0x36, 0x50, 0x8B, 0xF0,
+ 0x36, 0x62, 0x13, 0xF2, 0x50, 0x40, 0x27, 0xF4,
+ 0xDB, 0xF5, 0xFD, 0x4F, 0xF7, 0x13, 0xF9, 0x63,
+ 0xF8, 0xB4, 0x03, 0xB3, 0xE1, 0xEF, 0x32, 0x40,
+ 0x13, 0xF1, 0x02, 0x3D, 0x3B, 0x3D, 0x3C, 0x40,
+ 0x43, 0x00, 0x01, 0x3E, 0x5C, 0x3C, 0x7D, 0x70,
+ 0x2C, 0x13, 0xF4, 0xB3, 0xE5, 0x77, 0xF1, 0x2D,
+ 0x2D, 0x7F, 0x3B, 0xD2, 0x80, 0x5B, 0x05, 0x13,
+ 0xF4, 0x4F, 0xF7, 0xB3, 0xFA, 0xF2, 0xF1, 0x4F,
+ 0xA2, 0x7F, 0x2C, 0xEF, 0xF3, 0xA1, 0xB1, 0xC8,
+ 0x34, 0xFF, 0x61, 0xE6, 0xA6, 0x14, 0x84, 0xEF,
+ 0xFF, 0xFA, 0xF1, 0x1F, 0xEF, 0xF2, 0xEF, 0xD3,
+ 0x13, 0xF6, 0x80, 0xE2, 0x43, 0xBD, 0x66, 0x47,
+ 0xEF, 0x3B, 0xF2, 0x8D, 0xF0, 0x27, 0xF4, 0x85,
+ 0x63, 0xE0, 0x4D, 0xA0, 0x13, 0xF3, 0x3B, 0xF1,
+ 0xDB, 0x78, 0x00, 0x36, 0x50, 0x3E, 0x36, 0x64,
+ 0x36, 0x70, 0x45, 0x13, 0xF2, 0x4F, 0xFE, 0x84,
+ 0xEE, 0xC4, 0x6B, 0x81, 0x6B, 0x2E, 0xFE, 0x31,
+ 0x41, 0x2B, 0xFD, 0xF1, 0x30, 0x77, 0xF0, 0xA1,
+ 0x91, 0xC8, 0x06, 0xF6, 0x22, 0xC7, 0xF1, 0x43,
+ 0xF0, 0x40, 0x00, 0x3C, 0x3D, 0x3C, 0x3C, 0x39,
+ 0x3A, 0x38, 0x36, 0x02, 0x36, 0x38, 0x3A, 0x3C,
+ 0x3A, 0x3D, 0x13, 0xF1, 0x40, 0xC4, 0xEA, 0x4B,
+ 0xB3, 0xF2, 0x3B, 0x40, 0x3D, 0xFB, 0x00, 0x3D,
+ 0x3D, 0x17, 0x43, 0x29, 0x29, 0xD8, 0xD1, 0x2E,
+ 0x13, 0xF5, 0xDA, 0xC6, 0xEF, 0xF5, 0xE1, 0xDB,
+ 0xD5, 0x13, 0xF2, 0x13, 0x43, 0x2D, 0x2D, 0x27,
+ 0x29, 0xDC, 0x32, 0x1F, 0x29, 0x2B, 0x29, 0x14,
+ 0x95, 0xCD, 0x06, 0xEE, 0x8E, 0x01, 0x0F, 0x27,
+ 0xFF, 0x9C, 0x4F, 0xF8, 0x3F, 0x3D, 0x4F, 0xFC,
+ 0x13, 0xF4, 0x4F, 0xF6, 0x7F, 0x7F, 0x80, 0x27,
+ 0xF1, 0x7C, 0x7C, 0x7C, 0x7A, 0x7C, 0x43, 0x37,
+ 0xE3, 0x72, 0x90, 0x36, 0x62, 0x77, 0xF0, 0x45,
+ 0x3F, 0x3F, 0xC7, 0xF6, 0xD5, 0xE4, 0x61, 0x48,
+ 0x12, 0x60, 0xEE, 0x74, 0x7C, 0x44, 0x2B, 0x2B,
+ 0xD6, 0x21, 0xFA, 0xF6, 0x90, 0xDD, 0x51, 0x27,
+ 0xFB, 0xDF, 0x32, 0xC7, 0xF1, 0x43, 0xB3, 0xF1,
+ 0x3D, 0x00, 0x3E, 0x3B, 0x39, 0x38, 0x3A, 0x39,
+ 0x36, 0x39, 0x12, 0x3B, 0x38, 0x3C, 0x69, 0x70,
+ 0x2C, 0x2B, 0x15, 0x51, 0x2C, 0x97, 0x60, 0x76,
+ 0x2B, 0x43, 0xC7, 0xF1, 0x29, 0x00, 0x07, 0x11,
+ 0x52, 0x19, 0xC0, 0xFF, 0xDB, 0xF7, 0xB6, 0x62,
+ 0xB3, 0xF3, 0x28, 0xD6, 0xEF, 0xF2, 0x13, 0x42,
+ 0x17, 0x10, 0x8E, 0x35, 0x2B, 0x2B, 0x2C, 0x14,
+ 0x95, 0x29, 0xCB, 0x30, 0x2D, 0x14, 0xD1, 0x13,
+ 0xFF, 0xFF, 0x15, 0x1F, 0x27, 0xF6, 0x50, 0x40,
+ 0x8B, 0xF2, 0xF8, 0xA0, 0x80, 0xE1, 0xBC, 0xE3,
+ 0x3C, 0x72, 0xBA, 0x63, 0xF7, 0x2C, 0xED, 0x11,
+ 0x3C, 0x22, 0x4F, 0xF3, 0x7E, 0x13, 0xF3, 0x7D,
+ 0x0E, 0x7B, 0x7D, 0x7C, 0x80, 0x36, 0x52, 0x36,
+ 0x61, 0xB3, 0xF0, 0x45, 0x7B, 0x3F, 0x27, 0xF6,
+ 0x19, 0x05, 0x77, 0xF3, 0xDC, 0x21, 0x7E, 0xB5,
+ 0x61, 0x13, 0xF2, 0x1B, 0x44, 0x41, 0x48, 0x79,
+ 0x76, 0x27, 0xF9, 0x6D, 0xDB, 0xF1, 0x3C, 0x41,
+ 0x00, 0x3C, 0x3E, 0x3C, 0x39, 0x3B, 0x39, 0x39,
+ 0x39, 0x03, 0x38, 0x38, 0x3C, 0x38, 0x3D, 0x39,
+ 0xEF, 0x91, 0x13, 0xF2, 0xDF, 0x9F, 0xF7, 0x13,
+ 0xF1, 0x2B, 0x13, 0xB5, 0x75, 0xE0, 0x28, 0x12,
+ 0xD2, 0x21, 0xC7, 0xF3, 0xFF, 0x14, 0x36, 0x63,
+ 0xF4, 0xDD, 0x26, 0xEF, 0xF0, 0xDD, 0xB4, 0xDE,
+ 0x66, 0xCC, 0xF1, 0x8D, 0x35, 0x5F, 0x2D, 0x79,
+ 0xD1, 0x2C, 0x3B, 0xFF, 0x29, 0x0F, 0x13, 0xFF,
+ 0x4F, 0xF1, 0x94, 0xE1, 0xD7, 0x59, 0x20, 0xD1,
+ 0x21, 0x3D, 0x4F, 0xF8, 0x42, 0x27, 0xF5, 0x8C,
+ 0x52, 0x4F, 0xF1, 0x41, 0x80, 0x13, 0xF3, 0x7C,
+ 0x7C, 0x79, 0x7A, 0x78, 0x36, 0x65, 0xAE, 0x13,
+ 0xF1, 0x40, 0x4F, 0xF1, 0x44, 0x8B, 0xF1, 0xB3,
+ 0xF9, 0x3A, 0x92, 0x7A, 0x70, 0x2B, 0xFD, 0xD0,
+ 0x3B, 0xF2, 0x00, 0x80, 0x3E, 0x2E, 0x46, 0x47,
+ 0xFA, 0x41, 0xE2, 0x3B, 0xF7, 0xDC, 0x21, 0x8A,
+ 0xA2, 0x62, 0x90, 0x3E, 0x4F, 0x50, 0x3B, 0x00,
+ 0x3D, 0x39, 0x39, 0x3A, 0x3D, 0x3B, 0x3B, 0x3D,
+ 0xBB, 0x3B, 0xF1, 0x2C, 0x51, 0xA0, 0xB3, 0xF5,
+ 0xEE, 0x01, 0x44, 0x13, 0xF4, 0x13, 0xA2, 0xFF,
+ 0x14, 0x32, 0x13, 0xF8, 0x75, 0x31, 0x77, 0x34,
+ 0xFA, 0xC0, 0x3B, 0xF1, 0xF1, 0x34, 0xF3, 0xE1,
+ 0xA3, 0x13, 0xF6, 0x29, 0x18, 0x03, 0x28, 0x2B,
+ 0x28, 0xF3, 0x07, 0x14, 0xB2, 0xFE, 0x13, 0xFF,
+ 0x3C, 0xFF, 0xEF, 0xF7, 0xC7, 0xB1, 0xB3, 0xF2,
+ 0xC7, 0x31, 0x94, 0xE1, 0x40, 0xF4, 0x94, 0xE4,
+ 0x4F, 0xF5, 0x13, 0xF9, 0x8B, 0xF5, 0x7E, 0xC7,
+ 0xE1, 0x6F, 0x7E, 0x01, 0x7D, 0x7E, 0x7B, 0x79,
+ 0x78, 0x7A, 0x76, 0x36, 0x64, 0xAF, 0x27, 0xF1,
+ 0x43, 0x63, 0xF1, 0x2C, 0x3A, 0x70, 0x6D, 0x86,
+ 0x9F, 0xF2, 0xDA, 0x90, 0x62, 0x77, 0xFF, 0x00,
+ 0xF0, 0xE1, 0x2E, 0x2E, 0x6E, 0xE9, 0x01, 0x3A,
+ 0x33, 0x48, 0x47, 0x14, 0x00, 0x4F, 0xFB, 0x6D,
+ 0x6D, 0x9E, 0xA1, 0x64, 0x31, 0x08, 0x3E, 0x3D,
+ 0x3D, 0x3D, 0x4D, 0xC0, 0x3A, 0x3B, 0x3E, 0x27,
+ 0x40, 0x40, 0x9F, 0xF1, 0x2C, 0x2C, 0x15, 0x50,
+ 0xB3, 0xF8, 0xF0, 0x42, 0xFF, 0x38, 0x50, 0x13,
+ 0xC4, 0x3C, 0x82, 0x27, 0xF7, 0xDE, 0x23, 0xF2,
+ 0x72, 0x4F, 0xF6, 0xA1, 0x66, 0x9B, 0x16, 0xF2,
+ 0x28, 0x28, 0xA1, 0x25, 0x04, 0x20, 0x2A, 0x14,
+ 0x91, 0xF5, 0xA2, 0xFF, 0x14, 0x92, 0xF2, 0xD0,
+ 0x4F, 0xFF, 0x51, 0x1F, 0xEF, 0xF8, 0x4F, 0xFC,
+ 0x94, 0xE1, 0x9F, 0xFB, 0xEC, 0x27, 0xF4, 0x28,
+ 0x35, 0x9F, 0xF0, 0x83, 0xC8, 0x51, 0x3B, 0xF0,
+ 0x7B, 0x79, 0x13, 0x76, 0x79, 0x78, 0x14, 0x00,
+ 0x36, 0x38, 0x5F, 0x10, 0xFE, 0x70, 0x7B, 0x43,
+ 0xEC, 0x11, 0xBE, 0x74, 0xDB, 0xF8, 0x8A, 0x90,
+ 0x7C, 0xC8, 0xE0, 0xC9, 0x10, 0x3B, 0x48, 0x2E,
+ 0xC7, 0x00, 0x9B, 0x31, 0x13, 0xF1, 0x48, 0x79,
+ 0x44, 0xF1, 0x70, 0xB1, 0xC2, 0x43, 0x2B, 0x9F,
+ 0xF0, 0x78, 0x31, 0x42, 0x42, 0x3E, 0x13, 0x90,
+ 0x33, 0x40, 0x28, 0x00, 0x03, 0x8B, 0x90, 0x0C,
+ 0x2B, 0x13, 0xF6, 0x4D, 0xD5, 0x7F, 0x2D, 0x4F,
+ 0xF4, 0x28, 0x03, 0x14, 0xA1, 0xDA, 0xD1, 0xB3,
+ 0xF8, 0x8C, 0xB0, 0xDB, 0xF4, 0xFF, 0xF3, 0x53,
+ 0xDF, 0xE3, 0x2A, 0xF2, 0x2B, 0x65, 0x53, 0x91,
+ 0x40, 0x76, 0xB4, 0x17, 0x63, 0xFF, 0xEB, 0x65,
+ 0x1F, 0xEF, 0xF3, 0xFE, 0x42, 0x2D, 0x27, 0xF3,
+ 0x40, 0x94, 0xE8, 0xB3, 0xF4, 0xE4, 0xFE, 0x70,
+ 0xF1, 0xB0, 0x3B, 0xF2, 0x6D, 0x6B, 0x92, 0x95,
+ 0x2D, 0x6F, 0x08, 0x6F, 0x83, 0x83, 0x86, 0x63,
+ 0xF1, 0x7E, 0x7C, 0x79, 0x2D, 0x7B, 0x79, 0x00,
+ 0x00, 0x78, 0x4A, 0x62, 0xDB, 0xF1, 0x43, 0xC4,
+ 0x11, 0x38, 0x2A, 0x80, 0xCD, 0x50, 0x96, 0x00,
+ 0xC7, 0xF8, 0x88, 0x88, 0x85, 0xD7, 0xDC, 0xE4,
+ 0x13, 0xF0, 0x6E, 0xFF, 0x00, 0x45, 0x13, 0xF8,
+ 0xDB, 0xF3, 0xD0, 0x90, 0xC9, 0xA0, 0x02, 0x8C,
+ 0x31, 0x28, 0x42, 0x13, 0xA2, 0x3B, 0x38, 0x00,
+ 0x01, 0x7F, 0x3D, 0xEF, 0x90, 0x13, 0xF9, 0xDC,
+ 0x02, 0x4F, 0xF8, 0x28, 0x12, 0x3C, 0x61, 0xEE,
+ 0xE0, 0xFF, 0xEF, 0xF2, 0x61, 0x74, 0xF0, 0x81,
+ 0x13, 0xF5, 0xB2, 0x62, 0x8C, 0x72, 0x3E, 0xF2,
+ 0xF4, 0x90, 0x73, 0x29, 0x9E, 0xF5, 0x54, 0x83,
+ 0xF1, 0xF7, 0x29, 0x29, 0x63, 0xFF, 0x79, 0x0F,
+ 0x92, 0xF0, 0x92, 0x2E, 0x2E, 0xDB, 0xE0, 0x6A,
+ 0x6A, 0xDB, 0xF1, 0x6D, 0x7D, 0x2D, 0xA8, 0xA0,
+ 0x94, 0xE2, 0xA9, 0x25, 0x13, 0xF4, 0x8B, 0xF1,
+ 0x44, 0xFA, 0x92, 0x2A, 0x6E, 0x6E, 0x02, 0xD2,
+ 0x6A, 0xEF, 0xF0, 0x83, 0xA0, 0x54, 0x7C, 0x13,
+ 0x7C, 0x7B, 0x7D, 0x14, 0x00, 0x7A, 0x7D, 0x4A,
+ 0x61, 0xEF, 0xF0, 0x3F, 0x2B, 0x45, 0xD8, 0x11,
+ 0x63, 0xF3, 0xDB, 0xF5, 0xC6, 0x72, 0xE0, 0x81,
+ 0x13, 0xF6, 0xFD, 0x5E, 0x71, 0xF1, 0x80, 0x3C,
+ 0x10, 0x8B, 0xFA, 0xE4, 0xA0, 0xEE, 0xA1, 0x2D,
+ 0xB2, 0x90, 0x80, 0x13, 0x83, 0x39, 0x3D, 0x3D,
+ 0x3A, 0x3A, 0x3A, 0x3E, 0xF5, 0x13, 0xF8, 0xD9,
+ 0xB6, 0x13, 0xF4, 0x3B, 0xF9, 0x2A, 0x13, 0xF2,
+ 0x2D, 0x77, 0xF6, 0xFF, 0xDA, 0x32, 0x27, 0xF6,
+ 0xB5, 0x80, 0x77, 0xF8, 0x9F, 0xF1, 0xB3, 0x14,
+ 0x3C, 0x10, 0xB3, 0x94, 0x9F, 0xF2, 0x05, 0x29,
+ 0x29, 0x8B, 0xFF, 0x8D, 0x1F, 0xF0, 0x91, 0xEF,
+ 0xB0, 0xDB, 0xF6, 0x71, 0x2B, 0x63, 0x71, 0x00,
+ 0x34, 0x95, 0x61, 0x3E, 0x3B, 0x41, 0xEF, 0xF4,
+ 0x0D, 0x6D, 0x6C, 0x45, 0x2A, 0x13, 0x93, 0xC8,
+ 0x12, 0x6C, 0xEF, 0xF0, 0x21, 0x86, 0x86, 0xB4,
+ 0x52, 0x7D, 0x7D, 0x7D, 0x80, 0x3C, 0x30, 0x0C,
+ 0x7A, 0x7B, 0x79, 0x3B, 0x87, 0x00, 0xEF, 0xF0,
+ 0x2B, 0x46, 0x98, 0xFF, 0xC0, 0x0C, 0x7E, 0xCD,
+ 0x52, 0x13, 0xFB, 0x6E, 0x88, 0x85, 0xEF, 0x14,
+ 0x02, 0x9F, 0xF0, 0x72, 0x61, 0x45, 0x9A, 0xC0,
+ 0x13, 0xFD, 0x8B, 0xF4, 0x3A, 0x90, 0x01, 0x0C,
+ 0x3E, 0x3B, 0x3D, 0x3F, 0x3D, 0x3B, 0x13, 0xF0,
+ 0x37, 0x40, 0x3F, 0x50, 0xA0, 0x3B, 0xE1, 0x2C,
+ 0x63, 0xF3, 0x64, 0x36, 0x13, 0xF6, 0xFF, 0x27,
+ 0xA2, 0x64, 0x54, 0x75, 0x51, 0xDE, 0x40, 0x43,
+ 0xD2, 0x13, 0x02, 0x43, 0x33, 0xF3, 0x78, 0xFF,
+ 0x8B, 0xF4, 0x7B, 0x23, 0x3B, 0x23, 0xEF, 0x83,
+ 0x79, 0x33, 0xB5, 0xB4, 0x9F, 0xFF, 0xA1, 0x1F,
+ 0xE7, 0x4F, 0xFD, 0xA8, 0xD0, 0x13, 0x72, 0x3D,
+ 0x41, 0xA8, 0xE0, 0xA9, 0x04, 0x13, 0xF3, 0x1E,
+ 0x6B, 0x6C, 0x45, 0xEF, 0xD9, 0xEF, 0xF1, 0x13,
+ 0xF3, 0x8B, 0xE0, 0x7A, 0x13, 0x7B, 0x7A, 0x79,
+ 0x50, 0x40, 0x7D, 0x7E, 0xFE, 0xF0, 0xC7, 0xA1,
+ 0xF1, 0x0F, 0xC1, 0x9F, 0xF3, 0xEF, 0xF8, 0xC7,
+ 0xE2, 0x88, 0x88, 0x6B, 0x28, 0x11, 0xF0, 0x13,
+ 0xF2, 0xEB, 0xA1, 0x13, 0xFF, 0x13, 0xF8, 0x3F,
+ 0x3F, 0x3D, 0x40, 0x03, 0x3B, 0x40, 0x3F, 0x40,
+ 0x3D, 0x3A, 0x64, 0x81, 0x63, 0x93, 0xFF, 0xEF,
+ 0xF1, 0xDB, 0xD4, 0x61, 0xC4, 0x63, 0xE2, 0x4C,
+ 0x97, 0x64, 0x32, 0xEF, 0xFA, 0xC7, 0xF6, 0xF7,
+ 0xDF, 0x62, 0xF1, 0x84, 0xA2, 0xE3, 0xDC, 0x00,
+ 0x2C, 0xA0, 0x30, 0xB3, 0xF2, 0x90, 0xA1, 0xFC,
+ 0xF1, 0xD8, 0x63, 0xFF, 0xB4, 0xFF, 0xDB, 0xFF,
+ 0xA8, 0xD9, 0xA9, 0x03, 0x6C, 0x6C, 0xDB, 0xFF,
+ 0x51, 0xDB, 0xF1, 0x2D, 0xF2, 0x71, 0xC2, 0x24,
+ 0x6B, 0x27, 0xF1, 0xB4, 0x55, 0x20, 0x7D, 0x7B,
+ 0x13, 0xD1, 0x7B, 0x7D, 0x80, 0x80, 0x80, 0xFF,
+ 0x23, 0x10, 0x77, 0xA1, 0x13, 0xFF, 0x4F, 0xD2,
+ 0xDC, 0x12, 0x14, 0x01, 0x27, 0xF1, 0x8C, 0x61,
+ 0xFB, 0xA0, 0x00, 0xCD, 0xE1, 0xF2, 0x32, 0x8B,
+ 0xF7, 0x27, 0xF2, 0x2C, 0xDC, 0x30, 0x13, 0xB0,
+ 0x53, 0x40, 0x19, 0x21, 0x40, 0x28, 0x70, 0x40,
+ 0x2C, 0xDB, 0x92, 0x63, 0xFB, 0xFF, 0x00, 0x9C,
+ 0x3D, 0x88, 0xF4, 0x70, 0xB6, 0x77, 0xEF, 0xF2,
+ 0xCB, 0x94, 0xB7, 0xB5, 0x4E, 0x64, 0xFF, 0x7A,
+ 0x32, 0x27, 0xF2, 0xB5, 0x14, 0x50, 0x52, 0xB4,
+ 0x40, 0x3B, 0xFF, 0xC8, 0xFF, 0xB3, 0xF9, 0xE7,
+ 0xEF, 0xF4, 0x6C, 0x97, 0xA8, 0xF2, 0x69, 0x6C,
+ 0x13, 0xF1, 0xD7, 0x40, 0xDB, 0xF0, 0x7C, 0x2D,
+ 0x13, 0xA4, 0xB3, 0xD1, 0xEF, 0xF2, 0x3B, 0xE0,
+ 0xF0, 0x50, 0x7B, 0x7F, 0x20, 0x7D, 0x7F, 0x64,
+ 0x00, 0x7B, 0x7D, 0x7D, 0x7A, 0x7A, 0x3B, 0x7A,
+ 0x7E, 0x13, 0xF1, 0xE5, 0x60, 0xFE, 0xC0, 0x82,
+ 0xF5, 0x72, 0x13, 0xFC, 0xED, 0xDC, 0x21, 0x64,
+ 0x30, 0xDB, 0xF0, 0x2D, 0x92, 0x00, 0x13, 0xF3,
+ 0x47, 0x3C, 0xD3, 0xF8, 0xFD, 0x10, 0xDB, 0xF1,
+ 0xFD, 0xF0, 0x9F, 0xF1, 0x4F, 0xF1, 0x41, 0x3F,
+ 0x41, 0x2F, 0x41, 0x40, 0x8B, 0xB1, 0x3F, 0x00,
+ 0x00, 0x13, 0xFC, 0x4A, 0x54, 0xB0, 0x07, 0xFF,
+ 0x8D, 0x56, 0xFF, 0xD4, 0xB2, 0xF7, 0xEF, 0xF4,
+ 0x13, 0x87, 0xB3, 0xF1, 0x29, 0xB6, 0x04, 0xB4,
+ 0xFE, 0xDB, 0xF0, 0x9F, 0xE5, 0xC8, 0x21, 0xB9,
+ 0x51, 0xDB, 0xFF, 0xDD, 0x1F, 0xDB, 0xFB, 0x6D,
+ 0xFF, 0x13, 0xF3, 0x7D, 0x76, 0xFC, 0xD0, 0x13,
+ 0xF0, 0x14, 0x01, 0x27, 0xF3, 0xA2, 0x83, 0xDE,
+ 0xE4, 0xC5, 0x27, 0xF1, 0x50, 0x51, 0x7E, 0x7B,
+ 0x7D, 0x28, 0x11, 0x80, 0x50, 0x50, 0x5F, 0x7F,
+ 0x50, 0xB0, 0x3F, 0xF8, 0xE2, 0xB3, 0xF1, 0xC7,
+ 0xE2, 0xC7, 0xF8, 0x3B, 0xF2, 0xBF, 0xF0, 0x00,
+ 0x84, 0xB3, 0xF3, 0x68, 0xE0, 0x4F, 0xD0, 0x63,
+ 0xF1, 0x13, 0xF6, 0xD7, 0x44, 0xD4, 0x63, 0xF1,
+ 0x8C, 0x31, 0x41, 0x00, 0x02, 0x42, 0x14, 0x40,
+ 0x40, 0x41, 0x3F, 0x40, 0x3F, 0x27, 0xF4, 0x0F,
+ 0x87, 0xB1, 0x50, 0xAF, 0x37, 0x5F, 0x86, 0x3B,
+ 0x57, 0xFD, 0x4F, 0xD4, 0x9F, 0xF6, 0xC7, 0xFA,
+ 0xDA, 0x12, 0xEF, 0x10, 0xB3, 0xF1, 0x2D, 0xCB,
+ 0xC0, 0xFF, 0x50, 0x03, 0x78, 0xC4, 0xF1, 0xC3,
+ 0xEF, 0xFF, 0xF1, 0x1F, 0xEF, 0xFD, 0xA8, 0xD1,
+ 0x94, 0xA6, 0x77, 0x69, 0x00, 0x01, 0x13, 0xF4,
+ 0x27, 0xF5, 0x6C, 0x28, 0x46, 0x27, 0xF5, 0x3B,
+ 0xF0, 0x00, 0x80, 0x7B, 0x80, 0x7F, 0x7B, 0x80,
+ 0x7D, 0x7A, 0xB8, 0x64, 0x91, 0x84, 0x13, 0xF5,
+ 0xFB, 0xC4, 0x13, 0xFC, 0x2E, 0x2E, 0x84, 0xFF,
+ 0xF1, 0x30, 0x27, 0xF1, 0x14, 0x00, 0x13, 0xF3,
+ 0xFF, 0x00, 0x13, 0xFF, 0x63, 0xF1, 0xE0, 0xF0,
+ 0x43, 0x3D, 0xA0, 0x30, 0x42, 0x40, 0x42, 0x42,
+ 0x00, 0x30, 0x3B, 0xF4, 0x7F, 0x0C, 0xEF, 0xE7,
+ 0x13, 0x2B, 0xEF, 0xA1, 0xC3, 0xC2, 0x89, 0x04,
+ 0x9E, 0xE4, 0xB6, 0x21, 0xE8, 0xEF, 0xF4, 0x8B,
+ 0xA2, 0x62, 0x63, 0x2A, 0x9E, 0x67, 0x2B, 0x2B,
+ 0x27, 0x82, 0x02, 0xE2, 0x2C, 0x2B, 0x27, 0x29,
+ 0x2C, 0xC8, 0x53, 0x28, 0xFE, 0xB8, 0x82, 0x9E,
+ 0x8E, 0x01, 0x0F, 0xC7, 0xF5, 0xBF, 0x72, 0x3B,
+ 0xF7, 0x59, 0x12, 0x69, 0x1F, 0x69, 0x6A, 0x6A,
+ 0x00, 0x31, 0x3C, 0x12, 0x4F, 0xF2, 0xB3, 0xE4,
+ 0x28, 0x23, 0xC0, 0x4F, 0xF2, 0x3B, 0xF1, 0x84,
+ 0x80, 0x7F, 0x80, 0x80, 0x7B, 0x40, 0x7E, 0x00,
+ 0x00, 0x80, 0x7D, 0x7F, 0x83, 0x84, 0x46, 0xFB,
+ 0xEA, 0x60, 0x4F, 0xF2, 0xA8, 0x74, 0x63, 0xF9,
+ 0x76, 0xD0, 0x2E, 0x6A, 0x30, 0x77, 0xF3, 0xFC,
+ 0xFE, 0x00, 0x27, 0xF2, 0x50, 0x51, 0x27, 0xFA,
+ 0x17, 0xD3, 0x4F, 0xF0, 0x43, 0x44, 0x02, 0x44,
+ 0x3E, 0x43, 0x42, 0x43, 0x40, 0x13, 0xF0, 0x40,
+ 0x3F, 0x41, 0x42, 0x9A, 0x43, 0x05, 0xD1, 0xC5,
+ 0x32, 0xF0, 0x68, 0xF0, 0xF5, 0xC9, 0x33, 0xFE,
+ 0x62, 0x31, 0xB6, 0x27, 0xF2, 0x11, 0x9F, 0xF3,
+ 0xA0, 0xC3, 0x8D, 0x34, 0x4F, 0xF6, 0x29, 0xFE,
+ 0x52, 0x60, 0x8D, 0x07, 0x51, 0xB7, 0xBB, 0x40,
+ 0x13, 0xFF, 0x15, 0x1F, 0x63, 0xFC, 0x6D, 0xFF,
+ 0xBC, 0xD0, 0xB9, 0xA3, 0x27, 0xB2, 0x28, 0x00,
+ 0x14, 0x20, 0x13, 0xF8, 0xCA, 0x51, 0x4F, 0xD2,
+ 0xD1, 0x63, 0xF4, 0x4F, 0xF1, 0x85, 0x14, 0x01,
+ 0x84, 0x83, 0x83, 0xEE, 0xC1, 0xCD, 0xF4, 0x11,
+ 0xFE, 0x60, 0x6C, 0x6B, 0xD8, 0x11, 0xA5, 0x51,
+ 0x2A, 0xDB, 0xF5, 0xFF, 0xC6, 0x60, 0x12, 0x91,
+ 0x8B, 0x83, 0x8B, 0xF4, 0x50, 0x03, 0x13, 0xFE,
+ 0xB3, 0xE1, 0x8B, 0xF2, 0x08, 0x44, 0x41, 0x44,
+ 0x43, 0x13, 0xD0, 0x40, 0x42, 0x41, 0xDD, 0x14,
+ 0x50, 0x13, 0xF3, 0x2D, 0x19, 0xD2, 0x13, 0x18,
+ 0xFF, 0x31, 0x2A, 0xF0, 0xF3, 0xFF, 0x9B, 0xB2,
+ 0xA1, 0xC5, 0xC9, 0x91, 0xB6, 0x15, 0x63, 0xF7,
+ 0x67, 0x76, 0x4F, 0xF6, 0xF3, 0xC1, 0xB3, 0x62,
+ 0xE1, 0x2C, 0xDC, 0xC2, 0xF1, 0x91, 0x2A, 0x2A,
+ 0xCF, 0x04, 0x27, 0xFF, 0xF7, 0x29, 0x1F, 0x77,
+ 0xFD, 0xA8, 0xD4, 0x13, 0xB4, 0x6A, 0x13, 0xE1,
+ 0x14, 0x02, 0x27, 0xF3, 0xFB, 0xF2, 0x11, 0x9A,
+ 0x23, 0x14, 0x60, 0x4F, 0xF5, 0xD4, 0xE5, 0x40,
+ 0xB4, 0x70, 0x00, 0x10, 0x7F, 0x81, 0x13, 0xF5,
+ 0x52, 0x92, 0x4F, 0xF6, 0x3A, 0x63, 0x13, 0xFB,
+ 0x13, 0xC1, 0x50, 0x32, 0xF0, 0xE3, 0x46, 0x0E,
+ 0x44, 0x13, 0xF5, 0x00, 0x01, 0x3E, 0x44, 0x40,
+ 0x44, 0x5F, 0x3F, 0x14, 0x80, 0x46, 0xC3, 0xA2,
+ 0x79, 0x50, 0x13, 0xFB, 0xD8, 0xC2, 0x27, 0x32,
+ 0xBF, 0xF1, 0x72, 0x2A, 0xB5, 0xC4, 0x8E, 0x46,
+ 0xB4, 0x32, 0xDB, 0xC0, 0x8B, 0xF2, 0x2A, 0x75,
+ 0x5F, 0x2C, 0x27, 0xF0, 0x27, 0x77, 0x63, 0x8E,
+ 0xB1, 0xF3, 0x40, 0x8C, 0xB1, 0xE2, 0x70, 0xFF,
+ 0xF1, 0xB3, 0xF1, 0x51, 0x00, 0xB0, 0x3B, 0xFF,
+ 0x3D, 0x1F, 0x77, 0xFF, 0x4F, 0x86, 0x13, 0xA2,
+ 0xFF, 0x28, 0x01, 0x64, 0x30, 0xB3, 0xF2, 0x77,
+ 0xF3, 0xFE, 0x22, 0x8B, 0xF3, 0xC9, 0x30, 0xF0,
+ 0x50, 0x40, 0x81, 0x13, 0x62, 0x7C, 0x81, 0x81,
+ 0x81, 0x80, 0x80, 0x1F, 0x81, 0x80, 0x7F, 0x13,
+ 0xFB, 0x77, 0xF6, 0x3A, 0x63, 0x27, 0x76, 0x13,
+ 0x17, 0xF1, 0x13, 0xF6, 0xF2, 0xF3, 0xFD, 0x12,
+ 0xB3, 0xF4, 0x45, 0x45, 0x44, 0x00, 0x20, 0x1F,
+ 0x42, 0x44, 0x46, 0x00, 0x02, 0x9F, 0x92, 0x3B,
+ 0xF2, 0xC5, 0x96, 0xEC, 0xB1, 0xFF, 0x74, 0xC2,
+ 0xB1, 0x77, 0xC7, 0x12, 0x00, 0x12, 0x3C, 0x48,
+ 0x9F, 0xF4, 0xDD, 0x13, 0xC8, 0x62, 0xFF, 0x26,
+ 0x94, 0xF3, 0x50, 0xF4, 0xD0, 0x4F, 0xF1, 0x8D,
+ 0x03, 0x4F, 0x81, 0xE0, 0xF6, 0x4F, 0xFF, 0xFE,
+ 0x51, 0x1F, 0xEF, 0xF2, 0x61, 0x33, 0x13, 0xF7,
+ 0x3B, 0x52, 0x4F, 0xB2, 0x14, 0x34, 0x6C, 0x5C,
+ 0x6C, 0xE9, 0x90, 0x6C, 0xF2, 0x01, 0x00, 0x81,
+ 0x27, 0xFC, 0x83, 0x83, 0x00, 0x7E, 0x7D, 0x82,
+ 0x82, 0x7E, 0x7E, 0x82, 0x80, 0x3F, 0x82, 0x82,
+ 0x00, 0x30, 0x27, 0xF0, 0x27, 0xA0, 0xFF, 0xD0,
+ 0xB6, 0xD3, 0x13, 0xF8, 0xFD, 0x13, 0x68, 0x27,
+ 0xF7, 0x4F, 0xFF, 0x3A, 0x41, 0xC7, 0xF3, 0x13,
+ 0x73, 0x45, 0xE9, 0x44, 0xFF, 0xA5, 0x61, 0x4F,
+ 0xF4, 0x9F, 0xFA, 0x24, 0xC0, 0x87, 0xA4, 0x27,
+ 0xF8, 0x50, 0x84, 0x8B, 0xF9, 0xC2, 0xF3, 0x72,
+ 0x65, 0x44, 0x2B, 0x2A, 0x25, 0x27, 0x26, 0x72,
+ 0x27, 0x2F, 0x27, 0x27, 0x00, 0x40, 0x26, 0x00,
+ 0x00, 0x27, 0xD2, 0xCC, 0x10, 0xE0, 0xF1, 0xFF,
+ 0x4F, 0xD1, 0x27, 0xFF, 0x64, 0xFF, 0xF0, 0xA3,
+ 0x89, 0x22, 0xC7, 0xF2, 0x8B, 0xF1, 0x4F, 0x92,
+ 0xDF, 0x13, 0x96, 0x50, 0x64, 0x6C, 0x13, 0xA1,
+ 0x63, 0xF0, 0x14, 0x11, 0xCA, 0xD3, 0x13, 0xF8,
+ 0x00, 0x84, 0x84, 0x7E, 0x83, 0x82, 0x83, 0x82,
+ 0x80, 0x87, 0x13, 0xF0, 0x80, 0x81, 0x82, 0x82,
+ 0x13, 0xF9, 0x91, 0x00, 0x26, 0x56, 0xFC, 0x3B,
+ 0x05, 0x3B, 0xFA, 0x14, 0x03, 0x8B, 0xFC, 0x3B,
+ 0xF5, 0xFC, 0xD4, 0x46, 0x45, 0x0F, 0x40, 0x43,
+ 0x43, 0x43, 0xF1, 0x40, 0xC5, 0x71, 0x27, 0xF6,
+ 0xB3, 0xF8, 0xFF, 0x27, 0xF7, 0x14, 0xB6, 0xB6,
+ 0x0B, 0xDB, 0xF2, 0xC5, 0x73, 0xA2, 0x12, 0x63,
+ 0xF0, 0x61, 0xF0, 0x9F, 0xAE, 0x54, 0x2B, 0x28,
+ 0xDC, 0x82, 0x63, 0x44, 0x4F, 0xB3, 0xF5, 0x00,
+ 0x63, 0xFF, 0xDF, 0x78, 0xFF, 0x77, 0xFF, 0x2B,
+ 0x4F, 0xA4, 0x8B, 0xA2, 0x76, 0xD4, 0x79, 0xC4,
+ 0x63, 0xF3, 0xF7, 0x9F, 0xE5, 0xEF, 0xF1, 0x01,
+ 0x30, 0x77, 0xF1, 0x81, 0x63, 0xC0, 0xC7, 0xA0,
+ 0x27, 0xA0, 0xDF, 0x14, 0x61, 0x13, 0xF2, 0x6D,
+ 0xEC, 0x11, 0xEF, 0xF1, 0x9F, 0xF6, 0x3B, 0x29,
+ 0x63, 0xF6, 0xFD, 0x50, 0x65, 0x13, 0xFF, 0x3B,
+ 0xF3, 0x50, 0x02, 0x3B, 0xE0, 0xF5, 0x00, 0x2B,
+ 0x7D, 0x71, 0xFF, 0xEF, 0x40, 0xF0, 0x51, 0xF0,
+ 0x02, 0xB2, 0xA2, 0xB3, 0x63, 0x63, 0xF4, 0x14,
+ 0xB7, 0xDE, 0x92, 0xFB, 0xEE, 0xF2, 0xA2, 0x95,
+ 0xDC, 0x21, 0x79, 0xE3, 0x51, 0xC2, 0x2D, 0xF2,
+ 0x91, 0x62, 0x62, 0xF7, 0xDC, 0x10, 0xF0, 0xB1,
+ 0xC9, 0x01, 0x78, 0xB0, 0x2D, 0x63, 0xA4, 0x64,
+ 0x50, 0x77, 0xFF, 0xFF, 0x8C, 0xFF, 0x27, 0xF5,
+ 0xFB, 0x72, 0xC5, 0xD5, 0x62, 0x47, 0x12, 0xF9,
+ 0x4F, 0xF6, 0xEB, 0xE1, 0xE0, 0xFF, 0xD2, 0x13,
+ 0xF6, 0x00, 0x01, 0x7E, 0x84, 0x80, 0x80, 0x84,
+ 0x5F, 0x7F, 0x14, 0x91, 0x83, 0x13, 0xF6, 0x9F,
+ 0xFA, 0x13, 0xD9, 0x00, 0xEC, 0x77, 0xFF, 0xB3,
+ 0x3B, 0xF8, 0x45, 0x4F, 0xC0, 0x13, 0xE0, 0x46,
+ 0x44, 0x13, 0xF6, 0xDB, 0xF6, 0xFF, 0xFE, 0xD1,
+ 0x3B, 0x43, 0x77, 0xF3, 0xF1, 0x52, 0x3C, 0x08,
+ 0x2A, 0x97, 0xEF, 0xF6, 0xDF, 0x86, 0xEE, 0xF2,
+ 0xE6, 0x76, 0xB2, 0x3C, 0x50, 0x27, 0x28, 0xF0,
+ 0x16, 0xD4, 0x54, 0x94, 0x2A, 0xFF, 0x9F, 0xFF,
+ 0xA1, 0x1F, 0xEF, 0xF4, 0x75, 0x83, 0x26, 0xA3,
+ 0x9E, 0x38, 0xA1, 0x85, 0x00, 0x03, 0xD8, 0xB0,
+ 0xA4, 0xF0, 0xB1, 0x6B, 0x51, 0x10, 0xC7, 0xF5,
+ 0x85, 0x85, 0x84, 0x90, 0x00, 0x20, 0x82, 0x7F,
+ 0x13, 0xE1, 0x84, 0x84, 0x83, 0x84, 0xFE, 0x4F,
+ 0xF5, 0x9F, 0xFB, 0x27, 0xFF, 0x00, 0x2D, 0x3B,
+ 0xFB, 0xF4, 0x21, 0x63, 0x73, 0x46, 0xFB, 0x3C,
+ 0x10, 0x63, 0xF4, 0x77, 0xF3, 0xDA, 0xB4, 0xF0,
+ 0x36, 0x2D, 0x27, 0xF5, 0x64, 0xB2, 0xFF, 0xF1,
+ 0x42, 0x51, 0x07, 0xDD, 0x92, 0x13, 0xF6, 0xA3,
+ 0x45, 0x13, 0xF7, 0x14, 0x47, 0xF1, 0x20, 0x3F,
+ 0x28, 0x28, 0xDD, 0x24, 0x63, 0xFF, 0xB4, 0xCF,
+ 0x63, 0xF8, 0x25, 0x32, 0xFB, 0x80, 0xE1, 0xF0,
+ 0x94, 0x12, 0xE4, 0x00, 0x0E, 0x6B, 0x6B, 0x6A,
+ 0x2E, 0xC7, 0xF5, 0x98, 0x13, 0xF8, 0x81, 0x85,
+ 0x00, 0x01, 0x00, 0x52, 0x84, 0x84, 0x85, 0xBF,
+ 0x13, 0xF0, 0x2C, 0x3B, 0xF3, 0x02, 0xE0, 0xAA,
+ 0x70, 0x12, 0x9F, 0x28, 0xEF, 0x4F, 0xFF, 0xFF,
+ 0x63, 0xF8, 0x3B, 0xD0, 0x50, 0x41, 0x13, 0xF3,
+ 0x64, 0x54, 0x61, 0xD4, 0x4F, 0xFD, 0xC5, 0x81,
+ 0xFF, 0xB3, 0xC9, 0xB3, 0xE4, 0xDB, 0xF9, 0x53,
+ 0x25, 0x13, 0xFA, 0x28, 0x97, 0x4F, 0xF5, 0xEC,
+ 0x71, 0xFF, 0xC7, 0xFF, 0xC9, 0x1F, 0xF0, 0x61,
+ 0xFE, 0x11, 0xEC, 0xA1, 0xE4, 0x0C, 0xF8, 0x71,
+ 0xD1, 0x01, 0xFC, 0x27, 0xD4, 0xF0, 0x80, 0x13,
+ 0xF2, 0xDE, 0x84, 0x4F, 0xF7, 0x13, 0xD0, 0x86,
+ 0x81, 0x03, 0x86, 0x86, 0x85, 0x86, 0x85, 0x80,
+ 0x14, 0x82, 0xFE, 0x10, 0x3F, 0x6B, 0x6C, 0x9A,
+ 0x60, 0xEF, 0xB0, 0x45, 0xC1, 0x26, 0x9F, 0x3C,
+ 0xEF, 0x63, 0xFF, 0xFF, 0x63, 0xF3, 0x13, 0xF6,
+ 0xFE, 0x71, 0x13, 0xF4, 0x50, 0x52, 0x27, 0x05,
+ 0x8A, 0x63, 0x63, 0x39, 0xFF, 0x78, 0x06, 0x27,
+ 0xC6, 0xEF, 0xF9, 0xB4, 0x16, 0xB2, 0x35, 0x8B,
+ 0x08, 0x8C, 0xE2, 0x4F, 0xD3, 0xFF, 0xA0, 0x23,
+ 0xDB, 0xFF, 0xDD, 0x1F, 0xF0, 0x21, 0xC2, 0x71,
+ 0xC2, 0xB0, 0x3A, 0x60, 0xF4, 0x40, 0xFF, 0xE4,
+ 0x21, 0xE4, 0x33, 0x42, 0x51, 0x57, 0x40, 0x77,
+ 0x51, 0x29, 0xA3, 0xEF, 0xE0, 0x27, 0xFB, 0xD0,
+ 0xF1, 0xA0, 0x3B, 0xF2, 0x86, 0x00, 0x00, 0x81,
+ 0x86, 0x81, 0x80, 0xFF, 0x14, 0x40, 0x3C, 0xB0,
+ 0x72, 0x63, 0xEF, 0xF5, 0x13, 0xFF, 0x50, 0xEF,
+ 0x63, 0xFF, 0x13, 0xF5, 0xBF, 0xDA, 0x42, 0x46,
+ 0xF1, 0x53, 0x4F, 0xF8, 0x9F, 0x74, 0xB3, 0x65,
+ 0xC7, 0xF1, 0xD9, 0x97, 0xFF, 0xDB, 0xF8, 0xDE,
+ 0x05, 0x4F, 0xF9, 0xDB, 0x94, 0x26, 0xD9, 0x64,
+ 0x73, 0xF5, 0x76, 0x65, 0x83, 0x75, 0x2C, 0xEF,
+ 0xFF, 0xF1, 0x0F, 0xEF, 0xF9, 0x6B, 0xA8, 0xF1,
+ 0x2A, 0xFD, 0x70, 0x9F, 0xE4, 0xD6, 0x2C, 0x2A,
+ 0x93, 0x41, 0x4E, 0xE3, 0xEF, 0x33, 0x27, 0xF2,
+ 0x3B, 0xFD, 0x37, 0x86, 0x84, 0x14, 0x01, 0x14,
+ 0x40, 0x6B, 0x00, 0x22, 0xEF, 0xF6, 0x13, 0xFF,
+ 0xFF, 0x63, 0xFF, 0x50, 0x3D, 0xEC, 0xC3, 0x9F,
+ 0xF5, 0x3B, 0x72, 0xEC, 0x85, 0xC7, 0x82, 0xDB,
+ 0xF1, 0xDF, 0x4F, 0xFB, 0xFF, 0x80, 0x2A, 0xDA,
+ 0x53, 0x8C, 0xCD, 0xB3, 0xFE, 0xC5, 0xD7, 0xDA,
+ 0x36, 0xFF, 0x8B, 0x17, 0x14, 0x08, 0x28, 0x84,
+ 0xC6, 0x8E, 0x01, 0x0F, 0xF0, 0x02, 0xF6, 0xB9,
+ 0x13, 0x12, 0xFF, 0x13, 0xFA, 0xEF, 0x50, 0x51,
+ 0x87, 0x13, 0xF3, 0xDC, 0x21, 0xDB, 0xF7, 0x27,
+ 0xD1, 0x28, 0x22, 0xFF, 0x13, 0xE0, 0x14, 0xA0,
+ 0xC2, 0x71, 0x13, 0xFF, 0x4F, 0xFF, 0x63, 0xFF,
+ 0x66, 0xC2, 0xF0, 0x52, 0xFF, 0x13, 0xF8, 0x77,
+ 0xB1, 0xB3, 0xF4, 0x3B, 0xF6, 0x60, 0x55, 0xEC,
+ 0xC7, 0x3B, 0x28, 0xC8, 0xC3, 0xFF, 0xA0, 0x59,
+ 0xB9, 0x44, 0x12, 0x0B, 0x13, 0xCB, 0x28, 0x0B,
+ 0x28, 0xB4, 0x13, 0xFF, 0x15, 0x1F, 0xFE, 0x13,
+ 0xF2, 0x43, 0xE9, 0xBA, 0x62, 0xF6, 0x85, 0x13,
+ 0xF4, 0x8D, 0xD7, 0x27, 0xFF, 0x6F, 0x37, 0x6F,
+ 0x87, 0x27, 0xD3, 0x72, 0x62, 0x47, 0x00, 0x20,
+ 0x27, 0xF5, 0x6E, 0xB3, 0xFF, 0x4F, 0xFF, 0x8C,
+ 0xEF, 0x9F, 0xF8, 0x34, 0x63, 0xEF, 0xF4, 0x9C,
+ 0x13, 0x28, 0x14, 0x27, 0x92, 0xFF, 0x8B, 0xF3,
+ 0x3C, 0x13, 0xEE, 0x37, 0xB3, 0x3C, 0x9E, 0x76,
+ 0x11, 0x2F, 0x3A, 0x48, 0x62, 0xF6, 0xB8, 0xA0,
+ 0x83, 0x29, 0xA1, 0x51, 0x83, 0x23, 0xB3, 0xC1,
+ 0x26, 0x28, 0x2C, 0xFF, 0xC7, 0xFF, 0x29, 0x0F,
+ 0xF0, 0xB2, 0xF8, 0xF8, 0x27, 0xF1, 0xE5, 0x60,
+ 0x09, 0x86, 0x3B, 0xF3, 0xF8, 0xDB, 0x34, 0xEF,
+ 0xA0, 0x77, 0xF2, 0xB5, 0x12, 0xDB, 0xF5, 0x0C,
+ 0x0C, 0x87, 0x67, 0x47, 0x00, 0x02, 0x9E, 0x84,
+ 0x2E, 0x2E, 0x13, 0xF8, 0xFE, 0x61, 0x8A, 0x9F,
+ 0xFF, 0xA0, 0xEF, 0xC7, 0xFF, 0xEF, 0xF2, 0x40,
+ 0x24, 0xDB, 0xF5, 0x3B, 0xF3, 0x15, 0x54, 0x4F,
+ 0x05, 0xFF, 0x8B, 0x83, 0x9B, 0x47, 0x4C, 0x78,
+ 0x01, 0x1F, 0x13, 0xFA, 0x63, 0x65, 0xA2, 0x71,
+ 0xE1, 0x41, 0xC7, 0x1B, 0xC5, 0xF1, 0x62, 0x2A,
+ 0x2A, 0x2C, 0x9F, 0xFF, 0x3D, 0x0F, 0x3B, 0xF4,
+ 0xFF, 0xF7, 0xF8, 0x13, 0xF1, 0xE5, 0xA6, 0x4F,
+ 0xF6, 0xC7, 0x75, 0x4F, 0xF5, 0xDB, 0xF1, 0xFE,
+ 0x31, 0x62, 0x2C, 0xEA, 0xA0, 0xED, 0x35, 0x2B,
+ 0x44, 0x42, 0x00, 0x00, 0x44, 0xFF, 0xFE, 0x13,
+ 0x13, 0xF4, 0xFB, 0xB2, 0x9E, 0xBF, 0x9F, 0xFF,
+ 0xDB, 0xFF, 0xDC, 0x43, 0xD8, 0xA8, 0xFB, 0xEF,
+ 0xF5, 0xDD, 0x63, 0x13, 0x84, 0xD7, 0xA2, 0x5F,
+ 0xB3, 0x44, 0x00, 0x11, 0xCB, 0x12, 0xFF, 0x14,
+ 0x4E, 0x28, 0x9F, 0xB5, 0xD2, 0x00, 0x26, 0xDC,
+ 0x93, 0xC8, 0xF5, 0xEF, 0xD1, 0x77, 0xFF, 0xFF,
+ 0x50, 0xDF, 0x4F, 0xFE, 0x27, 0xF4, 0xA8, 0x60,
+ 0xFA, 0x24, 0x63, 0xF3, 0x9F, 0x25, 0x13, 0xFA,
+ 0xEF, 0x13, 0x91, 0x13, 0xF3, 0x13, 0x74, 0x46,
+ 0x72, 0x64, 0xFE, 0x11, 0xD6, 0x60, 0xB3, 0xFC,
+ 0xFF, 0x9F, 0xFF, 0xB3, 0xFF, 0x27, 0xFF, 0x25,
+ 0xBA, 0xDB, 0x92, 0xF1, 0x70, 0x4A, 0x8F, 0x4B,
+ 0xAF, 0xFB, 0x4C, 0xCF, 0xEE, 0x81, 0x3A, 0x16,
+ 0x99, 0xD1, 0x64, 0xB6, 0x29, 0x8C, 0xB5, 0x65,
+ 0x62, 0xEF, 0x3C, 0x70, 0x9B, 0x81, 0xDD, 0x70,
+ 0x28, 0x63, 0xFF, 0x65, 0x1F, 0x63, 0xF5, 0xE4,
+ 0x15, 0xDB, 0x63, 0xF5, 0x3B, 0xF6, 0x2D, 0x77,
+ 0xF2, 0xEF, 0x45, 0x6A, 0x65, 0xE6, 0x8A, 0x14,
+ 0xFF, 0xFE, 0x90, 0x72, 0x5A, 0xFC, 0x10, 0xC3,
+ 0xB1, 0xD8, 0x13, 0x94, 0x52, 0xC6, 0x9F, 0xDC,
+ 0xEF, 0xFF, 0x4F, 0xF7, 0x27, 0xFF, 0x4C, 0x7B,
+ 0xFF, 0x31, 0x4D, 0x8F, 0x27, 0x71, 0x2F, 0xB1,
+ 0x00, 0x53, 0x3F, 0x45, 0x45, 0x13, 0x3F, 0xAD,
+ 0x5A, 0x99, 0xD2, 0xDC, 0x05, 0xB4, 0xE5, 0xF0,
+ 0xD4, 0xFF, 0x78, 0x74, 0xF1, 0xB1, 0x77, 0xFF,
+ 0x79, 0x1F, 0x77, 0xFF, 0xE5, 0xE5, 0x14, 0xD6,
+ 0x13, 0xF8, 0xFF, 0xC7, 0xF0, 0xE7, 0xD6, 0x13,
+ 0xFA, 0xFE, 0x02, 0x36, 0x77, 0x27, 0xF2, 0x9F,
+ 0xFF, 0xEF, 0xFF, 0xCF, 0xDB, 0x41, 0xEA, 0x63,
+ 0x2A, 0x2A, 0xDB, 0xF9, 0x70, 0xCF, 0x4B, 0xAE,
+ 0x88, 0xC6, 0x28, 0x45, 0x45, 0x13, 0xC1, 0x41,
+ 0x00, 0x03, 0x45, 0x45, 0x46, 0x79, 0x47, 0xD3,
+ 0x8F, 0xC1, 0x28, 0x8C, 0x25, 0xEF, 0xF5, 0x27,
+ 0x27, 0x52, 0x81, 0xBF, 0x53, 0x17, 0x2A, 0x50,
+ 0xD3, 0x13, 0xFF, 0x8C, 0xDF, 0x8B, 0xFB, 0xBC,
+ 0xB1, 0x9F, 0xF1, 0xE7, 0xF9, 0xE4, 0x4F, 0xF7,
+ 0xDB, 0x12, 0x6D, 0x6D, 0x79, 0xE8, 0x13, 0xFB,
+ 0x72, 0x55, 0xFF, 0x72, 0x64, 0x9A, 0x12, 0x37,
+ 0xC5, 0xB3, 0xFF, 0x13, 0x14, 0xEA, 0x91, 0x83,
+ 0x1F, 0x84, 0x3C, 0x5F, 0x45, 0x00, 0x00, 0x43,
+ 0x00, 0x00, 0x4D, 0x53, 0x4D, 0x6A, 0x60, 0x03,
+ 0xB0, 0xB3, 0xFC, 0x13, 0xF0, 0x13, 0x6F, 0x26,
+ 0xCA, 0x27, 0x46, 0x79, 0x27, 0x3B, 0x50, 0x27,
+ 0x27, 0xE6, 0xC7, 0x52, 0xB4, 0xA4, 0xF0, 0x74,
+ 0x2B, 0x2C, 0xB3, 0x90, 0x48, 0x11, 0x2B, 0x7F,
+ 0x2B, 0x9F, 0xFF, 0xA1, 0x1F, 0x9F, 0xF5, 0xD1,
+ 0x52, 0x12, 0x09, 0x94, 0xB3, 0xB3, 0xF5, 0xFF,
+ 0xF8, 0xC2, 0x88, 0xD2, 0x83, 0xB4, 0x27, 0xF8,
+ 0xBE, 0x9A, 0xD6, 0x75, 0xB3, 0xF5, 0xE7, 0xB1,
+ 0xF8, 0x13, 0x38, 0x85, 0x2F, 0x97, 0x6F, 0x61,
+ 0x18, 0x13, 0xC1, 0x41, 0x41, 0x40, 0xFF, 0x00,
+ 0x04, 0x4C, 0xFF, 0x39, 0x6F, 0x00, 0x7E, 0xB3,
+ 0x36, 0x79, 0xEB, 0x26, 0x02, 0x14, 0x10, 0xFF,
+ 0x27, 0xD1, 0xB4, 0xD1, 0x4F, 0x80, 0x14, 0x80,
+ 0xB8, 0xE3, 0xF6, 0x02, 0xEB, 0xD0, 0xB3, 0xFF,
+ 0xFF, 0xB5, 0x1F, 0x63, 0xFB, 0xCF, 0xD0, 0xC7,
+ 0x11, 0x94, 0x07, 0x78, 0xD5, 0xA1, 0xE9, 0xE5,
+ 0x84, 0xFF, 0xFE, 0x32, 0xAE, 0x93, 0xD4, 0xC2,
+ 0xF9, 0xB6, 0x27, 0xF6, 0xBE, 0xF8, 0xF4, 0xB0,
+ 0xA9, 0xFF, 0xEF, 0xAB, 0x1F, 0x14, 0x0F, 0x13,
+ 0xB0, 0x3F, 0x00, 0x01, 0x28, 0x60, 0x60, 0x3F,
+ 0x26, 0x3F, 0xF9, 0x9F, 0x26, 0x06, 0xFA, 0x27,
+ 0x69, 0x00, 0x0A, 0xDB, 0x50, 0x26, 0x26, 0x3C,
+ 0x31, 0x57, 0x27, 0xF2, 0xF0, 0x2A, 0x27, 0x82,
+ 0x2C, 0x9F, 0x91, 0xF0, 0x03, 0xC7, 0xFF, 0xFF,
+ 0xC9, 0x1F, 0x77, 0xFF, 0x3B, 0xFE, 0xBC, 0x99,
+ 0x13, 0xF4, 0xFC, 0x82, 0x27, 0xF9, 0x8F, 0x38,
+ 0xFE, 0x77, 0xF6, 0xD2, 0xC8, 0xF9, 0xD1, 0x96,
+ 0x53, 0xBE, 0x5F, 0xBF, 0x7F, 0x61, 0x58, 0x45,
+ 0x7F, 0x46, 0x4C, 0x3E, 0x87, 0xA4, 0x60, 0x94,
+ 0x4A, 0xF1, 0x24, 0x22, 0x63, 0x30, 0x23, 0xC3,
+ 0xEC, 0x27, 0x17, 0xC5, 0x1F, 0x15, 0xC6, 0x2C,
+ 0x13, 0xA1, 0x27, 0xD0, 0x27, 0x27, 0xDF, 0x28,
+ 0x41, 0xA0, 0x40, 0x27, 0x03, 0xD5, 0x91, 0x00,
+ 0x91, 0x31, 0xA1, 0x31, 0xDB, 0xFF, 0xFF, 0xDD,
+ 0x1F, 0xDB, 0xF2, 0xE3, 0xD9, 0x63, 0xFF, 0xA1,
+ 0xEC, 0x63, 0xFE, 0xE6, 0xEB, 0xD0, 0x6F, 0xFF,
+ 0xAA, 0xF9, 0x14, 0x5F, 0xD3, 0x6F, 0x86, 0xCB,
+ 0x9A, 0x68, 0x5D, 0xA4, 0x2C, 0xB4, 0x3A, 0x0A,
+ 0xBF, 0x64, 0x20, 0x44, 0x64, 0x80, 0x9E, 0x3D,
+ 0xF2, 0x75, 0x76, 0x43, 0x00, 0xC5, 0xB3, 0xA1,
+ 0x9E, 0xF4, 0x23, 0x26, 0x26, 0xC8, 0x70, 0x14,
+ 0x61, 0x50, 0x61, 0xF3, 0xB1, 0x26, 0xFF, 0xDC,
+ 0x65, 0x50, 0x51, 0xEF, 0xFF, 0xF1, 0x1F, 0xEF,
+ 0xF4, 0xE5, 0x13, 0x4E, 0x03, 0xF8, 0xC1, 0xFF,
+ 0xDB, 0xF7, 0xF8, 0xD6, 0xB5, 0x07, 0x3A, 0x64,
+ 0x8B, 0xF5, 0xE3, 0x8F, 0xE4, 0xAF, 0x14, 0x5F,
+ 0xF9, 0x3D, 0x1F, 0x86, 0xCE, 0x2A, 0xF8, 0x2B,
+ 0xC5, 0xD9, 0x4E, 0x29, 0x29, 0xB2, 0xD1, 0x38,
+ 0x45, 0x44, 0x8B, 0x20, 0x38, 0x41, 0x4C, 0x20,
+ 0x28, 0x28, 0x44, 0x7F, 0x44, 0xEC, 0xD0, 0xDB,
+ 0xE9, 0x13, 0xF1, 0x30, 0x98, 0xEA, 0x83, 0x13,
+ 0xD1, 0x03, 0x11, 0xBF, 0xB3, 0xC1, 0x2B, 0x28,
+ 0x21, 0xCA, 0xF3, 0xF0, 0x81, 0xF1, 0xB0, 0xE8,
+ 0x31, 0xDA, 0x8E, 0xFF, 0x01, 0x0F, 0x13, 0xF8,
+ 0x4F, 0xF7, 0xA0, 0x17, 0x3B, 0xFD, 0xF1, 0xE4,
+ 0x72, 0x5F, 0x00, 0x38, 0xFF, 0xF8, 0x7F, 0xE7,
+ 0xBF, 0xBE, 0xD1, 0x32, 0x33, 0x9A, 0x0F, 0x9A,
+ 0x21, 0x13, 0xD6, 0x26, 0x94, 0x7C, 0x42, 0x02,
+ 0xB3, 0xD8, 0x0F, 0xD6, 0x70, 0x9E, 0xC6, 0x13,
+ 0x61, 0x2B, 0x44, 0xF8, 0x10, 0x22, 0x74, 0x60,
+ 0xEE, 0xCB, 0xC8, 0x64, 0x8F, 0x47, 0x2A, 0x29,
+ 0x27, 0x40, 0x26, 0xDA, 0x20, 0x2B, 0x2B, 0x27,
+ 0x28, 0x26, 0x26, 0xFF, 0x27, 0x52, 0x15, 0x10,
+ 0xA5, 0xC2, 0xF1, 0x63, 0xEF, 0xFF, 0x14, 0xDF,
+ 0x8B, 0xFC, 0xEF, 0x16, 0xFD, 0xF7, 0xF6, 0x1A,
+ 0x40, 0xD8, 0x44, 0x91, 0xB4, 0x00, 0x0F, 0x97,
+ 0xE0, 0x43, 0x13, 0xFF, 0xF3, 0x02, 0x8F, 0xC0,
+ 0x8F, 0x00, 0x2F, 0x74, 0x3F, 0x2C, 0x2C, 0x8B,
+ 0xE0, 0x00, 0x63, 0xFF, 0x74, 0xA5, 0x9B, 0xD7,
+ 0x3A, 0x5B, 0xEE, 0xE3, 0x27, 0xA0, 0xC4, 0x41,
+ 0xF0, 0xAD, 0x02, 0xB5, 0xDF, 0xF1, 0x63, 0x1C,
+ 0x04, 0x26, 0x6D, 0x31, 0xC7, 0xC1, 0x4F, 0xD0,
+ 0x50, 0x81, 0xF7, 0xA3, 0xFF, 0xC8, 0xB6, 0xEF,
+ 0xFF, 0x28, 0xFF, 0xDB, 0xF6, 0xFB, 0x85, 0xC7,
+ 0xF4, 0x99, 0xDF, 0x92, 0x93, 0xFF, 0x33, 0xEE,
+ 0xFA, 0xF0, 0x9A, 0x01, 0x00, 0x32, 0x9A, 0x5F,
+ 0xD3, 0xCF, 0x13, 0x7F, 0x9A, 0x2D, 0xEF, 0x3A,
+ 0xE8, 0x14, 0x03, 0xD6, 0x73, 0x43, 0xFF, 0x00,
+ 0xED, 0x16, 0xC3, 0x44, 0x36, 0xF3, 0xDF, 0xB0,
+ 0xA6, 0xC4, 0x52, 0x29, 0x14, 0x12, 0xD9, 0x91,
+ 0xC5, 0x93, 0x2E, 0xD7, 0xF1, 0x3D, 0xBB, 0x18,
+ 0x24, 0x29, 0x13, 0xE1, 0x21, 0xF4, 0x51, 0xB1,
+ 0x2A, 0xEB, 0x94, 0xF5, 0x70, 0xFF, 0x3B, 0xFF,
+ 0x3D, 0x1F, 0xF0, 0x31, 0x4E, 0xC5, 0x25, 0xEF,
+ 0xAB, 0x0F, 0x14, 0x3F, 0x9A, 0x44, 0xFE, 0x9A,
+ 0x56, 0x86, 0x73, 0xE7, 0x0F, 0xE7, 0xCA, 0x9A,
+ 0xEF, 0xAE, 0x7E, 0xF9, 0x52, 0x43, 0x5F, 0x43,
+ 0x8B, 0xE0, 0x3D, 0x8B, 0xE7, 0xB4, 0x0B, 0xAF,
+ 0x62, 0xDB, 0xF3, 0xC3, 0xC2, 0x1D, 0x2C, 0x44,
+ 0x41, 0xEC, 0x94, 0x10, 0x81, 0x64, 0x36, 0x29,
+ 0x9F, 0xF3, 0xFF, 0x67, 0xD8, 0x65, 0x21, 0xB3,
+ 0xD1, 0xB4, 0x10, 0x53, 0x41, 0x00, 0x42, 0x79,
+ 0x30, 0xE1, 0xA2, 0xFF, 0xD0, 0x43, 0xEF, 0xFF,
+ 0x50, 0xDF, 0xF0, 0x45, 0x39, 0x6F, 0x3A, 0x8F,
+ 0xD3, 0xA9, 0xA8, 0xAC, 0x7F, 0x44, 0xAD, 0xF2,
+ 0x9A, 0x56, 0x39, 0xAF, 0x13, 0xD7, 0x25, 0xCD,
+ 0x27, 0xAF, 0x9B, 0x27, 0xFF, 0x9F, 0x11, 0x3B,
+ 0xB1, 0x2E, 0x01, 0x24, 0x19, 0xFE, 0xC4, 0xFF,
+ 0x05, 0xEF, 0xA0, 0xB0, 0xE1, 0xFF, 0xF0, 0x31,
+ 0xF2, 0x74, 0x61, 0xE5, 0xAB, 0x36, 0x28, 0x1A,
+ 0x61, 0xA0, 0xCB, 0x92, 0xEE, 0x70, 0xFF, 0x14,
+ 0x12, 0x8B, 0x90, 0x4F, 0xC3, 0xF1, 0x85, 0x05,
+ 0xF7, 0x63, 0xFF, 0x65, 0x1F, 0x13, 0xFF, 0xFF,
+ 0xF9, 0x15, 0x00, 0x11, 0xD3, 0x8F, 0x3C, 0xB9,
+ 0xFB, 0xA6, 0x9A, 0x5A, 0xD3, 0x37, 0xFA, 0xD6,
+ 0xF9, 0xD4, 0xBB, 0x39, 0xF9, 0x55, 0x1F, 0xC2,
+ 0x17, 0x4A, 0xC4, 0x43, 0x42, 0x42, 0x41, 0xCD,
+ 0x88, 0xFB, 0x00, 0x9C, 0x42, 0x41, 0x02, 0xC5,
+ 0xC5, 0xA2, 0x44, 0xBA, 0xDB, 0xFF, 0xFC, 0xF4,
+ 0x90, 0x45, 0xDA, 0x90, 0x2B, 0x77, 0x63, 0xB0,
+ 0xC8, 0xB1, 0xF5, 0x31, 0x15, 0xD9, 0xFF, 0x68,
+ 0x33, 0x77, 0xFF, 0x79, 0x1F, 0x27, 0xFF, 0x62,
+ 0x4F, 0x63, 0x6F, 0x86, 0xAD, 0xD3, 0xDF, 0xFF,
+ 0xD4, 0xFF, 0x26, 0x9F, 0x05, 0x3E, 0x0E, 0x65,
+ 0x13, 0xF6, 0xC7, 0x30, 0xFE, 0xC2, 0x64, 0x61,
+ 0xFB, 0x4A, 0x42, 0x9D, 0x59, 0xC4, 0xA4, 0xB6,
+ 0x72, 0xD3, 0xF5, 0x44, 0xF5, 0xD3, 0x9C, 0x66,
+ 0xBD, 0xF2, 0xA7, 0x28, 0xED, 0x73, 0xE4, 0x32,
+ 0xA0, 0x21, 0x77, 0x61, 0x26, 0xB3, 0xF1, 0xFB,
+ 0xC7, 0xB0, 0xA0, 0x60, 0xEF, 0x70, 0x15, 0xD5,
+ 0xF1, 0x21, 0x29, 0xEF, 0xFF, 0x8C, 0xDF, 0xEF,
+ 0x3B, 0xFF, 0xFB, 0x53, 0xFA, 0xE0, 0x42, 0x00,
+ 0x00, 0xFB, 0x51, 0x00, 0x62, 0xA9, 0x75, 0xFF,
+ 0x13, 0x3C, 0xAC, 0x37, 0xBD, 0x78, 0xFA, 0x42,
+ 0xE8, 0xCF, 0xE9, 0xEF, 0x3B, 0xDF, 0xB1, 0xF3,
+ 0xF0, 0xFE, 0x01, 0x9C, 0x92, 0x4F, 0xF3, 0x6D,
+ 0xA1, 0x2D, 0x2D, 0x43, 0x41, 0xFF, 0x64, 0x60,
+ 0x11, 0x3B, 0x75, 0x6A, 0xB3, 0xD0, 0x87, 0x63,
+ 0x88, 0xF0, 0x10, 0xE0, 0x3D, 0xA5, 0xFE, 0xDB,
+ 0x84, 0xB3, 0x43, 0xF7, 0xF2, 0xDB, 0xA8, 0x13,
+ 0xF1, 0x14, 0x13, 0x14, 0x91, 0x2B, 0x6E, 0x27,
+ 0x15, 0xDA, 0x07, 0x51, 0x2B, 0x9F, 0xFF, 0xA1,
+ 0x1F, 0x4F, 0xFC, 0x45, 0xF9, 0xBC, 0x80, 0x13,
+ 0xB0, 0x60, 0xE0, 0x00, 0x22, 0x13, 0xA0, 0x46,
+ 0x47, 0x26, 0x7F, 0xEF, 0x0F, 0x8E, 0x33, 0x64,
+ 0xC2, 0x05, 0x2B, 0xBC, 0xE0, 0xBE, 0x53, 0x35,
+ 0x79, 0x9F, 0x98, 0xFF, 0xC1, 0xE8, 0x3A, 0xDA,
+ 0xD3, 0x84, 0xAC, 0x52, 0xFE, 0x01, 0x7D, 0xB1,
+ 0x11, 0x31, 0xFF, 0xE3, 0xFF, 0x54, 0x27, 0xF5,
+ 0x01, 0xEC, 0x95, 0xCA, 0x54, 0xEE, 0x37, 0x9C,
+ 0xC2, 0x18, 0x23, 0xB4, 0xD1, 0xFF, 0xC7, 0x12,
+ 0xC6, 0xB1, 0xED, 0x71, 0x9D, 0xE2, 0xA2, 0x13,
+ 0x13, 0xF3, 0x28, 0x21, 0xEF, 0xE0, 0xFF, 0xF2,
+ 0x20, 0x02, 0x92, 0xCD, 0x64, 0x3B, 0xFF, 0xB4,
+ 0xBF, 0x63, 0xFF, 0x27, 0xC5, 0x13, 0x4B, 0xDF,
+ 0x99, 0x2E, 0x4C, 0x5D, 0x44, 0x9A, 0x45, 0x9A,
+ 0x53, 0x83, 0x93, 0x82, 0xFC, 0x6F, 0x23, 0xFF,
+ 0xFB, 0xC5, 0xD6, 0x19, 0xFF, 0x0F, 0x0F, 0x22,
+ 0x88, 0xB0, 0x49, 0x61, 0x92, 0x35, 0x8C, 0x71,
+ 0xFF, 0xED, 0xF1, 0x0E, 0x90, 0x64, 0x55, 0xF5,
+ 0x51, 0xEC, 0x82, 0x01, 0x61, 0x5F, 0x51, 0x9F,
+ 0xE1, 0xFF, 0xFC, 0x22, 0x04, 0x03, 0x04, 0x63,
+ 0xC9, 0x11, 0xF8, 0x51, 0x9D, 0x13, 0xDD, 0x43,
+ 0xC7, 0x12, 0xFF, 0x64, 0x10, 0xDB, 0x92, 0x3D,
+ 0xC3, 0x2B, 0xB3, 0xB7, 0xA2, 0xF5, 0xE1, 0xDC,
+ 0x53, 0xC7, 0xFF, 0xFF, 0xC9, 0x1F, 0x77, 0xF5,
+ 0xD3, 0xAB, 0x56, 0xE7, 0x13, 0xDF, 0x14, 0xFF,
+ 0x9A, 0x44, 0x9A, 0x54, 0xFF, 0x6D, 0xD3, 0xE7,
+ 0x41, 0x97, 0xA7, 0x28, 0x6B, 0x34, 0x47, 0xF3,
+ 0xA7, 0x6F, 0x83, 0x16, 0xF7, 0x10, 0x29, 0x2B,
+ 0x43, 0x4A, 0xA2, 0x2A, 0x43, 0x40, 0x3D, 0x2F,
+ 0x3D, 0x40, 0x8B, 0xD1, 0x42, 0x64, 0x71, 0x77,
+ 0xE6, 0x78, 0x97, 0xF6, 0x32, 0x8F, 0x24, 0x53,
+ 0x27, 0x44, 0x44, 0xEC, 0xC0, 0x13, 0x44, 0xEF,
+ 0x61, 0x7A, 0x24, 0xFF, 0x99, 0xE9, 0xD6, 0xC4,
+ 0xB3, 0x71, 0x7C, 0x59, 0xF1, 0x10, 0x15, 0xD8,
+ 0x1C, 0x33, 0xDB, 0xFF, 0xFF, 0xDD, 0x1F, 0x9F,
+ 0xF2, 0xFA, 0x85, 0x4B, 0x8F, 0x85, 0x9A, 0x00,
+ 0x77, 0xFC, 0x56, 0x9A, 0x44, 0x9F, 0xA0, 0x11,
+ 0x3D, 0x41, 0xB4, 0x91, 0x34, 0x14, 0x1C, 0xF5,
+ 0xD2, 0xE3, 0xEC, 0x65, 0xFF, 0x86, 0x0A, 0xC1,
+ 0x65, 0x9F, 0x15, 0xC3, 0x37, 0x9A, 0xE4, 0x3B,
+ 0xF1, 0x50, 0x01, 0xFD, 0x71, 0x7F, 0x43, 0x9D,
+ 0xD1, 0x8C, 0x0F, 0xC8, 0x66, 0xC4, 0x01, 0xC7,
+ 0xE2, 0x5A, 0xE1, 0xFB, 0xB4, 0xFF, 0x4E, 0x63,
+ 0x02, 0x43, 0x64, 0x01, 0x8F, 0xA3, 0x3A, 0xC1,
+ 0x2E, 0x21, 0x52, 0x40, 0xC7, 0x72, 0xFF, 0x63,
+ 0x03, 0xB9, 0xD5, 0xEC, 0xA4, 0x03, 0x33, 0xEF,
+ 0xFF, 0xF1, 0x1F, 0xF2, 0x31, 0x3A, 0x1F, 0xFF,
+ 0xAC, 0x68, 0xBB, 0x5A, 0xE8, 0x3D, 0xC7, 0xC1,
+ 0x9A, 0x43, 0x13, 0xC1, 0xBE, 0x7C, 0xD2, 0x73,
+ 0xFF, 0x35, 0xF1, 0xF4, 0x46, 0xEE, 0x83, 0xFC,
+ 0x12, 0xC3, 0x55, 0x19, 0x37, 0x63, 0x86, 0x34,
+ 0x22, 0xC9, 0xD5, 0x30, 0xCD, 0x91, 0x40, 0x3F,
+ 0x27, 0xD0, 0x40, 0x43, 0xFD, 0x03, 0xFF, 0xEB,
+ 0xC6, 0x75, 0xE9, 0x27, 0x73, 0x13, 0x66, 0xD8,
+ 0x14, 0xF6, 0xA6, 0xC5, 0x32, 0x9E, 0xB1, 0xC7,
+ 0x17, 0x27, 0xD9, 0xD1, 0x2B, 0x26, 0x27, 0xA4,
+ 0x93, 0x4F, 0xA2, 0x67, 0x50, 0xFF, 0x29, 0x03,
+ 0x15, 0xD4, 0xCE, 0xC3, 0xC6, 0x8E, 0x01, 0x0F,
+ 0x13, 0xFE, 0xCF, 0xB3, 0xF9, 0x31, 0xFF, 0x93,
+ 0x25, 0xA8, 0x78, 0x4D, 0x0A, 0x61, 0x67, 0xC1,
+ 0xC3, 0xE9, 0x03, 0xC2, 0x7A, 0xD2, 0x65, 0xDF,
+ 0xE5, 0x45, 0x5C, 0xC2, 0x27, 0x6E, 0x93, 0xF5,
+ 0x84, 0x51, 0x26, 0x2C, 0xE4, 0x5E, 0xF2, 0xFF,
+ 0xF0, 0x51, 0x49, 0xC2, 0xC8, 0x12, 0x14, 0x81,
+ 0xE9, 0x11, 0x23, 0xA1, 0x5E, 0x90, 0x11, 0xD8,
+ 0xEF, 0xF9, 0x73, 0xEB, 0xC2, 0x2E, 0xF5, 0x28,
+ 0xF0, 0x00, 0x4F, 0x11, 0xC4, 0xF1, 0x14, 0xA5,
+ 0xFF, 0x75, 0x02, 0xED, 0x85, 0xFC, 0xA0, 0xED,
+ 0xF3, 0x63, 0x82, 0x78, 0x42, 0x7F, 0x22, 0x15,
+ 0xDB, 0xFD, 0x8E, 0x22, 0x13, 0xFF, 0x15, 0x1F,
+ 0xEF, 0xF4, 0xA9, 0xAA, 0x8C, 0x01, 0x2C, 0x78,
+ 0xA0, 0xE0, 0xAD, 0x1E, 0x94, 0x06, 0x4D, 0x8B,
+ 0x40, 0x3F, 0x3E, 0x3E, 0x3C, 0x0F, 0x3C, 0x3D,
+ 0x3E, 0x41, 0xDB, 0xA5, 0x83, 0x66, 0xEA, 0x83,
+ 0x78, 0x81, 0xFF, 0x99, 0x09, 0xAD, 0xDF, 0xE8,
+ 0xD2, 0xE9, 0x86, 0x77, 0xC2, 0xEE, 0x22, 0x89,
+ 0x00, 0x71, 0x64, 0x1F, 0x28, 0x2B, 0x42, 0x4E,
+ 0x43, 0x4E, 0xF5, 0x75, 0xE6, 0xFF, 0x72, 0xF7,
+ 0x70, 0x27, 0x40, 0x40, 0x8C, 0x43, 0x44, 0x44,
+ 0x7F, 0x93, 0xE0, 0xA6, 0xA1, 0xB5, 0xBF, 0x20,
+ 0x8A, 0x28, 0x13, 0xF4, 0xC8, 0x40, 0x19, 0x81,
+ 0xDC, 0xD0, 0x15, 0xD9, 0x67, 0xA3, 0xFB, 0x27,
+ 0xFF, 0x29, 0x1F, 0xDB, 0xF3, 0x9B, 0x2C, 0xF7,
+ 0x73, 0x44, 0x8B, 0xF0, 0x45, 0x21, 0xEF, 0x87,
+ 0xF9, 0x71, 0xE6, 0x4D, 0x87, 0x44, 0xAE, 0x42,
+ 0xCA, 0xA0, 0xAE, 0x54, 0x9A, 0x91, 0xFF, 0x83,
+ 0x62, 0x6F, 0x88, 0x05, 0x25, 0xA2, 0x8B, 0xDB,
+ 0xAC, 0x9B, 0xE2, 0xF6, 0x52, 0x22, 0x31, 0x13,
+ 0x2A, 0x43, 0x45, 0xDA, 0x94, 0x3F, 0x3F, 0x9F,
+ 0xD0, 0xC7, 0xFE, 0xDF, 0x75, 0xE6, 0xB3, 0xB1,
+ 0x44, 0x32, 0x57, 0x88, 0x82, 0x58, 0x23, 0xC6,
+ 0xD2, 0x55, 0xA3, 0xDD, 0x8E, 0x73, 0xB7, 0x58,
+ 0x28, 0x3B, 0x00, 0x53, 0x42, 0x3B, 0x74, 0x2C,
+ 0xDF, 0x06, 0xFF, 0xE0, 0x26, 0x4F, 0xFF, 0x3D,
+ 0x0F, 0x27, 0xF4, 0xE7, 0xB5, 0xF8, 0x61, 0xB3,
+ 0xE0, 0xB2, 0xF1, 0xCF, 0x94, 0x07, 0xA9, 0xC4,
+ 0x26, 0x26, 0x27, 0xFB, 0x4D, 0x87, 0xAE, 0x44,
+ 0xAE, 0x54, 0xFF, 0x83, 0x65, 0x46, 0x52, 0x75,
+ 0xB8, 0x64, 0xF6, 0xF3, 0xA8, 0xEF, 0x36, 0xE7,
+ 0x84, 0xD7, 0x29, 0xEF, 0xC2, 0xB2, 0xA0, 0x02,
+ 0xEE, 0x80, 0x43, 0x9B, 0x73, 0x4E, 0x05, 0x2A,
+ 0x87, 0xF1, 0x01, 0xFF, 0xD9, 0xF4, 0x63, 0x28,
+ 0xDC, 0xA2, 0x90, 0x73, 0x8E, 0x21, 0x3B, 0xE8,
+ 0x2D, 0x70, 0xFC, 0x01, 0xFF, 0x4F, 0x71, 0x5A,
+ 0x4A, 0xE6, 0xD0, 0xCD, 0x38, 0x03, 0x33, 0x4F,
+ 0xFF, 0x51, 0x1F, 0x3B, 0xF2, 0xFF, 0x59, 0x96,
+ 0x3B, 0x28, 0xBD, 0x11, 0x6C, 0xF0, 0x58, 0xF5,
+ 0xFB, 0x51, 0xF5, 0xB3, 0xE2, 0xA1, 0xBD, 0x4D,
+ 0x88, 0x44, 0xAE, 0x45, 0xAE, 0x55, 0x0D, 0x77,
+ 0xBE, 0xA6, 0x2C, 0x85, 0xE4, 0xFF, 0x86, 0x54,
+ 0xE5, 0xF1, 0xCB, 0x9C, 0xC3, 0x01, 0x97, 0xB4,
+ 0xC6, 0x84, 0x67, 0x47, 0x7E, 0x23, 0xFE, 0x61,
+ 0x95, 0xA4, 0xA3, 0x12, 0xBB, 0xEA, 0xE2, 0xEF,
+ 0x26, 0x91, 0x52, 0xF2, 0xC7, 0x2A, 0xFF, 0x5C,
+ 0x17, 0x2A, 0x59, 0x96, 0x94, 0x65, 0xD2, 0x41,
+ 0x83, 0x15, 0xD8, 0x80, 0xF3, 0x63, 0xFF, 0xF9,
+ 0x65, 0x1F, 0xC7, 0xF2, 0xFA, 0xA4, 0x05, 0xC8,
+ 0x1D, 0x43, 0x44, 0x41, 0x58, 0xD0, 0xFF, 0x1E,
+ 0x1A, 0xC3, 0x03, 0x4D, 0x8F, 0xE8, 0x42, 0xAE,
+ 0x53, 0x20, 0x37, 0x6F, 0x84, 0x99, 0xB4, 0xFC,
+ 0xFF, 0xD2, 0x00, 0x97, 0x07, 0x2C, 0xAF, 0xF3,
+ 0xFE, 0x34, 0x1A, 0xC2, 0x28, 0x43, 0xFF, 0xC7,
+ 0xE1, 0xC4, 0xE3, 0xC8, 0x81, 0x60, 0x15, 0x6C,
+ 0xBA, 0xA4, 0x19, 0x63, 0x28, 0x2C, 0x9A, 0xFF,
+ 0xB6, 0xC3, 0x9E, 0xF9, 0xF1, 0xD1, 0xB3, 0x30,
+ 0xEE, 0x92, 0x05, 0x06, 0xF5, 0x44, 0xF1, 0xF1,
+ 0xFF, 0xF3, 0xE1, 0xE0, 0x20, 0x77, 0xFF, 0x79,
+ 0x1F, 0xDB, 0xF3, 0xEC, 0x27, 0xE1, 0xE6, 0x94,
+ 0x04, 0xFF, 0xE5, 0x81, 0x1E, 0x16, 0xFD, 0x82,
+ 0x51, 0xE5, 0xBD, 0x12, 0xAE, 0x45, 0x9F, 0x82,
+ 0x77, 0xB8, 0xFF, 0x20, 0x34, 0xB2, 0x22, 0xEC,
+ 0xC4, 0x60, 0xB5, 0x0A, 0x33, 0x00, 0x2E, 0x71,
+ 0x81, 0x4B, 0x55, 0xCF, 0xB5, 0x04, 0x3F, 0x52,
+ 0x43, 0x2A, 0x8B, 0xD0, 0xCB, 0xF1, 0xF1, 0x47,
+ 0xED, 0x82, 0xFF, 0x12, 0xB9, 0xE1, 0xF3, 0x63,
+ 0x2A, 0x12, 0xA6, 0xE0, 0x81, 0xB7, 0x52, 0xDD,
+ 0x80, 0x44, 0x84, 0xF7, 0xE1, 0xB2, 0xF6, 0x21,
+ 0xBC, 0x03, 0xF0, 0x80, 0x29, 0xF7, 0x00, 0x3E,
+ 0x84, 0xE5, 0x63, 0xFF, 0x30, 0xF2, 0x8B, 0xFF,
+ 0x8D, 0x1F, 0xEF, 0xF4, 0xB7, 0xE2, 0xD5, 0xA9,
+ 0x50, 0x91, 0x1E, 0x1E, 0xFF, 0x8E, 0x49, 0xC3,
+ 0x47, 0xAE, 0x45, 0xAE, 0x51, 0x7B, 0x80, 0x20,
+ 0x37, 0xC5, 0xD5, 0xC6, 0x79, 0xFF, 0xE9, 0x52,
+ 0x88, 0x34, 0x0C, 0x94, 0xDA, 0x65, 0x10, 0x83,
+ 0xD7, 0x65, 0xF4, 0xB1, 0xF0, 0x25, 0xFF, 0xB3,
+ 0xD0, 0xF3, 0x96, 0xC7, 0xD3, 0x75, 0xED, 0x53,
+ 0xF2, 0x63, 0x27, 0xB8, 0xF5, 0x41, 0x64, 0xFF,
+ 0x14, 0x15, 0x13, 0xF5, 0x27, 0xF2, 0xA1, 0x53,
+ 0xF0, 0x11, 0xF8, 0xC3, 0x9A, 0xA8, 0x77, 0xFF,
+ 0xF3, 0xA0, 0xAF, 0xDB, 0xFC, 0x13, 0xBE, 0xE2,
+ 0x60, 0x44, 0x41, 0x1E, 0x1C, 0xE9, 0xE4, 0xEF,
+ 0xFB, 0xA6, 0x4D, 0x81, 0xAE, 0x44, 0x3F, 0xAE,
+ 0x54, 0x13, 0xF0, 0xA3, 0x5A, 0x97, 0xA8, 0xFE,
+ 0xAD, 0xC6, 0x91, 0x7D, 0xD9, 0x28, 0xDD, 0x04,
+ 0xC1, 0x71, 0xF6, 0x11, 0xA4, 0xC5, 0x43, 0x7B,
+ 0x42, 0xCD, 0xC0, 0xB1, 0x89, 0x12, 0xBA, 0xF8,
+ 0xE2, 0x2C, 0x9D, 0x93, 0x2B, 0xA5, 0xE6, 0x48,
+ 0xCA, 0xCE, 0xA6, 0xFE, 0x98, 0x29, 0x25, 0xF7,
+ 0xC2, 0x9F, 0xF5, 0x2A, 0x7F, 0x29, 0x3B, 0x44,
+ 0x94, 0x48, 0xB3, 0xFF, 0xB5, 0x1F, 0xF0, 0x81,
+ 0xE5, 0x15, 0x3A, 0xD1, 0xDF, 0x8B, 0x71, 0xFC,
+ 0x92, 0x44, 0xE3, 0x08, 0x27, 0xCB, 0xCF, 0x14,
+ 0x4D, 0x89, 0xAE, 0x41, 0xFF, 0xAE, 0x51, 0xAB,
+ 0xC1, 0x0D, 0x78, 0xAB, 0x76, 0xCC, 0xB3, 0x48,
+ 0x08, 0x27, 0xF6, 0xD9, 0x2B, 0xFE, 0xF2, 0x08,
+ 0xE0, 0x30, 0x72, 0x61, 0x2A, 0x24, 0xA0, 0x54,
+ 0x94, 0x27, 0x12, 0xB9, 0x26, 0xEF, 0x81, 0xB0,
+ 0x45, 0xC1, 0xBE, 0x97, 0x26, 0xC5, 0x11, 0x61,
+ 0x55, 0x8F, 0x0D, 0xF4, 0x13, 0xFF, 0xF2, 0x71,
+ 0xDC, 0x90, 0xB3, 0xD0, 0x3B, 0xE0, 0x64, 0x32,
+ 0x2A, 0xD5, 0xDF, 0xA6, 0xC7, 0xFF, 0xE7, 0xC9,
+ 0x1F, 0x9F, 0xF3, 0xFC, 0xB8, 0x42, 0x41, 0x13,
+ 0xF3, 0xFE, 0xE2, 0x8C, 0xF1, 0x7D, 0x2C, 0x25,
+ 0x34, 0x1E, 0x10, 0xB3, 0xF6, 0xD1, 0x30, 0xEB,
+ 0x47, 0x44, 0x4D, 0x85, 0xFF, 0xAE, 0x51, 0x20,
+ 0x39, 0x6F, 0x8F, 0xCC, 0x8E, 0xFC, 0x07, 0x12,
+ 0x97, 0x89, 0xD2, 0xFD, 0x11, 0x80, 0x91, 0x92,
+ 0x2B, 0x2A, 0x42, 0x40, 0x3E, 0x40, 0x42, 0xFF,
+ 0x7C, 0xD1, 0xCF, 0xE9, 0x12, 0xB9, 0xF1, 0x02,
+ 0x5F, 0x31, 0xF5, 0xE8, 0xEF, 0x44, 0x7F, 0x83,
+ 0xEF, 0x81, 0x8D, 0x63, 0x04, 0x27, 0xD3, 0x26,
+ 0x01, 0xF2, 0x02, 0xA1, 0xAD, 0xA2, 0xE1, 0xB8,
+ 0xFC, 0xDB, 0xFF, 0xDD, 0x1F, 0x63, 0xF4, 0xFD,
+ 0xE7, 0xB2, 0xF0, 0xEA, 0xD6, 0x44, 0x44, 0xF8,
+ 0xEB, 0x00, 0x1E, 0x18, 0xFE, 0x52, 0x5A, 0x88,
+ 0xFC, 0x91, 0x46, 0x46, 0x44, 0x83, 0xAE, 0x10,
+ 0x3D, 0x3D, 0x3E, 0x3E, 0x3F, 0xB6, 0xE0, 0xAC,
+ 0xC1, 0xFF, 0x20, 0x36, 0x6F, 0x8F, 0x12, 0xAC,
+ 0x3C, 0x09, 0xC8, 0xC8, 0x50, 0x15, 0xE0, 0xC3,
+ 0x4B, 0x17, 0xFF, 0xE0, 0x56, 0xA2, 0x8B, 0xF1,
+ 0x46, 0x63, 0x27, 0x77, 0x74, 0x77, 0x37, 0x25,
+ 0x47, 0x8F, 0x05, 0xFF, 0xF6, 0xA1, 0xA2, 0xA1,
+ 0xDC, 0x12, 0x18, 0x31, 0x16, 0xD1, 0xE4, 0x92,
+ 0xDF, 0xA2, 0x13, 0xFF, 0xEF, 0xF0, 0xDF, 0x13,
+ 0xFF, 0xB4, 0x32, 0x42, 0xD0, 0x73, 0xEA, 0xD5,
+ 0x1E, 0x18, 0x6D, 0x95, 0xFF, 0xCA, 0xE5, 0x86,
+ 0x10, 0xC2, 0x45, 0xC2, 0x57, 0xD9, 0x57, 0x6F,
+ 0x8F, 0x84, 0x4A, 0xFE, 0x76, 0xF0, 0x4D, 0x35,
+ 0x36, 0xA7, 0xF1, 0x55, 0xF1, 0xB4, 0x28, 0x2A,
+ 0x3F, 0x28, 0x0F, 0x42, 0x28, 0x29, 0x42, 0x6D,
+ 0xD4, 0xF4, 0xE6, 0x89, 0x94, 0xF6, 0x72, 0xFF,
+ 0x17, 0xC6, 0xA4, 0x95, 0x15, 0x67, 0x25, 0x49,
+ 0x8F, 0x06, 0x4F, 0xA3, 0x2A, 0x04, 0xF3, 0xF0,
+ 0xFF, 0xF6, 0xF2, 0xF1, 0xD1, 0xDF, 0xA3, 0xFB,
+ 0x11, 0xEE, 0x8E, 0x01, 0x0F, 0x9F, 0xF4, 0x3B,
+ 0x17, 0x87, 0xFF, 0xD0, 0x2D, 0x44, 0x2C, 0x28,
+ 0x77, 0xE6, 0xEA, 0x05, 0xEE, 0xD7, 0xFF, 0xFD,
+ 0xF1, 0x4D, 0x8B, 0x72, 0x22, 0xC2, 0x56, 0x20,
+ 0x37, 0x6F, 0x8F, 0x3A, 0xA6, 0xC6, 0xB3, 0xF5,
+ 0x7A, 0x6B, 0xA1, 0xF6, 0xC1, 0xA0, 0xC2, 0x54,
+ 0x40, 0xFE, 0xF1, 0x40, 0x7B, 0xF4, 0xFE, 0x95,
+ 0xD6, 0x2A, 0x16, 0x12, 0xB9, 0xC9, 0x34, 0xDD,
+ 0xE6, 0x18, 0x2C, 0x8F, 0x0E, 0x29, 0xDF, 0x4F,
+ 0x62, 0xF2, 0xA1, 0x25, 0x00, 0x01, 0xF5, 0xC0,
+ 0xB4, 0xF3, 0xCA, 0x65, 0xFE, 0x10, 0xFB, 0x13,
+ 0xFF, 0x15, 0x1F, 0xC7, 0xF8, 0xF6, 0x31, 0xD8,
+ 0x71, 0x27, 0xF7, 0x41, 0x14, 0x07, 0xFF, 0x1E,
+ 0x18, 0xFF, 0x05, 0xBD, 0x1F, 0xC2, 0x59, 0x27,
+ 0x88, 0x6F, 0x8F, 0xEC, 0x7E, 0x86, 0x87, 0xFF,
+ 0xF8, 0x60, 0xE9, 0xC4, 0xED, 0xE3, 0x00, 0xC5,
+ 0xF7, 0xEB, 0x04, 0x2F, 0xB5, 0x86, 0x63, 0x29,
+ 0xF3, 0x18, 0x26, 0xCB, 0x23, 0x25, 0x43, 0x8F,
+ 0x07, 0x26, 0x26, 0xF4, 0x43, 0x13, 0xB2, 0x7F,
+ 0x25, 0x64, 0xD1, 0x00, 0x40, 0x13, 0x86, 0xF2,
+ 0x34, 0x27, 0xFF, 0x29, 0x1F, 0xF0, 0xA1, 0xFF,
+ 0x17, 0x46, 0x3B, 0x13, 0x80, 0xA0, 0xEF, 0x40,
+ 0xF9, 0x51, 0xF4, 0xF3, 0x1E, 0x17, 0xF6, 0xA3,
+ 0xFF, 0x58, 0xF1, 0xBD, 0x16, 0xC2, 0x48, 0xC2,
+ 0x54, 0x0D, 0x7E, 0x36, 0x77, 0xC7, 0x2C, 0x60,
+ 0xA6, 0xE7, 0x2E, 0x46, 0xB9, 0x94, 0xA2, 0x23,
+ 0x42, 0x42, 0x0C, 0xE8, 0xDD, 0x01, 0xC9, 0xA6,
+ 0xFD, 0xF8, 0x40, 0x75, 0xEF, 0xE2, 0xE5, 0xCE,
+ 0xD6, 0x18, 0x2A, 0x8F, 0x0E, 0x29, 0xBD, 0x71,
+ 0x3F, 0x28, 0x27, 0x41, 0xC0, 0x55, 0x67, 0x43,
+ 0x6B, 0x27, 0xFF, 0x3D, 0x0F, 0x13, 0xF3, 0xCE,
+ 0xD8, 0x69, 0xD7, 0x28, 0x44, 0x44, 0xD7, 0x76,
+ 0x06, 0x4B, 0xBD, 0x1E, 0x43, 0x7F, 0x2A, 0x9F,
+ 0xD1, 0xC2, 0x53, 0x83, 0x6E, 0xB2, 0x07, 0xFF,
+ 0x62, 0xD5, 0xB6, 0x84, 0xD7, 0xEE, 0xDC, 0x29,
+ 0x4B, 0x5B, 0xFF, 0x51, 0x41, 0xA3, 0x07, 0x8E,
+ 0x1A, 0x75, 0xE9, 0x2A, 0x7F, 0x2D, 0xFF, 0xE2,
+ 0xDA, 0x67, 0xBA, 0x55, 0x25, 0x15, 0x8F, 0x0E,
+ 0x8A, 0xE1, 0x20, 0xC2, 0xFF, 0x58, 0xB7, 0x13,
+ 0xFF, 0x50, 0x1F, 0x51, 0x3F, 0x4F, 0xF2, 0xD9,
+ 0x34, 0xF0, 0x73, 0xEA, 0xD5, 0x17, 0x44, 0x44,
+ 0x42, 0x64, 0xB0, 0x45, 0x10, 0x99, 0xFC, 0x03,
+ 0xBD, 0x1E, 0xFF, 0xEA, 0x70, 0xC2, 0x56, 0x0D,
+ 0x7F, 0xE5, 0xC6, 0x72, 0x87, 0xDC, 0x1D, 0x89,
+ 0x54, 0x63, 0x8F, 0x99, 0xB7, 0x03, 0x41, 0x41,
+ 0xB7, 0x6C, 0x75, 0xED, 0x28, 0x28, 0x14, 0x03,
+ 0xFF, 0x17, 0xCE, 0xA2, 0xA2, 0xFD, 0xDA, 0x8F,
+ 0x05, 0xA0, 0x53, 0x34, 0xE1, 0x8E, 0x02, 0x27,
+ 0xFF, 0xFC, 0x4F, 0xFF, 0x65, 0x0F, 0xF0, 0xA2,
+ 0xFB, 0x14, 0x5C, 0x36, 0x9D, 0x42, 0x42, 0x40,
+ 0xFF, 0x9D, 0x70, 0xFF, 0x25, 0x1E, 0x17, 0xBD,
+ 0x1F, 0xC2, 0x46, 0xC2, 0x54, 0x0D, 0x7E, 0x21,
+ 0x91, 0xFF, 0xF4, 0x42, 0xCC, 0x59, 0xFB, 0x04,
+ 0xDE, 0x51, 0xC7, 0xD8, 0x4B, 0x5D, 0xF2, 0x94,
+ 0x9F, 0x97, 0xFF, 0x53, 0xFA, 0x2A, 0x8D, 0x17,
+ 0xCF, 0xBB, 0xB4, 0xFD, 0xE4, 0x3A, 0x6B, 0x14,
+ 0x59, 0x14, 0x24, 0xED, 0x3B, 0xFF, 0x78, 0x2F,
+ 0x79, 0x4F, 0x00, 0xD8, 0x61, 0x00, 0x17, 0x44,
+ 0x00, 0x01, 0x7F, 0x45, 0x4C, 0x4F, 0x10, 0x94,
+ 0xA9, 0x95, 0x22, 0x1C, 0xEF, 0x29, 0x20, 0x3E,
+ 0xFF, 0x86, 0xF2, 0x27, 0x4F, 0xB4, 0xDA, 0x99,
+ 0x82, 0x63, 0x89, 0x42, 0x42, 0xD6, 0xC4, 0x2A,
+ 0x3F, 0x2A, 0x41, 0xD0, 0xC7, 0x0E, 0xAF, 0xCA,
+ 0xB2, 0x17, 0xCF, 0xFA, 0x48, 0x4D, 0xEF, 0xFF,
+ 0x2B, 0xC9, 0x5D, 0x65, 0x4F, 0xFF, 0x8C, 0x3F,
+ 0x8D, 0x5F, 0xD8, 0x66, 0x83, 0xF3, 0x49, 0x38,
+ 0xFF, 0x64, 0x70, 0xFE, 0xC1, 0x30, 0xD8, 0xDB,
+ 0xC0, 0x22, 0x1D, 0xC2, 0x42, 0xB3, 0xA0, 0xF3,
+ 0x61, 0xFD, 0x9B, 0x9F, 0xEF, 0xC9, 0x14, 0x09,
+ 0xC4, 0x85, 0xF0, 0x3A, 0x4B, 0x5B, 0x42, 0x63,
+ 0x84, 0xFF, 0xF4, 0x50, 0xEC, 0xBA, 0x9C, 0x84,
+ 0x2A, 0x8F, 0x7B, 0x5E, 0x75, 0x3F, 0x13, 0xFF,
+ 0x40, 0x49, 0xFE, 0xF2, 0x50, 0x77, 0xFF, 0xA0,
+ 0x6F, 0xF0, 0x1C, 0xE1, 0xF6, 0xFE, 0x34, 0x28,
+ 0x10, 0x40, 0x37, 0x40, 0x40, 0xB4, 0x51, 0x00,
+ 0x21, 0x44, 0x10, 0x9D, 0x85, 0xAC, 0xC2, 0x43,
+ 0xFF, 0xB7, 0x23, 0x2B, 0xB0, 0x38, 0x0F, 0xE7,
+ 0x67, 0xF0, 0x38, 0x5E, 0x34, 0x3B, 0xA7, 0xED,
+ 0xF7, 0xFF, 0xE2, 0xA1, 0xF6, 0x71, 0xE2, 0x62,
+ 0xF6, 0xA1, 0xDB, 0x98, 0x2A, 0x8F, 0x8E, 0x17,
+ 0x63, 0x28, 0xFF, 0x75, 0x0F, 0x14, 0x2F, 0x13,
+ 0xFF, 0xFD, 0x80, 0xCE, 0x83, 0x8B, 0xFF, 0xB4,
+ 0xAF, 0x77, 0xFA, 0xDF, 0xF7, 0x95, 0x8B, 0x52,
+ 0x44, 0xEA, 0xDB, 0x10, 0x9D, 0x6D, 0x7B, 0x22,
+ 0x14, 0xD6, 0x92, 0xFF, 0x38, 0x0F, 0x5B, 0xBC,
+ 0xB2, 0xF8, 0x1F, 0xDF, 0xDD, 0x09, 0xE2, 0x36,
+ 0x9F, 0x9C, 0x01, 0x06, 0xFF, 0x08, 0x6F, 0x8E,
+ 0x1A, 0x27, 0x0F, 0x28, 0x2F, 0x27, 0xFF, 0x9F,
+ 0xC5, 0xBA, 0x75, 0xC7, 0xFF, 0xFF, 0xC9, 0x1F,
+ 0xCA, 0x3F, 0xCB, 0x5F, 0xCC, 0x7F, 0xCD, 0x9F,
+ 0xCE, 0xBF, 0xCF, 0xDF, 0xD0, 0xFF, 0xFF, 0xD2,
+ 0x1F, 0xD3, 0x3F, 0xD4, 0x5F, 0xD5, 0x7F, 0xD6,
+ 0x9F, 0xD7, 0xBF, 0xD8, 0xDF, 0xD9, 0xFF, 0xFF,
+ 0xDB, 0x1F, 0xDC, 0x3F, 0xDD, 0x5F, 0xDE, 0x7F,
+ 0xDF, 0x9F, 0xE0, 0xBF, 0xE1, 0xDF, 0xE2, 0xFF,
+ 0xFF, 0xE4, 0x1F, 0xE5, 0x3F, 0xE6, 0x5F, 0xE7,
+ 0x7F, 0xE8, 0x9F, 0xE9, 0xBF, 0xEA, 0xDF, 0xEB,
+ 0xFF, 0xFF, 0xED, 0x1F, 0xEE, 0x3F, 0xEF, 0x5F,
+ 0xF0, 0x7F, 0xF1, 0x9F, 0xF2, 0xBF, 0xF3, 0xDF,
+ 0xF4, 0xFF, 0xFF, 0xF6, 0x1F, 0xF7, 0x3F, 0xF8,
+ 0x5F, 0xF9, 0x7F, 0xFA, 0x9F, 0xFB, 0xBF, 0xFC,
+ 0xDF, 0xFD, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x3F,
+ 0x01, 0x5F, 0x02, 0x7F, 0x03, 0x9F, 0x04, 0xBF,
+ 0x05, 0xDF, 0x06, 0xFF, 0xFF, 0x08, 0x1F, 0x09,
+ 0x3F, 0x0A, 0x5F, 0x0B, 0x7F, 0x0C, 0x9F, 0x0D,
+ 0xBF, 0x0E, 0xDF, 0x0F, 0xFF, 0xFF, 0x11, 0x1F,
+ 0x12, 0x3F, 0x13, 0x5F, 0x14, 0x7F, 0x15, 0x9F,
+ 0x16, 0xBF, 0x17, 0xDF, 0x18, 0xFF, 0xFF, 0x1A,
+ 0x1F, 0x1B, 0x3F, 0x1C, 0x5F, 0x1D, 0x7F, 0x1E,
+ 0x9F, 0x1F, 0xBF, 0x20, 0xDF, 0x21, 0xFF, 0xFF,
+ 0x23, 0x1F, 0x24, 0x3F, 0x25, 0x5F, 0x26, 0x7F,
+ 0x27, 0x9F, 0x28, 0xBF, 0x29, 0xDF, 0x2A, 0xFF,
+ 0xFF, 0x2C, 0x1F, 0x2D, 0x3F, 0x2E, 0x5F, 0x2F,
+ 0x7F, 0x30, 0x9F, 0x31, 0xBF, 0x32, 0xDF, 0x33,
+ 0xFF, 0xFF, 0x35, 0x1F, 0x36, 0x3F, 0x37, 0x5F,
+ 0x38, 0x7F, 0x39, 0x9F, 0x3A, 0xBF, 0x3B, 0xDF,
+ 0x3C, 0xFF, 0xFF, 0x3E, 0x1F, 0x3F, 0x3F, 0x40,
+ 0x5F, 0x41, 0x7F, 0x42, 0x9F, 0x43, 0xBF, 0x44,
+ 0xDF, 0x45, 0xFF, 0xFF, 0x47, 0x1F, 0x48, 0x3F,
+ 0x49, 0x5F, 0x4A, 0x7F, 0x4B, 0x9F, 0x4C, 0xBF,
+ 0x4D, 0xDF, 0x4E, 0xFF, 0xFF, 0x50, 0x1F, 0x51,
+ 0x3F, 0x52, 0x5F, 0x53, 0x7F, 0x54, 0x9F, 0x55,
+ 0xBF, 0x56, 0xDF, 0x57, 0xFF, 0xFF, 0x59, 0x1F,
+ 0x5A, 0x3F, 0x5B, 0x5F, 0x5C, 0x7F, 0x5D, 0x9F,
+ 0x5E, 0xBF, 0x5F, 0xDF, 0x60, 0xFF, 0xFF, 0x62,
+ 0x1F, 0x63, 0x3F, 0x64, 0x5F, 0x65, 0x7F, 0x66,
+ 0x9F, 0x67, 0xBF, 0x68, 0xDF, 0x69, 0xFF, 0xFF,
+ 0x6B, 0x1F, 0x6C, 0x3F, 0x6D, 0x5F, 0x6E, 0x7F,
+ 0x6F, 0x9F, 0x70, 0xBF, 0x71, 0xDF, 0x72, 0xFF,
+ 0xFF, 0x74, 0x1F, 0x75, 0x3F, 0x76, 0x5F, 0x77,
+ 0x7F, 0x78, 0x9F, 0x79, 0xBF, 0x7A, 0xDF, 0x7B,
+ 0xFF, 0xDF, 0x7D, 0x1F, 0xF0, 0xCE, 0x10, 0x7F,
+ 0x5F, 0x80, 0x7F, 0x81, 0x9F, 0x82, 0xBF, 0x83,
+ 0xDF, 0xFF, 0x84, 0xFF, 0x86, 0x1F, 0x87, 0x3F,
+ 0x88, 0x5F, 0x89, 0x7F, 0x8A, 0x9F, 0x8B, 0xBF,
+ 0x8C, 0xDF, 0xFF, 0x8D, 0xFF, 0x8F, 0x1F, 0x90,
+ 0x3F, 0x91, 0x5F, 0x13, 0xFF, 0x93, 0x9F, 0x94,
+ 0xBF, 0x95, 0xDF, 0xFF, 0x96, 0xFF, 0x98, 0x1F,
+ 0x99, 0x3F, 0x9A, 0x5F, 0x9B, 0x7F, 0x9C, 0x9F,
+ 0x9D, 0xBF, 0x9E, 0xDF, 0xFF, 0x9F, 0xFF, 0xA1,
+ 0x1F, 0xA2, 0x3F, 0xA3, 0x5F, 0xA4, 0x7F, 0xA5,
+ 0x9F, 0x27, 0xFF, 0xA7, 0xDF, 0xFF, 0xA8, 0xFF,
+ 0xAA, 0x1F, 0xAB, 0x3F, 0xAC, 0x5F, 0xAD, 0x7F,
+ 0xAE, 0x9F, 0xAF, 0xBF, 0xB0, 0xDF, 0xFF, 0xB1,
+ 0xFF, 0xB3, 0x1F, 0xB4, 0x3F, 0xB5, 0x5F, 0xB6,
+ 0x7F, 0xB7, 0x9F, 0xB8, 0xBF, 0xB9, 0xDF, 0xFF,
+ 0x3B, 0xFF, 0xBC, 0x1F, 0xBD, 0x3F, 0xBE, 0x5F,
+ 0xBF, 0x7F, 0xC0, 0x9F, 0xC1, 0xBF, 0xC2, 0xDF,
+ 0xFF, 0xC3, 0xFF, 0xC5, 0x1F, 0xC6, 0x3F, 0xC7,
+ 0x5F, 0xC8, 0x7F, 0xC9, 0x9F, 0xCA, 0xBF, 0xCB,
+ 0xDF, 0xDF, 0xCC, 0xFF, 0xCE, 0x1F, 0x14, 0x4F,
+ 0xFF, 0xD0, 0x6F, 0xD1, 0x8F, 0xD2, 0xAF, 0xD3,
+ 0xCF, 0xFF, 0xD4, 0xEF, 0xD6, 0x0F, 0xD7, 0x2F,
+ 0xD8, 0x4F, 0xD9, 0x6F, 0xDA, 0x8F, 0xDB, 0xAF,
+ 0xDC, 0xCF, 0xFF, 0xDD, 0xEF, 0xDF, 0x0F, 0xE0,
+ 0x2F, 0xE1, 0x4F, 0x63, 0xEF, 0xE3, 0x8F, 0xE4,
+ 0xAF, 0xE5, 0xCF, 0xFF, 0xE6, 0xEF, 0xE8, 0x0F,
+ 0xE9, 0x2F, 0xEA, 0x4F, 0xEB, 0x6F, 0xEC, 0x8F,
+ 0xED, 0xAF, 0xEE, 0xCF, 0xFE, 0xEF, 0xEF, 0xF1,
+ 0x0F, 0xF2, 0x2F, 0xF3, 0x4F, 0xF4, 0x6F, 0xF5,
+ 0x8F, 0x77, 0xD6, 0x14, 0xFF, 0xF7, 0x4F, 0xF8,
+ 0x6F, 0xF9, 0x8F, 0xFA, 0xAF, 0xFB, 0xCF, 0xFC,
+ 0xEF, 0xFE, 0x0F, 0xFF, 0x2F, 0xFF, 0x00, 0x4F,
+ 0x01, 0x6F, 0x02, 0x8F, 0x03, 0xAF, 0x04, 0xCF,
+ 0x05, 0xEF, 0x07, 0x0F, 0x08, 0x2F, 0xFF, 0x09,
+ 0x4F, 0x13, 0xEF, 0x0B, 0x8F, 0x0C, 0xAF, 0x0D,
+ 0xCF, 0x0E, 0xEF, 0x10, 0x0F, 0x11, 0x2F, 0xFF,
+ 0x12, 0x4F, 0x13, 0x6F, 0x14, 0x8F, 0x15, 0xAF,
+ 0x16, 0xCF, 0x17, 0xEF, 0x19, 0x0F, 0x1A, 0x2F,
+ 0xFF, 0x1B, 0x4F, 0x1C, 0x6F, 0x1D, 0x8F, 0x9F,
+ 0xBF, 0x1F, 0xCF, 0x20, 0xEF, 0x22, 0x0F, 0x23,
+ 0x2F, 0xFF, 0x24, 0x4F, 0x25, 0x6F, 0x26, 0x8F,
+ 0x27, 0xAF, 0x28, 0xCF, 0x29, 0xEF, 0x2B, 0x0F,
+ 0x2C, 0x2F, 0xFF, 0x2D, 0x4F, 0x2E, 0x6F, 0x2F,
+ 0x8F, 0x30, 0xAF, 0x31, 0xCF, 0xB3, 0xBF, 0x34,
+ 0x0F, 0x35, 0x2F, 0xFF, 0x36, 0x4F, 0x37, 0x6F,
+ 0x38, 0x8F, 0x39, 0xAF, 0x3A, 0xCF, 0x3B, 0xEF,
+ 0x3D, 0x0F, 0x3E, 0x2F, 0xFF, 0x3F, 0x4F, 0x40,
+ 0x6F, 0x41, 0x8F, 0x42, 0xAF, 0x43, 0xCF, 0x44,
+ 0xEF, 0xC7, 0xBF, 0x47, 0x2F, 0xFF, 0x48, 0x4F,
+ 0x49, 0x6F, 0x4A, 0x8F, 0x4B, 0xAF, 0x4C, 0xCF,
+ 0x4D, 0xEF, 0x4F, 0x0F, 0x50, 0x2F, 0xFF, 0x51,
+ 0x4F, 0x52, 0x6F, 0x53, 0x8F, 0x54, 0xAF, 0x55,
+ 0xCF, 0x56, 0xEF, 0x58, 0x0F, 0x59, 0x2F, 0xFF,
+ 0xDB, 0xBF, 0x5B, 0x6F, 0x5C, 0x8F, 0x5D, 0xAF,
+ 0x5E, 0xCF, 0x5F, 0xEF, 0x61, 0x0F, 0x62, 0x2F,
+ 0xFF, 0x63, 0x4F, 0x64, 0x6F, 0x65, 0x8F, 0x66,
+ 0xAF, 0x67, 0xCF, 0x68, 0xEF, 0x6A, 0x0F, 0x6B,
+ 0x2F, 0xFF, 0x6C, 0x4F, 0x6D, 0x6F, 0xEF, 0xBF,
+ 0x6F, 0xAF, 0x70, 0xCF, 0x71, 0xEF, 0x73, 0x0F,
+ 0x74, 0x2F, 0xFF, 0x75, 0x4F, 0x76, 0x6F, 0x77,
+ 0x8F, 0x78, 0xAF, 0x79, 0xCF, 0x7A, 0xEF, 0x7C,
+ 0x0F, 0x7D, 0x2F, 0xF9, 0x7E, 0x4F, 0x7F, 0x6F,
+ 0x80, 0x8F, 0x81, 0xAF, 0xB4, 0x90, 0x15, 0x15,
+ 0x83, 0x1F, 0xFF, 0x84, 0x3F, 0x85, 0x5F, 0x86,
+ 0x7F, 0x87, 0x9F, 0x88, 0xBF, 0x89, 0xDF, 0x8A,
+ 0xFF, 0x8C, 0x1F, 0xFF, 0x8D, 0x3F, 0x8E, 0x5F,
+ 0x8F, 0x7F, 0x90, 0x9F, 0x91, 0xBF, 0x92, 0xDF,
+ 0x93, 0xFF, 0x95, 0x1F, 0xFF, 0x9F, 0xCA, 0x97,
+ 0x0F, 0x98, 0x2F, 0x99, 0x4F, 0x9A, 0x6F, 0x9B,
+ 0x8F, 0x9C, 0xAF, 0x9D, 0xCF, 0xFF, 0x9E, 0xEF,
+ 0xA0, 0x0F, 0xA1, 0x2F, 0xA2, 0x4F, 0xA3, 0x6F,
+ 0xA4, 0x8F, 0xA5, 0xAF, 0xA6, 0xCF, 0xFF, 0xA7,
+ 0xEF, 0xA9, 0x0F, 0x13, 0xFF, 0xAB, 0x4F, 0xAC,
+ 0x6F, 0xAD, 0x8F, 0xAE, 0xAF, 0xAF, 0xCF, 0xFF,
+ 0xB0, 0xEF, 0xB2, 0x0F, 0xB3, 0x2F, 0xB4, 0x4F,
+ 0xB5, 0x6F, 0xB6, 0x8F, 0xB7, 0xAF, 0xB8, 0xCF,
+ 0xFF, 0xB9, 0xEF, 0xBB, 0x0F, 0xBC, 0x2F, 0xBD,
+ 0x4F, 0xBE, 0x6F, 0xBF, 0x8F, 0xC0, 0xAF, 0xC1,
+ 0xCF, 0xFF, 0xC2, 0xEF, 0xC4, 0x0F, 0xC5, 0x2F,
+ 0xC6, 0x4F, 0xC7, 0x6F, 0xC8, 0x8F, 0xC9, 0xAF,
+ 0xCA, 0xCF, 0xFF, 0xCB, 0xEF, 0xCD, 0x0F, 0xCE,
+ 0x2F, 0xCF, 0x4F, 0xD0, 0x6F, 0xD1, 0x8F, 0xD2,
+ 0xAF, 0xD3, 0xCF, 0xFF, 0xD4, 0xEF, 0xD6, 0x0F,
+ 0xD7, 0x2F, 0xD8, 0x4F, 0xD9, 0x6F, 0xDA, 0x8F,
+ 0xDB, 0xAF, 0xDC, 0xCF, 0xFF, 0xDD, 0xEF, 0xDF,
+ 0x0F, 0xE0, 0x2F, 0xE1, 0x4F, 0xE2, 0x6F, 0xE3,
+ 0x8F, 0xE4, 0xAF, 0xE5, 0xCF, 0xFF, 0xE6, 0xEF,
+ 0xE8, 0x0F, 0xE9, 0x2F, 0xEA, 0x4F, 0xEB, 0x6F,
+ 0xEC, 0x8F, 0xED, 0xAF, 0xEE, 0xCF, 0xFF, 0xEF,
+ 0xEF, 0xF1, 0x0F, 0xF2, 0x2F, 0xF3, 0x4F, 0xF4,
+ 0x6F, 0xF5, 0x8F, 0xF6, 0xAF, 0xF7, 0xCF, 0xFF,
+ 0xF8, 0xEF, 0xFA, 0x0F, 0xFB, 0x2F, 0xFC, 0x4F,
+ 0xFD, 0x6F, 0xFE, 0x8F, 0xFF, 0xAF, 0x00, 0xCF,
+ 0xFF, 0x01, 0xEF, 0x03, 0x0F, 0x04, 0x2F, 0x05,
+ 0x4F, 0x06, 0x6F, 0x07, 0x8F, 0x08, 0xAF, 0x09,
+ 0xCF, 0xFF, 0x0A, 0xEF, 0x0C, 0x0F, 0x0D, 0x2F,
+ 0x0E, 0x4F, 0x0F, 0x6F, 0x10, 0x8F, 0x11, 0xAF,
+ 0x12, 0xCF, 0xFF, 0x13, 0xEF, 0x15, 0x0F, 0x16,
+ 0x2F, 0x17, 0x4F, 0x18, 0x6F, 0x19, 0x8F, 0x1A,
+ 0xAF, 0x1B, 0xCF, 0xFF, 0x1C, 0xEF, 0x1E, 0x0F,
+ 0x1F, 0x2F, 0x20, 0x4F, 0x21, 0x6F, 0x22, 0x8F,
+ 0x23, 0xAF, 0x24, 0xCF, 0xFF, 0x25, 0xEF, 0x27,
+ 0x0F, 0x28, 0x2F, 0x29, 0x4F, 0x2A, 0x6F, 0x2B,
+ 0x8F, 0x2C, 0xAF, 0x2D, 0xCF, 0xFF, 0x2E, 0xEF,
+ 0x30, 0x0F, 0x31, 0x2F, 0x32, 0x4F, 0x33, 0x6F,
+ 0x34, 0x8F, 0x35, 0xAF, 0x36, 0xCF, 0xFF, 0x37,
+ 0xEF, 0x39, 0x0F, 0x3A, 0x2F, 0x3B, 0x4F, 0x3C,
+ 0x6F, 0x3D, 0x8F, 0x3E, 0xAF, 0x3F, 0xCF, 0xFF,
+ 0x40, 0xEF, 0x42, 0x0F, 0x43, 0x2F, 0x44, 0x4F,
+ 0x45, 0x6F, 0x46, 0x8F, 0x47, 0xAF, 0x48, 0xCF,
+ 0xFF, 0x49, 0xEF, 0x4B, 0x0F, 0x4C, 0x2F, 0x4D,
+ 0x4F, 0x4E, 0x6F, 0x4F, 0x8F, 0x50, 0xAF, 0x51,
+ 0xCF, 0xFF, 0x52, 0xEF, 0x54, 0x0F, 0x55, 0x2F,
+ 0x56, 0x4F, 0x57, 0x6F, 0x58, 0x8F, 0x59, 0xAF,
+ 0x5A, 0xCF, 0xFF, 0x5B, 0xEF, 0x5D, 0x0F, 0x5E,
+ 0x2F, 0x5F, 0x4F, 0x60, 0x6F, 0x61, 0x8F, 0x62,
+ 0xAF, 0x63, 0xCF, 0xFF, 0x64, 0xEF, 0x66, 0x0F,
+ 0x67, 0x2F, 0x68, 0x4F, 0x69, 0x6F, 0x6A, 0x8F,
+ 0x6B, 0xAF, 0x6C, 0xCF, 0xFF, 0x6D, 0xEF, 0x6F,
+ 0x0F, 0x70, 0x2F, 0x71, 0x4F, 0x72, 0x6F, 0x73,
+ 0x8F, 0x74, 0xAF, 0x75, 0xCF, 0xFF, 0x76, 0xEF,
+ 0x78, 0x0F, 0x79, 0x2F, 0x7A, 0x4F, 0x7B, 0x6F,
+ 0x7C, 0x8F, 0x7D, 0xAF, 0x7E, 0xCF, 0xFF, 0x7F,
+ 0xEF, 0x81, 0x0F, 0x82, 0x2F, 0x83, 0x4F, 0x84,
+ 0x6F, 0x85, 0x8F, 0x86, 0xAF, 0x87, 0xCF, 0xFF,
+ 0x88, 0xEF, 0x8A, 0x0F, 0x8B, 0x2F, 0x8C, 0x4F,
+ 0x8D, 0x6F, 0x8E, 0x8F, 0x8F, 0xAF, 0x90, 0xCF,
+ 0xFF, 0x91, 0xEF, 0x93, 0x0F, 0x94, 0x2F, 0x95,
+ 0x4F, 0x96, 0x6F, 0x97, 0x8F, 0x98, 0xAF, 0x99,
+ 0xCF, 0xFF, 0x9A, 0xEF, 0x9C, 0x0F, 0x9D, 0x2F,
+ 0x9E, 0x4F, 0x9F, 0x6F, 0xA0, 0x8F, 0xA1, 0xAF,
+ 0xA2, 0xCF, 0xFF, 0xA3, 0xEF, 0xA5, 0x0F, 0xA6,
+ 0x2F, 0xA7, 0x4F, 0xA8, 0x6F, 0xA9, 0x8F, 0xAA,
+ 0xAF, 0xAB, 0xCF, 0xFF, 0xAC, 0xEF, 0xAE, 0x0F,
+ 0xAF, 0x2F, 0xB0, 0x4F, 0xB1, 0x6F, 0xB2, 0x8F,
+ 0xB3, 0xAF, 0xB4, 0xCF, 0xFF, 0xB5, 0xEF, 0xB7,
+ 0x0F, 0xB8, 0x2F, 0xB9, 0x4F, 0xBA, 0x6F, 0xBB,
+ 0x8F, 0xBC, 0xAF, 0xBD, 0xCF, 0xFF, 0xBE, 0xEF,
+ 0xC0, 0x0F, 0xC1, 0x2F, 0xC2, 0x4F, 0xC3, 0x6F,
+ 0xC4, 0x8F, 0xC5, 0xAF, 0xC6, 0xCF, 0xFF, 0xC7,
+ 0xEF, 0xC9, 0x0F, 0xCA, 0x2F, 0xCB, 0x4F, 0xCC,
+ 0x6F, 0xCD, 0x8F, 0xCE, 0xAF, 0xCF, 0xCF, 0xFF,
+ 0xD0, 0xEF, 0xD2, 0x0F, 0xD3, 0x2F, 0xD4, 0x4F,
+ 0xD5, 0x6F, 0xD6, 0x8F, 0xD7, 0xAF, 0xD8, 0xCF,
+ 0xFF, 0xD9, 0xEF, 0xDB, 0x0F, 0xDC, 0x2F, 0xDD,
+ 0x4F, 0xDE, 0x6F, 0xDF, 0x8F, 0xE0, 0xAF, 0xE1,
+ 0xCF, 0xFF, 0xE2, 0xEF, 0xE4, 0x0F, 0xE5, 0x2F,
+ 0xE6, 0x4F, 0xE7, 0x6F, 0xE8, 0x8F, 0xE9, 0xAF,
+ 0xEA, 0xCF, 0xFF, 0xEB, 0xEF, 0xED, 0x0F, 0xEE,
+ 0x2F, 0xEF, 0x4F, 0xF0, 0x6F, 0xF1, 0x8F, 0xF2,
+ 0xAF, 0xF3, 0xCF, 0xFF, 0xF4, 0xEF, 0xF6, 0x0F,
+ 0xF7, 0x2F, 0xF8, 0x4F, 0xF9, 0x6F, 0xFA, 0x8F,
+ 0xFB, 0xAF, 0xFC, 0xCF, 0xFF, 0xFD, 0xEF, 0xFF,
+ 0x0F, 0x00, 0x2F, 0x01, 0x4F, 0x02, 0x6F, 0x03,
+ 0x8F, 0x04, 0xAF, 0x05, 0xCF, 0xFF, 0x06, 0xEF,
+ 0x08, 0x0F, 0x09, 0x2F, 0x0A, 0x4F, 0x0B, 0x6F,
+ 0x0C, 0x8F, 0x0D, 0xAF, 0x0E, 0xCF, 0xFF, 0x0F,
+ 0xEF, 0x11, 0x0F, 0x12, 0x2F, 0x13, 0x4F, 0x14,
+ 0x6F, 0x15, 0x8F, 0x16, 0xAF, 0x17, 0xCF, 0xFF,
+ 0x18, 0xEF, 0x1A, 0x0F, 0x1B, 0x2F, 0x1C, 0x4F,
+ 0x1D, 0x6F, 0x1E, 0x8F, 0x1F, 0xAF, 0x20, 0xCF,
+ 0xFF, 0x21, 0xEF, 0x23, 0x0F, 0x24, 0x2F, 0x25,
+ 0x4F, 0x26, 0x6F, 0x27, 0x8F, 0x28, 0xAF, 0x29,
+ 0xCF, 0xFF, 0x2A, 0xEF, 0x2C, 0x0F, 0x2D, 0x2F,
+ 0x2E, 0x4F, 0x2F, 0x6F, 0x30, 0x8F, 0x31, 0xAF,
+ 0x32, 0xCF, 0xFF, 0x33, 0xEF, 0x35, 0x0F, 0x36,
+ 0x2F, 0x37, 0x4F, 0x38, 0x6F, 0x39, 0x8F, 0x3A,
+ 0xAF, 0x3B, 0xCF, 0xFF, 0x3C, 0xEF, 0x3E, 0x0F,
+ 0x3F, 0x2F, 0x40, 0x4F, 0x41, 0x6F, 0x42, 0x8F,
+ 0x43, 0xAF, 0x44, 0xCF, 0xFF, 0x45, 0xEF, 0x47,
+ 0x0F, 0x48, 0x2F, 0x49, 0x4F, 0x4A, 0x6F, 0x4B,
+ 0x8F, 0x4C, 0xAF, 0x4D, 0xCF, 0xFF, 0x4E, 0xEF,
+ 0x50, 0x0F, 0x51, 0x2F, 0x52, 0x4F, 0x53, 0x6F,
+ 0x54, 0x8F, 0x55, 0xAF, 0x56, 0xCF, 0xFF, 0x57,
+ 0xEF, 0x59, 0x0F, 0x5A, 0x2F, 0x5B, 0x4F, 0x5C,
+ 0x6F, 0x5D, 0x8F, 0x5E, 0xAF, 0x5F, 0xCF, 0xFF,
+ 0x60, 0xEF, 0x62, 0x0F, 0x63, 0x2F, 0x64, 0x4F,
+ 0x65, 0x6F, 0x66, 0x8F, 0x67, 0xAF, 0x68, 0xCF,
+ 0xFF, 0x69, 0xEF, 0x6B, 0x0F, 0x6C, 0x2F, 0x6D,
+ 0x4F, 0x6E, 0x6F, 0x6F, 0x8F, 0x70, 0xAF, 0x71,
+ 0xCF, 0xFF, 0x72, 0xEF, 0x74, 0x0F, 0x75, 0x2F,
+ 0x76, 0x4F, 0x77, 0x6F, 0x78, 0x8F, 0x79, 0xAF,
+ 0x7A, 0xCF, 0xFF, 0x7B, 0xEF, 0x7D, 0x0F, 0x7E,
+ 0x2F, 0x7F, 0x4F, 0x80, 0x6F, 0x81, 0x8F, 0x82,
+ 0xAF, 0x83, 0xCF, 0xFF, 0x84, 0xEF, 0x86, 0x0F,
+ 0x87, 0x2F, 0x88, 0x4F, 0x89, 0x6F, 0x8A, 0x8F,
+ 0x8B, 0xAF, 0x8C, 0xCF, 0xFF, 0x8D, 0xEF, 0x8F,
+ 0x0F, 0x90, 0x2F, 0x91, 0x4F, 0x92, 0x6F, 0x93,
+ 0x8F, 0x94, 0xAF, 0x95, 0xCF, 0xFF, 0x96, 0xEF,
+ 0x98, 0x0F, 0x99, 0x2F, 0x9A, 0x4F, 0x9B, 0x6F,
+ 0x9C, 0x8F, 0x9D, 0xAF, 0x9E, 0xCF, 0xFF, 0x9F,
+ 0xEF, 0xA1, 0x0F, 0xA2, 0x2F, 0xA3, 0x4F, 0xA4,
+ 0x6F, 0xA5, 0x8F, 0xA6, 0xAF, 0xA7, 0xCF, 0xFF,
+ 0xA8, 0xEF, 0xAA, 0x0F, 0xAB, 0x2F, 0xAC, 0x4F,
+ 0xAD, 0x6F, 0xAE, 0x8F, 0xAF, 0xAF, 0xB0, 0xCF,
+ 0xFF, 0xB1, 0xEF, 0xB3, 0x0F, 0xB4, 0x2F, 0xB5,
+ 0x4F, 0xB6, 0x6F, 0xB7, 0x8F, 0xB8, 0xAF, 0xB9,
+ 0xCF, 0xFF, 0xBA, 0xEF, 0xBC, 0x0F, 0xBD, 0x2F,
+ 0xBE, 0x4F, 0xBF, 0x6F, 0xC0, 0x8F, 0xC1, 0xAF,
+ 0xC2, 0xCF, 0xFF, 0xC3, 0xEF, 0xC5, 0x0F, 0xC6,
+ 0x2F, 0xC7, 0x4F, 0xC8, 0x6F, 0xC9, 0x8F, 0xCA,
+ 0xAF, 0xCB, 0xCF, 0xFF, 0xCC, 0xEF, 0xCE, 0x0F,
+ 0xCF, 0x2F, 0xD0, 0x4F, 0xD1, 0x6F, 0xD2, 0x8F,
+ 0xD3, 0xAF, 0xD4, 0xCF, 0xFF, 0xD5, 0xEF, 0xD7,
+ 0x0F, 0xD8, 0x2F, 0xD9, 0x4F, 0xDA, 0x6F, 0xDB,
+ 0x8F, 0xDC, 0xAF, 0xDD, 0xCF, 0xFF, 0xDE, 0xEF,
+ 0xE0, 0x0F, 0xE1, 0x2F, 0xE2, 0x4F, 0xE3, 0x6F,
+ 0xE4, 0x8F, 0xE5, 0xAF, 0xE6, 0xCF, 0xFF, 0xE7,
+ 0xEF, 0xE9, 0x0F, 0xEA, 0x2F, 0xEB, 0x4F, 0xEC,
+ 0x6F, 0xED, 0x8F, 0xEE, 0xAF, 0xEF, 0xCF, 0xFF,
+ 0xF0, 0xEF, 0xF2, 0x0F, 0xF3, 0x2F, 0xF4, 0x4F,
+ 0xF5, 0x6F, 0xF6, 0x8F, 0xF7, 0xAF, 0xF8, 0xCF,
+ 0xFF, 0xF9, 0xEF, 0xFB, 0x0F, 0xFC, 0x2F, 0xFD,
+ 0x4F, 0xFE, 0x6F, 0xFF, 0x8F, 0x00, 0xAF, 0x01,
+ 0xCF, 0xFF, 0x02, 0xEF, 0x04, 0x0F, 0x05, 0x2F,
+ 0x06, 0x4F, 0x07, 0x6F, 0x08, 0x8F, 0x09, 0xAF,
+ 0x0A, 0xCF, 0xFF, 0x0B, 0xEF, 0x0D, 0x0F, 0x0E,
+ 0x2F, 0x0F, 0x4F, 0x10, 0x6F, 0x11, 0x8F, 0x12,
+ 0xAF, 0x13, 0xCF, 0xFF, 0x14, 0xEF, 0x16, 0x0F,
+ 0x17, 0x2F, 0x18, 0x4F, 0x19, 0x6F, 0x1A, 0x8F,
+ 0x1B, 0xAF, 0x1C, 0xCF, 0xFF, 0x1D, 0xEF, 0x1F,
+ 0x0F, 0x20, 0x2F, 0x21, 0x4F, 0x22, 0x6F, 0x23,
+ 0x8F, 0x24, 0xAF, 0x25, 0xCF, 0xFF, 0x26, 0xEF,
+ 0x28, 0x0F, 0x29, 0x2F, 0x2A, 0x4F, 0x2B, 0x6F,
+ 0x2C, 0x8F, 0x2D, 0xAF, 0x2E, 0xCF, 0xFF, 0x2F,
+ 0xEF, 0x31, 0x0F, 0x32, 0x2F, 0x33, 0x4F, 0x34,
+ 0x6F, 0x35, 0x8F, 0x36, 0xAF, 0x37, 0xCF, 0xFF,
+ 0x38, 0xEF, 0x3A, 0x0F, 0x3B, 0x2F, 0x3C, 0x4F,
+ 0x3D, 0x6F, 0x3E, 0x8F, 0x3F, 0xAF, 0x40, 0xCF,
+ 0xFF, 0x41, 0xEF, 0x43, 0x0F, 0x44, 0x2F, 0x45,
+ 0x4F, 0x46, 0x6F, 0x47, 0x8F, 0x48, 0xAF, 0x49,
+ 0xCF, 0xFF, 0x4A, 0xEF, 0x4C, 0x0F, 0x4D, 0x2F,
+ 0x4E, 0x4F, 0x4F, 0x6F, 0x50, 0x8F, 0x51, 0xAF,
+ 0x52, 0xCF, 0xFF, 0x53, 0xEF, 0x55, 0x0F, 0x56,
+ 0x2F, 0x57, 0x4F, 0x58, 0x6F, 0x59, 0x8F, 0x5A,
+ 0xAF, 0x5B, 0xCF, 0xFF, 0x5C, 0xEF, 0x5E, 0x0F,
+ 0x5F, 0x2F, 0x60, 0x4F, 0x61, 0x6F, 0x62, 0x8F,
+ 0x63, 0xAF, 0x64, 0xCF, 0xFF, 0x65, 0xEF, 0x67,
+ 0x0F, 0x68, 0x2F, 0x69, 0x4F, 0x6A, 0x6F, 0x6B,
+ 0x8F, 0x6C, 0xAF, 0x6D, 0xCF, 0xFF, 0x6E, 0xEF,
+ 0x70, 0x0F, 0x71, 0x2F, 0x72, 0x4F, 0x73, 0x6F,
+ 0x74, 0x8F, 0x75, 0xAF, 0x76, 0xCF, 0xFF, 0x77,
+ 0xEF, 0x79, 0x0F, 0x7A, 0x2F, 0x7B, 0x4F, 0x7C,
+ 0x6F, 0x7D, 0x8F, 0x7E, 0xAF, 0x7F, 0xCF, 0xFF,
+ 0x80, 0xEF, 0x82, 0x0F, 0x83, 0x2F, 0x84, 0x4F,
+ 0x85, 0x6F, 0x86, 0x8F, 0x87, 0xAF, 0x88, 0xCF,
+ 0xFF, 0x89, 0xEF, 0x8B, 0x0F, 0x8C, 0x2F, 0x8D,
+ 0x4F, 0x8E, 0x6F, 0x8F, 0x8F, 0x90, 0xAF, 0x91,
+ 0xCF, 0xFF, 0x92, 0xEF, 0x94, 0x0F, 0x95, 0x2F,
+ 0x96, 0x4F, 0x97, 0x6F, 0x98, 0x8F, 0x99, 0xAF,
+ 0x9A, 0xCF, 0xFF, 0x9B, 0xEF, 0x9D, 0x0F, 0x9E,
+ 0x2F, 0x9F, 0x4F, 0xA0, 0x6F, 0xA1, 0x8F, 0xA2,
+ 0xAF, 0xA3, 0xCF, 0xFF, 0xA4, 0xEF, 0xA6, 0x0F,
+ 0xA7, 0x2F, 0xA8, 0x4F, 0xA9, 0x6F, 0xAA, 0x8F,
+ 0xAB, 0xAF, 0xAC, 0xCF, 0xFF, 0xAD, 0xEF, 0xAF,
+ 0x0F, 0xB0, 0x2F, 0xB1, 0x4F, 0xB2, 0x6F, 0xB3,
+ 0x8F, 0xB4, 0xAF, 0xB5, 0xCF, 0xFF, 0xB6, 0xEF,
+ 0xB8, 0x0F, 0xB9, 0x2F, 0xBA, 0x4F, 0xBB, 0x6F,
+ 0xBC, 0x8F, 0xBD, 0xAF, 0xBE, 0xCF, 0xFF, 0xBF,
+ 0xEF, 0xC1, 0x0F, 0xC2, 0x2F, 0xC3, 0x4F, 0xC4,
+ 0x6F, 0xC5, 0x8F, 0xC6, 0xAF, 0xC7, 0xCF, 0xFF,
+ 0xC8, 0xEF, 0xCA, 0x0F, 0xCB, 0x2F, 0xCC, 0x4F,
+ 0xCD, 0x6F, 0xCE, 0x8F, 0xCF, 0xAF, 0xD0, 0xCF,
+ 0xFF, 0xD1, 0xEF, 0xD3, 0x0F, 0xD4, 0x2F, 0xD5,
+ 0x4F, 0xD6, 0x6F, 0xD7, 0x8F, 0xD8, 0xAF, 0xD9,
+ 0xCF, 0xFF, 0xDA, 0xEF, 0xDC, 0x0F, 0xDD, 0x2F,
+ 0xDE, 0x4F, 0xDF, 0x6F, 0xE0, 0x8F, 0xE1, 0xAF,
+ 0xE2, 0xCF, 0xFF, 0xE3, 0xEF, 0xE5, 0x0F, 0xE6,
+ 0x2F, 0xE7, 0x4F, 0xE8, 0x6F, 0xE9, 0x8F, 0xEA,
+ 0xAF, 0xEB, 0xCF, 0xFF, 0xEC, 0xEF, 0xEE, 0x0F,
+ 0xEF, 0x2F, 0xF0, 0x4F, 0xF1, 0x6F, 0xF2, 0x8F,
+ 0xF3, 0xAF, 0xF4, 0xCF, 0xFF, 0xF5, 0xEF, 0xF7,
+ 0x0F, 0xF8, 0x2F, 0xF9, 0x4F, 0xFA, 0x6F, 0xFB,
+ 0x8F, 0xFC, 0xAF, 0xFD, 0xCF, 0xFF, 0xFE, 0xEF,
+ 0x00, 0x0F, 0x01, 0x2F, 0x02, 0x4F, 0x03, 0x6F,
+ 0x04, 0x8F, 0x05, 0xAF, 0x06, 0xCF, 0xFF, 0x07,
+ 0xEF, 0x09, 0x0F, 0x0A, 0x2F, 0x0B, 0x4F, 0x0C,
+ 0x6F, 0x0D, 0x8F, 0x0E, 0xAF, 0x0F, 0xCF, 0xFF,
+ 0x10, 0xEF, 0x12, 0x0F, 0x13, 0x2F, 0x14, 0x4F,
+ 0x15, 0x6F, 0x16, 0x8F, 0x17, 0xAF, 0x18, 0xCF,
+ 0xFF, 0x19, 0xEF, 0x1B, 0x0F, 0x1C, 0x2F, 0x1D,
+ 0x4F, 0x1E, 0x6F, 0x1F, 0x8F, 0x20, 0xAF, 0x21,
+ 0xCF, 0xFF, 0x22, 0xEF, 0x24, 0x0F, 0x25, 0x2F,
+ 0x26, 0x4F, 0x27, 0x6F, 0x28, 0x8F, 0x29, 0xAF,
+ 0x2A, 0xCF, 0xFF, 0x2B, 0xEF, 0x2D, 0x0F, 0x2E,
+ 0x2F, 0x2F, 0x4F, 0x30, 0x6F, 0x31, 0x8F, 0x32,
+ 0xAF, 0x33, 0xCF, 0xFF, 0x34, 0xEF, 0x36, 0x0F,
+ 0x37, 0x2F, 0x38, 0x4F, 0x39, 0x6F, 0x3A, 0x8F,
+ 0x3B, 0xAF, 0x3C, 0xCF, 0xFF, 0x3D, 0xEF, 0x3F,
+ 0x0F, 0x40, 0x2F, 0x41, 0x4F, 0x42, 0x6F, 0x43,
+ 0x8F, 0x44, 0xAF, 0x45, 0xCF, 0xFF, 0x46, 0xEF,
+ 0x48, 0x0F, 0x49, 0x2F, 0x4A, 0x4F, 0x4B, 0x6F,
+ 0x4C, 0x8F, 0x4D, 0xAF, 0x4E, 0xCF, 0xFF, 0x4F,
+ 0xEF, 0x51, 0x0F, 0x52, 0x2F, 0x53, 0x4F, 0x54,
+ 0x6F, 0x55, 0x8F, 0x56, 0xAF, 0x57, 0xCF, 0xFF,
+ 0x58, 0xEF, 0x5A, 0x0F, 0x5B, 0x2F, 0x5C, 0x4F,
+ 0x5D, 0x6F, 0x5E, 0x8F, 0x5F, 0xAF, 0x60, 0xCF,
+ 0xFF, 0x61, 0xEF, 0x63, 0x0F, 0x64, 0x2F, 0x65,
+ 0x4F, 0x66, 0x6F, 0x67, 0x8F, 0x68, 0xAF, 0x69,
+ 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const ByteProvider kEoB2IntroCpsDataStreet2FMTownsProvider = { ARRAYSIZE(kEoB2IntroCpsDataStreet2FMTowns), kEoB2IntroCpsDataStreet2FMTowns };
+
+static const byte kEoB2IntroCpsDataDoorway1FMTowns[12976] = {
+ 0xA3, 0x32, 0x00, 0x00, 0x50, 0x0C, 0x00, 0x00,
+ 0x2B, 0x00, 0x00, 0x2C, 0x2C, 0x2D, 0x2D, 0x10,
+ 0x2E, 0x2E, 0x2E, 0x00, 0xE1, 0x2D, 0x2C, 0x2B,
+ 0x2D, 0xD3, 0x01, 0x21, 0x00, 0x54, 0x2A, 0x00,
+ 0x10, 0x2B, 0x2C, 0x01, 0x02, 0x00, 0x48, 0x7C,
+ 0x2A, 0x00, 0x00, 0x02, 0x42, 0x01, 0x95, 0x00,
+ 0xE9, 0x02, 0xD6, 0x2D, 0x2A, 0x3F, 0x2A, 0x2E,
+ 0x04, 0xB2, 0x05, 0x03, 0x00, 0x4F, 0x05, 0x80,
+ 0x05, 0xF0, 0x00, 0x02, 0x1F, 0x2C, 0x2D, 0x2E,
+ 0x02, 0xE0, 0x05, 0x41, 0x07, 0xD2, 0x07, 0x16,
+ 0x01, 0xF5, 0xFE, 0x00, 0x56, 0x09, 0x81, 0x08,
+ 0xF1, 0x0A, 0x65, 0x0A, 0xA3, 0x0A, 0x12, 0x0B,
+ 0x71, 0x2A, 0xDF, 0x0B, 0xC0, 0x0B, 0xF0, 0x2C,
+ 0x07, 0x26, 0x0D, 0xA8, 0x0D, 0xC0, 0x0E, 0xBC,
+ 0x04, 0xC3, 0xDB, 0x0B, 0x5B, 0x0F, 0xE4, 0x2C,
+ 0x10, 0x80, 0x0E, 0xBE, 0x00, 0x00, 0x0C, 0x13,
+ 0xFF, 0xFF, 0x13, 0xF1, 0x0F, 0xB3, 0x0F, 0x3E,
+ 0x01, 0x18, 0x13, 0xF4, 0x15, 0x77, 0x14, 0xE4,
+ 0x17, 0x52, 0xFF, 0x10, 0x08, 0x13, 0xF0, 0x04,
+ 0xE4, 0x13, 0x6C, 0x18, 0x55, 0x18, 0xE6, 0x13,
+ 0xF1, 0x06, 0x78, 0xF7, 0x10, 0xA2, 0x1A, 0xE9,
+ 0x14, 0x6A, 0x11, 0xD0, 0x2C, 0x1B, 0xF3, 0x12,
+ 0xE1, 0x1C, 0x74, 0x9F, 0x17, 0xB3, 0x2A, 0x2D,
+ 0x1F, 0xD0, 0x18, 0x62, 0x00, 0x91, 0x00, 0x10,
+ 0x13, 0xFD, 0x7F, 0x2C, 0x13, 0xFF, 0x22, 0xE6,
+ 0x22, 0x7B, 0x1A, 0x53, 0x0E, 0xBA, 0x13, 0xFF,
+ 0x27, 0xFF, 0xFF, 0x0F, 0x94, 0x21, 0x92, 0x28,
+ 0x66, 0x09, 0x80, 0x14, 0x79, 0x27, 0xF6, 0x22,
+ 0x48, 0x20, 0xD7, 0xFD, 0x15, 0x68, 0x27, 0xF1,
+ 0x18, 0x98, 0x2C, 0x82, 0x19, 0x9F, 0x1E, 0xE2,
+ 0x2D, 0x1B, 0x20, 0xFF, 0x06, 0x66, 0x30, 0x40,
+ 0x1C, 0x14, 0x0C, 0x1A, 0x28, 0x58, 0x32, 0x25,
+ 0x26, 0xF1, 0x24, 0x22, 0xFF, 0x14, 0x22, 0x13,
+ 0x50, 0x10, 0x5D, 0x27, 0xFF, 0x36, 0xB7, 0x04,
+ 0x02, 0x31, 0xD8, 0x36, 0x80, 0xFD, 0x1B, 0x93,
+ 0x19, 0xE1, 0x2C, 0x34, 0x0E, 0xB9, 0x27, 0xFF,
+ 0x3B, 0xF2, 0x2A, 0x27, 0xFD, 0xFF, 0x3B, 0x04,
+ 0x1D, 0x54, 0x32, 0x45, 0x1E, 0xC5, 0x13, 0xFA,
+ 0x3B, 0x23, 0x35, 0x84, 0x3D, 0x13, 0xF7, 0x3E,
+ 0xE1, 0x21, 0xE4, 0x3B, 0xF3, 0x3E, 0xB2, 0x2C,
+ 0x40, 0x5E, 0x2D, 0x33, 0x2A, 0x94, 0xFF, 0x44,
+ 0x00, 0x41, 0xC5, 0x42, 0xEC, 0x3D, 0x71, 0x15,
+ 0xA0, 0x24, 0xD1, 0x14, 0x2A, 0x30, 0x12, 0xFF,
+ 0x23, 0x64, 0x44, 0xD1, 0x0F, 0x50, 0x3B, 0xF5,
+ 0x18, 0xC0, 0x3B, 0xFF, 0x3B, 0xFF, 0x3E, 0xB1,
+ 0xFF, 0x28, 0x39, 0x14, 0x05, 0x0A, 0xA2, 0x07,
+ 0x03, 0x46, 0x10, 0x0E, 0xB8, 0x3B, 0xFF, 0x4F,
+ 0xF1, 0xFF, 0x16, 0xE0, 0x4F, 0xF9, 0x43, 0xE1,
+ 0x1C, 0xA1, 0x44, 0x52, 0x26, 0xC2, 0x3C, 0x6C,
+ 0x05, 0x3A, 0xFF, 0x38, 0xAA, 0x12, 0x38, 0x40,
+ 0x02, 0x4F, 0xF3, 0x19, 0x16, 0x41, 0x3F, 0x3F,
+ 0x58, 0x3C, 0x07, 0xFF, 0x2F, 0x05, 0x19, 0x24,
+ 0x51, 0x73, 0x22, 0x59, 0x28, 0x4A, 0x2F, 0x12,
+ 0x51, 0x30, 0x5A, 0xF4, 0xFF, 0x3B, 0x41, 0x00,
+ 0x66, 0x30, 0xC1, 0x4F, 0xFF, 0x4A, 0xBC, 0x42,
+ 0xB6, 0x0F, 0x82, 0x53, 0x66, 0xFF, 0x00, 0x65,
+ 0x27, 0xFF, 0x4F, 0xFF, 0x4F, 0xFC, 0x5E, 0xFD,
+ 0x4A, 0x65, 0x63, 0xFF, 0x65, 0x08, 0xFF, 0x12,
+ 0x9A, 0x3B, 0xF7, 0x66, 0x16, 0x68, 0xE4, 0x24,
+ 0x64, 0x65, 0x25, 0x0E, 0x74, 0x3A, 0xF1, 0xFF,
+ 0x66, 0xB1, 0x55, 0x18, 0x2F, 0x78, 0x56, 0xCA,
+ 0x6D, 0xF2, 0x50, 0x85, 0x2F, 0xB3, 0x6E, 0xF9,
+ 0xFF, 0x5B, 0x84, 0x46, 0x41, 0x63, 0xFF, 0x51,
+ 0xC1, 0x63, 0xFB, 0x5B, 0x04, 0x64, 0x44, 0x14,
+ 0x23, 0xFF, 0x57, 0xC7, 0x6A, 0xA1, 0x3B, 0xFF,
+ 0x63, 0xFF, 0x63, 0xFF, 0x33, 0x11, 0x08, 0x54,
+ 0x76, 0xA1, 0xFF, 0x20, 0x0B, 0x4F, 0xF9, 0x6A,
+ 0x63, 0x28, 0xFD, 0x63, 0xF7, 0x1C, 0xA7, 0x6D,
+ 0xE9, 0x47, 0x44, 0xFF, 0x33, 0x7A, 0x5E, 0xA0,
+ 0x7A, 0xC9, 0x78, 0x27, 0x79, 0x64, 0x62, 0xB4,
+ 0x12, 0xD5, 0x50, 0x97, 0xFF, 0x63, 0x11, 0x83,
+ 0x62, 0x63, 0x00, 0x27, 0xF3, 0x13, 0xD2, 0x3C,
+ 0x43, 0x77, 0xFC, 0x39, 0x21, 0xFF, 0x4F, 0xFA,
+ 0x68, 0x05, 0x87, 0x61, 0x07, 0xF8, 0x7D, 0x05,
+ 0x06, 0x73, 0x85, 0x05, 0x77, 0xFF, 0xFF, 0x8B,
+ 0xFF, 0x8A, 0x47, 0x59, 0xE4, 0x78, 0x9B, 0x4D,
+ 0x03, 0x3A, 0xF5, 0x3B, 0xFC, 0x8C, 0xF7, 0xFF,
+ 0x17, 0x23, 0x8B, 0xF4, 0x51, 0x75, 0x22, 0x89,
+ 0x7D, 0x9E, 0x50, 0x01, 0x7F, 0x4F, 0x27, 0xE6,
+ 0xFF, 0x51, 0x51, 0x18, 0x27, 0x66, 0xA0, 0x49,
+ 0x93, 0x28, 0x32, 0x53, 0x10, 0x67, 0xD0, 0x5F,
+ 0x32, 0xFF, 0x79, 0x02, 0x5B, 0x49, 0x8B, 0xFF,
+ 0x27, 0xFB, 0x2E, 0x77, 0x8B, 0x02, 0x64, 0xD3,
+ 0x4F, 0xF2, 0xFF, 0x9B, 0x82, 0x4F, 0xF7, 0x9C,
+ 0x41, 0x8B, 0xFF, 0x9F, 0xFF, 0x5C, 0x60, 0x88,
+ 0x44, 0x30, 0x34, 0xFE, 0x27, 0xF4, 0x97, 0x91,
+ 0x24, 0x95, 0x77, 0xFB, 0x7E, 0x43, 0x49, 0xA4,
+ 0x94, 0x49, 0x2C, 0xFF, 0x9F, 0xF1, 0x7B, 0xA9,
+ 0x37, 0xF6, 0x90, 0xD3, 0x5A, 0x62, 0x88, 0xA3,
+ 0x57, 0x60, 0x64, 0x00, 0xFD, 0x66, 0xD3, 0x93,
+ 0xB6, 0x78, 0x33, 0x63, 0xD2, 0x0E, 0x24, 0x51,
+ 0x32, 0x2D, 0x8B, 0xC3, 0xFF, 0x5D, 0xB4, 0x31,
+ 0xE2, 0xA6, 0x14, 0xAA, 0xD0, 0x07, 0x07, 0x6B,
+ 0x01, 0x13, 0xFF, 0xAE, 0xBC, 0xFF, 0x7E, 0x81,
+ 0x6D, 0xA1, 0x6F, 0x32, 0xA5, 0x91, 0x9F, 0x63,
+ 0xAF, 0x18, 0x77, 0xFF, 0x9F, 0xFF, 0xFF, 0x55,
+ 0x3F, 0xAF, 0x47, 0x6E, 0x94, 0x89, 0xA6, 0xAA,
+ 0x52, 0x9B, 0xA7, 0x72, 0x26, 0x83, 0x29, 0xFF,
+ 0x8B, 0xFA, 0x86, 0xA7, 0x5D, 0x45, 0x78, 0xB5,
+ 0xB5, 0x7B, 0x73, 0x42, 0x51, 0x77, 0x9D, 0xA3,
+ 0xFF, 0x44, 0x13, 0x2C, 0x59, 0x56, 0x1C, 0xBC,
+ 0xA1, 0x55, 0x18, 0xB3, 0xF1, 0x60, 0xC5, 0xBF,
+ 0xA2, 0xFF, 0xB3, 0xFF, 0x4F, 0xFE, 0x90, 0x74,
+ 0xB3, 0x10, 0xB7, 0x63, 0xC0, 0x07, 0x56, 0xA5,
+ 0xBC, 0xB5, 0xFF, 0xB3, 0xFF, 0xC7, 0xF2, 0xA6,
+ 0x49, 0x1D, 0xC0, 0xB9, 0x13, 0x3F, 0xC3, 0x98,
+ 0xB4, 0x4D, 0x7D, 0xFF, 0xC7, 0xF1, 0x0C, 0x6C,
+ 0xC6, 0x3F, 0xB3, 0xF3, 0xC2, 0xC2, 0x9A, 0x53,
+ 0xB4, 0x3F, 0x65, 0x13, 0xFF, 0x33, 0xF4, 0xC8,
+ 0x10, 0xCA, 0x8F, 0x63, 0xE1, 0x93, 0x77, 0x95,
+ 0xA9, 0x92, 0x35, 0x63, 0x20, 0xFF, 0xA3, 0x91,
+ 0xD4, 0x20, 0xC7, 0xF2, 0x0B, 0xF1, 0x74, 0x38,
+ 0x4F, 0xFF, 0x4A, 0xBF, 0xD6, 0x1B, 0xFF, 0xD2,
+ 0xDC, 0x0E, 0xB9, 0xC7, 0xFF, 0xDB, 0xFF, 0x31,
+ 0xC4, 0xC5, 0x37, 0x24, 0x29, 0x9F, 0xFF, 0xFD,
+ 0xC4, 0x17, 0xD5, 0x84, 0xDA, 0xC6, 0xC0, 0x81,
+ 0xDB, 0xF0, 0xA4, 0xF5, 0x2E, 0xBE, 0x9A, 0xCF,
+ 0xAE, 0x68, 0xC8, 0x45, 0x2D, 0x2E, 0xD7, 0x53,
+ 0x3B, 0xFF, 0x40, 0x2D, 0xAF, 0x43, 0xFF, 0xD7,
+ 0x80, 0xC8, 0x91, 0x77, 0x21, 0xA2, 0x02, 0xE0,
+ 0xC1, 0x4F, 0xF0, 0xB0, 0xF4, 0x52, 0x32, 0xFF,
+ 0x27, 0xFF, 0xDB, 0xFC, 0xE2, 0xC8, 0x87, 0x75,
+ 0x1A, 0x08, 0xE0, 0x62, 0xB3, 0xFF, 0xDB, 0xFF,
+ 0xFF, 0x13, 0xFC, 0x4B, 0x43, 0xE6, 0x18, 0x48,
+ 0x04, 0xD2, 0xD5, 0xAD, 0x12, 0xEB, 0xB0, 0x7F,
+ 0xF7, 0xFD, 0x84, 0xB3, 0xEC, 0xE1, 0xB0, 0x38,
+ 0xED, 0xD0, 0xEF, 0xF3, 0x05, 0x21, 0x2A, 0x14,
+ 0x01, 0xFF, 0x86, 0x97, 0x73, 0x01, 0x53, 0x06,
+ 0xD5, 0x30, 0xD5, 0x63, 0x3B, 0xFF, 0xF1, 0xF1,
+ 0x01, 0xE1, 0xFF, 0xEF, 0x53, 0x86, 0x65, 0xF9,
+ 0x74, 0x3F, 0x33, 0x51, 0x51, 0xE0, 0xA7, 0x9C,
+ 0x43, 0x01, 0xE5, 0xFF, 0xEF, 0xFE, 0xEE, 0xD0,
+ 0xFE, 0xB8, 0xFC, 0x49, 0xF2, 0x80, 0xDC, 0xA8,
+ 0xDC, 0xE4, 0xDB, 0xF6, 0xFF, 0x74, 0xC3, 0xEF,
+ 0xFF, 0xF5, 0x3F, 0xD6, 0x3C, 0xBE, 0x73, 0x87,
+ 0x43, 0xF1, 0x36, 0x97, 0xB4, 0xFD, 0x7A, 0xB8,
+ 0x98, 0xB3, 0xA8, 0x35, 0xB7, 0xD3, 0xDB, 0xF4,
+ 0x5D, 0xB6, 0x2E, 0xC8, 0x2A, 0xFF, 0x8A, 0x76,
+ 0x00, 0x05, 0xB4, 0x12, 0xF6, 0x49, 0xFC, 0xA6,
+ 0x15, 0xF3, 0xCC, 0x22, 0xFE, 0xD4, 0xFF, 0xF9,
+ 0xD8, 0x8B, 0x92, 0x8C, 0x96, 0xA8, 0x63, 0xC8,
+ 0x43, 0xED, 0x33, 0x13, 0xFF, 0xFE, 0xB9, 0xFF,
+ 0xA8, 0x76, 0xB7, 0x72, 0x03, 0x24, 0x95, 0xC9,
+ 0xCF, 0xD3, 0xFD, 0x54, 0x13, 0xCA, 0xDB, 0xF7,
+ 0xFF, 0xB3, 0xFD, 0xFB, 0xB7, 0x19, 0x31, 0xA4,
+ 0x42, 0xE5, 0x1A, 0x13, 0xF5, 0xE2, 0x35, 0xAE,
+ 0x22, 0xFF, 0xB7, 0x75, 0x02, 0xE8, 0x77, 0xF1,
+ 0xFE, 0xB1, 0xFD, 0xD3, 0x14, 0x01, 0xEE, 0xB4,
+ 0x60, 0x97, 0xFF, 0xFD, 0xF0, 0x13, 0xFA, 0x48,
+ 0xFF, 0x16, 0x18, 0xE1, 0x87, 0xCB, 0x78, 0xAE,
+ 0x74, 0x64, 0x72, 0xFF, 0xF4, 0x30, 0xF7, 0x04,
+ 0xC4, 0x88, 0xB3, 0xF9, 0x07, 0x02, 0x3B, 0xFD,
+ 0x81, 0x36, 0x66, 0xE2, 0xFF, 0xBD, 0x55, 0xF5,
+ 0x42, 0x63, 0xF9, 0xF0, 0xF0, 0x13, 0xFF, 0x13,
+ 0xFF, 0xEA, 0x76, 0x69, 0xD5, 0xFF, 0x6D, 0x69,
+ 0xF5, 0x27, 0xEA, 0x57, 0xEE, 0xE2, 0x36, 0x51,
+ 0xA7, 0x79, 0xBD, 0x22, 0x9F, 0xF1, 0xCF, 0xEA,
+ 0x03, 0xE9, 0x01, 0x2A, 0x2A, 0x50, 0x23, 0xF2,
+ 0x95, 0xE1, 0xC2, 0x13, 0xE9, 0xFF, 0xDC, 0x10,
+ 0x14, 0xD7, 0x00, 0x98, 0xEC, 0xD0, 0x2A, 0x46,
+ 0xF8, 0x36, 0x1A, 0xE7, 0xF6, 0xD4, 0xFF, 0x8C,
+ 0x95, 0xE7, 0xB1, 0x8E, 0x52, 0xF3, 0x00, 0xA7,
+ 0x10, 0xB3, 0xFC, 0x4F, 0xFF, 0xFC, 0x45, 0xFF,
+ 0xF4, 0xA0, 0xD7, 0x7C, 0x3B, 0xF9, 0xFF, 0x93,
+ 0x27, 0xFF, 0x27, 0xFF, 0xAE, 0x54, 0x9D, 0xFC,
+ 0xFF, 0x48, 0x61, 0xD6, 0xD6, 0x27, 0xF7, 0x12,
+ 0x73, 0x13, 0xF4, 0x9B, 0x87, 0xF0, 0x95, 0x63,
+ 0xF2, 0xFF, 0xC4, 0x88, 0x64, 0x32, 0x96, 0x52,
+ 0xEB, 0x96, 0x13, 0xB5, 0x00, 0x23, 0x13, 0xFF,
+ 0x01, 0xD7, 0xFF, 0x28, 0x57, 0x86, 0x09, 0xF6,
+ 0x62, 0xE5, 0x46, 0xC7, 0xF1, 0xFF, 0xC2, 0xF7,
+ 0x33, 0x2F, 0xC2, 0xFF, 0x13, 0xFF, 0xDB, 0xF8,
+ 0x6E, 0xD9, 0xD2, 0x58, 0x05, 0x64, 0xF1, 0x11,
+ 0x92, 0x03, 0x13, 0xFF, 0xFF, 0x3B, 0xFF, 0xF5,
+ 0x37, 0x30, 0x1A, 0x74, 0xD7, 0xC7, 0xE9, 0x82,
+ 0x55, 0xEF, 0x63, 0xE8, 0xB5, 0xFF, 0xB4, 0x18,
+ 0x63, 0xF4, 0x31, 0x16, 0x14, 0x03, 0x50, 0x2A,
+ 0x3B, 0xE3, 0x13, 0xC6, 0xDC, 0x10, 0xFF, 0x00,
+ 0xB8, 0x01, 0x2F, 0x28, 0x67, 0xF9, 0x56, 0x9B,
+ 0x51, 0xC2, 0xB2, 0xD1, 0x66, 0xD3, 0x05, 0xFF,
+ 0xEC, 0x06, 0x63, 0xFF, 0x77, 0xFB, 0x32, 0xC6,
+ 0x43, 0x5D, 0xCE, 0x32, 0xEA, 0xBB, 0x4F, 0xFF,
+ 0xFF, 0x4F, 0xFF, 0xC0, 0x50, 0xB3, 0x11, 0xE8,
+ 0x66, 0x63, 0xE5, 0xEE, 0x19, 0x71, 0x53, 0xDB,
+ 0x25, 0xFF, 0x27, 0xF4, 0x60, 0xD5, 0xEA, 0x78,
+ 0x12, 0xF1, 0xBD, 0x92, 0xFF, 0x42, 0xD7, 0x61,
+ 0x64, 0x37, 0xFF, 0x1E, 0x14, 0x13, 0x1F, 0x14,
+ 0x3F, 0x14, 0x2F, 0xDA, 0x70, 0x92, 0xB5, 0x90,
+ 0x95, 0x44, 0x64, 0xFF, 0x7F, 0xF8, 0xE3, 0x43,
+ 0x3B, 0xFC, 0x7C, 0xD0, 0xEF, 0xF8, 0x6F, 0x46,
+ 0xF9, 0x13, 0x69, 0xF6, 0xFF, 0x7A, 0x61, 0xC1,
+ 0xA7, 0xA5, 0x41, 0x3B, 0xFF, 0x63, 0xFF, 0x2D,
+ 0x35, 0x6F, 0x92, 0xFA, 0x75, 0xFF, 0xF6, 0x34,
+ 0x06, 0x97, 0x3B, 0xFB, 0x33, 0xB6, 0xD8, 0xC3,
+ 0xF9, 0x13, 0x6C, 0x76, 0x22, 0xB5, 0xBF, 0x6C,
+ 0xC6, 0x2C, 0x15, 0x14, 0xC7, 0x26, 0x3B, 0xA6,
+ 0xFE, 0x11, 0x52, 0xE0, 0x28, 0x1F, 0xFF, 0x01,
+ 0x91, 0x28, 0x4F, 0xD7, 0xA4, 0x36, 0x45, 0xF2,
+ 0xBA, 0x51, 0xA8, 0x12, 0xE9, 0x13, 0x01, 0xFF,
+ 0xFE, 0xBB, 0x66, 0x97, 0x7D, 0x92, 0xBE, 0xB3,
+ 0xFC, 0x47, 0xFE, 0xBA, 0xFF, 0x61, 0x77, 0xFF,
+ 0xFF, 0x77, 0xFF, 0x8B, 0xF3, 0xDC, 0x66, 0xDC,
+ 0x24, 0xFB, 0xD8, 0x4F, 0xF9, 0xDC, 0x66, 0x64,
+ 0xFC, 0xFF, 0xFC, 0x23, 0x73, 0x24, 0xDF, 0x43,
+ 0xC8, 0x73, 0x78, 0x45, 0x5A, 0xD1, 0x13, 0xBB,
+ 0x0E, 0x04, 0xFF, 0x3C, 0x1F, 0x01, 0xD5, 0x3C,
+ 0x7F, 0xF5, 0xA2, 0xF1, 0x12, 0x7F, 0x17, 0xFE,
+ 0xC1, 0xFB, 0xF1, 0xFF, 0x75, 0x07, 0x63, 0xFF,
+ 0x4F, 0xFA, 0x09, 0x31, 0xFF, 0x26, 0x3C, 0x56,
+ 0x73, 0xC7, 0xFE, 0xB6, 0xFF, 0xFF, 0x20, 0x8B,
+ 0xFF, 0x8B, 0xFF, 0xD1, 0x95, 0x35, 0xB1, 0x6D,
+ 0x94, 0x61, 0x78, 0xBF, 0xA3, 0xFF, 0x8B, 0xF5,
+ 0xEE, 0x94, 0x4F, 0xF3, 0x7A, 0xF7, 0x61, 0xD8,
+ 0x54, 0x6C, 0x86, 0x60, 0xF1, 0xE4, 0xFF, 0x13,
+ 0xCF, 0x00, 0x7F, 0x01, 0x9E, 0x50, 0x9B, 0x55,
+ 0xB5, 0xEF, 0x78, 0x94, 0x95, 0xF7, 0x57, 0xFF,
+ 0xB3, 0xFC, 0xDB, 0xFF, 0xD0, 0x39, 0xEB, 0x96,
+ 0xE2, 0x84, 0xC4, 0x82, 0xFE, 0xB4, 0xFD, 0x51,
+ 0xFF, 0x9F, 0xFF, 0x9F, 0xFF, 0xC5, 0x71, 0xD3,
+ 0x04, 0xF5, 0xF4, 0xBE, 0x94, 0xF0, 0xC5, 0xB3,
+ 0xF5, 0xFF, 0xFD, 0xA1, 0xFA, 0x11, 0xED, 0x81,
+ 0xDB, 0xF2, 0xA7, 0x05, 0x08, 0x76, 0xF3, 0x71,
+ 0xEF, 0x61, 0xFB, 0x86, 0x37, 0xEC, 0xD1, 0xE9,
+ 0x72, 0x27, 0xAF, 0x14, 0x6B, 0x48, 0x15, 0x5F,
+ 0x2A, 0x0B, 0xFF, 0xFB, 0x10, 0xB5, 0x66, 0xCE,
+ 0xE0, 0xDF, 0x36, 0xF9, 0xA9, 0xEF, 0xFF, 0x77,
+ 0xFE, 0xBF, 0x36, 0xFC, 0x36, 0x2B, 0x8F, 0x81,
+ 0x7E, 0x05, 0xFE, 0xB1, 0x0E, 0xB4, 0xB3, 0xFF,
+ 0x0C, 0x0C, 0xFF, 0xD0, 0x91, 0xC7, 0xFE, 0x8B,
+ 0xFB, 0xEA, 0x15, 0x63, 0xFC, 0xDD, 0xC7, 0xE8,
+ 0x11, 0xB4, 0xA5, 0xFF, 0x71, 0xC4, 0x39, 0xF2,
+ 0xFF, 0x34, 0x16, 0x62, 0x8C, 0x58, 0x8B, 0x06,
+ 0x27, 0xAF, 0x13, 0xF7, 0xFF, 0x14, 0x1F, 0x28,
+ 0x4F, 0xC9, 0x84, 0xAA, 0x56, 0xE5, 0xC5, 0xBE,
+ 0xDA, 0xDB, 0xFA, 0x0E, 0xBB, 0xFF, 0x9E, 0x55,
+ 0xF6, 0x04, 0xD1, 0xF2, 0xFB, 0x15, 0xA3, 0xE1,
+ 0xEA, 0xB6, 0xFB, 0xA4, 0xC7, 0xFF, 0xFF, 0xC7,
+ 0xF2, 0x69, 0x3A, 0xA4, 0xB4, 0x45, 0x59, 0xCD,
+ 0x15, 0xD3, 0x06, 0xEF, 0xF3, 0xEE, 0xE3, 0xFF,
+ 0x8D, 0x15, 0xD5, 0xF3, 0xED, 0x15, 0x61, 0xB3,
+ 0x17, 0xC8, 0x71, 0x68, 0xDA, 0x70, 0x3B, 0x8F,
+ 0xFF, 0x13, 0xFF, 0x3D, 0x7F, 0x52, 0x5D, 0xC9,
+ 0x7D, 0x79, 0x44, 0x50, 0x35, 0xC7, 0xFF, 0xC5,
+ 0x72, 0xFF, 0xC7, 0xF9, 0xB3, 0x4D, 0xF6, 0x93,
+ 0xC1, 0xB6, 0x74, 0xC2, 0xF5, 0xB2, 0xFD, 0xA3,
+ 0xDB, 0xFF, 0xFF, 0xDB, 0xFF, 0x8B, 0xF0, 0xB8,
+ 0x4B, 0xEC, 0x24, 0xE4, 0xE3, 0xE5, 0x43, 0x2D,
+ 0x11, 0x98, 0x46, 0xFF, 0xA6, 0x44, 0xFD, 0xE2,
+ 0x81, 0x16, 0x13, 0xD4, 0x27, 0xF4, 0xC6, 0xD5,
+ 0xC8, 0xA4, 0x14, 0x02, 0xFF, 0x4F, 0x6F, 0x27,
+ 0xFF, 0x51, 0xAF, 0x66, 0x7B, 0xDD, 0x89, 0x6D,
+ 0xDB, 0xE0, 0x16, 0x77, 0xFC, 0xFD, 0x13, 0xFC,
+ 0x32, 0x24, 0x48, 0x33, 0x8B, 0xB6, 0xE3, 0xEA,
+ 0xC7, 0xF7, 0x2A, 0xEF, 0xFF, 0xFF, 0xEF, 0xF1,
+ 0xD4, 0x52, 0x3B, 0xFE, 0xFE, 0x56, 0xDB, 0x67,
+ 0x39, 0x53, 0x60, 0x54, 0x62, 0xF0, 0xFF, 0x62,
+ 0xC8, 0x5B, 0x5D, 0xDB, 0x02, 0x8B, 0xAA, 0xB6,
+ 0x63, 0x8B, 0x25, 0xE8, 0xF4, 0x63, 0xAF, 0xFF,
+ 0x3B, 0xFF, 0x65, 0xEF, 0x14, 0x1F, 0x92, 0x59,
+ 0xAF, 0x38, 0x9F, 0xE2, 0xEF, 0xFA, 0x0E, 0xBC,
+ 0xFF, 0xC2, 0x1D, 0xDF, 0x31, 0xCC, 0x02, 0x7B,
+ 0xE6, 0xCD, 0x64, 0x7C, 0xE4, 0x4F, 0xCA, 0x3B,
+ 0xF7, 0xFF, 0xC7, 0xFF, 0xD0, 0x52, 0x78, 0x13,
+ 0xF4, 0xC2, 0xDB, 0x86, 0xEB, 0x85, 0x76, 0xF1,
+ 0xAC, 0x15, 0xFF, 0x6F, 0x55, 0x92, 0x66, 0xF7,
+ 0xF1, 0xE7, 0xE1, 0xD0, 0x74, 0x79, 0x2A, 0x77,
+ 0x3F, 0x77, 0xFF, 0xFF, 0x4F, 0xFF, 0x7A, 0x3F,
+ 0x28, 0x2B, 0xD2, 0xFC, 0xFF, 0x21, 0xAB, 0x44,
+ 0x4F, 0xFF, 0x77, 0xFF, 0xFF, 0xE6, 0x37, 0xF0,
+ 0x84, 0xC8, 0xC5, 0x0E, 0x93, 0x04, 0xC1, 0xBA,
+ 0xD3, 0x13, 0xFF, 0x63, 0xF1, 0xFF, 0x13, 0xFE,
+ 0xF2, 0xF4, 0xC4, 0x77, 0x6A, 0x86, 0xB3, 0xFF,
+ 0x75, 0x55, 0x78, 0xF0, 0xE7, 0xA4, 0xFF, 0xF2,
+ 0x62, 0x32, 0x81, 0xD4, 0x76, 0x51, 0xA5, 0xB3,
+ 0x05, 0x8B, 0x1F, 0x77, 0xFF, 0x78, 0x1F, 0xFF,
+ 0x8C, 0xDF, 0xB4, 0xEA, 0xFF, 0x8A, 0xF0, 0xA2,
+ 0xF8, 0x84, 0xC7, 0xFB, 0xEF, 0xFC, 0x6D, 0x97,
+ 0xFF, 0x9A, 0x3A, 0xBF, 0xC3, 0x3B, 0xFC, 0x27,
+ 0xFF, 0x3B, 0xFF, 0x8B, 0xF2, 0x55, 0x3A, 0xE2,
+ 0x42, 0xFF, 0xF0, 0xCC, 0xDB, 0xF2, 0xD9, 0x76,
+ 0xC8, 0xF4, 0xB3, 0x75, 0xAB, 0xD2, 0xF8, 0xEB,
+ 0x7A, 0x87, 0xFF, 0x9F, 0x0F, 0x9F, 0xEF, 0x77,
+ 0xFF, 0xA2, 0x2F, 0x14, 0x0F, 0x78, 0x3A, 0xFA,
+ 0x20, 0xB4, 0x06, 0xFF, 0x13, 0xFF, 0x77, 0xFB,
+ 0x8B, 0xB4, 0x5B, 0xE3, 0x9F, 0x75, 0xEA, 0x21,
+ 0x8B, 0xF8, 0xE8, 0x34, 0xFF, 0x3B, 0xFF, 0x3B,
+ 0xFF, 0xAF, 0xF8, 0x28, 0x97, 0xB4, 0x09, 0xEC,
+ 0xD0, 0xDB, 0xF2, 0x1E, 0x05, 0xFF, 0xC7, 0xF9,
+ 0xC0, 0xF5, 0xB7, 0x17, 0xF9, 0xE4, 0xD5, 0x03,
+ 0xB2, 0xEF, 0xB3, 0xCF, 0x8B, 0xFF, 0xFF, 0xB6,
+ 0x0F, 0xCA, 0xFB, 0xDD, 0x05, 0xB0, 0x46, 0xEC,
+ 0xE2, 0x6D, 0x14, 0x27, 0xFF, 0xB3, 0xFB, 0xFF,
+ 0x8F, 0xD5, 0xAF, 0x03, 0x2C, 0x6C, 0xEA, 0xB5,
+ 0xC4, 0x15, 0x4F, 0xFF, 0x4F, 0xFF, 0xDA, 0x94,
+ 0xFF, 0xE1, 0xB3, 0x28, 0xC9, 0xCD, 0x24, 0x7D,
+ 0x35, 0xEC, 0x57, 0xB3, 0xF5, 0xF3, 0x73, 0x4F,
+ 0xC4, 0xFF, 0x45, 0xAE, 0x13, 0xEF, 0xC7, 0x8F,
+ 0x9F, 0xFF, 0xC9, 0xCF, 0xC9, 0x1F, 0xB4, 0x88,
+ 0xF5, 0x87, 0xFF, 0xDC, 0x85, 0x63, 0xFC, 0xAE,
+ 0xBF, 0xE5, 0xE4, 0x73, 0x78, 0xD2, 0x04, 0xC8,
+ 0x54, 0x3B, 0xFF, 0xFF, 0x63, 0xFF, 0xB3, 0xFD,
+ 0xCD, 0x86, 0x77, 0xC8, 0x59, 0x13, 0xE1, 0x73,
+ 0x4F, 0xFA, 0x1E, 0x91, 0xFF, 0xC8, 0xF2, 0xF8,
+ 0xD3, 0xEE, 0x10, 0xFE, 0x31, 0xDD, 0x63, 0xEF,
+ 0x73, 0x7C, 0x44, 0xDA, 0xCF, 0xFF, 0xDB, 0xAF,
+ 0xB3, 0xFF, 0xDD, 0xEF, 0xDD, 0x2F, 0x8C, 0x47,
+ 0xE1, 0xB5, 0xFF, 0x72, 0x3A, 0xEC, 0xFF, 0x4F,
+ 0xFF, 0xE7, 0x81, 0x4E, 0xD4, 0x3B, 0x25, 0xEF,
+ 0x86, 0xFE, 0x02, 0xEA, 0xB4, 0x4F, 0xFF, 0xFF,
+ 0x77, 0xFF, 0x27, 0xFB, 0xCD, 0xA7, 0xF9, 0xA5,
+ 0x41, 0x05, 0xC5, 0x35, 0xB5, 0x3A, 0xEF, 0xF3,
+ 0xCF, 0xBC, 0xF3, 0xF9, 0xC0, 0x2E, 0x2E, 0xF1,
+ 0xA1, 0xDA, 0xC2, 0xF8, 0x65, 0xC7, 0x23, 0xFF,
+ 0xEE, 0xBF, 0xEF, 0xDF, 0xC7, 0xFF, 0xF2, 0x1F,
+ 0x3C, 0x2F, 0xA0, 0x56, 0x95, 0x72, 0xFA, 0x44,
+ 0xFF, 0x9F, 0xFE, 0x9A, 0xBC, 0xE0, 0x34, 0xE0,
+ 0x94, 0xFA, 0xE0, 0xE1, 0x60, 0x00, 0x62, 0xB9,
+ 0xA7, 0xFF, 0xDB, 0xF2, 0xAC, 0xB5, 0x8B, 0xFF,
+ 0x8B, 0xFF, 0x13, 0xC6, 0x8F, 0x56, 0xBA, 0x27,
+ 0xB1, 0x36, 0xFF, 0xFA, 0x5A, 0xFB, 0x5C, 0xFA,
+ 0xD0, 0xDA, 0x30, 0x14, 0x12, 0xE0, 0x68, 0xFF,
+ 0xA2, 0xEE, 0x6E, 0xFF, 0x01, 0x0F, 0xDB, 0xFF,
+ 0x03, 0x4F, 0xF2, 0xDB, 0xDC, 0xA7, 0x46, 0x69,
+ 0x28, 0x03, 0xF2, 0x31, 0xFF, 0xDB, 0xFA, 0xC7,
+ 0xFA, 0xFF, 0x20, 0xFF, 0x72, 0x00, 0x71, 0x00,
+ 0x63, 0x00, 0x5F, 0xE6, 0xC0, 0xFF, 0xB9, 0xE7,
+ 0x9F, 0xFF, 0xDB, 0xF2, 0xA6, 0x49, 0xFE, 0xF0,
+ 0x87, 0x86, 0xB2, 0x07, 0xB4, 0x08, 0xFF, 0xEF,
+ 0xD3, 0x13, 0xFA, 0xDB, 0xF3, 0xF6, 0x51, 0xE6,
+ 0x00, 0x07, 0x21, 0xEE, 0x52, 0x07, 0xA1, 0xFF,
+ 0xA9, 0x98, 0x13, 0xEF, 0x14, 0xDF, 0xEF, 0xFF,
+ 0x17, 0x1F, 0x18, 0x3F, 0xA0, 0x79, 0xAF, 0x88,
+ 0xDF, 0xD1, 0x41, 0xEF, 0xFE, 0x2D, 0xEA, 0xBB,
+ 0xDF, 0xA3, 0x00, 0x0F, 0x01, 0x2C, 0x8B, 0xFF,
+ 0xFF, 0xB3, 0xFF, 0x2D, 0x36, 0xE4, 0xD4, 0xEF,
+ 0x28, 0xA8, 0xA3, 0xED, 0x72, 0xE6, 0x63, 0xF5,
+ 0x33, 0xFF, 0xF1, 0x56, 0xA6, 0x42, 0xC6, 0xD5,
+ 0x3B, 0xC1, 0xBB, 0x73, 0x28, 0x90, 0xFD, 0xC5,
+ 0x27, 0xDF, 0xDF, 0x28, 0xAF, 0x29, 0xCA, 0x48,
+ 0x13, 0xFF, 0x2B, 0xCF, 0x78, 0x5F, 0xFB, 0xD3,
+ 0xEE, 0x32, 0xFF, 0x3C, 0x04, 0x9F, 0xFF, 0xFE,
+ 0xB9, 0xD4, 0x29, 0x37, 0x77, 0x8B, 0xD4, 0x13,
+ 0xF8, 0x0E, 0xB4, 0xDF, 0xC7, 0xFF, 0xC7, 0xFF,
+ 0x0C, 0xA0, 0x06, 0xF9, 0x22, 0x7C, 0xEB, 0xF0,
+ 0xB3, 0x9E, 0xE5, 0xFF, 0x52, 0x74, 0xEE, 0x90,
+ 0xEF, 0xF3, 0xD1, 0xE0, 0x27, 0xE1, 0xF3, 0x05,
+ 0x14, 0x15, 0x8B, 0x8F, 0xFF, 0x3C, 0x7F, 0x27,
+ 0xFF, 0x27, 0xFF, 0x3F, 0xDF, 0x8C, 0x6C, 0x6B,
+ 0x74, 0xFB, 0xA6, 0x0F, 0x94, 0xFF, 0x3B, 0xFF,
+ 0xEF, 0xF7, 0xAD, 0x6C, 0x97, 0x07, 0x73, 0x05,
+ 0xC2, 0xB5, 0x7A, 0x52, 0xDB, 0xFF, 0xFF, 0xDB,
+ 0xFF, 0x55, 0x3F, 0x55, 0x3F, 0x4F, 0xEB, 0xF0,
+ 0xD1, 0xEF, 0xF6, 0x27, 0xE2, 0xA8, 0x24, 0xFF,
+ 0x14, 0x15, 0x63, 0xB2, 0x4F, 0xBF, 0x50, 0xDF,
+ 0x27, 0xFF, 0x53, 0x1F, 0x54, 0x3F, 0xC8, 0xA9,
+ 0xFF, 0xBE, 0x6B, 0x8A, 0xE4, 0x9F, 0x0B, 0x63,
+ 0xF9, 0xFE, 0x45, 0xF4, 0x01, 0xEA, 0xB3, 0xA3,
+ 0x10, 0xFF, 0xD2, 0xC6, 0x86, 0xB6, 0xC7, 0xFF,
+ 0xEF, 0xFF, 0xF6, 0x43, 0x54, 0xB2, 0x55, 0x3F,
+ 0x55, 0x3F, 0xFF, 0x96, 0xEA, 0xB3, 0xF4, 0xE3,
+ 0x90, 0x13, 0xE5, 0x8D, 0xB7, 0x65, 0x01, 0x63,
+ 0xAF, 0x64, 0x9F, 0xFF, 0x3B, 0xFF, 0x66, 0xDF,
+ 0x67, 0xFF, 0xB4, 0x8E, 0x47, 0x4A, 0xD1, 0x62,
+ 0x13, 0xF9, 0xFB, 0xA0, 0xFF, 0x27, 0xFC, 0xAA,
+ 0xA9, 0x4A, 0xA6, 0xFD, 0x65, 0xAE, 0xA4, 0xDE,
+ 0x46, 0xEF, 0xA8, 0x63, 0xF9, 0xFF, 0xEF, 0xFB,
+ 0x55, 0x3F, 0x56, 0x0F, 0xEF, 0xE6, 0xEE, 0x33,
+ 0xF0, 0xF2, 0xE2, 0x62, 0x3B, 0xE3, 0xFF, 0xE5,
+ 0x19, 0xFC, 0xA1, 0x6E, 0x70, 0x77, 0xAF, 0x78,
+ 0xCF, 0x4F, 0xFF, 0x7B, 0x0F, 0x7C, 0x2F, 0xFF,
+ 0x13, 0xFF, 0x3C, 0x66, 0x13, 0xFE, 0xE7, 0x21,
+ 0xDB, 0xFB, 0xD3, 0x11, 0x73, 0x31, 0xD6, 0x75,
+ 0xEF, 0xE9, 0x62, 0xEB, 0x19, 0xEF, 0xF7, 0x2A,
+ 0x13, 0xFF, 0x13, 0xFF, 0x55, 0x3F, 0x55, 0x3F,
+ 0xFF, 0x77, 0xEE, 0x3D, 0x06, 0xFA, 0xA1, 0x8F,
+ 0x1A, 0x9F, 0xA5, 0x8B, 0x9F, 0x8C, 0xBF, 0x63,
+ 0xFF, 0xFF, 0x8E, 0xFF, 0x90, 0x1F, 0xDC, 0x98,
+ 0xF0, 0x79, 0x27, 0xFF, 0x3B, 0x04, 0xEF, 0xFD,
+ 0x85, 0x99, 0xFF, 0x67, 0xD4, 0xFB, 0x97, 0xD5,
+ 0xA3, 0xEB, 0xD6, 0x27, 0xFF, 0x27, 0xFF, 0x08,
+ 0x08, 0xF5, 0x53, 0xFF, 0xF5, 0x40, 0xF4, 0xF2,
+ 0xFA, 0x17, 0xDB, 0xE6, 0xCA, 0xB5, 0x51, 0x05,
+ 0x13, 0xE5, 0xEF, 0xC8, 0xFF, 0xBD, 0xC3, 0x9F,
+ 0x8F, 0xA0, 0xAF, 0x77, 0xFF, 0xA2, 0xEF, 0xA4,
+ 0x0F, 0x14, 0x0E, 0x50, 0x1D, 0xFF, 0x3B, 0xFB,
+ 0xF1, 0x0A, 0x3A, 0x56, 0xF3, 0xB2, 0x72, 0xE7,
+ 0xEB, 0x38, 0x4F, 0xF7, 0xFE, 0x71, 0xFF, 0x3B,
+ 0xFF, 0x3B, 0xFF, 0x9B, 0x37, 0x4E, 0x09, 0xF5,
+ 0xB5, 0x40, 0xA3, 0x9E, 0xE3, 0xCE, 0x22, 0xFF,
+ 0xF7, 0x73, 0xF0, 0xF4, 0x8B, 0xC2, 0x43, 0xB5,
+ 0xB7, 0x58, 0xB3, 0x8F, 0xB4, 0x9F, 0x8B, 0xFF,
+ 0xFF, 0xB6, 0xDF, 0xB7, 0xFF, 0x28, 0x0F, 0xF0,
+ 0x7A, 0x13, 0xFD, 0xAE, 0xBC, 0xE6, 0x01, 0xFC,
+ 0x83, 0xFF, 0x4E, 0x23, 0xD5, 0x39, 0xD3, 0xF1,
+ 0xEF, 0xF5, 0x0E, 0xB5, 0x4F, 0xFF, 0x4F, 0xFF,
+ 0x03, 0x73, 0xFF, 0x6B, 0xD4, 0x12, 0xF4, 0x9C,
+ 0xD2, 0xDC, 0x84, 0xD9, 0x73, 0x7D, 0x23, 0xC5,
+ 0xD6, 0x13, 0xF7, 0x7F, 0x44, 0x27, 0xAA, 0x2B,
+ 0x72, 0xC7, 0x7F, 0xC8, 0x7F, 0xB3, 0xFF, 0xB3,
+ 0xFF, 0xCB, 0xDF, 0xFF, 0x3C, 0x1F, 0xB1, 0x14,
+ 0x78, 0x19, 0x77, 0xF9, 0xDB, 0xFC, 0xFB, 0x13,
+ 0xFE, 0xA6, 0x0F, 0xB3, 0xFF, 0x37, 0x74, 0xAE,
+ 0xF3, 0x4F, 0xF5, 0xAF, 0xE3, 0x63, 0xFF, 0x63,
+ 0xFF, 0x24, 0x00, 0x9F, 0xF3, 0xFF, 0x9F, 0xE3,
+ 0xD8, 0x4A, 0xCA, 0x91, 0x76, 0xE6, 0xB5, 0x53,
+ 0x92, 0x37, 0x76, 0x92, 0x8B, 0xC1, 0xFF, 0x08,
+ 0x05, 0x63, 0xD5, 0xDB, 0x7F, 0xDC, 0x7F, 0xC7,
+ 0xFF, 0xC7, 0xFF, 0xDF, 0xDF, 0x50, 0x1F, 0xFF,
+ 0xF0, 0x56, 0x94, 0x35, 0xEB, 0xC1, 0x13, 0xF8,
+ 0xDD, 0x0A, 0x76, 0x54, 0xED, 0xD4, 0xE6, 0xE8,
+ 0xFF, 0xAE, 0x63, 0xEF, 0x53, 0xB3, 0xF2, 0x0E,
+ 0xB4, 0x77, 0xFF, 0x77, 0xFF, 0xE2, 0x10, 0x43,
+ 0x30, 0xFE, 0x28, 0x56, 0x60, 0xDB, 0x08, 0x01,
+ 0xDC, 0x13, 0xC7, 0xC2, 0x76, 0xA7, 0xF0, 0xF1,
+ 0x2A, 0xFF, 0x27, 0xE6, 0x81, 0x65, 0xF1, 0x80,
+ 0xFC, 0xB1, 0xEF, 0x6F, 0xF0, 0x8F, 0xC7, 0xFF,
+ 0xF2, 0xCF, 0xFF, 0xF3, 0xEF, 0x64, 0x2F, 0xF7,
+ 0x50, 0x38, 0x59, 0x13, 0xFC, 0xD6, 0xBC, 0xC1,
+ 0x96, 0xC6, 0xD3, 0xFD, 0xEA, 0x78, 0x21, 0xD7,
+ 0xFE, 0xB1, 0xF5, 0x35, 0x8B, 0xFF, 0x8B, 0xFF,
+ 0x2E, 0xC5, 0xA2, 0xFF, 0x2D, 0x6C, 0xD1, 0x31,
+ 0x1A, 0x58, 0xC6, 0xE4, 0x77, 0xFE, 0x77, 0xDF,
+ 0x63, 0xDF, 0x00, 0xCF, 0xFF, 0x01, 0xEF, 0xDB,
+ 0xFF, 0xDD, 0x99, 0x04, 0xEF, 0x13, 0xFB, 0x1F,
+ 0x59, 0x13, 0xFD, 0xC9, 0x0A, 0xFF, 0x27, 0x74,
+ 0xFE, 0x04, 0x8B, 0x45, 0x2C, 0x08, 0xF1, 0xD5,
+ 0xEC, 0xD5, 0x9F, 0xFF, 0x9F, 0xFF, 0xFF, 0x94,
+ 0x14, 0x4F, 0x34, 0x3C, 0xC3, 0xE0, 0x11, 0x41,
+ 0x17, 0xED, 0xB2, 0x91, 0xF7, 0x6E, 0x76, 0xFF,
+ 0xC7, 0xB1, 0x4F, 0xE5, 0x47, 0xE9, 0x13, 0xEF,
+ 0x15, 0x0F, 0x16, 0x2D, 0xEF, 0xFF, 0x13, 0xFF,
+ 0xFF, 0x14, 0x0F, 0xC8, 0x2D, 0xD1, 0x93, 0xC7,
+ 0xFF, 0x64, 0xE8, 0xEA, 0x05, 0xFF, 0x13, 0xF0,
+ 0xF5, 0xFF, 0xEB, 0x68, 0x8B, 0xFF, 0xB3, 0xFF,
+ 0x91, 0x3F, 0xBC, 0x16, 0x8B, 0xB3, 0xE5, 0x38,
+ 0x69, 0x81, 0xF7, 0x14, 0xF2, 0xF5, 0x51, 0xAA,
+ 0x89, 0x9F, 0xC2, 0x44, 0x59, 0x32, 0xC0, 0x08,
+ 0x3B, 0xEF, 0xFF, 0x24, 0x7F, 0x29, 0xFF, 0x13,
+ 0xD0, 0x13, 0xFF, 0x27, 0xEF, 0x28, 0x0F, 0xF0,
+ 0x17, 0xD9, 0xC1, 0xFF, 0xAB, 0x03, 0xDB, 0xFF,
+ 0x27, 0xFB, 0xDA, 0xB7, 0x03, 0x64, 0x4B, 0xCA,
+ 0xC7, 0xF2, 0x0E, 0xB4, 0xFF, 0xC7, 0xFF, 0xC7,
+ 0xFF, 0xCC, 0xD9, 0xA4, 0xE7, 0x7D, 0xE3, 0xEF,
+ 0x18, 0x3E, 0x39, 0x27, 0xF7, 0x3B, 0x44, 0x45,
+ 0x59, 0x13, 0xC9, 0x74, 0xF7, 0xC0, 0x2C, 0x3B,
+ 0xDF, 0x38, 0x7F, 0xFF, 0x3E, 0x0F, 0x27, 0xD0,
+ 0x28, 0x0F, 0x40, 0x7F, 0x3C, 0x1F, 0x6E, 0x04,
+ 0xFF, 0x81, 0x6E, 0xA6, 0xFF, 0xEF, 0xFF, 0x0E,
+ 0xBF, 0x0E, 0xBF, 0xC7, 0xFB, 0xFE, 0xF2, 0xDB,
+ 0xFF, 0xDB, 0xFF, 0x4E, 0x78, 0xFF, 0xD8, 0x8B,
+ 0x2D, 0x57, 0xDB, 0xF3, 0x52, 0x5A, 0x13, 0xF9,
+ 0xA7, 0xE7, 0xAB, 0xE2, 0x4F, 0xDF, 0xFF, 0x4C,
+ 0x7F, 0x3B, 0xFF, 0x4E, 0x8F, 0x50, 0x28, 0x3D,
+ 0xBF, 0x3C, 0x0F, 0xA9, 0xF5, 0x8C, 0x12, 0xFF,
+ 0xDB, 0xF7, 0xF2, 0x40, 0x0E, 0xBF, 0x0E, 0xBF,
+ 0x99, 0xAA, 0x22, 0xD6, 0xEF, 0xFF, 0xEF, 0xFF,
+ 0xFF, 0xB1, 0x80, 0xB7, 0xD6, 0x77, 0x99, 0xD9,
+ 0x36, 0xB3, 0xF4, 0xF7, 0x82, 0x13, 0xF9, 0xEE,
+ 0x61, 0xFE, 0x27, 0xF2, 0x6F, 0xDC, 0x63, 0xDF,
+ 0x60, 0x5F, 0x4F, 0xFF, 0x62, 0x8F, 0x63, 0xB8,
+ 0x48, 0xFF, 0x14, 0x1F, 0x3C, 0x09, 0xB4, 0x23,
+ 0x3B, 0xF6, 0x13, 0xFA, 0x0E, 0xBF, 0x0E, 0xBF,
+ 0x0E, 0xBD, 0xFF, 0x90, 0x20, 0x13, 0xFF, 0x00,
+ 0xB1, 0xF7, 0x91, 0xDB, 0xFF, 0xC7, 0xEB, 0x41,
+ 0xE6, 0x50, 0x18, 0xFB, 0xEF, 0xFD, 0xB5, 0x03,
+ 0x63, 0xE1, 0x3B, 0xF3, 0xF7, 0x97, 0x2A, 0x77,
+ 0xCF, 0x74, 0x5F, 0xFE, 0x79, 0xFF, 0x3B, 0xFF,
+ 0x13, 0xFC, 0x65, 0xEF, 0x3C, 0x0B, 0x3C, 0x46,
+ 0xF9, 0xA1, 0x2E, 0xFD, 0x13, 0xFF, 0x0E, 0xBF,
+ 0x0E, 0xBF, 0x65, 0xD3, 0xEF, 0xFF, 0x13, 0xFB,
+ 0x46, 0xEF, 0xFC, 0x30, 0x46, 0x46, 0x01, 0x11,
+ 0xFF, 0xE5, 0x0C, 0x2A, 0x28, 0x25, 0x36, 0x25,
+ 0x25, 0x68, 0xE8, 0xF6, 0x90, 0x45, 0xC6, 0xE5,
+ 0x13, 0xFF, 0x42, 0xFF, 0x27, 0xF9, 0x13, 0xFF,
+ 0x88, 0x5F, 0x8D, 0xAF, 0x4F, 0xFF, 0x3B, 0x8F,
+ 0x3C, 0x2F, 0x13, 0xFF, 0xFE, 0xF8, 0x05, 0x13,
+ 0xFF, 0x0E, 0xBF, 0x0E, 0xBF, 0x0E, 0xBA, 0xD6,
+ 0x66, 0x27, 0xFF, 0x0C, 0x3E, 0x0C, 0x47, 0x14,
+ 0x00, 0x13, 0xFF, 0x13, 0xE5, 0x13, 0xF0, 0x14,
+ 0x00, 0x28, 0xBF, 0xF9, 0x49, 0x45, 0x13, 0xFB,
+ 0xD3, 0x03, 0x27, 0xF7, 0xCA, 0xC7, 0x27, 0xFF,
+ 0x4C, 0x1F, 0xFE, 0xA1, 0xAF, 0x63, 0xFF, 0x4F,
+ 0x8F, 0x3B, 0xF0, 0x8D, 0xEF, 0x8C, 0x1F, 0xBC,
+ 0x02, 0x2A, 0x26, 0x45, 0x44, 0x27, 0xF6, 0x0C,
+ 0x48, 0xF1, 0xD1, 0xF0, 0x07, 0x48, 0xF8, 0x0E,
+ 0xBF, 0x0E, 0xBF, 0x13, 0xFF, 0x3B, 0xFA, 0x05,
+ 0x2C, 0x2D, 0x48, 0x45, 0x94, 0x13, 0xFE, 0x28,
+ 0x29, 0x13, 0xFA, 0x43, 0x27, 0xFB, 0x46, 0x2B,
+ 0x3F, 0x45, 0x47, 0x27, 0xF8, 0xFC, 0x32, 0xFC,
+ 0x72, 0x3B, 0xFF, 0x60, 0x07, 0x60, 0x2F, 0xFE,
+ 0x77, 0xFF, 0xB7, 0x6F, 0x63, 0x83, 0x13, 0xD1,
+ 0x8D, 0xFF, 0x8C, 0x1B, 0xBD, 0xE7, 0x2A, 0x27,
+ 0x45, 0x42, 0x13, 0xF7, 0x2B, 0x48, 0x13, 0xFB,
+ 0x0E, 0xBF, 0x0E, 0xBC, 0xD1, 0x27, 0xFF, 0x4F,
+ 0xFE, 0x47, 0xF5, 0x3B, 0x47, 0x45, 0x46, 0x26,
+ 0x10, 0xC6, 0x27, 0xE5, 0x28, 0x00, 0x29, 0x29,
+ 0x2B, 0xF2, 0x42, 0x13, 0xD5, 0x44, 0x7F, 0x46,
+ 0x3B, 0xFA, 0x3E, 0xE2, 0x4F, 0xF5, 0xFC, 0x31,
+ 0x00, 0x35, 0xFC, 0xA3, 0xC7, 0xBF, 0xFF, 0x9D,
+ 0xC2, 0x74, 0x2F, 0x8B, 0xFF, 0xB5, 0x4F, 0x8D,
+ 0x73, 0x13, 0xD2, 0x78, 0x3F, 0x50, 0x0D, 0xF7,
+ 0x1C, 0x83, 0xEF, 0xD2, 0x27, 0xF7, 0x21, 0xD0,
+ 0x47, 0xF2, 0x80, 0xFA, 0xA0, 0x37, 0xB2, 0xFE,
+ 0x0E, 0xBF, 0x0E, 0xBD, 0xD5, 0xA1, 0x3B, 0xFF,
+ 0x27, 0xF9, 0x13, 0x00, 0x05, 0x28, 0x2D, 0x7F,
+ 0x48, 0x13, 0xE0, 0x13, 0xF9, 0x14, 0x00, 0x66,
+ 0x43, 0x27, 0xC5, 0x13, 0xF5, 0xDE, 0x14, 0x9F,
+ 0x53, 0xF0, 0x44, 0x46, 0x4F, 0xF7, 0x63, 0x42,
+ 0x63, 0x92, 0x0C, 0x23, 0xDB, 0xBF, 0xFF, 0x5F,
+ 0xEA, 0xC6, 0x5F, 0x9F, 0xFF, 0x13, 0xFF, 0x18,
+ 0x0F, 0xF0, 0x39, 0xF0, 0x41, 0x13, 0x94, 0x77,
+ 0x2D, 0xE5, 0x90, 0x27, 0xF9, 0x13, 0xF0, 0x45,
+ 0x13, 0xF8, 0x0E, 0xBF, 0x0E, 0xBE, 0xFC, 0x72,
+ 0xB1, 0xD6, 0xD6, 0x77, 0xFF, 0x13, 0xF2, 0x05,
+ 0x29, 0x27, 0xF0, 0x45, 0x45, 0x70, 0x43, 0xE4,
+ 0x54, 0xF9, 0x64, 0x13, 0xF7, 0x45, 0x43, 0x43,
+ 0x41, 0x33, 0x42, 0x44, 0x63, 0xF8, 0x66, 0xD0,
+ 0x46, 0x46, 0x13, 0xF2, 0xC7, 0xE2, 0x3F, 0x41,
+ 0x45, 0xD0, 0x57, 0x14, 0x93, 0xEF, 0xBF, 0xC5,
+ 0xB2, 0x13, 0xFF, 0xB3, 0xFF, 0xFE, 0xDD, 0x4F,
+ 0x2B, 0xA4, 0x9F, 0xF1, 0xA0, 0x3F, 0xDC, 0x26,
+ 0x30, 0x44, 0xC3, 0xA5, 0x45, 0x5E, 0x41, 0x13,
+ 0xFB, 0x45, 0x27, 0xF9, 0x0E, 0xBF, 0x0E, 0xBF,
+ 0x63, 0xF5, 0x46, 0x79, 0x46, 0x8B, 0xFF, 0x13,
+ 0xF3, 0x05, 0x28, 0x13, 0xF1, 0x43, 0x45, 0x13,
+ 0xFF, 0xA5, 0x63, 0xB5, 0x41, 0x13, 0xFF, 0x44,
+ 0x45, 0x13, 0xF6, 0x3F, 0x9F, 0xF8, 0xFF, 0x13,
+ 0xFF, 0x13, 0xFF, 0xEE, 0x5F, 0xB2, 0x17, 0xF0,
+ 0x0E, 0x4F, 0xC7, 0x00, 0x43, 0x05, 0xAF, 0xEC,
+ 0xDC, 0x24, 0x93, 0xB5, 0x82, 0xE4, 0x3F, 0xFD,
+ 0xA0, 0x63, 0xF5, 0x46, 0x47, 0xFE, 0x00, 0x00,
+ 0xFE, 0x11, 0x13, 0xF5, 0x0E, 0xBF, 0x0E, 0xBF,
+ 0x13, 0xFF, 0x63, 0xF9, 0x45, 0xCE, 0x05, 0x2A,
+ 0x27, 0xF1, 0x42, 0x42, 0x50, 0x11, 0xFD, 0x3D,
+ 0x77, 0x91, 0x45, 0x38, 0x44, 0x44, 0x27, 0xF0,
+ 0xC7, 0xF3, 0x4F, 0xE5, 0x44, 0x44, 0x46, 0xFF,
+ 0x13, 0xF8, 0xF3, 0xF7, 0x27, 0xFF, 0x27, 0xFA,
+ 0xB0, 0xB3, 0x61, 0x03, 0xC6, 0x0F, 0xDB, 0xFF,
+ 0xFE, 0xB3, 0xD5, 0x13, 0xC5, 0xA0, 0x3F, 0xDC,
+ 0x16, 0xD7, 0x13, 0x63, 0xF6, 0x13, 0xF8, 0x47,
+ 0xFE, 0x36, 0xD2, 0x13, 0xF9, 0x0E, 0xBF, 0x0E,
+ 0xBB, 0x8B, 0xF9, 0x27, 0xFF, 0x8B, 0xF1, 0x47,
+ 0xF7, 0x05, 0x2A, 0x13, 0xFF, 0x13, 0xF6, 0x8B,
+ 0x80, 0x44, 0x00, 0x00, 0x3B, 0xFA, 0x3C, 0x02,
+ 0x4F, 0x42, 0x3B, 0xF6, 0x3E, 0x44, 0x97, 0x8A,
+ 0x3B, 0xFF, 0x13, 0xFC, 0x75, 0x05, 0xFE, 0x02,
+ 0x1F, 0x29, 0xAF, 0x8B, 0xB8, 0x14, 0x16, 0x27,
+ 0xFF, 0xA0, 0x0C, 0xFA, 0xB0, 0x44, 0x5F, 0x3E,
+ 0x13, 0xF8, 0x46, 0x4A, 0xD1, 0x28, 0x01, 0x13,
+ 0xFF, 0x0E, 0xBF, 0x0E, 0xB5, 0xD8, 0x13, 0xFF,
+ 0x9F, 0xF9, 0x45, 0x05, 0x2A, 0x4F, 0xF1, 0x44,
+ 0x40, 0x41, 0xD0, 0x3C, 0x10, 0x31, 0xAF, 0x42,
+ 0x00, 0x00, 0x3F, 0x3F, 0x3F, 0x41, 0x81, 0xB3,
+ 0xF7, 0x46, 0x2B, 0x46, 0x45, 0x44, 0x45, 0x63,
+ 0x52, 0xFF, 0x13, 0xFB, 0x4F, 0xFF, 0x38, 0x7B,
+ 0xD8, 0x14, 0x64, 0x83, 0x13, 0xFF, 0x76, 0xA4,
+ 0x3B, 0xEF, 0xEE, 0x3C, 0x07, 0xDC, 0x4F, 0xC8,
+ 0x0A, 0x2D, 0xFC, 0x15, 0x13, 0xFA, 0x72, 0xC0,
+ 0x47, 0xFF, 0xAF, 0x03, 0x4F, 0xF5, 0x0E, 0xBF,
+ 0x0E, 0xBF, 0xFF, 0x73, 0x0E, 0xB0, 0xDB, 0xFF,
+ 0x68, 0x32, 0xC3, 0x05, 0x29, 0x8B, 0xF0, 0x43,
+ 0x44, 0x40, 0x3F, 0x12, 0xA0, 0x63, 0x71, 0x86,
+ 0x13, 0xFE, 0x3F, 0x3F, 0x42, 0x40, 0x13, 0xF9,
+ 0x8E, 0xB0, 0x44, 0x2F, 0x43, 0x44, 0x13, 0xF6,
+ 0x3D, 0x13, 0xFF, 0x50, 0x0F, 0x13, 0xFF, 0x27,
+ 0xFF, 0xFE, 0x13, 0xF8, 0xC7, 0x44, 0xEF, 0xB8,
+ 0x9F, 0xF4, 0xF0, 0x5F, 0xDC, 0x0A, 0x9F, 0xF5,
+ 0x44, 0x6F, 0x3D, 0x4F, 0xF7, 0x85, 0xA0, 0x45,
+ 0x8C, 0x10, 0x13, 0xF7, 0x0E, 0xBF, 0x0E, 0xBF,
+ 0x9A, 0x13, 0xF5, 0x46, 0x45, 0xEF, 0xFF, 0x05,
+ 0x20, 0x44, 0x05, 0x2A, 0x2D, 0x04, 0x46, 0x44,
+ 0x43, 0x43, 0x40, 0x00, 0x01, 0x45, 0x45, 0x04,
+ 0x3E, 0x3E, 0x37, 0x37, 0x34, 0x00, 0x02, 0x37,
+ 0x37, 0x0B, 0x3E, 0x3E, 0x45, 0x45, 0x01, 0x62,
+ 0x40, 0x27, 0xFB, 0x7A, 0xD1, 0x9F, 0x27, 0xF7,
+ 0x3D, 0x44, 0x8D, 0x76, 0x77, 0xFF, 0x27, 0xFF,
+ 0x27, 0xF5, 0x50, 0x1F, 0xFF, 0x13, 0xFF, 0xC7,
+ 0xA5, 0x50, 0x08, 0x13, 0xFF, 0xF0, 0x03, 0xFA,
+ 0xD8, 0xFF, 0xE0, 0x13, 0xFB, 0x1F, 0x43, 0x43,
+ 0x43, 0x64, 0x20, 0x27, 0xF4, 0x0E, 0xBF, 0x0E,
+ 0xBF, 0x27, 0xF8, 0xF2, 0x13, 0xFF, 0x13, 0xF2,
+ 0x05, 0x2A, 0x13, 0xF0, 0x42, 0x41, 0x14, 0x01,
+ 0x43, 0xFB, 0x13, 0xF0, 0x13, 0xD4, 0x14, 0x12,
+ 0x13, 0xF0, 0x15, 0x73, 0x3F, 0x8B, 0xF6, 0x8B,
+ 0xC1, 0x77, 0x43, 0x16, 0xE0, 0x65, 0x12, 0x27,
+ 0xF3, 0x43, 0x77, 0xEC, 0x8B, 0xFF, 0x60, 0x17,
+ 0xFF, 0x13, 0xFF, 0x13, 0xFF, 0x15, 0xC7, 0x63,
+ 0xD5, 0x50, 0x08, 0x67, 0x8F, 0xF0, 0x0B, 0xEE,
+ 0xE1, 0x1D, 0x2A, 0x2A, 0x43, 0x27, 0xF2, 0xF4,
+ 0x13, 0x13, 0xE1, 0x43, 0xD3, 0x10, 0xFE, 0x13,
+ 0xF6, 0x0E, 0xBF, 0x0E, 0xBF, 0xEF, 0xF2, 0x0E,
+ 0xB2, 0x13, 0xFF, 0x2D, 0x20, 0x42, 0xF8, 0x05,
+ 0x2A, 0x27, 0xF0, 0x4F, 0xE0, 0x13, 0xEE, 0x14,
+ 0x06, 0x3D, 0x3D, 0x3D, 0x77, 0x40, 0x13, 0xF9,
+ 0x27, 0xE1, 0x13, 0xF7, 0x3C, 0x13, 0xFF, 0x77,
+ 0xEF, 0x87, 0xF8, 0xFF, 0x27, 0xFF, 0x13, 0xFF,
+ 0x8E, 0x49, 0x27, 0x75, 0x03, 0xE5, 0x8E, 0x3E,
+ 0xDB, 0xF5, 0xFF, 0x24, 0x8E, 0xFF, 0x90, 0x2A,
+ 0x43, 0x3C, 0x13, 0xE6, 0x3B, 0xF0, 0x5C, 0x30,
+ 0x43, 0x77, 0x46, 0x27, 0xF7, 0x0E, 0xBF, 0x0E,
+ 0xBB, 0x3F, 0x13, 0xF9, 0x3B, 0xFF, 0x3B, 0xF2,
+ 0x9D, 0x05, 0x2A, 0x2D, 0x44, 0x4E, 0x00, 0x13,
+ 0xF0, 0xC8, 0x40, 0x3E, 0x3B, 0xB2, 0x78, 0x32,
+ 0x00, 0x00, 0x3C, 0x42, 0x3C, 0x00, 0x3C, 0x10,
+ 0x3D, 0x40, 0x3C, 0x7D, 0x3E, 0xEF, 0xF2, 0xC5,
+ 0xF0, 0x13, 0xF2, 0x13, 0xE0, 0x13, 0xF8, 0x42,
+ 0xFB, 0x96, 0xFF, 0x27, 0xFF, 0x13, 0xFD, 0xB0,
+ 0xE3, 0x3B, 0xFF, 0x3D, 0x23, 0x13, 0xF8, 0x8D,
+ 0x8B, 0xA0, 0x13, 0x71, 0x47, 0x67, 0x8F, 0xDB,
+ 0xF6, 0x78, 0x09, 0x2D, 0x2A, 0x42, 0x13, 0xFC,
+ 0x7F, 0x41, 0xC8, 0x20, 0x63, 0xF4, 0x0E, 0xBF,
+ 0x0E, 0xBF, 0xD4, 0xB4, 0x13, 0xFF, 0x13, 0xF8,
+ 0x81, 0x05, 0x28, 0x2D, 0x41, 0x3E, 0x3E, 0x40,
+ 0x3F, 0x3B, 0xD2, 0xFE, 0x4F, 0xA3, 0x13, 0xF6,
+ 0x14, 0x01, 0x28, 0x02, 0x13, 0xF3, 0x63, 0xE4,
+ 0x3B, 0xD0, 0x40, 0x3F, 0x40, 0x42, 0x13, 0xF8,
+ 0xDD, 0x85, 0x3B, 0xFF, 0x13, 0xFE, 0xB2, 0x55,
+ 0x13, 0xFF, 0xEF, 0x13, 0xFF, 0x8B, 0xC7, 0xC8,
+ 0x13, 0x47, 0xB4, 0x4F, 0x3B, 0xFD, 0xB3, 0xF4,
+ 0x13, 0xF9, 0x3B, 0x47, 0x47, 0x32, 0xD0, 0xFE,
+ 0x00, 0x77, 0xF4, 0x40, 0x0E, 0xBF, 0x0E, 0xBF,
+ 0xFB, 0xC7, 0xF4, 0x22, 0xA1, 0x4F, 0xFF, 0x91,
+ 0x21, 0x05, 0x2A, 0x2D, 0x3B, 0xB0, 0x14, 0x10,
+ 0xFE, 0xF0, 0x30, 0x63, 0xA1, 0x27, 0xC1, 0x00,
+ 0x33, 0x64, 0x41, 0x28, 0x01, 0x2D, 0x35, 0x2C,
+ 0xEF, 0x32, 0x21, 0x63, 0xE0, 0x13, 0xFC, 0x41,
+ 0xFB, 0x81, 0x47, 0x84, 0xDB, 0xFF, 0x13, 0xFF,
+ 0xFF, 0x62, 0x95, 0xC6, 0xC9, 0x27, 0xFF, 0xF3,
+ 0x67, 0x13, 0xFE, 0xCA, 0x5C, 0x9F, 0xF7, 0x78,
+ 0x55, 0x22, 0x2A, 0x41, 0x3B, 0xF8, 0x42, 0x43,
+ 0x44, 0xC1, 0xB0, 0x46, 0xDB, 0xE9, 0xF0, 0xFE,
+ 0xC2, 0x3F, 0x0E, 0xBF, 0x0E, 0xBC, 0x3E, 0x34,
+ 0x72, 0x0E, 0xB5, 0xD3, 0x63, 0xFF, 0x05, 0x20,
+ 0x42, 0x05, 0x2A, 0x2D, 0x41, 0x03, 0x51, 0xC8,
+ 0x00, 0xE1, 0x3B, 0xD2, 0x13, 0xFA, 0x3C, 0x11,
+ 0x42, 0x3D, 0x3D, 0x3C, 0x13, 0xF4, 0x9F, 0xDC,
+ 0xF3, 0x43, 0x42, 0x7A, 0xD0, 0x13, 0xFB, 0x63,
+ 0xFF, 0x63, 0xEF, 0x50, 0x2A, 0xFF, 0x88, 0xD2,
+ 0x3B, 0xFF, 0xDE, 0x1C, 0x77, 0x36, 0x3B, 0xF3,
+ 0x28, 0x02, 0x28, 0x50, 0xC7, 0xFF, 0xF1, 0x27,
+ 0xF7, 0x64, 0x02, 0x13, 0xF2, 0x63, 0xF4, 0x42,
+ 0x40, 0x44, 0xE8, 0x00, 0xFF, 0x50, 0x01, 0x13,
+ 0xF3, 0x0E, 0xBF, 0x0E, 0xBC, 0x27, 0xF7, 0x0E,
+ 0xB1, 0x77, 0xFF, 0x19, 0x20, 0x40, 0x3F, 0x05,
+ 0x2A, 0x2D, 0x40, 0x39, 0x39, 0x3D, 0x3B, 0xFA,
+ 0x27, 0xE3, 0x27, 0xD7, 0x50, 0x43, 0x28, 0x01,
+ 0x13, 0xF8, 0x2D, 0x27, 0xE3, 0x42, 0x5F, 0x3F,
+ 0x3B, 0xF8, 0x40, 0x33, 0x86, 0x77, 0xFF, 0x4F,
+ 0xFE, 0x4C, 0x33, 0xED, 0x23, 0xF7, 0x4F, 0xFF,
+ 0x4F, 0xFA, 0xB4, 0xF1, 0x8B, 0x33, 0x47, 0x13,
+ 0xFF, 0xB3, 0xFF, 0xDB, 0xC5, 0xAF, 0xF0, 0x91,
+ 0x40, 0x13, 0xFA, 0x3F, 0x13, 0xF9, 0x0E, 0xBF,
+ 0x0E, 0xBD, 0x3B, 0xF5, 0xFD, 0x0E, 0xB3, 0x8B,
+ 0xFF, 0x13, 0xF1, 0x05, 0x2A, 0x4F, 0xF0, 0x13,
+ 0xF2, 0x3D, 0x13, 0xFF, 0x03, 0x34, 0x37, 0x3D,
+ 0x45, 0x45, 0x39, 0x27, 0xF8, 0x63, 0xD2, 0x07,
+ 0x43, 0x42, 0x3F, 0x3D, 0x41, 0x13, 0xFA, 0xF0,
+ 0x23, 0x8B, 0xFF, 0xFF, 0xED, 0xC7, 0x4B, 0xC4,
+ 0x13, 0xFF, 0x63, 0xFF, 0x13, 0xF9, 0xEF, 0xB2,
+ 0x13, 0xFF, 0xC7, 0xFF, 0xD3, 0xE4, 0x45, 0xFA,
+ 0x40, 0x2A, 0x13, 0xFA, 0x41, 0x44, 0xAD, 0xB0,
+ 0xA0, 0x30, 0x7F, 0x46, 0x3B, 0xF4, 0x0E, 0xBF,
+ 0x0E, 0xBC, 0x4F, 0xF6, 0x72, 0x92, 0x9F, 0xFF,
+ 0x05, 0x20, 0xC0, 0xB2, 0xE1, 0x05, 0x27, 0x2D,
+ 0x41, 0x3A, 0x39, 0x37, 0x38, 0xF7, 0x4F, 0xD0,
+ 0x27, 0xFF, 0xB4, 0x50, 0x27, 0xF1, 0x3E, 0xDB,
+ 0xF6, 0x8B, 0xC3, 0x3D, 0x20, 0xBF, 0x13, 0xF8,
+ 0x2D, 0xFB, 0x64, 0x77, 0xFF, 0x5C, 0x26, 0x13,
+ 0xFF, 0x27, 0xFF, 0x12, 0xF3, 0xE3, 0x27, 0xFA,
+ 0xB3, 0xA4, 0x27, 0xF3, 0x47, 0x48, 0x46, 0x64,
+ 0x11, 0x3B, 0xFF, 0xCF, 0xEF, 0xFF, 0x27, 0xF9,
+ 0x46, 0x3F, 0x4F, 0x20, 0x9B, 0x00, 0x13, 0xF5,
+ 0x0E, 0xBF, 0xFD, 0x0E, 0xBC, 0x9A, 0xB2, 0x9F,
+ 0xF2, 0xC2, 0x71, 0xB3, 0xFF, 0xB8, 0x30, 0x3E,
+ 0x05, 0x2A, 0x72, 0x2D, 0x89, 0xF0, 0x13, 0xFF,
+ 0x13, 0xF7, 0x39, 0x36, 0x13, 0xF5, 0x2A, 0x62,
+ 0x2D, 0xDB, 0xC0, 0x94, 0xF0, 0x3F, 0x3E, 0x3E,
+ 0x27, 0xF6, 0x3B, 0x3F, 0x3F, 0x2B, 0x14, 0x05,
+ 0xB3, 0xFF, 0x70, 0x35, 0x4B, 0xC5, 0x88, 0x33,
+ 0x38, 0xF4, 0xFF, 0x4E, 0x89, 0xF1, 0x95, 0x63,
+ 0xAA, 0xEF, 0xB6, 0x04, 0x01, 0x13, 0xF6, 0x8C,
Commit: 4cce54efee1779d4374a6e218649e186408f6816
https://github.com/scummvm/scummvm/commit/4cce54efee1779d4374a6e218649e186408f6816
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:22+01:00
Commit Message:
KYRA: (EOB) - fix load menu graphics glitch
Cut off long save slot descriptions from the GMM save dialogue when they're displayed in the original load menu.
Changed paths:
engines/kyra/gui_eob.cpp
diff --git a/engines/kyra/gui_eob.cpp b/engines/kyra/gui_eob.cpp
index 1e4fc43..4b10021 100644
--- a/engines/kyra/gui_eob.cpp
+++ b/engines/kyra/gui_eob.cpp
@@ -4102,8 +4102,9 @@ void GUI_EoB::drawSaveSlotButton(int slot, int redrawBox, int textCol) {
int x = _saveSlotX + 4;
int y = _saveSlotY + slot * 17 + 20;
int w = 167;
- const char *s = (slot < 6) ? _saveSlotStringsTemp[slot] : _vm->_saveLoadStrings[0];
-
+ char slotString[26];
+ Common::strlcpy(slotString, slot < 6 ? _saveSlotStringsTemp[slot] : _vm->_saveLoadStrings[0], _vm->gameFlags().platform == Common::kPlatformFMTowns ? 25 : 20);
+
if (slot >= 6) {
x = _saveSlotX + 118;
y = _saveSlotY + 126;
@@ -4119,7 +4120,7 @@ void GUI_EoB::drawSaveSlotButton(int slot, int redrawBox, int textCol) {
y++;
}
- _screen->printShadedText(s, x + 4, y + 3, textCol, 0);
+ _screen->printShadedText(slotString, x + 4, y + 3, textCol, 0);
_vm->screen()->setFont(fnt);
}
Commit: b81493718e4474b995a94f552b3a01d157462251
https://github.com/scummvm/scummvm/commit/b81493718e4474b995a94f552b3a01d157462251
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:22+01:00
Commit Message:
KYRA: (EOB) - fix 16 bit mouse cursor color key
Changed paths:
engines/kyra/screen_eob.cpp
engines/kyra/screen_eob.h
diff --git a/engines/kyra/screen_eob.cpp b/engines/kyra/screen_eob.cpp
index e24f621..629d00c 100644
--- a/engines/kyra/screen_eob.cpp
+++ b/engines/kyra/screen_eob.cpp
@@ -38,7 +38,7 @@
namespace Kyra {
-Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system, _screenDimTable, _screenDimTableCount) {
+Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system, _screenDimTable, _screenDimTableCount), _cursorColorKey16Bit(0x8000) {
_dsBackgroundFading = false;
_dsShapeFadingLevel = 0;
_dsBackgroundFadingXOffs = 0;
@@ -133,7 +133,7 @@ void Screen_EoB::setMouseCursor(int x, int y, const byte *shape, const uint8 *ov
int mouseW = (shape[2] << 3);
int mouseH = (shape[3]);
- int colorKey = (_renderMode == Common::kRenderCGA) ? 0 : _cursorColorKey;
+ int colorKey = (_renderMode == Common::kRenderCGA) ? 0 : (_bytesPerPixel == 2 ? _cursorColorKey16Bit : _cursorColorKey);
int scaleFactor = _vm->gameFlags().useHiRes ? 2 : 1;
int bpp = _useHiColorScreen ? 2 : 1;
@@ -141,7 +141,6 @@ void Screen_EoB::setMouseCursor(int x, int y, const byte *shape, const uint8 *ov
uint8 *cursor = new uint8[mouseW * scaleFactor * bpp * mouseH * scaleFactor];
if (_bytesPerPixel == 2) {
- colorKey = _16bitPalette[colorKey];
for (int s = mouseW * scaleFactor * bpp * mouseH * scaleFactor; s; s -= 2)
*(uint16*)(cursor + s - 2) = colorKey;
} else {
diff --git a/engines/kyra/screen_eob.h b/engines/kyra/screen_eob.h
index f213fc9..f5bd987 100644
--- a/engines/kyra/screen_eob.h
+++ b/engines/kyra/screen_eob.h
@@ -125,6 +125,8 @@ private:
uint8 *_egaDitheringTable;
uint8 *_egaDitheringTempPage;
+ const uint16 _cursorColorKey16Bit;
+
static const uint8 _egaMatchTable[];
static const ScreenDim _screenDimTable[];
static const int _screenDimTableCount;
Commit: 09f513fb1134492ed69798897414611dd8a05e83
https://github.com/scummvm/scummvm/commit/09f513fb1134492ed69798897414611dd8a05e83
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:23+01:00
Commit Message:
KYRA: (EOB) - fix minor graphics glitch in FM-TOWNS version
(wrong text box shading in certain cut scenes)
Changed paths:
engines/kyra/text_rpg.cpp
diff --git a/engines/kyra/text_rpg.cpp b/engines/kyra/text_rpg.cpp
index cc7ab06..3020a63 100644
--- a/engines/kyra/text_rpg.cpp
+++ b/engines/kyra/text_rpg.cpp
@@ -727,11 +727,11 @@ void TextDisplayer_rpg::displayWaitButton() {
_screen->set16bitShadingLevel(4);
_screen->fillRect(_vm->_dialogueButtonPosX[0], _vm->_dialogueButtonPosY[0], _vm->_dialogueButtonPosX[0] + _vm->_dialogueButtonWidth - 1, _vm->_dialogueButtonPosY[0] + _vm->guiSettings()->buttons.height - 1, _vm->guiSettings()->colors.fill);
+ clearCurDim();
_screen->set16bitShadingLevel(0);
_screen->updateScreen();
_vm->_dialogueButtonWidth = 95;
SWAP(_vm->_dialogueButtonLabelColor1, _vm->_dialogueButtonLabelColor2);
- clearCurDim();
}
} // End of namespace Kyra
Commit: 91c463184d9a2ed429baae343039f28c9671d523
https://github.com/scummvm/scummvm/commit/91c463184d9a2ed429baae343039f28c9671d523
Author: athrxx (athrxx at scummvm.org)
Date: 2018-11-14T17:22:23+01:00
Commit Message:
KYRA: (EOB II FM-TOWNS) - fix mouse cursor hot spot
Changed paths:
engines/kyra/screen_eob.cpp
diff --git a/engines/kyra/screen_eob.cpp b/engines/kyra/screen_eob.cpp
index 629d00c..4eae318 100644
--- a/engines/kyra/screen_eob.cpp
+++ b/engines/kyra/screen_eob.cpp
@@ -187,7 +187,7 @@ void Screen_EoB::setMouseCursor(int x, int y, const byte *shape, const uint8 *ov
colorKey = _16bitConversionPalette ? _16bitConversionPalette[colorKey] : colorKey;
Graphics::PixelFormat pixelFormat = _system->getScreenFormat();
- CursorMan.replaceCursor(cursor, mouseW * scaleFactor, mouseH * scaleFactor, x, y, colorKey, false, &pixelFormat);
+ CursorMan.replaceCursor(cursor, mouseW * scaleFactor, mouseH * scaleFactor, x * scaleFactor, y * scaleFactor, colorKey, false, &pixelFormat);
if (isMouseVisible())
CursorMan.showMouse(true);
delete[] cursor;
More information about the Scummvm-git-logs
mailing list