From f1b7b11acf70ddbc096980e6fd8d894d237b2b0e Mon Sep 17 00:00:00 2001 From: Matt Mets Date: Sun, 26 Feb 2017 18:33:07 +0800 Subject: [PATCH] Use firmware store for default firmware --- .gitignore | 1 + .../BlinkyTape.h | 0 .../PatternPlayer_Sketch.ino | 0 .../README.md | 0 .../SerialLoop.cpp | 0 .../SerialLoop.h | 0 .../hex_to_header.py | 0 buildArduinoFirmware.sh | 91 ++- src/app/gui/mainwindow.cpp | 4 +- src/libblinky-test/firmwarestoretests.cpp | 100 ++- src/libblinky-test/firmwarestoretests.h | 21 +- src/libblinky-test/main.cpp | 6 +- src/libblinky/PatternPlayer_Sketch.h | 537 ------------- src/libblinky/ProductionSketch.h | 745 ------------------ src/libblinky/blinkytapeuploaddata.cpp | 49 +- src/libblinky/blinkytapeuploader.cpp | 26 +- .../firmware/blinkytape/default/README.md | 2 + .../firmware/blinkytape/default/default.hex | 525 ++++++++++++ .../firmware/blinkytape/factory/factory.hex | 734 +++++++++++++++++ src/libblinky/firmware/firmware.qrc | 7 + src/libblinky/firmwarestore.cpp | 142 ++-- src/libblinky/firmwarestore.h | 12 +- src/libblinky/libblinky.pro | 5 +- 23 files changed, 1571 insertions(+), 1436 deletions(-) rename {src/PatternPlayer_Sketch => PatternPlayer_Sketch}/BlinkyTape.h (100%) rename {src/PatternPlayer_Sketch => PatternPlayer_Sketch}/PatternPlayer_Sketch.ino (100%) rename {src/PatternPlayer_Sketch => PatternPlayer_Sketch}/README.md (100%) rename {src/PatternPlayer_Sketch => PatternPlayer_Sketch}/SerialLoop.cpp (100%) rename {src/PatternPlayer_Sketch => PatternPlayer_Sketch}/SerialLoop.h (100%) rename {src/PatternPlayer_Sketch => PatternPlayer_Sketch}/hex_to_header.py (100%) delete mode 100644 src/libblinky/PatternPlayer_Sketch.h delete mode 100644 src/libblinky/ProductionSketch.h create mode 100644 src/libblinky/firmware/blinkytape/default/README.md create mode 100644 src/libblinky/firmware/blinkytape/default/default.hex create mode 100644 src/libblinky/firmware/blinkytape/factory/factory.hex create mode 100644 src/libblinky/firmware/firmware.qrc diff --git a/.gitignore b/.gitignore index 43bdaf2..302cf7c 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ src/*.user build-* PatternPaint/*.user windows-drivers/* +firmware/* diff --git a/src/PatternPlayer_Sketch/BlinkyTape.h b/PatternPlayer_Sketch/BlinkyTape.h similarity index 100% rename from src/PatternPlayer_Sketch/BlinkyTape.h rename to PatternPlayer_Sketch/BlinkyTape.h diff --git a/src/PatternPlayer_Sketch/PatternPlayer_Sketch.ino b/PatternPlayer_Sketch/PatternPlayer_Sketch.ino similarity index 100% rename from src/PatternPlayer_Sketch/PatternPlayer_Sketch.ino rename to PatternPlayer_Sketch/PatternPlayer_Sketch.ino diff --git a/src/PatternPlayer_Sketch/README.md b/PatternPlayer_Sketch/README.md similarity index 100% rename from src/PatternPlayer_Sketch/README.md rename to PatternPlayer_Sketch/README.md diff --git a/src/PatternPlayer_Sketch/SerialLoop.cpp b/PatternPlayer_Sketch/SerialLoop.cpp similarity index 100% rename from src/PatternPlayer_Sketch/SerialLoop.cpp rename to PatternPlayer_Sketch/SerialLoop.cpp diff --git a/src/PatternPlayer_Sketch/SerialLoop.h b/PatternPlayer_Sketch/SerialLoop.h similarity index 100% rename from src/PatternPlayer_Sketch/SerialLoop.h rename to PatternPlayer_Sketch/SerialLoop.h diff --git a/src/PatternPlayer_Sketch/hex_to_header.py b/PatternPlayer_Sketch/hex_to_header.py similarity index 100% rename from src/PatternPlayer_Sketch/hex_to_header.py rename to PatternPlayer_Sketch/hex_to_header.py diff --git a/buildArduinoFirmware.sh b/buildArduinoFirmware.sh index 3c1636f..e2684fb 100644 --- a/buildArduinoFirmware.sh +++ b/buildArduinoFirmware.sh @@ -1,41 +1,78 @@ #!/bin/bash +# Firmware builder for BlinkyTape devices in PatternPaint +# +# To use this, you'll need to install Arduino (1.8.1 is current as of writing). +# +# You'll also need to add the following board support packages: +# * Blinkinlabs32u4 boards +# +# And the following libraries: +# * FastLED (available through the library manager) +# * BlinkyTape (download from https://github.com/Blinkinlabs/BlinkyTape_Arduino/releases) +# +# Note for Windows: you'll also need MinGW to run this script, as described in the PatternPaint readme. + + + # Stop at any error set -e -# Note: Use Arduino 1.6.12 -ARDUINO="/Applications/Arduino-1.6.12.app/Contents/MacOS/Arduino" -BOARD="Blinkinlabs:avr:blinkytape" -HEX_CONVERTER="src/PatternPlayer_Sketch/hex_to_header.py" - -SKETCH_NAME='PatternPlayer_Sketch' -SKETCH_DIR="$PWD/src/PatternPlayer_Sketch" -OUTPUT_DIR="src/libblinky/controllers" -OUTPUT_NAME="PATTERNPLAYER" +if [ -z ${ARDUINO+x} ]; then + echo "ARDUINO not defined- please set it to the full path to the Arduino executable. For example:" + echo "macOS: export ARDUINO=/Applications/Arduino-1.6.12.app/Contents/MacOS/Arduino" + echo "Windows: export ARDUINO=/c/Program\ Files\ \(x86\)/Arduino/arduino.exe" + exit 1 +fi +BOARD="blinkinlabs:avr:blinkytape" ARDUINO_FLAGS="--verify --verbose --preserve-temp-files --board ${BOARD}" -# Compile the sketch, and extract the .hex filename from the output, then convert it to a header -# -# | grep ${SKETCH_NAME}\.ino\.hex \ search for a line that contains the .hex filename -HEX=`${ARDUINO} ${ARDUINO_FLAGS} ${SKETCH_DIR}/${SKETCH_NAME}.ino \ - | grep ${SKETCH_NAME}\.ino\.hex \ - | sed 's/\"//g' \ - | grep -oE "[^[:blank:]]+$"` +# Project root +BASEDIR=`pwd` + +# Directory to place the compiled firmware +OUTPUT_DIR=${BASEDIR}/src/libblinky/firmware/blinkytape + +# Temporary location to store firmware repos +FIRMWARE=${BASEDIR}/firmware + +# BlinkyTape default firmware +BLINKYTAPE_FIRMWARE=${FIRMWARE}/BlinkyTape + +################## Get device firmware repositories ############## +function getRepo { + # $1 is output directory + # $2 is repo location + + if [ ! -d "$1" ]; then + git clone --depth 1 $2 $1 + else + pushd $1 + git pull + popd + fi +} -${HEX_CONVERTER} ${HEX} ${OUTPUT_NAME} > ${OUTPUT_DIR}/${SKETCH_NAME}.h +getRepo ${BLINKYTAPE_FIRMWARE} https://github.com/Blinkinlabs/BlinkyTape_Arduino.git -SKETCH_NAME='ProductionSketch' -SKETCH_DIR="$PWD/..//BlinkyTape_Arduino/examples/ProductionSketch" -OUTPUT_DIR="src/controllers" -OUTPUT_NAME="PRODUCTION" +################## Compile the firmware ########################## +function compileFirmware { + # $1 is the base sketch directory + # $2 is the sketch name + # $3 is the hex file output directory + # $4 is the hex filename -# Compile the sketch, and extract the .hex filename from the output, then convert it to a header + # Compile the sketch, and extract the .hex filename from the output, then convert it to a header + HEX=`"${ARDUINO}" ${ARDUINO_FLAGS} ${1}/${2}/${2}.ino \ + | grep ${2}\.ino\.hex \ + | sed 's/\"//g' \ + | grep -oE "[^[:blank:]]+$"` + echo ${HEX} -HEX=`${ARDUINO} ${ARDUINO_FLAGS} ${SKETCH_DIR}/${SKETCH_NAME}.ino \ - | grep ${SKETCH_NAME}\.ino\.hex \ - | sed 's/\"//g' \ - | grep -oE "[^[:blank:]]+$"` + mv "${HEX}" ${3}/${4}/${4}.hex +} -${HEX_CONVERTER} ${HEX} ${OUTPUT_NAME} > ${OUTPUT_DIR}/${SKETCH_NAME}.h +compileFirmware ${BASEDIR} "PatternPlayer_Sketch" ${OUTPUT_DIR} default +compileFirmware ${BLINKYTAPE_FIRMWARE}/examples "ProductionSketch" ${OUTPUT_DIR} factory diff --git a/src/app/gui/mainwindow.cpp b/src/app/gui/mainwindow.cpp index 98d251b..c52e3ba 100644 --- a/src/app/gui/mainwindow.cpp +++ b/src/app/gui/mainwindow.cpp @@ -211,7 +211,7 @@ MainWindow::MainWindow(QWidget *parent) : QSize(DEFAULT_FIXTURE_WIDTH, DEFAULT_FIXTURE_HEIGHT)).toSize(); - scene.firmwareName = settings.value("BlinkyTape/firmwareName", DEFAULT_FIRMWARE_NAME).toString(); + scene.firmwareName = settings.value("BlinkyTape/firmwareName", BLINKYTAPE_DEFAULT_FIRMWARE_NAME).toString(); scene.fixtureType = settings.value("Fixture/Type", DEFAULT_FIXTURE_TYPE).toString(); scene.colorMode = (ColorMode)settings.value("Fixture/ColorOrder", RGB).toInt(); @@ -1207,7 +1207,7 @@ void MainWindow::on_actionConfigure_Scene_triggered() QSettings settings; // TODO: roll this into the persistant sceneTemplate - sceneTemplate.firmwareName = settings.value("BlinkyTape/firmwareName", DEFAULT_FIRMWARE_NAME).toString(); + sceneTemplate.firmwareName = settings.value("BlinkyTape/firmwareName", BLINKYTAPE_DEFAULT_FIRMWARE_NAME).toString(); sceneConfiguration.setSceneTemplate(sceneTemplate); diff --git a/src/libblinky-test/firmwarestoretests.cpp b/src/libblinky-test/firmwarestoretests.cpp index a3d6306..9bc63c8 100644 --- a/src/libblinky-test/firmwarestoretests.cpp +++ b/src/libblinky-test/firmwarestoretests.cpp @@ -3,22 +3,10 @@ #include -void FirmwareStoreTests::listAvailableFirmwareHasDefaultTest() +void FirmwareStoreTests::listFirmwareSearchPathsTest() { - QStringList availableFirmware = FirmwareStore::listAvailableFirmware(); - - QVERIFY(availableFirmware.contains(DEFAULT_FIRMWARE_NAME)); -} - -void FirmwareStoreTests::getFirmwareDescriptionHasDefaultTest() -{ - QString description = FirmwareStore::getFirmwareDescription(DEFAULT_FIRMWARE_NAME); - - QString expectedDescription; - expectedDescription.append("Default BlinkyTape Firmware\n"); - expectedDescription.append("Use this for all standard functions"); - - QVERIFY(description == expectedDescription); + // There should be at least the BlinkyTape built-in and third-party locations + QVERIFY(FirmwareStore::listFirmwareSearchPaths().count() == 2); } void FirmwareStoreTests::addFirmwareBadSourceDirectoryTest() @@ -26,7 +14,7 @@ void FirmwareStoreTests::addFirmwareBadSourceDirectoryTest() FirmwareStore firmwareStore; QString expectedError = "Source directory doesn't exist"; - QVERIFY(firmwareStore.addFirmware("qrc:///does/not/exist") == false); + QVERIFY(firmwareStore.addFirmware(":/does/not/exist") == false); QVERIFY(firmwareStore.getErrorString() == expectedError); } @@ -42,11 +30,85 @@ void FirmwareStoreTests::addFirmwareEmptyDirectoryTest() QVERIFY(firmwareStore.getErrorString() == expectedError); } -void FirmwareStoreTests::removeFirmwareDefaultFails() +void FirmwareStoreTests::addFirmwareAlreadyExistsTest() +{ + FirmwareStore firmwareStore; + QString expectedError = "Firmware with this name already exists, please use a different name!"; + + QVERIFY(firmwareStore.addFirmware(BLINKYTAPE_DEFAULT_FIRMWARE_NAME) == false); + QVERIFY(firmwareStore.getErrorString() == expectedError); +} + +void FirmwareStoreTests::removeFirmwareDoesntExitTest() +{ + FirmwareStore firmwareStore; + QString expectedError = "No firmware with that name found"; + + QVERIFY(firmwareStore.removeFirmware("thisfirmwaredoesntexist") == false); + QVERIFY(firmwareStore.getErrorString() == expectedError); +} + +void FirmwareStoreTests::removeFirmwareDefaultFailsTest() { FirmwareStore firmwareStore; - QString expectedError = "Cannot remove default firmware"; + QString expectedError = "Cannot remove built-in firmware"; - QVERIFY(firmwareStore.removeFirmware(DEFAULT_FIRMWARE_NAME) == false); + QVERIFY(firmwareStore.removeFirmware(BLINKYTAPE_DEFAULT_FIRMWARE_NAME) == false); QVERIFY(firmwareStore.getErrorString() == expectedError); } + +void FirmwareStoreTests::listAvailableFirmwareBlinkyTapeFirmwaresTest_data() +{ + // Test that we have all of the firmware needed for BlinkyTape functionality + + QTest::addColumn("name"); + + QTest::newRow("defaut") << QString("default"); + QTest::newRow("factory") << QString("factory"); +} + +void FirmwareStoreTests::listAvailableFirmwareBlinkyTapeFirmwaresTest() +{ + QFETCH(QString, name); + + QStringList availableFirmware = FirmwareStore::listAvailableFirmware(); + + QVERIFY(availableFirmware.contains(name)); +} + +void FirmwareStoreTests::getFirmwareDirectoryNameDoesntExistTest() +{ + QVERIFY(FirmwareStore::getFirmwareDirectoryName("thisfirmwaredoesntexist").isNull()); +} + +void FirmwareStoreTests::getFirmwareDirectoryNameHasBlinkyTapeDefaultTest() +{ + QString expectedDirectory(":/firmware/blinkytape/default"); + + QVERIFY(FirmwareStore::getFirmwareDirectoryName(BLINKYTAPE_DEFAULT_FIRMWARE_NAME) == expectedDirectory); +} + +void FirmwareStoreTests::getFirmwareDescriptionDoesntExistTest() +{ + QVERIFY(FirmwareStore::getFirmwareDescription("thisfirmwaredoesntexist").isNull()); +} + + +void FirmwareStoreTests::getFirmwareDescriptionHasBlinkyTapeDefaultTest() +{ + QString expectedDescription; + expectedDescription.append("Default BlinkyTape Firmware\n"); + expectedDescription.append("Use this for all standard functions\n"); + + QVERIFY(FirmwareStore::getFirmwareDescription(BLINKYTAPE_DEFAULT_FIRMWARE_NAME) == expectedDescription); +} + +void FirmwareStoreTests::getFirmwareDataDoesntExistTest() +{ + QVERIFY(FirmwareStore::getFirmwareData("thisfirmwaredoesntexist").isNull()); +} + +void FirmwareStoreTests::getFirmwareDataHasBlinkyTapeDefaultTest() +{ + QVERIFY(!FirmwareStore::getFirmwareData(BLINKYTAPE_DEFAULT_FIRMWARE_NAME).isNull()); +} diff --git a/src/libblinky-test/firmwarestoretests.h b/src/libblinky-test/firmwarestoretests.h index ddeff55..ccee8d0 100644 --- a/src/libblinky-test/firmwarestoretests.h +++ b/src/libblinky-test/firmwarestoretests.h @@ -6,14 +6,27 @@ class FirmwareStoreTests : public QObject { Q_OBJECT -private slots: - void listAvailableFirmwareHasDefaultTest(); - void getFirmwareDescriptionHasDefaultTest(); +private slots: + void listFirmwareSearchPathsTest(); void addFirmwareBadSourceDirectoryTest(); void addFirmwareEmptyDirectoryTest(); + void addFirmwareAlreadyExistsTest(); - void removeFirmwareDefaultFails(); + void removeFirmwareDoesntExitTest(); + void removeFirmwareDefaultFailsTest(); + + void listAvailableFirmwareBlinkyTapeFirmwaresTest_data(); + void listAvailableFirmwareBlinkyTapeFirmwaresTest(); + + void getFirmwareDirectoryNameDoesntExistTest(); + void getFirmwareDirectoryNameHasBlinkyTapeDefaultTest(); + + void getFirmwareDescriptionDoesntExistTest(); + void getFirmwareDescriptionHasBlinkyTapeDefaultTest(); + + void getFirmwareDataDoesntExistTest(); + void getFirmwareDataHasBlinkyTapeDefaultTest(); }; #endif // FIRMWARESTORETESTS_H diff --git a/src/libblinky-test/main.cpp b/src/libblinky-test/main.cpp index 9fdd296..585c021 100644 --- a/src/libblinky-test/main.cpp +++ b/src/libblinky-test/main.cpp @@ -58,11 +58,11 @@ int main(int argc, char *argv[]) LinearFixtureTests linearFixtureTests; result |= QTest::qExec(&linearFixtureTests); - FirmwareStoreTests firmwareStoreTests; - result |= QTest::qExec(&firmwareStoreTests); - FirmwareReaderTests firmwareReaderTests; result |= QTest::qExec(&firmwareReaderTests); + FirmwareStoreTests firmwareStoreTests; + result |= QTest::qExec(&firmwareStoreTests); + return result; } diff --git a/src/libblinky/PatternPlayer_Sketch.h b/src/libblinky/PatternPlayer_Sketch.h deleted file mode 100644 index 1a63bb3..0000000 --- a/src/libblinky/PatternPlayer_Sketch.h +++ /dev/null @@ -1,537 +0,0 @@ -#ifndef PATTERNPLAYER_SKETCH_H -#define PATTERNPLAYER_SKETCH_H - -// Generated automatically on: Wed Sep 28 02:41:20 2016 - -#include - -#define PATTERNPLAYER_ADDRESS 0x0000 -#define PATTERNPLAYER_LENGTH 8370 - -const uint8_t PATTERNPLAYER_DATA[] = { -0x0C, 0x94, 0xC5, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, -0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, -0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xF1, 0x03, 0x0C, 0x94, 0x32, 0x07, 0x0C, 0x94, 0xA4, 0x07, -0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, -0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, -0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xD8, 0x0A, -0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, -0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, -0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, -0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xED, 0x00, -0x0C, 0x94, 0xED, 0x00, 0x0C, 0x94, 0xB6, 0x04, 0x0C, 0x94, 0xED, 0x00, 0x08, 0x0B, 0x00, 0x02, -0x02, 0x02, 0x01, 0x00, 0x09, 0x04, 0x00, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x05, 0x24, 0x00, -0x10, 0x01, 0x05, 0x24, 0x01, 0x01, 0x01, 0x04, 0x24, 0x02, 0x06, 0x05, 0x24, 0x06, 0x00, 0x01, -0x07, 0x05, 0x81, 0x03, 0x10, 0x00, 0x40, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x00, -0x07, 0x05, 0x02, 0x02, 0x40, 0x00, 0x00, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x00, 0x04, 0x03, -0x09, 0x04, 0x42, 0x6C, 0x69, 0x6E, 0x6B, 0x69, 0x6E, 0x6C, 0x61, 0x62, 0x73, 0x00, 0x42, 0x6C, -0x69, 0x6E, 0x6B, 0x79, 0x54, 0x61, 0x70, 0x65, 0x00, 0x12, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, -0x40, 0x50, 0x1D, 0x5E, 0x60, 0x00, 0x01, 0x01, 0x02, 0x03, 0x01, 0x12, 0x01, 0x00, 0x02, 0xEF, -0x02, 0x01, 0x40, 0x50, 0x1D, 0x5E, 0x60, 0x00, 0x01, 0x01, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, -0x00, 0x25, 0x00, 0x28, 0x00, 0x2B, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, -0x00, 0x27, 0x00, 0x2A, 0x00, 0x2D, 0x00, 0x30, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x04, -0x05, 0x02, 0x02, 0x02, 0x02, 0x04, 0x03, 0x02, 0x02, 0x02, 0x02, 0x06, 0x06, 0x06, 0x06, 0x06, -0x06, 0x04, 0x04, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x02, 0x01, 0x10, 0x40, 0x80, 0x40, -0x10, 0x20, 0x40, 0x80, 0x40, 0x80, 0x08, 0x02, 0x04, 0x01, 0x80, 0x40, 0x20, 0x10, 0x02, 0x01, -0x10, 0x80, 0x10, 0x20, 0x40, 0x40, 0x20, 0x00, 0xCD, 0x0C, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, -0xDA, 0xE0, 0xDE, 0xBF, 0xCD, 0xBF, 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEC, 0xE6, 0xF0, 0xE2, -0x02, 0xC0, 0x05, 0x90, 0x0D, 0x92, 0xA6, 0x34, 0xB1, 0x07, 0xD9, 0xF7, 0x28, 0xE0, 0xA6, 0xE4, -0xB1, 0xE0, 0x01, 0xC0, 0x1D, 0x92, 0xA8, 0x31, 0xB2, 0x07, 0xE1, 0xF7, 0x10, 0xE0, 0xC5, 0xEC, -0xD0, 0xE0, 0x04, 0xC0, 0x21, 0x97, 0xFE, 0x01, 0x0E, 0x94, 0x04, 0x10, 0xC4, 0x3C, 0xD1, 0x07, -0xC9, 0xF7, 0x0E, 0x94, 0x04, 0x0D, 0x0C, 0x94, 0x34, 0x10, 0x0C, 0x94, 0x00, 0x00, 0x80, 0xE9, -0x91, 0xE0, 0x08, 0x95, 0x3F, 0x9A, 0x08, 0x95, 0x80, 0xE0, 0x90, 0xE0, 0x08, 0x95, 0xFC, 0x01, -0x85, 0x85, 0x96, 0x85, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, -0xCD, 0xB7, 0xDE, 0xB7, 0xAB, 0x01, 0x1C, 0x82, 0x1D, 0x82, 0x1E, 0x82, 0xDC, 0x01, 0xED, 0x91, -0xFC, 0x91, 0x01, 0x90, 0xF0, 0x81, 0xE0, 0x2D, 0x19, 0x82, 0x1A, 0x82, 0x1B, 0x82, 0x9E, 0x01, -0x2F, 0x5F, 0x3F, 0x4F, 0xBE, 0x01, 0x6C, 0x5F, 0x7F, 0x4F, 0x09, 0x95, 0x26, 0x96, 0x0F, 0xB6, -0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, 0xDF, 0x91, 0xCF, 0x91, 0x08, 0x95, 0x4F, 0x92, -0x5F, 0x92, 0x6F, 0x92, 0x7F, 0x92, 0x8F, 0x92, 0xAF, 0x92, 0xBF, 0x92, 0xCF, 0x92, 0xDF, 0x92, -0xEF, 0x92, 0xFF, 0x92, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x3C, 0x01, 0xEB, 0x01, 0x0E, 0x94, -0xE1, 0x09, 0xF3, 0x01, 0x27, 0x85, 0x30, 0x89, 0x62, 0x1B, 0x73, 0x0B, 0x6A, 0x30, 0x71, 0x05, -0xB0, 0xF3, 0xF8, 0x94, 0xE8, 0x81, 0xF9, 0x81, 0x78, 0xB1, 0x70, 0x68, 0x88, 0xB1, 0x8F, 0x77, -0x88, 0xB9, 0xCA, 0x84, 0x9F, 0x81, 0x2C, 0x2D, 0x29, 0x1B, 0x92, 0x2F, 0x2F, 0x83, 0xBF, 0x84, -0x4A, 0x80, 0x5B, 0x80, 0xFD, 0x84, 0xEC, 0x84, 0xDE, 0x84, 0xF3, 0x94, 0xE3, 0x94, 0xD3, 0x94, -0x3E, 0x81, 0x48, 0x85, 0xA9, 0x84, 0x8B, 0x84, 0x11, 0x81, 0xD2, 0x01, 0x20, 0xE0, 0x52, 0x2F, -0x62, 0x2F, 0x61, 0x81, 0x11, 0x27, 0x88, 0x94, 0x61, 0x11, 0x69, 0x0F, 0x08, 0xF4, 0x6F, 0xEF, -0x91, 0x95, 0x88, 0x94, 0xF0, 0xFC, 0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0xF1, 0xFC, 0x16, 0x0F, -0x17, 0x95, 0x88, 0x94, 0xF2, 0xFC, 0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0xF3, 0xFC, 0x16, 0x0F, -0x17, 0x95, 0x88, 0x94, 0xF4, 0xFC, 0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0xF5, 0xFC, 0x16, 0x0F, -0x17, 0x95, 0x88, 0x94, 0xF6, 0xFC, 0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0xF7, 0xFC, 0x16, 0x0F, -0x17, 0x95, 0x88, 0x94, 0x26, 0x2F, 0xF1, 0x10, 0x21, 0x2F, 0x9C, 0x0D, 0x12, 0x2F, 0x00, 0x2C, -0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x17, 0xFF, 0x88, 0xB9, 0x60, 0x81, 0x22, 0x27, 0x88, 0x94, -0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x61, 0x11, 0x63, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, -0x00, 0xC0, 0x00, 0xC0, 0x16, 0xFF, 0x88, 0xB9, 0x08, 0xF4, 0x6F, 0xEF, 0x31, 0x95, 0x88, 0x94, -0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xE0, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, -0x00, 0xC0, 0x00, 0xC0, 0x15, 0xFF, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xE1, 0xFC, 0x26, 0x0F, -0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, -0x00, 0xC0, 0x00, 0xC0, 0x14, 0xFF, 0x88, 0xB9, 0xE2, 0xFC, 0x26, 0x0F, 0x27, 0x95, 0x88, 0x94, -0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xE3, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, -0x00, 0xC0, 0x00, 0xC0, 0x13, 0xFF, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xE4, 0xFC, 0x26, 0x0F, -0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, -0x00, 0xC0, 0x00, 0xC0, 0x12, 0xFF, 0x88, 0xB9, 0xE5, 0xFC, 0x26, 0x0F, 0x27, 0x95, 0x88, 0x94, -0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xE6, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, -0x00, 0xC0, 0x00, 0xC0, 0x11, 0xFF, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xE7, 0xFC, 0x26, 0x0F, -0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, -0x00, 0xC0, 0x00, 0xC0, 0x10, 0xFF, 0x88, 0xB9, 0x16, 0x2F, 0xE1, 0x10, 0x12, 0x2F, 0x3A, 0x0D, -0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, -0x00, 0xC0, 0x17, 0xFF, 0x88, 0xB9, 0x62, 0x81, 0x22, 0x27, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, -0x88, 0xB9, 0x61, 0x11, 0x64, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, -0x16, 0xFF, 0x88, 0xB9, 0x08, 0xF4, 0x6F, 0xEF, 0xEB, 0x0D, 0xF1, 0x1D, 0x00, 0xC0, 0x00, 0x2C, -0x88, 0xB9, 0xD0, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, -0x15, 0xFF, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xD1, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, -0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, -0x14, 0xFF, 0x88, 0xB9, 0xD2, 0xFC, 0x26, 0x0F, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, -0x88, 0xB9, 0xD3, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, -0x13, 0xFF, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xD4, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, -0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, -0x12, 0xFF, 0x88, 0xB9, 0xD5, 0xFC, 0x26, 0x0F, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, -0x88, 0xB9, 0xD6, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, -0x11, 0xFF, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xD7, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, -0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, -0x10, 0xFF, 0x88, 0xB9, 0x16, 0x2F, 0xD1, 0x10, 0x12, 0x2F, 0x41, 0x95, 0x00, 0xC0, 0x00, 0x2C, -0x88, 0xB9, 0x48, 0x0D, 0x00, 0xC0, 0x00, 0xC0, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x17, 0xFF, -0x88, 0xB9, 0x61, 0x81, 0x22, 0x27, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x61, 0x11, -0x69, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x16, 0xFF, 0x88, 0xB9, -0x08, 0xF4, 0x6F, 0xEF, 0x91, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xF0, 0xFC, -0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x15, 0xFF, 0x88, 0xB9, -0x27, 0x95, 0x88, 0x94, 0xF1, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, -0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x14, 0xFF, 0x88, 0xB9, -0xF2, 0xFC, 0x26, 0x0F, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xF3, 0xFC, -0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x13, 0xFF, 0x88, 0xB9, -0x27, 0x95, 0x88, 0x94, 0xF4, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, -0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x12, 0xFF, 0x88, 0xB9, -0xF5, 0xFC, 0x26, 0x0F, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xF6, 0xFC, -0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x11, 0xFF, 0x88, 0xB9, -0x27, 0x95, 0x88, 0x94, 0xF7, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, -0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x10, 0xFF, 0x88, 0xB9, -0x16, 0x2F, 0xF1, 0x10, 0x12, 0x2F, 0x9C, 0x0D, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x11, 0x97, -0x09, 0xF0, 0x86, 0xCE, 0x20, 0xEE, 0x31, 0xE0, 0xD2, 0x01, 0x0E, 0x94, 0xF2, 0x0F, 0xDC, 0x01, -0xCB, 0x01, 0xF4, 0xE0, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xFA, 0x95, 0xD1, 0xF7, -0x20, 0xE0, 0x30, 0xE0, 0xA9, 0x01, 0x6A, 0xE9, 0x46, 0x9E, 0x41, 0x2D, 0x56, 0x9E, 0x40, 0x0D, -0x51, 0x1D, 0x11, 0x24, 0x84, 0x0F, 0x95, 0x1F, 0xA1, 0x1D, 0xB1, 0x1D, 0x89, 0x3E, 0x43, 0xE0, -0x94, 0x07, 0xA1, 0x05, 0xB1, 0x05, 0x88, 0xF1, 0x88, 0x5E, 0x93, 0x40, 0xA1, 0x09, 0xB1, 0x09, -0x42, 0xE0, 0xB6, 0x95, 0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0x4A, 0x95, 0xD1, 0xF7, 0x47, 0xE0, -0x84, 0x9F, 0x21, 0x2D, 0x94, 0x9F, 0x20, 0x0D, 0x31, 0x1D, 0x11, 0x24, 0x60, 0x91, 0x51, 0x01, -0x70, 0xE0, 0x86, 0x0F, 0x97, 0x1F, 0x82, 0x0F, 0x93, 0x1F, 0x40, 0x91, 0x52, 0x01, 0x50, 0x91, -0x53, 0x01, 0x60, 0x91, 0x54, 0x01, 0x70, 0x91, 0x55, 0x01, 0x29, 0x2F, 0x33, 0x27, 0x42, 0x0F, -0x53, 0x1F, 0x61, 0x1D, 0x71, 0x1D, 0x40, 0x93, 0x52, 0x01, 0x50, 0x93, 0x53, 0x01, 0x60, 0x93, -0x54, 0x01, 0x70, 0x93, 0x55, 0x01, 0x80, 0x93, 0x51, 0x01, 0x78, 0x94, 0x0E, 0x94, 0xE1, 0x09, -0xF3, 0x01, 0x70, 0x8B, 0x67, 0x87, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0xFF, 0x90, 0xEF, 0x90, -0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, 0xAF, 0x90, 0x8F, 0x90, 0x7F, 0x90, 0x6F, 0x90, 0x5F, 0x90, -0x4F, 0x90, 0x08, 0x95, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0xCD, 0xB7, 0xDE, 0xB7, -0x62, 0x97, 0x0F, 0xB6, 0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, 0x8C, 0x01, 0xF9, 0x01, -0xDC, 0x01, 0x1C, 0x96, 0x8C, 0x91, 0x7A, 0x83, 0x69, 0x83, 0x5C, 0x83, 0x4B, 0x83, 0x5E, 0x83, -0x4D, 0x83, 0x90, 0x81, 0x9D, 0x87, 0x91, 0x81, 0x9E, 0x87, 0x92, 0x81, 0x9F, 0x87, 0x81, 0x30, -0x29, 0xF4, 0xCE, 0x01, 0x01, 0x96, 0x0E, 0x94, 0x26, 0x0B, 0x06, 0xC0, 0x1C, 0x86, 0x1B, 0x86, -0x1A, 0x86, 0x19, 0x86, 0x18, 0x86, 0x1F, 0x82, 0x18, 0x8A, 0x1A, 0x8A, 0x19, 0x8A, 0xD8, 0x01, -0xED, 0x91, 0xFC, 0x91, 0x04, 0x84, 0xF5, 0x85, 0xE0, 0x2D, 0xBE, 0x01, 0x6F, 0x5F, 0x7F, 0x4F, -0xC8, 0x01, 0x09, 0x95, 0x62, 0x96, 0x0F, 0xB6, 0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, -0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0x08, 0x95, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, -0xDF, 0x93, 0xCD, 0xB7, 0xDE, 0xB7, 0x62, 0x97, 0x0F, 0xB6, 0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, -0xCD, 0xBF, 0x8C, 0x01, 0xF9, 0x01, 0xDC, 0x01, 0x1C, 0x96, 0x8C, 0x91, 0x7A, 0x83, 0x69, 0x83, -0x5C, 0x83, 0x4B, 0x83, 0x5E, 0x83, 0x4D, 0x83, 0x90, 0x81, 0x9D, 0x87, 0x91, 0x81, 0x9E, 0x87, -0x92, 0x81, 0x9F, 0x87, 0x81, 0x30, 0x29, 0xF4, 0xCE, 0x01, 0x01, 0x96, 0x0E, 0x94, 0x26, 0x0B, -0x06, 0xC0, 0x1C, 0x86, 0x1B, 0x86, 0x1A, 0x86, 0x19, 0x86, 0x18, 0x86, 0x1F, 0x82, 0x83, 0xE0, -0x88, 0x8B, 0x1A, 0x8A, 0x19, 0x8A, 0xD8, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x04, 0x84, 0xF5, 0x85, -0xE0, 0x2D, 0xBE, 0x01, 0x6F, 0x5F, 0x7F, 0x4F, 0xC8, 0x01, 0x09, 0x95, 0x62, 0x96, 0x0F, 0xB6, -0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, -0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, -0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, -0xEF, 0x93, 0xFF, 0x93, 0x83, 0xB1, 0x86, 0xFB, 0x99, 0x27, 0x90, 0xF9, 0x81, 0xE0, 0x89, 0x27, -0x80, 0x93, 0x46, 0x01, 0x88, 0x23, 0xE9, 0xF0, 0x0E, 0x94, 0xCC, 0x0A, 0x60, 0x93, 0x4B, 0x01, -0x70, 0x93, 0x4C, 0x01, 0x80, 0x93, 0x4D, 0x01, 0x90, 0x93, 0x4E, 0x01, 0x10, 0x92, 0x50, 0x01, -0x8F, 0xE0, 0x80, 0x93, 0xC1, 0x00, 0x83, 0xE0, 0x80, 0x93, 0xC3, 0x00, 0x80, 0xE1, 0x80, 0x93, -0xD1, 0x00, 0x10, 0x92, 0xBF, 0x00, 0x10, 0x92, 0xBE, 0x00, 0x84, 0xE0, 0x80, 0x93, 0x72, 0x00, -0x02, 0xC0, 0x10, 0x92, 0x72, 0x00, 0xFF, 0x91, 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, -0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, -0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x1F, 0x92, 0xCD, 0xB7, -0xDE, 0xB7, 0x68, 0x2F, 0x67, 0x70, 0x60, 0x93, 0x65, 0x01, 0x83, 0xE0, 0x90, 0xE0, 0x69, 0x83, -0x0E, 0x94, 0x24, 0x0B, 0x69, 0x81, 0x86, 0x17, 0x21, 0xF0, 0x83, 0xE0, 0x90, 0xE0, 0x0E, 0x94, -0x22, 0x0B, 0xE0, 0x91, 0x65, 0x01, 0xF0, 0xE0, 0xE9, 0x59, 0xFE, 0x4F, 0x80, 0x81, 0x80, 0x93, -0x74, 0x01, 0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x08, 0x95, 0xCF, 0x93, 0xC8, 0x2F, 0x60, 0x91, -0x71, 0x01, 0x0E, 0x94, 0x7D, 0x0F, 0x90, 0x93, 0x66, 0x01, 0x82, 0xE0, 0x90, 0xE0, 0x0E, 0x94, -0x24, 0x0B, 0x8C, 0x17, 0x29, 0xF0, 0x6C, 0x2F, 0x82, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x22, 0x0B, -0x80, 0x91, 0x66, 0x01, 0x27, 0xE0, 0x82, 0x9F, 0xC0, 0x01, 0x11, 0x24, 0x85, 0x57, 0x90, 0x49, -0xFC, 0x01, 0x24, 0x91, 0x31, 0x96, 0x65, 0x91, 0x74, 0x91, 0xFC, 0x01, 0x33, 0x96, 0xA5, 0x91, -0xB4, 0x91, 0xFC, 0x01, 0x35, 0x96, 0x85, 0x91, 0x94, 0x91, 0x40, 0x91, 0x6F, 0x01, 0x50, 0x91, -0x70, 0x01, 0xB0, 0x93, 0x84, 0x01, 0xA0, 0x93, 0x83, 0x01, 0x70, 0x93, 0x8A, 0x01, 0x60, 0x93, -0x89, 0x01, 0x62, 0x2F, 0x70, 0xE0, 0x70, 0x93, 0x88, 0x01, 0x60, 0x93, 0x87, 0x01, 0x50, 0x93, -0x82, 0x01, 0x40, 0x93, 0x81, 0x01, 0x90, 0x93, 0x86, 0x01, 0x80, 0x93, 0x85, 0x01, 0x22, 0x23, -0x29, 0xF0, 0x21, 0x30, 0x69, 0xF4, 0x8F, 0xE1, 0x96, 0xE0, 0x02, 0xC0, 0x8A, 0xE7, 0x96, 0xE0, -0x90, 0x93, 0x90, 0x01, 0x80, 0x93, 0x8F, 0x01, 0x10, 0x92, 0x92, 0x01, 0x10, 0x92, 0x91, 0x01, -0x10, 0x92, 0x8C, 0x01, 0x10, 0x92, 0x8B, 0x01, 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, -0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x0F, 0x93, 0x1F, 0x93, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, -0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, -0xFF, 0x93, 0x80, 0x91, 0x50, 0x01, 0x81, 0x11, 0x0A, 0xC0, 0x81, 0xE0, 0x80, 0x93, 0x50, 0x01, -0x80, 0x91, 0x65, 0x01, 0x80, 0x93, 0x4F, 0x01, 0x8F, 0x5F, 0x0E, 0x94, 0x3C, 0x04, 0x0E, 0x94, -0xCC, 0x0A, 0x00, 0x91, 0x4B, 0x01, 0x10, 0x91, 0x4C, 0x01, 0x20, 0x91, 0x4D, 0x01, 0x30, 0x91, -0x4E, 0x01, 0xDC, 0x01, 0xCB, 0x01, 0x80, 0x1B, 0x91, 0x0B, 0xA2, 0x0B, 0xB3, 0x0B, 0x80, 0x93, -0x47, 0x01, 0x90, 0x93, 0x48, 0x01, 0xA0, 0x93, 0x49, 0x01, 0xB0, 0x93, 0x4A, 0x01, 0x89, 0x3E, -0x93, 0x40, 0xA1, 0x05, 0xB1, 0x05, 0x9C, 0xF0, 0x80, 0x91, 0x4F, 0x01, 0x0E, 0x94, 0x3C, 0x04, -0x80, 0x91, 0x66, 0x01, 0x8F, 0x5F, 0x0E, 0x94, 0x5D, 0x04, 0x0E, 0x94, 0xCC, 0x0A, 0x60, 0x93, -0x4B, 0x01, 0x70, 0x93, 0x4C, 0x01, 0x80, 0x93, 0x4D, 0x01, 0x90, 0x93, 0x4E, 0x01, 0xFF, 0x91, -0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, -0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, -0x1F, 0x90, 0x18, 0x95, 0x40, 0x91, 0x5F, 0x01, 0x50, 0x91, 0x60, 0x01, 0x20, 0x91, 0x5D, 0x01, -0x30, 0x91, 0x5E, 0x01, 0x42, 0x17, 0x53, 0x07, 0xB4, 0xF4, 0x90, 0x91, 0xE8, 0x00, 0x95, 0x70, -0xE1, 0xF3, 0x90, 0x91, 0xE8, 0x00, 0x92, 0xFD, 0x19, 0xC0, 0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, -0x5F, 0x01, 0x90, 0x91, 0x60, 0x01, 0x01, 0x96, 0x8F, 0x73, 0x99, 0x27, 0x89, 0x2B, 0x19, 0xF4, -0x8E, 0xEF, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0x5F, 0x01, 0x90, 0x91, 0x60, 0x01, 0x01, 0x96, -0x90, 0x93, 0x60, 0x01, 0x80, 0x93, 0x5F, 0x01, 0x81, 0xE0, 0x08, 0x95, 0x80, 0xE0, 0x08, 0x95, -0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, -0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, 0x18, 0x2F, 0x06, 0x2F, 0xE4, 0x2E, 0x86, 0x2F, 0x88, 0x0F, -0x8E, 0x5F, 0x99, 0x83, 0x0E, 0x94, 0x1A, 0x05, 0x83, 0xE0, 0x0E, 0x94, 0x1A, 0x05, 0xF1, 0x2E, -0xC1, 0x2E, 0x99, 0x81, 0xD9, 0x2E, 0x8C, 0x2D, 0x8F, 0x19, 0x80, 0x17, 0x98, 0xF4, 0xF6, 0x01, -0xE7, 0xFE, 0x02, 0xC0, 0x84, 0x91, 0x01, 0xC0, 0x80, 0x81, 0x0E, 0x94, 0x1A, 0x05, 0x18, 0x2F, -0x80, 0xE0, 0x0E, 0x94, 0x1A, 0x05, 0x81, 0x23, 0xFF, 0xEF, 0xCF, 0x1A, 0xDF, 0x0A, 0x81, 0x11, -0xEA, 0xCF, 0x01, 0xC0, 0x81, 0xE0, 0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, -0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0x08, 0x95, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, -0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0xD8, 0x2E, 0x8A, 0x01, 0x7B, 0x01, 0xE4, 0x0E, -0xF5, 0x1E, 0xEB, 0x01, 0xCE, 0x15, 0xDF, 0x05, 0x71, 0xF0, 0xD7, 0xFE, 0x03, 0xC0, 0xFE, 0x01, -0x84, 0x91, 0x01, 0xC0, 0x88, 0x81, 0x0E, 0x94, 0x1A, 0x05, 0x21, 0x96, 0x81, 0x11, 0xF2, 0xCF, -0x8F, 0xEF, 0x9F, 0xEF, 0x01, 0xC0, 0xC8, 0x01, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, -0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0x08, 0x95, 0x61, 0x50, 0x30, 0xF0, 0x20, 0x91, 0xF1, 0x00, -0xFC, 0x01, 0x20, 0x83, 0x01, 0x96, 0xF8, 0xCF, 0x28, 0x98, 0x84, 0xE6, 0x80, 0x93, 0x72, 0x01, -0x08, 0x95, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, -0xDF, 0x93, 0x6C, 0x01, 0x7A, 0x01, 0x8B, 0x01, 0xC0, 0xE0, 0xD0, 0xE0, 0xCE, 0x15, 0xDF, 0x05, -0x89, 0xF0, 0xD8, 0x01, 0x6D, 0x91, 0x8D, 0x01, 0xD6, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x01, 0x90, -0xF0, 0x81, 0xE0, 0x2D, 0xC6, 0x01, 0x09, 0x95, 0x89, 0x2B, 0x11, 0xF4, 0x7E, 0x01, 0x02, 0xC0, -0x21, 0x96, 0xEC, 0xCF, 0xC7, 0x01, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0xFF, 0x90, -0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x1F, 0x92, 0xCD, 0xB7, -0xDE, 0xB7, 0x69, 0x83, 0xDC, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x02, 0x80, 0xF3, 0x81, 0xE0, 0x2D, -0x41, 0xE0, 0x50, 0xE0, 0xBE, 0x01, 0x6F, 0x5F, 0x7F, 0x4F, 0x09, 0x95, 0x0F, 0x90, 0xDF, 0x91, -0xCF, 0x91, 0x08, 0x95, 0x83, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xF2, 0x00, 0x88, 0x23, -0x19, 0xF0, 0x8A, 0xE3, 0x80, 0x93, 0xE8, 0x00, 0x08, 0x95, 0xFC, 0x01, 0x84, 0x85, 0x95, 0x85, -0x97, 0xFD, 0x0B, 0xC0, 0x9F, 0xB7, 0xF8, 0x94, 0x82, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, -0xF2, 0x00, 0x9F, 0xBF, 0x90, 0xE0, 0x01, 0x96, 0x08, 0x95, 0x9F, 0xB7, 0xF8, 0x94, 0x82, 0xE0, -0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xF2, 0x00, 0x9F, 0xBF, 0x90, 0xE0, 0x08, 0x95, 0xEF, 0x92, -0xFF, 0x92, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0xEC, 0x01, 0x8A, 0x85, 0x9B, 0x85, -0x89, 0x2B, 0x21, 0xF4, 0x88, 0x85, 0x99, 0x85, 0x9D, 0x87, 0x8C, 0x87, 0x80, 0xE0, 0x90, 0xE0, -0x28, 0x81, 0x39, 0x81, 0x82, 0x17, 0x93, 0x07, 0x08, 0xF0, 0x3D, 0xC0, 0x2C, 0x85, 0x3D, 0x85, -0xF9, 0x01, 0x54, 0x91, 0x31, 0x96, 0x44, 0x91, 0x31, 0x96, 0x24, 0x91, 0x14, 0x2F, 0x18, 0x7F, -0xE2, 0x2F, 0xE0, 0x7E, 0x3E, 0x2F, 0x36, 0x95, 0x36, 0x95, 0x36, 0x95, 0xA0, 0xE2, 0x4A, 0x9F, -0xF0, 0x01, 0x11, 0x24, 0x0E, 0x2F, 0x03, 0x2B, 0x22, 0x0F, 0x22, 0x0F, 0x22, 0x0F, 0xDC, 0x01, -0xAA, 0x0F, 0xBB, 0x1F, 0xA8, 0x0F, 0xB9, 0x1F, 0x12, 0x96, 0xA6, 0x0F, 0xB7, 0x1F, 0x30, 0xE0, -0x35, 0x17, 0x81, 0xF0, 0x7D, 0x01, 0xE2, 0xE0, 0xEE, 0x1A, 0xF1, 0x08, 0xF7, 0x01, 0x10, 0x83, -0x7D, 0x01, 0xF1, 0xE0, 0xEF, 0x1A, 0xF1, 0x08, 0xF7, 0x01, 0x00, 0x83, 0x2C, 0x93, 0x3F, 0x5F, -0x13, 0x96, 0xEE, 0xCF, 0x83, 0x0F, 0x91, 0x1D, 0x2C, 0x85, 0x3D, 0x85, 0x2D, 0x5F, 0x3F, 0x4F, -0x3D, 0x87, 0x2C, 0x87, 0xBD, 0xCF, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0xFF, 0x90, -0xEF, 0x90, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0xEC, 0x01, 0x4A, 0x85, 0x5B, 0x85, 0x28, 0x81, -0x39, 0x81, 0x42, 0x9F, 0xC0, 0x01, 0x43, 0x9F, 0x90, 0x0D, 0x52, 0x9F, 0x90, 0x0D, 0x11, 0x24, -0x9C, 0x01, 0x22, 0x0F, 0x33, 0x1F, 0x82, 0x0F, 0x93, 0x1F, 0x28, 0x85, 0x39, 0x85, 0x82, 0x0F, -0x93, 0x1F, 0x9D, 0x87, 0x8C, 0x87, 0xDB, 0x01, 0x12, 0x96, 0x80, 0xE0, 0x90, 0xE0, 0x60, 0xE0, -0x70, 0xE0, 0x28, 0x81, 0x39, 0x81, 0x62, 0x17, 0x73, 0x07, 0xD8, 0xF4, 0x2C, 0x85, 0x3D, 0x85, -0xFC, 0x01, 0x32, 0x96, 0xE2, 0x0F, 0xF3, 0x1F, 0x44, 0x91, 0xFC, 0x01, 0x31, 0x96, 0xE2, 0x0F, -0xF3, 0x1F, 0x54, 0x91, 0xF9, 0x01, 0xE8, 0x0F, 0xF9, 0x1F, 0x24, 0x91, 0xFD, 0x01, 0x32, 0x97, -0x20, 0x83, 0x31, 0x96, 0x50, 0x83, 0x4C, 0x93, 0x6F, 0x5F, 0x7F, 0x4F, 0x03, 0x96, 0x13, 0x96, -0xE0, 0xCF, 0xDF, 0x91, 0xCF, 0x91, 0x08, 0x95, 0x0E, 0x94, 0x19, 0x10, 0x0F, 0x93, 0x1F, 0x93, -0xCF, 0x93, 0xDF, 0x93, 0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, 0x82, 0xE0, 0x89, 0x83, 0x42, 0xE4, -0x50, 0xE0, 0x6C, 0xEA, 0x70, 0xE0, 0x80, 0xE8, 0x0E, 0x94, 0x85, 0x05, 0x0E, 0x94, 0xB9, 0x0C, -0xDC, 0x01, 0x12, 0x96, 0x0D, 0x91, 0x1C, 0x91, 0x13, 0x97, 0x01, 0x15, 0x11, 0x05, 0x69, 0xF0, -0xD8, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x02, 0x80, 0xF3, 0x81, 0xE0, 0x2D, 0xBE, 0x01, 0x6F, 0x5F, -0x7F, 0x4F, 0xC8, 0x01, 0x09, 0x95, 0x97, 0xFF, 0x07, 0xC0, 0x89, 0x81, 0x0F, 0x90, 0xDF, 0x91, -0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0x08, 0x95, 0xF8, 0x01, 0x00, 0x85, 0x11, 0x85, 0xE5, 0xCF, -0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, 0x8C, 0x01, -0xFC, 0x01, 0x84, 0x85, 0x95, 0x85, 0x97, 0xFF, 0x0E, 0xC0, 0xCE, 0x01, 0x01, 0x96, 0x0E, 0x94, -0x8F, 0x0C, 0x01, 0x97, 0x19, 0xF4, 0x29, 0x81, 0x30, 0xE0, 0x02, 0xC0, 0x2F, 0xEF, 0x3F, 0xEF, -0xF8, 0x01, 0x35, 0x87, 0x24, 0x87, 0xF8, 0x01, 0x84, 0x85, 0x95, 0x85, 0x0F, 0x90, 0xDF, 0x91, -0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x1F, 0x92, 0xCD, 0xB7, -0xDE, 0xB7, 0xFC, 0x01, 0x84, 0x85, 0x95, 0x85, 0x97, 0xFD, 0x05, 0xC0, 0x2F, 0xEF, 0x3F, 0xEF, -0x35, 0x87, 0x24, 0x87, 0x0B, 0xC0, 0xCE, 0x01, 0x01, 0x96, 0x0E, 0x94, 0x8F, 0x0C, 0x01, 0x97, -0x19, 0xF4, 0x89, 0x81, 0x90, 0xE0, 0x02, 0xC0, 0x8F, 0xEF, 0x9F, 0xEF, 0x0F, 0x90, 0xDF, 0x91, -0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, -0x9F, 0x93, 0x80, 0x91, 0xE1, 0x00, 0x90, 0x91, 0xE1, 0x00, 0x93, 0x7F, 0x90, 0x93, 0xE1, 0x00, -0x83, 0xFF, 0x0F, 0xC0, 0x10, 0x92, 0xE9, 0x00, 0x91, 0xE0, 0x90, 0x93, 0xEB, 0x00, 0x10, 0x92, -0xEC, 0x00, 0x92, 0xE3, 0x90, 0x93, 0xED, 0x00, 0x10, 0x92, 0x73, 0x01, 0x98, 0xE0, 0x90, 0x93, -0xF0, 0x00, 0x82, 0xFF, 0x20, 0xC0, 0x93, 0xE0, 0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xF2, 0x00, -0x99, 0x23, 0x19, 0xF0, 0x9A, 0xE3, 0x90, 0x93, 0xE8, 0x00, 0x90, 0x91, 0x61, 0x01, 0x99, 0x23, -0x39, 0xF0, 0x90, 0x91, 0x61, 0x01, 0x91, 0x50, 0x90, 0x93, 0x61, 0x01, 0x99, 0x23, 0x89, 0xF1, -0x90, 0x91, 0x72, 0x01, 0x99, 0x23, 0x39, 0xF0, 0x90, 0x91, 0x72, 0x01, 0x91, 0x50, 0x90, 0x93, -0x72, 0x01, 0x99, 0x23, 0x41, 0xF1, 0x84, 0xFF, 0x10, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7E, -0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE1, 0x00, -0x80, 0x91, 0x63, 0x01, 0x8E, 0x7E, 0x80, 0x61, 0x11, 0xC0, 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, -0xE2, 0x00, 0x8E, 0x7E, 0x80, 0x61, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7E, -0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0x63, 0x01, 0x8E, 0x7E, 0x81, 0x60, 0x80, 0x93, 0x63, 0x01, -0x04, 0xC0, 0x5D, 0x9A, 0xCD, 0xCF, 0x28, 0x9A, 0xD6, 0xCF, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, -0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, -0x11, 0x24, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0x0F, 0x93, 0x1F, 0x93, 0x2F, 0x93, -0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, -0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0xCD, 0xB7, 0xDE, 0xB7, 0x6C, 0x97, -0xDE, 0xBF, 0xCD, 0xBF, 0x10, 0x92, 0xE9, 0x00, 0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xFA, 0xC1, -0x68, 0xE0, 0xCE, 0x01, 0x45, 0x96, 0x0E, 0x94, 0xAC, 0x05, 0x82, 0xEF, 0x80, 0x93, 0xE8, 0x00, -0x8D, 0x89, 0x87, 0xFF, 0x05, 0xC0, 0x90, 0x91, 0xE8, 0x00, 0x90, 0xFF, 0xFC, 0xCF, 0x03, 0xC0, -0x9E, 0xEF, 0x90, 0x93, 0xE8, 0x00, 0x98, 0x2F, 0x90, 0x76, 0x09, 0xF0, 0xC6, 0xC0, 0x9E, 0x89, -0x2F, 0x89, 0x18, 0x8D, 0x91, 0x11, 0x0C, 0xC0, 0x80, 0x38, 0x29, 0xF4, 0x80, 0x91, 0x64, 0x01, -0x80, 0x93, 0xF1, 0x00, 0x02, 0xC0, 0x10, 0x92, 0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, 0x47, 0xC1, -0x42, 0x2F, 0x50, 0xE0, 0x51, 0x2B, 0x91, 0x30, 0x51, 0xF4, 0x81, 0x11, 0x40, 0xC1, 0x41, 0x30, -0x51, 0x05, 0x09, 0xF0, 0x3C, 0xC1, 0x80, 0x91, 0x64, 0x01, 0x8D, 0x7F, 0x0B, 0xC0, 0x93, 0x30, -0x61, 0xF4, 0x81, 0x11, 0x34, 0xC1, 0x41, 0x30, 0x51, 0x05, 0x09, 0xF0, 0x30, 0xC1, 0x80, 0x91, -0x64, 0x01, 0x82, 0x60, 0x80, 0x93, 0x64, 0x01, 0x2A, 0xC1, 0x95, 0x30, 0x41, 0xF4, 0x80, 0x91, -0xE8, 0x00, 0x80, 0xFF, 0xFC, 0xCF, 0x20, 0x68, 0x20, 0x93, 0xE3, 0x00, 0x20, 0xC1, 0x96, 0x30, -0x09, 0xF0, 0x5F, 0xC0, 0xEB, 0x8C, 0xFC, 0x8C, 0x10, 0x92, 0xE9, 0x00, 0x10, 0x92, 0x60, 0x01, -0x10, 0x92, 0x5F, 0x01, 0x12, 0x30, 0x91, 0xF5, 0x10, 0x92, 0x5E, 0x01, 0x10, 0x92, 0x5D, 0x01, -0x0E, 0x94, 0xBE, 0x06, 0x99, 0xE0, 0xBE, 0x01, 0x6F, 0x5F, 0x7F, 0x4F, 0xDB, 0x01, 0xE9, 0x2F, -0x1D, 0x92, 0xEA, 0x95, 0xE9, 0xF7, 0x99, 0x83, 0x1A, 0x83, 0x91, 0xE0, 0x9E, 0x83, 0x90, 0xEA, -0x98, 0x87, 0x9A, 0xEF, 0x99, 0x87, 0x20, 0x91, 0x5F, 0x01, 0x30, 0x91, 0x60, 0x01, 0x27, 0x5F, -0x3F, 0x4F, 0x3C, 0x83, 0x2B, 0x83, 0x8D, 0x83, 0x10, 0x92, 0xE9, 0x00, 0x10, 0x92, 0x60, 0x01, -0x10, 0x92, 0x5F, 0x01, 0xF0, 0x92, 0x5E, 0x01, 0xE0, 0x92, 0x5D, 0x01, 0x49, 0xE0, 0x50, 0xE0, -0x80, 0xE0, 0x0E, 0x94, 0x85, 0x05, 0x0E, 0x94, 0xBE, 0x06, 0xE1, 0xC0, 0xF0, 0x92, 0x5E, 0x01, -0xE0, 0x92, 0x5D, 0x01, 0x0E, 0x94, 0xB9, 0x0C, 0xDC, 0x01, 0x12, 0x96, 0xED, 0x90, 0xFC, 0x90, -0x13, 0x97, 0xE1, 0x14, 0xF1, 0x04, 0x09, 0xF4, 0xC0, 0xC0, 0xD7, 0x01, 0xED, 0x91, 0xFC, 0x91, -0x04, 0x80, 0xF5, 0x81, 0xE0, 0x2D, 0xBE, 0x01, 0x6B, 0x5E, 0x7F, 0x4F, 0xC7, 0x01, 0x09, 0x95, -0x00, 0x97, 0x19, 0xF0, 0x0C, 0xF0, 0xC3, 0xC0, 0xC6, 0xC0, 0xF7, 0x01, 0xE0, 0x84, 0xF1, 0x84, -0xE8, 0xCF, 0x97, 0x30, 0x09, 0xF4, 0xBF, 0xC0, 0x98, 0x30, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, -0xF1, 0x00, 0xB5, 0xC0, 0x99, 0x30, 0x09, 0xF0, 0xB2, 0xC0, 0x83, 0x70, 0x09, 0xF0, 0xB3, 0xC0, -0xED, 0xE0, 0xF1, 0xE0, 0x81, 0xE0, 0x21, 0xE0, 0x36, 0xE3, 0x90, 0x81, 0x99, 0x23, 0x61, 0xF0, -0x80, 0x93, 0xE9, 0x00, 0x20, 0x93, 0xEB, 0x00, 0x91, 0x91, 0x90, 0x93, 0xEC, 0x00, 0x30, 0x93, -0xED, 0x00, 0x8F, 0x5F, 0x87, 0x30, 0x89, 0xF7, 0x8E, 0xE7, 0x80, 0x93, 0xEA, 0x00, 0x10, 0x92, -0xEA, 0x00, 0x8F, 0x89, 0x80, 0x93, 0x73, 0x01, 0x92, 0xC0, 0x8B, 0x8D, 0x9C, 0x8D, 0x10, 0x92, -0xE9, 0x00, 0x10, 0x92, 0x60, 0x01, 0x10, 0x92, 0x5F, 0x01, 0x90, 0x93, 0x5E, 0x01, 0x80, 0x93, -0x5D, 0x01, 0x89, 0x8D, 0x81, 0x11, 0x56, 0xC0, 0x8E, 0x89, 0x9D, 0x89, 0x91, 0x3A, 0x59, 0xF4, -0x81, 0x32, 0x09, 0xF0, 0x80, 0xC0, 0x47, 0xE0, 0x50, 0xE0, 0x64, 0xE0, 0x71, 0xE0, 0x80, 0xE0, -0x0E, 0x94, 0x85, 0x05, 0x74, 0xC0, 0x91, 0x32, 0x09, 0xF0, 0x75, 0xC0, 0x83, 0x32, 0x89, 0xF4, -0x88, 0x8D, 0x90, 0xE0, 0x98, 0x2F, 0x88, 0x27, 0x2F, 0x89, 0x82, 0x2B, 0xA0, 0xE0, 0xB0, 0xE0, -0x80, 0x93, 0x00, 0x01, 0x90, 0x93, 0x01, 0x01, 0xA0, 0x93, 0x02, 0x01, 0xB0, 0x93, 0x03, 0x01, -0x5E, 0xC0, 0x80, 0x32, 0x69, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x82, 0xFF, 0xFC, 0xCF, 0x67, 0xE0, -0x84, 0xE0, 0x91, 0xE0, 0x0E, 0x94, 0xAC, 0x05, 0x8B, 0xEF, 0x80, 0x93, 0xE8, 0x00, 0x06, 0xC0, -0x82, 0x32, 0x09, 0xF0, 0x4C, 0xC0, 0x8F, 0x89, 0x80, 0x93, 0x0B, 0x01, 0x80, 0x91, 0x62, 0x01, -0x88, 0x23, 0x19, 0xF0, 0xEE, 0xEF, 0xFA, 0xE0, 0x02, 0xC0, 0xE0, 0xE0, 0xF8, 0xE0, 0x80, 0x91, -0x04, 0x01, 0x90, 0x91, 0x05, 0x01, 0xA0, 0x91, 0x06, 0x01, 0xB0, 0x91, 0x07, 0x01, 0x80, 0x3B, -0x94, 0x40, 0xA1, 0x05, 0xB1, 0x05, 0x09, 0xF0, 0x88, 0xC0, 0x80, 0x91, 0x0B, 0x01, 0x80, 0xFF, -0xA0, 0xC0, 0x83, 0xC0, 0x0E, 0x94, 0xB9, 0x0C, 0xDC, 0x01, 0x12, 0x96, 0x0D, 0x91, 0x1C, 0x91, -0x13, 0x97, 0x01, 0x15, 0x11, 0x05, 0x39, 0xF1, 0xD8, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x01, 0x90, -0xF0, 0x81, 0xE0, 0x2D, 0xBE, 0x01, 0x6B, 0x5E, 0x7F, 0x4F, 0xC8, 0x01, 0x09, 0x95, 0x81, 0x11, -0x16, 0xC0, 0xF8, 0x01, 0x00, 0x85, 0x11, 0x85, 0xEC, 0xCF, 0x11, 0x30, 0xC1, 0xF0, 0x13, 0x30, -0x91, 0xF4, 0x8F, 0x89, 0x88, 0x23, 0x09, 0xF4, 0x55, 0xC0, 0x82, 0x30, 0xE9, 0xF4, 0x40, 0xE8, -0x6A, 0xE0, 0x8E, 0xEF, 0x90, 0xE0, 0x0E, 0x94, 0x48, 0x05, 0x88, 0x23, 0x21, 0xF0, 0x8E, 0xEF, -0x80, 0x93, 0xE8, 0x00, 0x87, 0xC0, 0x81, 0xE2, 0x80, 0x93, 0xEB, 0x00, 0x83, 0xC0, 0x8B, 0x8D, -0x9C, 0x8D, 0x08, 0x97, 0x11, 0xF4, 0x10, 0x93, 0x5C, 0x01, 0x80, 0x91, 0x5C, 0x01, 0x81, 0x11, -0x36, 0xC0, 0x69, 0xE0, 0x71, 0xE0, 0x38, 0xC0, 0x81, 0x30, 0x29, 0xF4, 0x40, 0xE8, 0x6B, 0xE0, -0x82, 0xEF, 0x90, 0xE0, 0xE0, 0xCF, 0x83, 0x30, 0x31, 0xF7, 0x0E, 0x94, 0xB9, 0x0C, 0xDC, 0x01, -0x12, 0x96, 0xED, 0x90, 0xFC, 0x90, 0x13, 0x97, 0x8E, 0x01, 0x0F, 0x5F, 0x1F, 0x4F, 0x68, 0x01, -0xE1, 0x14, 0xF1, 0x04, 0x79, 0xF0, 0xD7, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x06, 0x80, 0xF7, 0x81, -0xE0, 0x2D, 0xB8, 0x01, 0xC7, 0x01, 0x09, 0x95, 0x08, 0x0F, 0x11, 0x1D, 0xF7, 0x01, 0xE0, 0x84, -0xF1, 0x84, 0xEE, 0xCF, 0xD8, 0x01, 0x1C, 0x92, 0xF6, 0x01, 0x01, 0x90, 0x00, 0x20, 0xE9, 0xF7, -0x31, 0x97, 0xBF, 0x01, 0x6C, 0x19, 0x7D, 0x09, 0x40, 0xE0, 0xC6, 0x01, 0xB4, 0xCF, 0x6B, 0xE1, -0x71, 0xE0, 0x02, 0xC0, 0x6E, 0xEE, 0x70, 0xE0, 0x61, 0x15, 0x71, 0x05, 0x09, 0xF4, 0xB3, 0xCF, -0xFB, 0x01, 0x44, 0x91, 0x50, 0xE0, 0x80, 0xE8, 0x33, 0xCF, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, -0x80, 0x91, 0x60, 0x00, 0x88, 0x61, 0x80, 0x93, 0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, -0xA8, 0x95, 0xEE, 0x3F, 0x2A, 0xE0, 0xF2, 0x07, 0x39, 0xF0, 0x80, 0x91, 0xFE, 0x0A, 0x90, 0x91, -0xFF, 0x0A, 0x91, 0x83, 0x80, 0x83, 0x93, 0xCF, 0x10, 0x92, 0xFF, 0x0A, 0x10, 0x92, 0xFE, 0x0A, -0x8E, 0xCF, 0xEE, 0x3F, 0x8A, 0xE0, 0xF8, 0x07, 0x31, 0xF0, 0x80, 0x81, 0x91, 0x81, 0x90, 0x93, -0xFF, 0x0A, 0x80, 0x93, 0xFE, 0x0A, 0x87, 0xE7, 0x97, 0xE7, 0x91, 0x83, 0x80, 0x83, 0x9B, 0xE0, -0x88, 0xE1, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, 0x90, 0x93, -0x60, 0x00, 0x75, 0xCF, 0x6C, 0x96, 0x0F, 0xB6, 0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, -0xDF, 0x91, 0xCF, 0x91, 0xFF, 0x91, 0xEF, 0x91, 0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, -0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, 0x4F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x1F, 0x91, 0x0F, 0x91, -0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, -0x18, 0x95, 0x3F, 0xB7, 0xF8, 0x94, 0x80, 0x91, 0x58, 0x01, 0x90, 0x91, 0x59, 0x01, 0xA0, 0x91, -0x5A, 0x01, 0xB0, 0x91, 0x5B, 0x01, 0x26, 0xB5, 0xA8, 0x9B, 0x05, 0xC0, 0x2F, 0x3F, 0x19, 0xF0, -0x01, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x3F, 0xBF, 0xBA, 0x2F, 0xA9, 0x2F, 0x98, 0x2F, 0x88, 0x27, -0x82, 0x0F, 0x91, 0x1D, 0xA1, 0x1D, 0xB1, 0x1D, 0xBC, 0x01, 0xCD, 0x01, 0x42, 0xE0, 0x66, 0x0F, -0x77, 0x1F, 0x88, 0x1F, 0x99, 0x1F, 0x4A, 0x95, 0xD1, 0xF7, 0x08, 0x95, 0x8F, 0x92, 0x9F, 0x92, -0xAF, 0x92, 0xBF, 0x92, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0x6B, 0x01, 0x7C, 0x01, -0x0E, 0x94, 0xE1, 0x09, 0x4B, 0x01, 0x5C, 0x01, 0xC1, 0x14, 0xD1, 0x04, 0xE1, 0x04, 0xF1, 0x04, -0xF1, 0xF0, 0x0E, 0x94, 0xE1, 0x09, 0xDC, 0x01, 0xCB, 0x01, 0x88, 0x19, 0x99, 0x09, 0xAA, 0x09, -0xBB, 0x09, 0x88, 0x3E, 0x93, 0x40, 0xA1, 0x05, 0xB1, 0x05, 0x70, 0xF3, 0x21, 0xE0, 0xC2, 0x1A, -0xD1, 0x08, 0xE1, 0x08, 0xF1, 0x08, 0x88, 0xEE, 0x88, 0x0E, 0x83, 0xE0, 0x98, 0x1E, 0xA1, 0x1C, -0xB1, 0x1C, 0xC1, 0x14, 0xD1, 0x04, 0xE1, 0x04, 0xF1, 0x04, 0x19, 0xF7, 0xDD, 0xCF, 0xFF, 0x90, -0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, 0xAF, 0x90, 0x9F, 0x90, 0x8F, 0x90, 0x08, 0x95, -0x8F, 0x92, 0x9F, 0x92, 0xAF, 0x92, 0xBF, 0x92, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, -0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x5C, 0x01, 0x6B, 0x01, 0x8A, 0x01, 0x80, 0x91, -0x0B, 0x01, 0x88, 0x23, 0x09, 0xF4, 0x5E, 0xC0, 0x80, 0x91, 0x73, 0x01, 0x88, 0x23, 0x09, 0xF4, -0x59, 0xC0, 0x80, 0x91, 0x63, 0x01, 0x80, 0xFF, 0x05, 0xC0, 0x80, 0x91, 0xE0, 0x00, 0x82, 0x60, -0x80, 0x93, 0xE0, 0x00, 0xE8, 0x01, 0x8A, 0xEF, 0xF8, 0x2E, 0x93, 0xE0, 0xE9, 0x2E, 0x2F, 0xE3, -0x82, 0x2E, 0x3A, 0xE3, 0x93, 0x2E, 0x20, 0x97, 0x09, 0xF4, 0x3D, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, -0xE0, 0x92, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, 0x95, 0xFF, 0x06, 0xC0, 0x90, 0x91, 0xF2, 0x00, -0x28, 0x2D, 0x29, 0x1B, 0x92, 0x2F, 0x01, 0xC0, 0x90, 0xE0, 0x8F, 0xBF, 0x91, 0x11, 0x0A, 0xC0, -0xFA, 0x94, 0xFF, 0x20, 0x79, 0xF1, 0x61, 0xE0, 0x70, 0xE0, 0x80, 0xE0, 0x90, 0xE0, 0x0E, 0x94, -0x06, 0x0A, 0xE1, 0xCF, 0x29, 0x2F, 0x30, 0xE0, 0xC2, 0x17, 0xD3, 0x07, 0x0C, 0xF4, 0x9C, 0x2F, -0x8F, 0xB7, 0xF8, 0x94, 0xE0, 0x92, 0xE9, 0x00, 0x20, 0x91, 0xE8, 0x00, 0x25, 0xFF, 0x11, 0xC0, -0x29, 0x2F, 0x30, 0xE0, 0xC2, 0x1B, 0xD3, 0x0B, 0xF6, 0x01, 0x91, 0x50, 0x20, 0xF0, 0x41, 0x91, -0x40, 0x93, 0xF1, 0x00, 0xFA, 0xCF, 0xC2, 0x0E, 0xD3, 0x1E, 0x90, 0x91, 0xE8, 0x00, 0x95, 0xFF, -0x13, 0xC0, 0x8F, 0xBF, 0xC0, 0xCF, 0x5D, 0x98, 0x84, 0xE6, 0x80, 0x93, 0x61, 0x01, 0x10, 0x16, -0x11, 0x06, 0x44, 0xF0, 0x81, 0xE0, 0x90, 0xE0, 0xF5, 0x01, 0x93, 0x83, 0x82, 0x83, 0x80, 0xE0, -0x90, 0xE0, 0x05, 0xC0, 0xC8, 0x01, 0x03, 0xC0, 0x90, 0x92, 0xE8, 0x00, 0xEA, 0xCF, 0xDF, 0x91, -0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, -0xAF, 0x90, 0x9F, 0x90, 0x8F, 0x90, 0x08, 0x95, 0x2F, 0xB7, 0xF8, 0x94, 0x60, 0x91, 0x52, 0x01, -0x70, 0x91, 0x53, 0x01, 0x80, 0x91, 0x54, 0x01, 0x90, 0x91, 0x55, 0x01, 0x2F, 0xBF, 0x08, 0x95, -0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, 0x8F, 0x93, -0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0x80, 0x91, 0x52, 0x01, 0x90, 0x91, 0x53, 0x01, 0xA0, 0x91, -0x54, 0x01, 0xB0, 0x91, 0x55, 0x01, 0x30, 0x91, 0x57, 0x01, 0x23, 0xE0, 0x23, 0x0F, 0x2D, 0x37, -0x20, 0xF4, 0x01, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x05, 0xC0, 0x26, 0xE8, 0x23, 0x0F, 0x02, 0x96, -0xA1, 0x1D, 0xB1, 0x1D, 0x20, 0x93, 0x57, 0x01, 0x80, 0x93, 0x52, 0x01, 0x90, 0x93, 0x53, 0x01, -0xA0, 0x93, 0x54, 0x01, 0xB0, 0x93, 0x55, 0x01, 0x80, 0x91, 0x58, 0x01, 0x90, 0x91, 0x59, 0x01, -0xA0, 0x91, 0x5A, 0x01, 0xB0, 0x91, 0x5B, 0x01, 0x01, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, -0x58, 0x01, 0x90, 0x93, 0x59, 0x01, 0xA0, 0x93, 0x5A, 0x01, 0xB0, 0x93, 0x5B, 0x01, 0xBF, 0x91, -0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, -0x1F, 0x90, 0x18, 0x95, 0x0C, 0x94, 0x26, 0x10, 0x0C, 0x94, 0x1E, 0x10, 0xEF, 0x92, 0xFF, 0x92, -0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0xEC, 0x01, 0x90, 0x91, 0x56, 0x01, 0x9F, 0x5F, -0x29, 0x2F, 0x27, 0x70, 0x20, 0x93, 0x56, 0x01, 0x90, 0xFF, 0x02, 0xC0, 0x90, 0xE8, 0x01, 0xC0, -0x90, 0xE0, 0x21, 0xFD, 0x90, 0x64, 0x24, 0x70, 0x09, 0xF0, 0x90, 0x62, 0x20, 0xE1, 0x29, 0x0F, -0xFE, 0x01, 0x3C, 0x96, 0x7E, 0x01, 0x8F, 0xE0, 0xE8, 0x0E, 0xF1, 0x1C, 0x00, 0xE0, 0x11, 0xE0, -0x61, 0x91, 0x66, 0x23, 0x31, 0xF0, 0x70, 0xE0, 0xC8, 0x01, 0x0E, 0x94, 0x9D, 0x0F, 0x6F, 0x5F, -0x01, 0xC0, 0x60, 0xE0, 0xDF, 0x01, 0x14, 0x97, 0x6C, 0x93, 0x32, 0x2F, 0x36, 0x9F, 0x03, 0x0E, -0x30, 0xE0, 0x31, 0x1D, 0x11, 0x24, 0xCF, 0x01, 0x07, 0x97, 0x31, 0x11, 0x03, 0xC0, 0xEC, 0x01, -0x18, 0x82, 0x03, 0xC0, 0x31, 0x50, 0xEC, 0x01, 0x38, 0x83, 0x66, 0x23, 0x11, 0xF0, 0x61, 0x50, -0x6C, 0x93, 0xEE, 0x15, 0xFF, 0x05, 0xE1, 0xF6, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, -0xFF, 0x90, 0xEF, 0x90, 0x08, 0x95, 0x3F, 0x92, 0x4F, 0x92, 0x5F, 0x92, 0x6F, 0x92, 0x7F, 0x92, -0x8F, 0x92, 0x9F, 0x92, 0xAF, 0x92, 0xBF, 0x92, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, -0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, -0xF8, 0x2E, 0x80, 0x91, 0x77, 0x01, 0x90, 0x91, 0x78, 0x01, 0xA0, 0x91, 0x79, 0x01, 0xB0, 0x91, -0x7A, 0x01, 0x89, 0x2B, 0x8A, 0x2B, 0x8B, 0x2B, 0xE9, 0xF0, 0x0E, 0x94, 0xE1, 0x09, 0x00, 0x91, -0xC4, 0x07, 0x10, 0x91, 0xC5, 0x07, 0x20, 0x91, 0xC6, 0x07, 0x30, 0x91, 0xC7, 0x07, 0xDC, 0x01, -0xCB, 0x01, 0x80, 0x1B, 0x91, 0x0B, 0xA2, 0x0B, 0xB3, 0x0B, 0x00, 0x91, 0x77, 0x01, 0x10, 0x91, -0x78, 0x01, 0x20, 0x91, 0x79, 0x01, 0x30, 0x91, 0x7A, 0x01, 0x80, 0x17, 0x91, 0x07, 0xA2, 0x07, -0xB3, 0x07, 0xB8, 0xF2, 0x0E, 0x94, 0xE1, 0x09, 0x60, 0x93, 0xC4, 0x07, 0x70, 0x93, 0xC5, 0x07, -0x80, 0x93, 0xC6, 0x07, 0x90, 0x93, 0xC7, 0x07, 0xE0, 0x91, 0x7F, 0x01, 0xF0, 0x91, 0x80, 0x01, -0x30, 0x97, 0x59, 0xF0, 0x40, 0x91, 0x7B, 0x01, 0x50, 0x91, 0x7C, 0x01, 0x60, 0x91, 0x7D, 0x01, -0x70, 0x91, 0x7E, 0x01, 0x8F, 0x2D, 0x09, 0x95, 0xF8, 0x2E, 0x00, 0x91, 0xC2, 0x07, 0x10, 0x91, -0xC3, 0x07, 0x4F, 0x2C, 0x51, 0x2C, 0x61, 0x2C, 0x71, 0x2C, 0x01, 0x15, 0x11, 0x05, 0x09, 0xF4, -0x61, 0xC0, 0xD8, 0x01, 0x1C, 0x96, 0xEC, 0x90, 0x1C, 0x97, 0x80, 0x91, 0x75, 0x01, 0x90, 0x91, -0x76, 0x01, 0x84, 0x36, 0x91, 0x05, 0x10, 0xF4, 0x1C, 0x96, 0x1C, 0x92, 0xD8, 0x01, 0xED, 0x91, -0xFC, 0x91, 0xA2, 0x80, 0xB3, 0x80, 0x19, 0x82, 0x1A, 0x82, 0x1B, 0x82, 0xF1, 0x10, 0x14, 0xC0, -0xF8, 0x01, 0x45, 0x85, 0x56, 0x85, 0x62, 0x81, 0x73, 0x81, 0x9E, 0x01, 0x2F, 0x5F, 0x3F, 0x4F, -0xC8, 0x01, 0xF5, 0x01, 0x09, 0x95, 0xD8, 0x01, 0x1C, 0x96, 0xEC, 0x92, 0x1C, 0x97, 0x14, 0x96, -0x0D, 0x91, 0x1C, 0x91, 0x15, 0x97, 0xD1, 0xCF, 0xF8, 0x01, 0x39, 0x96, 0xCE, 0x01, 0x01, 0x96, -0x6C, 0x01, 0x48, 0x01, 0x9C, 0xE0, 0x89, 0x0E, 0x91, 0x1C, 0xDF, 0x01, 0x13, 0x97, 0x3C, 0x90, -0x21, 0x91, 0x33, 0x20, 0x01, 0xF1, 0x22, 0x23, 0xF1, 0xF0, 0x82, 0x2F, 0x90, 0xE0, 0xA0, 0xE0, -0xB0, 0xE0, 0x9C, 0x01, 0xAD, 0x01, 0x2F, 0x5F, 0x3F, 0x4F, 0x4F, 0x4F, 0x5F, 0x4F, 0xC3, 0x01, -0xB2, 0x01, 0x0E, 0x94, 0x6D, 0x0F, 0x9B, 0x01, 0xAC, 0x01, 0x83, 0x2D, 0x90, 0xE0, 0xA0, 0xE0, -0xB0, 0xE0, 0xBC, 0x01, 0xCD, 0x01, 0x6F, 0x5F, 0x7F, 0x4F, 0x8F, 0x4F, 0x9F, 0x4F, 0x0E, 0x94, -0x6D, 0x0F, 0xD6, 0x01, 0x8C, 0x93, 0xBF, 0xEF, 0xCB, 0x1A, 0xDB, 0x0A, 0xE8, 0x15, 0xF9, 0x05, -0xA1, 0xF6, 0xB6, 0xCF, 0x80, 0x91, 0xC0, 0x07, 0x90, 0x91, 0xC1, 0x07, 0x8C, 0x01, 0x0F, 0x5F, -0x1F, 0x4F, 0x10, 0x93, 0xC1, 0x07, 0x00, 0x93, 0xC0, 0x07, 0x49, 0x97, 0x9C, 0xF1, 0x0E, 0x94, -0xCC, 0x0A, 0x4B, 0x01, 0x5C, 0x01, 0x88, 0xEE, 0x93, 0xE0, 0x08, 0x9F, 0xB0, 0x01, 0x09, 0x9F, -0x70, 0x0D, 0x18, 0x9F, 0x70, 0x0D, 0x11, 0x24, 0x07, 0x2E, 0x00, 0x0C, 0x88, 0x0B, 0x99, 0x0B, -0xC0, 0x90, 0xBC, 0x07, 0xD0, 0x90, 0xBD, 0x07, 0xE0, 0x90, 0xBE, 0x07, 0xF0, 0x90, 0xBF, 0x07, -0xA5, 0x01, 0x94, 0x01, 0x2C, 0x19, 0x3D, 0x09, 0x4E, 0x09, 0x5F, 0x09, 0x0E, 0x94, 0xB1, 0x0F, -0x30, 0x93, 0x76, 0x01, 0x20, 0x93, 0x75, 0x01, 0x10, 0x92, 0xC1, 0x07, 0x10, 0x92, 0xC0, 0x07, -0x0E, 0x94, 0xCC, 0x0A, 0x60, 0x93, 0xBC, 0x07, 0x70, 0x93, 0xBD, 0x07, 0x80, 0x93, 0xBE, 0x07, -0x90, 0x93, 0xBF, 0x07, 0x0F, 0x90, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, -0x0F, 0x91, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, 0xAF, 0x90, 0x9F, 0x90, -0x8F, 0x90, 0x7F, 0x90, 0x6F, 0x90, 0x5F, 0x90, 0x4F, 0x90, 0x3F, 0x90, 0x08, 0x95, 0xFC, 0x01, -0x80, 0x91, 0x73, 0x01, 0x81, 0x11, 0x03, 0xC0, 0x8F, 0xEF, 0x9F, 0xEF, 0x08, 0x95, 0x9F, 0xB7, -0xF8, 0x94, 0x82, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0x12, 0x16, -0x13, 0x06, 0x14, 0xF4, 0x21, 0xE0, 0x30, 0xE0, 0x21, 0x15, 0x31, 0x05, 0x59, 0xF0, 0x28, 0x98, -0x84, 0xE6, 0x80, 0x93, 0x72, 0x01, 0x80, 0x91, 0xF1, 0x00, 0x80, 0x83, 0x80, 0x91, 0xF2, 0x00, -0x88, 0x23, 0x19, 0xF0, 0x9F, 0xBF, 0xC9, 0x01, 0x08, 0x95, 0x8B, 0xE6, 0x80, 0x93, 0xE8, 0x00, -0xF9, 0xCF, 0x80, 0x91, 0xB4, 0x07, 0x81, 0x11, 0x0D, 0xC0, 0x82, 0xE0, 0x80, 0x93, 0xB0, 0x07, -0x84, 0xE0, 0x80, 0x93, 0xB1, 0x07, 0x10, 0x92, 0xB3, 0x07, 0x10, 0x92, 0xB2, 0x07, 0x81, 0xE0, -0x80, 0x93, 0xB4, 0x07, 0x80, 0xEB, 0x97, 0xE0, 0x08, 0x95, 0xE8, 0xEC, 0xF7, 0xE0, 0x13, 0x82, -0x12, 0x82, 0x88, 0xEE, 0x93, 0xE0, 0xA0, 0xE0, 0xB0, 0xE0, 0x84, 0x83, 0x95, 0x83, 0xA6, 0x83, -0xB7, 0x83, 0x89, 0xE3, 0x91, 0xE0, 0x91, 0x83, 0x80, 0x83, 0x8F, 0xEF, 0x9F, 0xEF, 0x95, 0x87, -0x84, 0x87, 0xE4, 0xE7, 0xF1, 0xE0, 0x80, 0x83, 0x12, 0x82, 0x11, 0x82, 0x14, 0x86, 0x13, 0x86, -0x8F, 0xEF, 0x9F, 0xEF, 0xDC, 0x01, 0x87, 0x83, 0x90, 0x87, 0xA1, 0x87, 0xB2, 0x87, 0xE1, 0xE8, -0xF1, 0xE0, 0x13, 0x82, 0x12, 0x82, 0x11, 0x86, 0x10, 0x86, 0x17, 0x82, 0x16, 0x82, 0x11, 0x82, -0x10, 0x82, 0x15, 0x82, 0x14, 0x82, 0x8A, 0xE7, 0x96, 0xE0, 0x97, 0x87, 0x86, 0x87, 0x11, 0x8A, -0x10, 0x8A, 0x13, 0x86, 0x12, 0x86, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x1F, 0x92, -0xCD, 0xB7, 0xDE, 0xB7, 0x78, 0x94, 0x84, 0xB5, 0x82, 0x60, 0x84, 0xBD, 0x84, 0xB5, 0x81, 0x60, -0x84, 0xBD, 0x85, 0xB5, 0x82, 0x60, 0x85, 0xBD, 0x85, 0xB5, 0x81, 0x60, 0x85, 0xBD, 0x80, 0x91, -0x6E, 0x00, 0x81, 0x60, 0x80, 0x93, 0x6E, 0x00, 0x10, 0x92, 0x81, 0x00, 0x80, 0x91, 0x81, 0x00, -0x82, 0x60, 0x80, 0x93, 0x81, 0x00, 0x80, 0x91, 0x81, 0x00, 0x81, 0x60, 0x80, 0x93, 0x81, 0x00, -0x80, 0x91, 0x80, 0x00, 0x81, 0x60, 0x80, 0x93, 0x80, 0x00, 0x80, 0x91, 0x91, 0x00, 0x82, 0x60, -0x80, 0x93, 0x91, 0x00, 0x80, 0x91, 0x91, 0x00, 0x81, 0x60, 0x80, 0x93, 0x91, 0x00, 0x80, 0x91, -0x90, 0x00, 0x81, 0x60, 0x80, 0x93, 0x90, 0x00, 0x80, 0x91, 0xC1, 0x00, 0x84, 0x60, 0x80, 0x93, -0xC1, 0x00, 0x80, 0x91, 0xC1, 0x00, 0x82, 0x60, 0x80, 0x93, 0xC1, 0x00, 0x80, 0x91, 0xC1, 0x00, -0x81, 0x60, 0x80, 0x93, 0xC1, 0x00, 0x80, 0x91, 0xC3, 0x00, 0x81, 0x60, 0x80, 0x93, 0xC3, 0x00, -0x80, 0x91, 0xC0, 0x00, 0x82, 0x60, 0x80, 0x93, 0xC0, 0x00, 0x80, 0x91, 0xC2, 0x00, 0x81, 0x60, -0x80, 0x93, 0xC2, 0x00, 0x80, 0x91, 0x7A, 0x00, 0x84, 0x60, 0x80, 0x93, 0x7A, 0x00, 0x80, 0x91, -0x7A, 0x00, 0x82, 0x60, 0x80, 0x93, 0x7A, 0x00, 0x80, 0x91, 0x7A, 0x00, 0x81, 0x60, 0x80, 0x93, -0x7A, 0x00, 0x80, 0x91, 0x7A, 0x00, 0x80, 0x68, 0x80, 0x93, 0x7A, 0x00, 0x10, 0x92, 0x73, 0x01, -0x10, 0x92, 0x64, 0x01, 0x10, 0x92, 0x63, 0x01, 0x80, 0x91, 0xD7, 0x00, 0x81, 0x60, 0x80, 0x93, -0xD7, 0x00, 0x80, 0xEA, 0x80, 0x93, 0xD8, 0x00, 0x89, 0xB5, 0x80, 0x61, 0x89, 0xBD, 0x89, 0xB5, -0x82, 0x60, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x61, 0xE0, 0x70, 0xE0, 0x80, 0xE0, -0x90, 0xE0, 0x0E, 0x94, 0x06, 0x0A, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7C, 0x80, 0x61, 0x80, 0x93, -0xD8, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x80, 0x7F, 0x80, 0x93, 0xE0, 0x00, 0x80, 0x91, 0xE1, 0x00, -0x8E, 0x7E, 0x80, 0x93, 0xE1, 0x00, 0x8D, 0xE0, 0x80, 0x93, 0xE2, 0x00, 0x55, 0x9A, 0x20, 0x9A, -0xEE, 0xEF, 0xFF, 0xE7, 0x85, 0x91, 0x94, 0x91, 0x8B, 0x3F, 0x9C, 0x4D, 0x19, 0xF4, 0x81, 0xE0, -0x80, 0x93, 0x62, 0x01, 0x8F, 0xEF, 0x9F, 0xEF, 0x90, 0x93, 0xD5, 0x07, 0x80, 0x93, 0xD4, 0x07, -0xE2, 0xE7, 0xF1, 0xE0, 0x24, 0x91, 0xE3, 0xE5, 0xF1, 0xE0, 0x84, 0x91, 0x88, 0x23, 0xC9, 0xF0, -0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, 0xFC, 0x01, 0xE5, 0x5C, 0xFE, 0x4F, 0x45, 0x91, 0x54, 0x91, -0xFC, 0x01, 0xE3, 0x5D, 0xFE, 0x4F, 0xA5, 0x91, 0xB4, 0x91, 0x9F, 0xB7, 0xF8, 0x94, 0xFA, 0x01, -0x30, 0x81, 0x82, 0x2F, 0x80, 0x95, 0x83, 0x23, 0x80, 0x83, 0xEC, 0x91, 0x2E, 0x2B, 0x2C, 0x93, -0x9F, 0xBF, 0xD8, 0x9A, 0x80, 0x91, 0x6B, 0x00, 0x80, 0x64, 0x80, 0x93, 0x6B, 0x00, 0x80, 0x91, -0x68, 0x00, 0x81, 0x60, 0x80, 0x93, 0x68, 0x00, 0xE0, 0xE8, 0xFF, 0xE6, 0xE4, 0x91, 0xE0, 0x93, -0x71, 0x01, 0xE1, 0xE8, 0xFF, 0xE6, 0x85, 0x91, 0x94, 0x91, 0x90, 0x93, 0x70, 0x01, 0x80, 0x93, -0x6F, 0x01, 0xA7, 0xE6, 0xB1, 0xE0, 0xE3, 0xE8, 0xFF, 0xE6, 0x84, 0x91, 0x8D, 0x93, 0x31, 0x96, -0xEB, 0x38, 0x2F, 0xE6, 0xF2, 0x07, 0xC9, 0xF7, 0x80, 0x91, 0x6F, 0x01, 0x90, 0x91, 0x70, 0x01, -0x81, 0x30, 0x92, 0x40, 0x30, 0xF0, 0x80, 0xE0, 0x92, 0xE0, 0x90, 0x93, 0x70, 0x01, 0x80, 0x93, -0x6F, 0x01, 0x80, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x24, 0x0B, 0x82, 0x31, 0x09, 0xF0, 0x50, 0xC1, -0x81, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x24, 0x0B, 0x84, 0x33, 0x09, 0xF0, 0x49, 0xC1, 0x82, 0xE0, -0x90, 0xE0, 0x0E, 0x94, 0x24, 0x0B, 0xF8, 0x2E, 0x80, 0x93, 0x66, 0x01, 0x83, 0xE0, 0x90, 0xE0, -0x0E, 0x94, 0x24, 0x0B, 0x80, 0x93, 0x65, 0x01, 0x8F, 0x2D, 0x0E, 0x94, 0x5D, 0x04, 0x80, 0x91, -0x65, 0x01, 0x0E, 0x94, 0x3C, 0x04, 0xE0, 0x90, 0x6F, 0x01, 0xF0, 0x90, 0x70, 0x01, 0x80, 0x91, -0xA6, 0x01, 0x81, 0x11, 0x45, 0xC0, 0x10, 0x92, 0x98, 0x01, 0x10, 0x92, 0x97, 0x01, 0x8F, 0xEF, -0x80, 0x93, 0x9B, 0x01, 0x80, 0x93, 0x9C, 0x01, 0x80, 0x93, 0x9D, 0x01, 0x80, 0x93, 0x9E, 0x01, -0x80, 0x93, 0x9F, 0x01, 0x80, 0x93, 0xA0, 0x01, 0x81, 0xE0, 0x80, 0x93, 0xA1, 0x01, 0x10, 0x92, -0xA3, 0x01, 0x10, 0x92, 0xA2, 0x01, 0x10, 0x92, 0x9A, 0x01, 0x10, 0x92, 0x99, 0x01, 0x80, 0x91, -0xC2, 0x07, 0x90, 0x91, 0xC3, 0x07, 0x89, 0x2B, 0x31, 0xF4, 0x85, 0xE9, 0x91, 0xE0, 0x90, 0x93, -0xC3, 0x07, 0x80, 0x93, 0xC2, 0x07, 0xE0, 0x91, 0x93, 0x01, 0xF0, 0x91, 0x94, 0x01, 0x30, 0x97, -0x21, 0xF0, 0x85, 0xE9, 0x91, 0xE0, 0x95, 0x83, 0x84, 0x83, 0x85, 0xE9, 0x91, 0xE0, 0x90, 0x93, -0x94, 0x01, 0x80, 0x93, 0x93, 0x01, 0x10, 0x92, 0xA5, 0x01, 0x10, 0x92, 0xA4, 0x01, 0x87, 0xE2, -0x91, 0xE0, 0x90, 0x93, 0x96, 0x01, 0x80, 0x93, 0x95, 0x01, 0x81, 0xE0, 0x80, 0x93, 0xA6, 0x01, -0xE0, 0x91, 0x95, 0x01, 0xF0, 0x91, 0x96, 0x01, 0x04, 0x80, 0xF5, 0x81, 0xE0, 0x2D, 0x85, 0xE9, -0x91, 0xE0, 0x09, 0x95, 0x80, 0xEB, 0x91, 0xE0, 0x90, 0x93, 0x98, 0x01, 0x80, 0x93, 0x97, 0x01, -0xF0, 0x92, 0xA3, 0x01, 0xE0, 0x92, 0xA2, 0x01, 0xE0, 0x91, 0x95, 0x01, 0xF0, 0x91, 0x96, 0x01, -0x02, 0x84, 0xF3, 0x85, 0xE0, 0x2D, 0x85, 0xE9, 0x91, 0xE0, 0x09, 0x95, 0x00, 0x97, 0x11, 0xF1, -0x9C, 0x01, 0x40, 0xE0, 0x50, 0xE0, 0x60, 0xE4, 0x72, 0xE4, 0x8F, 0xE0, 0x90, 0xE0, 0x0E, 0x94, -0xD3, 0x0F, 0xC0, 0x90, 0x77, 0x01, 0xD0, 0x90, 0x78, 0x01, 0xE0, 0x90, 0x79, 0x01, 0xF0, 0x90, -0x7A, 0x01, 0xC9, 0x01, 0xDA, 0x01, 0x8C, 0x15, 0x9D, 0x05, 0xAE, 0x05, 0xBF, 0x05, 0x10, 0xF4, -0xD7, 0x01, 0xC6, 0x01, 0x80, 0x93, 0x77, 0x01, 0x90, 0x93, 0x78, 0x01, 0xA0, 0x93, 0x79, 0x01, -0xB0, 0x93, 0x7A, 0x01, 0x85, 0xE9, 0x91, 0xE0, 0x90, 0x93, 0xAF, 0x01, 0x80, 0x93, 0xAE, 0x01, -0x80, 0x91, 0x74, 0x01, 0x0E, 0x94, 0x73, 0x0B, 0x60, 0xE0, 0xE6, 0x2E, 0x60, 0xE0, 0xF6, 0x2E, -0x88, 0xEC, 0x97, 0xE0, 0x0E, 0x94, 0x05, 0x06, 0x18, 0x16, 0x19, 0x06, 0x0C, 0xF0, 0x52, 0xC0, -0xD1, 0x2C, 0x50, 0xEB, 0xE5, 0x2E, 0x51, 0xE0, 0xF5, 0x2E, 0x88, 0xEC, 0x97, 0xE0, 0x0E, 0x94, -0x05, 0x06, 0x18, 0x16, 0x19, 0x06, 0xCC, 0xF7, 0x88, 0xEC, 0x97, 0xE0, 0x0E, 0x94, 0x14, 0x07, -0x8F, 0x3F, 0xF9, 0xF4, 0x80, 0x91, 0xAE, 0x01, 0x90, 0x91, 0xAF, 0x01, 0xDC, 0x01, 0xED, 0x91, -0xFC, 0x91, 0x00, 0x84, 0xF1, 0x85, 0xE0, 0x2D, 0x09, 0x95, 0x80, 0x17, 0x91, 0x07, 0x40, 0xF4, -0xE0, 0x91, 0xAE, 0x01, 0xF0, 0x91, 0xAF, 0x01, 0xF3, 0x82, 0xE2, 0x82, 0x16, 0x87, 0x05, 0x87, -0x80, 0x91, 0x74, 0x01, 0x0E, 0x94, 0x73, 0x0B, 0x90, 0xE0, 0x00, 0xE0, 0x10, 0xE0, 0xD9, 0x2E, -0xD4, 0xCF, 0x91, 0xE0, 0x9D, 0x0D, 0xE1, 0xE0, 0xF0, 0xE0, 0xEC, 0x0F, 0xFD, 0x1F, 0xED, 0x0D, -0xF1, 0x1D, 0x80, 0x83, 0x93, 0x30, 0x99, 0xF7, 0x01, 0x15, 0xB2, 0xE0, 0x1B, 0x07, 0x10, 0xF0, -0x90, 0xE0, 0xED, 0xCF, 0x8B, 0x81, 0x9A, 0x81, 0xF8, 0x01, 0xEE, 0x0F, 0xFF, 0x1F, 0xE0, 0x0F, -0xF1, 0x1F, 0xE0, 0x55, 0xFE, 0x4F, 0x29, 0x81, 0x20, 0x83, 0x91, 0x83, 0x82, 0x83, 0x0F, 0x5F, -0x1F, 0x4F, 0xEE, 0xCF, 0x20, 0x91, 0x91, 0x01, 0x30, 0x91, 0x92, 0x01, 0xE0, 0x91, 0x8F, 0x01, -0xF0, 0x91, 0x90, 0x01, 0xC9, 0x01, 0x95, 0x95, 0x87, 0x95, 0x20, 0xFF, 0x0A, 0xC0, 0xDC, 0x01, -0xAF, 0x57, 0xBE, 0x4F, 0x2D, 0x91, 0x3C, 0x91, 0xE2, 0x0F, 0xF3, 0x1F, 0x01, 0x90, 0xF0, 0x81, -0xE0, 0x2D, 0x60, 0xEB, 0x71, 0xE0, 0x8F, 0x57, 0x9E, 0x4F, 0x09, 0x95, 0x80, 0x91, 0x74, 0x01, -0x0E, 0x94, 0x73, 0x0B, 0x80, 0x91, 0x8B, 0x01, 0x90, 0x91, 0x8C, 0x01, 0x01, 0x96, 0x60, 0x91, -0x83, 0x01, 0x70, 0x91, 0x84, 0x01, 0x0E, 0x94, 0x89, 0x0F, 0x90, 0x93, 0x8C, 0x01, 0x80, 0x93, -0x8B, 0x01, 0x60, 0x91, 0x85, 0x01, 0x70, 0x91, 0x86, 0x01, 0x80, 0xE0, 0x90, 0xE0, 0x0E, 0x94, -0x06, 0x0A, 0xE1, 0x14, 0xF1, 0x04, 0x09, 0xF4, 0x6B, 0xCF, 0x0E, 0x94, 0x00, 0x00, 0x68, 0xCF, -0x62, 0xE1, 0x80, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x22, 0x0B, 0x64, 0xE3, 0x81, 0xE0, 0x90, 0xE0, -0x0E, 0x94, 0x22, 0x0B, 0x60, 0xE0, 0x82, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x22, 0x0B, 0x60, 0xE0, -0x83, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x22, 0x0B, 0xA2, 0xCE, 0xDB, 0x01, 0x8F, 0x93, 0x9F, 0x93, -0x0E, 0x94, 0xF9, 0x0F, 0xBF, 0x91, 0xAF, 0x91, 0xA2, 0x9F, 0x80, 0x0D, 0x91, 0x1D, 0xA3, 0x9F, -0x90, 0x0D, 0xB2, 0x9F, 0x90, 0x0D, 0x11, 0x24, 0x08, 0x95, 0x99, 0x1B, 0x79, 0xE0, 0x04, 0xC0, -0x99, 0x1F, 0x96, 0x17, 0x08, 0xF0, 0x96, 0x1B, 0x88, 0x1F, 0x7A, 0x95, 0xC9, 0xF7, 0x80, 0x95, -0x08, 0x95, 0xAA, 0x1B, 0xBB, 0x1B, 0x51, 0xE1, 0x07, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xA6, 0x17, -0xB7, 0x07, 0x10, 0xF0, 0xA6, 0x1B, 0xB7, 0x0B, 0x88, 0x1F, 0x99, 0x1F, 0x5A, 0x95, 0xA9, 0xF7, -0x80, 0x95, 0x90, 0x95, 0xBC, 0x01, 0xCD, 0x01, 0x08, 0x95, 0x97, 0xFB, 0x07, 0x2E, 0x16, 0xF4, -0x00, 0x94, 0x07, 0xD0, 0x77, 0xFD, 0x09, 0xD0, 0x0E, 0x94, 0x89, 0x0F, 0x07, 0xFC, 0x05, 0xD0, -0x3E, 0xF4, 0x90, 0x95, 0x81, 0x95, 0x9F, 0x4F, 0x08, 0x95, 0x70, 0x95, 0x61, 0x95, 0x7F, 0x4F, -0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, 0xBB, 0x1B, 0xFD, 0x01, 0x0D, 0xC0, 0xAA, 0x1F, -0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, 0xB3, 0x07, 0xE4, 0x07, 0xF5, 0x07, 0x20, 0xF0, -0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0x99, 0x1F, -0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, 0x80, 0x95, 0x90, 0x95, 0x9B, 0x01, 0xAC, 0x01, -0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0x05, 0x2E, 0x97, 0xFB, 0x1E, 0xF4, 0x00, 0x94, 0x0E, 0x94, -0xEA, 0x0F, 0x57, 0xFD, 0x07, 0xD0, 0x0E, 0x94, 0xB1, 0x0F, 0x07, 0xFC, 0x03, 0xD0, 0x4E, 0xF4, -0x0C, 0x94, 0xEA, 0x0F, 0x50, 0x95, 0x40, 0x95, 0x30, 0x95, 0x21, 0x95, 0x3F, 0x4F, 0x4F, 0x4F, -0x5F, 0x4F, 0x08, 0x95, 0x90, 0x95, 0x80, 0x95, 0x70, 0x95, 0x61, 0x95, 0x7F, 0x4F, 0x8F, 0x4F, -0x9F, 0x4F, 0x08, 0x95, 0x0E, 0x94, 0x0A, 0x10, 0xB7, 0xFF, 0x08, 0x95, 0x82, 0x1B, 0x93, 0x0B, -0x08, 0x95, 0x0E, 0x94, 0x0A, 0x10, 0xA5, 0x9F, 0x90, 0x0D, 0xB4, 0x9F, 0x90, 0x0D, 0xA4, 0x9F, -0x80, 0x0D, 0x91, 0x1D, 0x11, 0x24, 0x08, 0x95, 0xEE, 0x0F, 0xFF, 0x1F, 0x05, 0x90, 0xF4, 0x91, -0xE0, 0x2D, 0x09, 0x94, 0xA2, 0x9F, 0xB0, 0x01, 0xB3, 0x9F, 0xC0, 0x01, 0xA3, 0x9F, 0x70, 0x0D, -0x81, 0x1D, 0x11, 0x24, 0x91, 0x1D, 0xB2, 0x9F, 0x70, 0x0D, 0x81, 0x1D, 0x11, 0x24, 0x91, 0x1D, -0x08, 0x95, 0x81, 0xE0, 0x90, 0xE0, 0xF8, 0x94, 0x0C, 0x94, 0x34, 0x10, 0xF9, 0x99, 0xFE, 0xCF, -0x92, 0xBD, 0x81, 0xBD, 0xF8, 0x9A, 0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, 0xF9, 0x99, -0xFE, 0xCF, 0x1F, 0xBA, 0x92, 0xBD, 0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, 0xFA, 0x9A, -0xF9, 0x9A, 0x0F, 0xBE, 0x01, 0x96, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, -0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC1, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xBC, 0x06, 0xBC, 0x06, 0xBC, 0x06, 0xFB, 0x00, 0xF7, 0x00, 0xF4, 0x00, 0x00, -0x00, 0x00, 0x00, 0x6A, 0x03, 0xAD, 0x03, 0xF2, 0x00, 0xFB, 0x00, 0xF7, 0x00, 0xEF, 0x00, 0x1F, -0x01, 0x00, 0x00, 0x00, 0x00, 0xE4, 0x05, 0x40, 0x0A, 0x05, 0x06, 0x14, 0x07, 0xF0, 0x06, 0xFA, -0x05, 0x00, }; - -#endif // PATTERNPLAYER_SKETCH_H diff --git a/src/libblinky/ProductionSketch.h b/src/libblinky/ProductionSketch.h deleted file mode 100644 index feb7656..0000000 --- a/src/libblinky/ProductionSketch.h +++ /dev/null @@ -1,745 +0,0 @@ -#ifndef PRODUCTION_SKETCH_H -#define PRODUCTION_SKETCH_H - -// Generated automatically on: Wed Sep 28 02:41:31 2016 - -#include - -#define PRODUCTION_ADDRESS 0x0000 -#define PRODUCTION_LENGTH 11710 - -const uint8_t PRODUCTION_DATA[] = { -0x0C, 0x94, 0xD4, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, -0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, -0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0x13, 0x05, 0x0C, 0x94, 0x76, 0x06, 0x0C, 0x94, 0xE8, 0x06, -0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, -0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, -0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0x60, 0x0D, -0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, -0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, -0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, -0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xFC, 0x00, -0x0C, 0x94, 0xFC, 0x00, 0x0C, 0x94, 0xBD, 0x05, 0x0C, 0x94, 0xFC, 0x00, 0x05, 0xA8, 0x4C, 0xCD, -0xB2, 0xD4, 0x4E, 0xB9, 0x38, 0x36, 0xA9, 0x02, 0x0C, 0x50, 0xB9, 0x91, 0x86, 0x88, 0x08, 0x3C, -0xA6, 0xAA, 0xAA, 0x2A, 0xBE, 0x00, 0x00, 0x00, 0x80, 0x3F, 0x08, 0x0B, 0x00, 0x02, 0x02, 0x02, -0x01, 0x00, 0x09, 0x04, 0x00, 0x00, 0x01, 0x02, 0x02, 0x00, 0x00, 0x05, 0x24, 0x00, 0x10, 0x01, -0x05, 0x24, 0x01, 0x01, 0x01, 0x04, 0x24, 0x02, 0x06, 0x05, 0x24, 0x06, 0x00, 0x01, 0x07, 0x05, -0x81, 0x03, 0x10, 0x00, 0x40, 0x09, 0x04, 0x01, 0x00, 0x02, 0x0A, 0x00, 0x00, 0x00, 0x07, 0x05, -0x02, 0x02, 0x40, 0x00, 0x00, 0x07, 0x05, 0x83, 0x02, 0x40, 0x00, 0x00, 0x04, 0x03, 0x09, 0x04, -0x42, 0x6C, 0x69, 0x6E, 0x6B, 0x69, 0x6E, 0x6C, 0x61, 0x62, 0x73, 0x00, 0x42, 0x6C, 0x69, 0x6E, -0x6B, 0x79, 0x54, 0x61, 0x70, 0x65, 0x00, 0x12, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x40, 0x50, -0x1D, 0x5E, 0x60, 0x00, 0x01, 0x01, 0x02, 0x03, 0x01, 0x12, 0x01, 0x00, 0x02, 0xEF, 0x02, 0x01, -0x40, 0x50, 0x1D, 0x5E, 0x60, 0x00, 0x01, 0x01, 0x02, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x25, -0x00, 0x28, 0x00, 0x2B, 0x00, 0x2E, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x27, -0x00, 0x2A, 0x00, 0x2D, 0x00, 0x30, 0x00, 0x04, 0x04, 0x04, 0x04, 0x04, 0x03, 0x04, 0x05, 0x02, -0x02, 0x02, 0x02, 0x04, 0x03, 0x02, 0x02, 0x02, 0x02, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, -0x04, 0x02, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x02, 0x01, 0x10, 0x40, 0x80, 0x40, 0x10, 0x20, -0x40, 0x80, 0x40, 0x80, 0x08, 0x02, 0x04, 0x01, 0x80, 0x40, 0x20, 0x10, 0x02, 0x01, 0x10, 0x80, -0x10, 0x20, 0x40, 0x40, 0x20, 0x00, 0x17, 0x12, 0x11, 0x24, 0x1F, 0xBE, 0xCF, 0xEF, 0xDA, 0xE0, -0xDE, 0xBF, 0xCD, 0xBF, 0x29, 0xE0, 0xA2, 0xE7, 0xB1, 0xE0, 0x01, 0xC0, 0x1D, 0x92, 0xAD, 0x3C, -0xB2, 0x07, 0xE1, 0xF7, 0x11, 0xE0, 0xA0, 0xE0, 0xB1, 0xE0, 0xEC, 0xE4, 0xFD, 0xE2, 0x02, 0xC0, -0x05, 0x90, 0x0D, 0x92, 0xA2, 0x37, 0xB1, 0x07, 0xD9, 0xF7, 0x10, 0xE0, 0xC4, 0xED, 0xD0, 0xE0, -0x04, 0xC0, 0x21, 0x97, 0xFE, 0x01, 0x0E, 0x94, 0xFB, 0x12, 0xC3, 0x3D, 0xD1, 0x07, 0xC9, 0xF7, -0x0E, 0x94, 0x8D, 0x0F, 0x0C, 0x94, 0xA4, 0x16, 0x0C, 0x94, 0x00, 0x00, 0x80, 0xE9, 0x91, 0xE0, -0x08, 0x95, 0x3F, 0x9A, 0x08, 0x95, 0x80, 0xE0, 0x90, 0xE0, 0x08, 0x95, 0xFC, 0x01, 0x85, 0x85, -0x96, 0x85, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x00, 0xD0, 0x00, 0xD0, 0xCD, 0xB7, -0xDE, 0xB7, 0xAB, 0x01, 0x1C, 0x82, 0x1D, 0x82, 0x1E, 0x82, 0xDC, 0x01, 0xED, 0x91, 0xFC, 0x91, -0x01, 0x90, 0xF0, 0x81, 0xE0, 0x2D, 0x19, 0x82, 0x1A, 0x82, 0x1B, 0x82, 0x9E, 0x01, 0x2F, 0x5F, -0x3F, 0x4F, 0xBE, 0x01, 0x6C, 0x5F, 0x7F, 0x4F, 0x09, 0x95, 0x26, 0x96, 0x0F, 0xB6, 0xF8, 0x94, -0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, 0xDF, 0x91, 0xCF, 0x91, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, -0xDC, 0x01, 0xFB, 0x01, 0x32, 0x96, 0x6E, 0x53, 0x7F, 0x4F, 0x12, 0x96, 0x8C, 0x91, 0x12, 0x97, -0xEF, 0x01, 0x22, 0x97, 0x88, 0x83, 0x13, 0x96, 0x8C, 0x91, 0x13, 0x97, 0x21, 0x96, 0x88, 0x83, -0x14, 0x96, 0x8C, 0x91, 0x14, 0x97, 0x80, 0x83, 0x33, 0x96, 0xE6, 0x17, 0xF7, 0x07, 0x69, 0xF7, -0xDF, 0x91, 0xCF, 0x91, 0x08, 0x95, 0x08, 0x95, 0xFC, 0x01, 0x17, 0x86, 0x16, 0x86, 0x11, 0x8A, -0x10, 0x8A, 0x13, 0x8A, 0x12, 0x8A, 0x08, 0x95, 0x4F, 0x92, 0x5F, 0x92, 0x6F, 0x92, 0x7F, 0x92, -0x8F, 0x92, 0xAF, 0x92, 0xBF, 0x92, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0x1F, 0x93, -0xCF, 0x93, 0xDF, 0x93, 0x3C, 0x01, 0xEB, 0x01, 0x0E, 0x94, 0xBD, 0x0A, 0xF3, 0x01, 0x27, 0x85, -0x30, 0x89, 0x62, 0x1B, 0x73, 0x0B, 0x6A, 0x30, 0x71, 0x05, 0xB0, 0xF3, 0xF8, 0x94, 0xE8, 0x81, -0xF9, 0x81, 0x78, 0xB1, 0x70, 0x68, 0x88, 0xB1, 0x8F, 0x77, 0x88, 0xB9, 0xCA, 0x84, 0x9F, 0x81, -0x2C, 0x2D, 0x29, 0x1B, 0x92, 0x2F, 0x2F, 0x83, 0xBF, 0x84, 0x4A, 0x80, 0x5B, 0x80, 0xFD, 0x84, -0xEC, 0x84, 0xDE, 0x84, 0xF3, 0x94, 0xE3, 0x94, 0xD3, 0x94, 0x3E, 0x81, 0x48, 0x85, 0xA9, 0x84, -0x8B, 0x84, 0x11, 0x81, 0xD2, 0x01, 0x20, 0xE0, 0x52, 0x2F, 0x62, 0x2F, 0x61, 0x81, 0x11, 0x27, -0x88, 0x94, 0x61, 0x11, 0x69, 0x0F, 0x08, 0xF4, 0x6F, 0xEF, 0x91, 0x95, 0x88, 0x94, 0xF0, 0xFC, -0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0xF1, 0xFC, 0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0xF2, 0xFC, -0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0xF3, 0xFC, 0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0xF4, 0xFC, -0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0xF5, 0xFC, 0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0xF6, 0xFC, -0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0xF7, 0xFC, 0x16, 0x0F, 0x17, 0x95, 0x88, 0x94, 0x26, 0x2F, -0xF1, 0x10, 0x21, 0x2F, 0x9C, 0x0D, 0x12, 0x2F, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, -0x17, 0xFF, 0x88, 0xB9, 0x60, 0x81, 0x22, 0x27, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, -0x61, 0x11, 0x63, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x16, 0xFF, -0x88, 0xB9, 0x08, 0xF4, 0x6F, 0xEF, 0x31, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, -0xE0, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x15, 0xFF, -0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xE1, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, -0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x14, 0xFF, -0x88, 0xB9, 0xE2, 0xFC, 0x26, 0x0F, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, -0xE3, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x13, 0xFF, -0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xE4, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, -0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x12, 0xFF, -0x88, 0xB9, 0xE5, 0xFC, 0x26, 0x0F, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, -0xE6, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x11, 0xFF, -0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xE7, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, -0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x10, 0xFF, -0x88, 0xB9, 0x16, 0x2F, 0xE1, 0x10, 0x12, 0x2F, 0x3A, 0x0D, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, -0x00, 0xC0, 0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x17, 0xFF, 0x88, 0xB9, -0x62, 0x81, 0x22, 0x27, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x61, 0x11, 0x64, 0x0F, -0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x16, 0xFF, 0x88, 0xB9, 0x08, 0xF4, -0x6F, 0xEF, 0xEB, 0x0D, 0xF1, 0x1D, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xD0, 0xFC, 0x26, 0x0F, -0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x15, 0xFF, 0x88, 0xB9, 0x27, 0x95, -0x88, 0x94, 0xD1, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, -0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x14, 0xFF, 0x88, 0xB9, 0xD2, 0xFC, -0x26, 0x0F, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xD3, 0xFC, 0x26, 0x0F, -0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x13, 0xFF, 0x88, 0xB9, 0x27, 0x95, -0x88, 0x94, 0xD4, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, -0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x12, 0xFF, 0x88, 0xB9, 0xD5, 0xFC, -0x26, 0x0F, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xD6, 0xFC, 0x26, 0x0F, -0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x11, 0xFF, 0x88, 0xB9, 0x27, 0x95, -0x88, 0x94, 0xD7, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, -0x00, 0xC0, 0x00, 0x2C, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x10, 0xFF, 0x88, 0xB9, 0x16, 0x2F, -0xD1, 0x10, 0x12, 0x2F, 0x41, 0x95, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x48, 0x0D, 0x00, 0xC0, -0x00, 0xC0, 0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x17, 0xFF, 0x88, 0xB9, 0x61, 0x81, 0x22, 0x27, -0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x61, 0x11, 0x69, 0x0F, 0x00, 0xC0, 0x00, 0x2C, -0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x16, 0xFF, 0x88, 0xB9, 0x08, 0xF4, 0x6F, 0xEF, 0x91, 0x95, -0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xF0, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, -0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x15, 0xFF, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xF1, 0xFC, -0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, -0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x14, 0xFF, 0x88, 0xB9, 0xF2, 0xFC, 0x26, 0x0F, 0x27, 0x95, -0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xF3, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, -0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x13, 0xFF, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xF4, 0xFC, -0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, -0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x12, 0xFF, 0x88, 0xB9, 0xF5, 0xFC, 0x26, 0x0F, 0x27, 0x95, -0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0xF6, 0xFC, 0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, -0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x11, 0xFF, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0xF7, 0xFC, -0x26, 0x0F, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x27, 0x95, 0x88, 0x94, 0x00, 0xC0, 0x00, 0x2C, -0x78, 0xB9, 0x00, 0xC0, 0x00, 0xC0, 0x10, 0xFF, 0x88, 0xB9, 0x16, 0x2F, 0xF1, 0x10, 0x12, 0x2F, -0x9C, 0x0D, 0x00, 0xC0, 0x00, 0x2C, 0x88, 0xB9, 0x11, 0x97, 0x09, 0xF0, 0x86, 0xCE, 0x20, 0xEE, -0x31, 0xE0, 0xD2, 0x01, 0x0E, 0x94, 0xE0, 0x12, 0xDC, 0x01, 0xCB, 0x01, 0xF4, 0xE0, 0xB6, 0x95, -0xA7, 0x95, 0x97, 0x95, 0x87, 0x95, 0xFA, 0x95, 0xD1, 0xF7, 0x20, 0xE0, 0x30, 0xE0, 0xA9, 0x01, -0x6A, 0xE9, 0x46, 0x9E, 0x41, 0x2D, 0x56, 0x9E, 0x40, 0x0D, 0x51, 0x1D, 0x11, 0x24, 0x84, 0x0F, -0x95, 0x1F, 0xA1, 0x1D, 0xB1, 0x1D, 0x89, 0x3E, 0x43, 0xE0, 0x94, 0x07, 0xA1, 0x05, 0xB1, 0x05, -0x88, 0xF1, 0x88, 0x5E, 0x93, 0x40, 0xA1, 0x09, 0xB1, 0x09, 0x42, 0xE0, 0xB6, 0x95, 0xA7, 0x95, -0x97, 0x95, 0x87, 0x95, 0x4A, 0x95, 0xD1, 0xF7, 0x47, 0xE0, 0x84, 0x9F, 0x21, 0x2D, 0x94, 0x9F, -0x20, 0x0D, 0x31, 0x1D, 0x11, 0x24, 0x60, 0x91, 0x7E, 0x01, 0x70, 0xE0, 0x86, 0x0F, 0x97, 0x1F, -0x82, 0x0F, 0x93, 0x1F, 0x40, 0x91, 0xC3, 0x07, 0x50, 0x91, 0xC4, 0x07, 0x60, 0x91, 0xC5, 0x07, -0x70, 0x91, 0xC6, 0x07, 0x29, 0x2F, 0x33, 0x27, 0x42, 0x0F, 0x53, 0x1F, 0x61, 0x1D, 0x71, 0x1D, -0x40, 0x93, 0xC3, 0x07, 0x50, 0x93, 0xC4, 0x07, 0x60, 0x93, 0xC5, 0x07, 0x70, 0x93, 0xC6, 0x07, -0x80, 0x93, 0x7E, 0x01, 0x78, 0x94, 0x0E, 0x94, 0xBD, 0x0A, 0xF3, 0x01, 0x70, 0x8B, 0x67, 0x87, -0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, -0xAF, 0x90, 0x8F, 0x90, 0x7F, 0x90, 0x6F, 0x90, 0x5F, 0x90, 0x4F, 0x90, 0x08, 0x95, 0x0F, 0x93, -0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0xCD, 0xB7, 0xDE, 0xB7, 0x62, 0x97, 0x0F, 0xB6, 0xF8, 0x94, -0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, 0x8C, 0x01, 0xF9, 0x01, 0xDC, 0x01, 0x1C, 0x96, 0x8C, 0x91, -0x7A, 0x83, 0x69, 0x83, 0x5C, 0x83, 0x4B, 0x83, 0x5E, 0x83, 0x4D, 0x83, 0x90, 0x81, 0x9D, 0x87, -0x91, 0x81, 0x9E, 0x87, 0x92, 0x81, 0x9F, 0x87, 0x81, 0x30, 0x29, 0xF4, 0xCE, 0x01, 0x01, 0x96, -0x0E, 0x94, 0xBE, 0x0D, 0x06, 0xC0, 0x1C, 0x86, 0x1B, 0x86, 0x1A, 0x86, 0x19, 0x86, 0x18, 0x86, -0x1F, 0x82, 0x83, 0xE0, 0x88, 0x8B, 0x1A, 0x8A, 0x19, 0x8A, 0xD8, 0x01, 0xED, 0x91, 0xFC, 0x91, -0x04, 0x84, 0xF5, 0x85, 0xE0, 0x2D, 0xBE, 0x01, 0x6F, 0x5F, 0x7F, 0x4F, 0xC8, 0x01, 0x09, 0x95, -0x62, 0x96, 0x0F, 0xB6, 0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, 0xDF, 0x91, 0xCF, 0x91, -0x1F, 0x91, 0x0F, 0x91, 0x08, 0x95, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0xCD, 0xB7, -0xDE, 0xB7, 0x62, 0x97, 0x0F, 0xB6, 0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, 0x8C, 0x01, -0xF9, 0x01, 0xDC, 0x01, 0x1C, 0x96, 0x8C, 0x91, 0x7A, 0x83, 0x69, 0x83, 0x5C, 0x83, 0x4B, 0x83, -0x5E, 0x83, 0x4D, 0x83, 0x90, 0x81, 0x9D, 0x87, 0x91, 0x81, 0x9E, 0x87, 0x92, 0x81, 0x9F, 0x87, -0x81, 0x30, 0x29, 0xF4, 0xCE, 0x01, 0x01, 0x96, 0x0E, 0x94, 0xBE, 0x0D, 0x06, 0xC0, 0x1C, 0x86, -0x1B, 0x86, 0x1A, 0x86, 0x19, 0x86, 0x18, 0x86, 0x1F, 0x82, 0x18, 0x8A, 0x1A, 0x8A, 0x19, 0x8A, -0xD8, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x04, 0x84, 0xF5, 0x85, 0xE0, 0x2D, 0xBE, 0x01, 0x6F, 0x5F, -0x7F, 0x4F, 0xC8, 0x01, 0x09, 0x95, 0x62, 0x96, 0x0F, 0xB6, 0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, -0xCD, 0xBF, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0x08, 0x95, 0x4F, 0x92, 0x5F, 0x92, -0x6F, 0x92, 0x7F, 0x92, 0x8F, 0x92, 0x9F, 0x92, 0xAF, 0x92, 0xBF, 0x92, 0xEF, 0x92, 0xFF, 0x92, -0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0xEC, 0x01, 0x8B, 0x01, 0x0E, 0x5F, 0x1F, 0x4F, -0xE1, 0x2C, 0xF1, 0x2C, 0xB7, 0x01, 0x80, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x1B, 0x14, 0x2B, 0x01, -0x3C, 0x01, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xE0, 0x5F, 0xE3, 0x0E, 0x94, 0xCD, 0x14, 0x4B, 0x01, -0x5C, 0x01, 0x6E, 0x85, 0x7F, 0x85, 0x07, 0x2E, 0x00, 0x0C, 0x88, 0x0B, 0x99, 0x0B, 0x0E, 0x94, -0x1D, 0x14, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xE8, 0x5E, 0xE3, 0x0E, 0x94, 0xCD, 0x14, 0x9B, 0x01, -0xAC, 0x01, 0xC5, 0x01, 0xB4, 0x01, 0x0E, 0x94, 0x02, 0x13, 0x0E, 0x94, 0x3A, 0x15, 0x58, 0x01, -0x22, 0xE0, 0xA2, 0x1A, 0xB1, 0x08, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xE8, 0x5F, 0xE3, 0x0E, 0x94, -0x02, 0x13, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xE8, 0x52, 0xE4, 0x0E, 0x94, 0xCD, 0x14, 0x2A, 0x81, -0x3B, 0x81, 0x4C, 0x81, 0x5D, 0x81, 0x0E, 0x94, 0xCD, 0x14, 0x0E, 0x94, 0xEC, 0x13, 0xF5, 0x01, -0x60, 0x83, 0x68, 0x89, 0x79, 0x89, 0x07, 0x2E, 0x00, 0x0C, 0x88, 0x0B, 0x99, 0x0B, 0x0E, 0x94, -0x1D, 0x14, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xE1, 0x51, 0xE4, 0x0E, 0x94, 0x73, 0x13, 0x9B, 0x01, -0xAC, 0x01, 0xC3, 0x01, 0xB2, 0x01, 0x0E, 0x94, 0x02, 0x13, 0x26, 0xE6, 0x36, 0xE6, 0x46, 0xE0, -0x50, 0xE4, 0x0E, 0x94, 0x02, 0x13, 0x0E, 0x94, 0x3A, 0x15, 0x58, 0x01, 0xF1, 0xE0, 0xAF, 0x1A, -0xB1, 0x08, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xE8, 0x5F, 0xE3, 0x0E, 0x94, 0x02, 0x13, 0x20, 0xE0, -0x30, 0xE0, 0x40, 0xE8, 0x52, 0xE4, 0x0E, 0x94, 0xCD, 0x14, 0x2E, 0x81, 0x3F, 0x81, 0x48, 0x85, -0x59, 0x85, 0x0E, 0x94, 0xCD, 0x14, 0x0E, 0x94, 0xEC, 0x13, 0xF5, 0x01, 0x60, 0x83, 0x20, 0xE0, -0x30, 0xE0, 0x40, 0xE4, 0x50, 0xE4, 0xC3, 0x01, 0xB2, 0x01, 0x0E, 0x94, 0x73, 0x13, 0x4B, 0x01, -0x5C, 0x01, 0x8A, 0x89, 0x9B, 0x89, 0xBC, 0x01, 0x99, 0x0F, 0x88, 0x0B, 0x99, 0x0B, 0x0E, 0x94, -0x1D, 0x14, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xE6, 0x51, 0xE4, 0x0E, 0x94, 0x73, 0x13, 0x9B, 0x01, -0xAC, 0x01, 0xC5, 0x01, 0xB4, 0x01, 0x0E, 0x94, 0x02, 0x13, 0x26, 0xE6, 0x36, 0xE6, 0x46, 0xE8, -0x50, 0xE4, 0x0E, 0x94, 0x02, 0x13, 0x0E, 0x94, 0x3A, 0x15, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xE8, -0x5F, 0xE3, 0x0E, 0x94, 0x02, 0x13, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xE8, 0x52, 0xE4, 0x0E, 0x94, -0xCD, 0x14, 0x2A, 0x85, 0x3B, 0x85, 0x4C, 0x85, 0x5D, 0x85, 0x0E, 0x94, 0xCD, 0x14, 0x0E, 0x94, -0xEC, 0x13, 0xF8, 0x01, 0x60, 0x83, 0xFF, 0xEF, 0xEF, 0x1A, 0xFF, 0x0A, 0x0D, 0x5F, 0x1F, 0x4F, -0x20, 0xE4, 0xE2, 0x16, 0xF1, 0x04, 0x09, 0xF0, 0x45, 0xCF, 0x8E, 0x85, 0x9F, 0x85, 0x01, 0x96, -0x9F, 0x87, 0x8E, 0x87, 0x88, 0x89, 0x99, 0x89, 0x01, 0x96, 0x99, 0x8B, 0x88, 0x8B, 0x8A, 0x89, -0x9B, 0x89, 0x02, 0x96, 0x9B, 0x8B, 0x8A, 0x8B, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, -0xFF, 0x90, 0xEF, 0x90, 0xBF, 0x90, 0xAF, 0x90, 0x9F, 0x90, 0x8F, 0x90, 0x7F, 0x90, 0x6F, 0x90, -0x5F, 0x90, 0x4F, 0x90, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, -0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, 0x7F, 0x93, 0x8F, 0x93, 0x9F, 0x93, -0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0x83, 0xB1, 0x86, 0xFB, 0x99, 0x27, 0x90, 0xF9, -0x81, 0xE0, 0x89, 0x27, 0x80, 0x93, 0x73, 0x01, 0x88, 0x23, 0xE9, 0xF0, 0x0E, 0x94, 0x54, 0x0D, -0x60, 0x93, 0x78, 0x01, 0x70, 0x93, 0x79, 0x01, 0x80, 0x93, 0x7A, 0x01, 0x90, 0x93, 0x7B, 0x01, -0x10, 0x92, 0x7D, 0x01, 0x8F, 0xE0, 0x80, 0x93, 0xC1, 0x00, 0x83, 0xE0, 0x80, 0x93, 0xC3, 0x00, -0x80, 0xE1, 0x80, 0x93, 0xD1, 0x00, 0x10, 0x92, 0xBF, 0x00, 0x10, 0x92, 0xBE, 0x00, 0x84, 0xE0, -0x80, 0x93, 0x72, 0x00, 0x02, 0xC0, 0x10, 0x92, 0x72, 0x00, 0xFF, 0x91, 0xEF, 0x91, 0xBF, 0x91, -0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, 0x4F, 0x91, 0x3F, 0x91, -0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0xCF, 0x93, 0xDF, 0x93, -0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, 0x68, 0x2F, 0x67, 0x70, 0x60, 0x93, 0xA2, 0x01, 0x83, 0xE0, -0x90, 0xE0, 0x69, 0x83, 0x0E, 0x94, 0x2B, 0x16, 0x69, 0x81, 0x86, 0x17, 0x21, 0xF0, 0x83, 0xE0, -0x90, 0xE0, 0x0E, 0x94, 0xBC, 0x0D, 0xE0, 0x91, 0xA2, 0x01, 0xF0, 0xE0, 0xEF, 0x5B, 0xFE, 0x4F, -0x80, 0x81, 0x80, 0x93, 0x21, 0x08, 0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x08, 0x95, 0xCF, 0x93, -0xDF, 0x93, 0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, 0x60, 0x91, 0x72, 0x01, 0x0E, 0x94, 0xC0, 0x12, -0x69, 0x2F, 0x90, 0x93, 0xA1, 0x01, 0x82, 0xE0, 0x90, 0xE0, 0x69, 0x83, 0x0E, 0x94, 0x2B, 0x16, -0x69, 0x81, 0x86, 0x17, 0x21, 0xF0, 0x82, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0xBC, 0x0D, 0xE0, 0x91, -0xA1, 0x01, 0xF0, 0xE0, 0xEE, 0x0F, 0xFF, 0x1F, 0xE3, 0x57, 0xFE, 0x4F, 0x80, 0x81, 0x91, 0x81, -0xDC, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x02, 0x80, 0xF3, 0x81, 0xE0, 0x2D, 0x09, 0x95, 0x0E, 0x94, -0x54, 0x0D, 0x60, 0x93, 0x85, 0x01, 0x70, 0x93, 0x86, 0x01, 0x80, 0x93, 0x87, 0x01, 0x90, 0x93, -0x88, 0x01, 0x10, 0x92, 0x89, 0x01, 0x10, 0x92, 0x8A, 0x01, 0x10, 0x92, 0x8B, 0x01, 0x10, 0x92, -0x8C, 0x01, 0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x08, 0x95, 0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, -0x0F, 0x92, 0x11, 0x24, 0x0F, 0x93, 0x1F, 0x93, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, -0x6F, 0x93, 0x7F, 0x93, 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, -0x80, 0x91, 0x7D, 0x01, 0x81, 0x11, 0x0A, 0xC0, 0x81, 0xE0, 0x80, 0x93, 0x7D, 0x01, 0x80, 0x91, -0xA2, 0x01, 0x80, 0x93, 0x7C, 0x01, 0x8F, 0x5F, 0x0E, 0x94, 0x5E, 0x05, 0x0E, 0x94, 0x54, 0x0D, -0x00, 0x91, 0x78, 0x01, 0x10, 0x91, 0x79, 0x01, 0x20, 0x91, 0x7A, 0x01, 0x30, 0x91, 0x7B, 0x01, -0xDC, 0x01, 0xCB, 0x01, 0x80, 0x1B, 0x91, 0x0B, 0xA2, 0x0B, 0xB3, 0x0B, 0x80, 0x93, 0x74, 0x01, -0x90, 0x93, 0x75, 0x01, 0xA0, 0x93, 0x76, 0x01, 0xB0, 0x93, 0x77, 0x01, 0x89, 0x3E, 0x93, 0x40, -0xA1, 0x05, 0xB1, 0x05, 0x9C, 0xF0, 0x80, 0x91, 0x7C, 0x01, 0x0E, 0x94, 0x5E, 0x05, 0x80, 0x91, -0xA1, 0x01, 0x8F, 0x5F, 0x0E, 0x94, 0x7F, 0x05, 0x0E, 0x94, 0x54, 0x0D, 0x60, 0x93, 0x78, 0x01, -0x70, 0x93, 0x79, 0x01, 0x80, 0x93, 0x7A, 0x01, 0x90, 0x93, 0x7B, 0x01, 0xFF, 0x91, 0xEF, 0x91, -0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, 0x4F, 0x91, -0x3F, 0x91, 0x2F, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, -0x18, 0x95, 0x9C, 0x01, 0x90, 0x91, 0x72, 0x01, 0x9A, 0x30, 0x58, 0xF4, 0xE9, 0x2F, 0xF0, 0xE0, -0xEE, 0x0F, 0xFF, 0x1F, 0xE3, 0x57, 0xFE, 0x4F, 0x31, 0x83, 0x20, 0x83, 0x9F, 0x5F, 0x90, 0x93, -0x72, 0x01, 0x08, 0x95, 0xFC, 0x01, 0xDB, 0x01, 0x84, 0xE1, 0x91, 0xE0, 0x91, 0x83, 0x80, 0x83, -0x8C, 0x91, 0x82, 0x83, 0x11, 0x96, 0x8C, 0x91, 0x11, 0x97, 0x83, 0x83, 0x12, 0x96, 0x8C, 0x91, -0x84, 0x83, 0x08, 0x95, 0x0E, 0x94, 0xCA, 0x15, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, -0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, 0x82, 0xE0, 0x89, 0x83, 0x42, 0xE4, 0x50, 0xE0, 0x6A, 0xEC, -0x70, 0xE0, 0x80, 0xE8, 0x0E, 0x94, 0x89, 0x0A, 0x0E, 0x94, 0x79, 0x0F, 0xDC, 0x01, 0x12, 0x96, -0x0D, 0x91, 0x1C, 0x91, 0x13, 0x97, 0x01, 0x15, 0x11, 0x05, 0x69, 0xF0, 0xD8, 0x01, 0xED, 0x91, -0xFC, 0x91, 0x02, 0x80, 0xF3, 0x81, 0xE0, 0x2D, 0xBE, 0x01, 0x6F, 0x5F, 0x7F, 0x4F, 0xC8, 0x01, -0x09, 0x95, 0x97, 0xFF, 0x07, 0xC0, 0x89, 0x81, 0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, -0x0F, 0x91, 0x08, 0x95, 0xF8, 0x01, 0x00, 0x85, 0x11, 0x85, 0xE5, 0xCF, 0x1F, 0x92, 0x0F, 0x92, -0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x8F, 0x93, 0x9F, 0x93, 0x80, 0x91, 0xE1, 0x00, 0x90, 0x91, -0xE1, 0x00, 0x93, 0x7F, 0x90, 0x93, 0xE1, 0x00, 0x83, 0xFF, 0x0F, 0xC0, 0x10, 0x92, 0xE9, 0x00, -0x91, 0xE0, 0x90, 0x93, 0xEB, 0x00, 0x10, 0x92, 0xEC, 0x00, 0x92, 0xE3, 0x90, 0x93, 0xED, 0x00, -0x10, 0x92, 0xCE, 0x07, 0x98, 0xE0, 0x90, 0x93, 0xF0, 0x00, 0x82, 0xFF, 0x20, 0xC0, 0x93, 0xE0, -0x90, 0x93, 0xE9, 0x00, 0x90, 0x91, 0xF2, 0x00, 0x99, 0x23, 0x19, 0xF0, 0x9A, 0xE3, 0x90, 0x93, -0xE8, 0x00, 0x90, 0x91, 0x83, 0x01, 0x99, 0x23, 0x39, 0xF0, 0x90, 0x91, 0x83, 0x01, 0x91, 0x50, -0x90, 0x93, 0x83, 0x01, 0x99, 0x23, 0x89, 0xF1, 0x90, 0x91, 0xCD, 0x07, 0x99, 0x23, 0x39, 0xF0, -0x90, 0x91, 0xCD, 0x07, 0x91, 0x50, 0x90, 0x93, 0xCD, 0x07, 0x99, 0x23, 0x41, 0xF1, 0x84, 0xFF, -0x10, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7E, 0x81, 0x60, 0x80, 0x93, 0xE2, 0x00, 0x80, 0x91, -0xE1, 0x00, 0x8F, 0x7E, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0x84, 0x01, 0x8E, 0x7E, 0x80, 0x61, -0x11, 0xC0, 0x80, 0xFF, 0x16, 0xC0, 0x80, 0x91, 0xE2, 0x00, 0x8E, 0x7E, 0x80, 0x61, 0x80, 0x93, -0xE2, 0x00, 0x80, 0x91, 0xE1, 0x00, 0x8E, 0x7E, 0x80, 0x93, 0xE1, 0x00, 0x80, 0x91, 0x84, 0x01, -0x8E, 0x7E, 0x81, 0x60, 0x80, 0x93, 0x84, 0x01, 0x04, 0xC0, 0x5D, 0x9A, 0xCD, 0xCF, 0x28, 0x9A, -0xD6, 0xCF, 0x9F, 0x91, 0x8F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, -0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, -0xFF, 0x92, 0x0F, 0x93, 0x1F, 0x93, 0x2F, 0x93, 0x3F, 0x93, 0x4F, 0x93, 0x5F, 0x93, 0x6F, 0x93, -0x7F, 0x93, 0x8F, 0x93, 0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0xEF, 0x93, 0xFF, 0x93, 0xCF, 0x93, -0xDF, 0x93, 0xCD, 0xB7, 0xDE, 0xB7, 0x6C, 0x97, 0xDE, 0xBF, 0xCD, 0xBF, 0x10, 0x92, 0xE9, 0x00, -0x80, 0x91, 0xE8, 0x00, 0x83, 0xFF, 0xFA, 0xC1, 0x68, 0xE0, 0xCE, 0x01, 0x45, 0x96, 0x0E, 0x94, -0xB0, 0x0A, 0x82, 0xEF, 0x80, 0x93, 0xE8, 0x00, 0x8D, 0x89, 0x87, 0xFF, 0x05, 0xC0, 0x90, 0x91, -0xE8, 0x00, 0x90, 0xFF, 0xFC, 0xCF, 0x03, 0xC0, 0x9E, 0xEF, 0x90, 0x93, 0xE8, 0x00, 0x98, 0x2F, -0x90, 0x76, 0x09, 0xF0, 0xC6, 0xC0, 0x9E, 0x89, 0x2F, 0x89, 0x18, 0x8D, 0x91, 0x11, 0x0C, 0xC0, -0x80, 0x38, 0x29, 0xF4, 0x80, 0x91, 0xA5, 0x01, 0x80, 0x93, 0xF1, 0x00, 0x02, 0xC0, 0x10, 0x92, -0xF1, 0x00, 0x10, 0x92, 0xF1, 0x00, 0x47, 0xC1, 0x42, 0x2F, 0x50, 0xE0, 0x51, 0x2B, 0x91, 0x30, -0x51, 0xF4, 0x81, 0x11, 0x40, 0xC1, 0x41, 0x30, 0x51, 0x05, 0x09, 0xF0, 0x3C, 0xC1, 0x80, 0x91, -0xA5, 0x01, 0x8D, 0x7F, 0x0B, 0xC0, 0x93, 0x30, 0x61, 0xF4, 0x81, 0x11, 0x34, 0xC1, 0x41, 0x30, -0x51, 0x05, 0x09, 0xF0, 0x30, 0xC1, 0x80, 0x91, 0xA5, 0x01, 0x82, 0x60, 0x80, 0x93, 0xA5, 0x01, -0x2A, 0xC1, 0x95, 0x30, 0x41, 0xF4, 0x80, 0x91, 0xE8, 0x00, 0x80, 0xFF, 0xFC, 0xCF, 0x20, 0x68, -0x20, 0x93, 0xE3, 0x00, 0x20, 0xC1, 0x96, 0x30, 0x09, 0xF0, 0x5F, 0xC0, 0xEB, 0x8C, 0xFC, 0x8C, -0x10, 0x92, 0xE9, 0x00, 0x10, 0x92, 0x82, 0x01, 0x10, 0x92, 0x81, 0x01, 0x12, 0x30, 0x91, 0xF5, -0x10, 0x92, 0x80, 0x01, 0x10, 0x92, 0x7F, 0x01, 0x0E, 0x94, 0x44, 0x06, 0x99, 0xE0, 0xBE, 0x01, -0x6F, 0x5F, 0x7F, 0x4F, 0xDB, 0x01, 0xE9, 0x2F, 0x1D, 0x92, 0xEA, 0x95, 0xE9, 0xF7, 0x99, 0x83, -0x1A, 0x83, 0x91, 0xE0, 0x9E, 0x83, 0x90, 0xEA, 0x98, 0x87, 0x9A, 0xEF, 0x99, 0x87, 0x20, 0x91, -0x81, 0x01, 0x30, 0x91, 0x82, 0x01, 0x27, 0x5F, 0x3F, 0x4F, 0x3C, 0x83, 0x2B, 0x83, 0x8D, 0x83, -0x10, 0x92, 0xE9, 0x00, 0x10, 0x92, 0x82, 0x01, 0x10, 0x92, 0x81, 0x01, 0xF0, 0x92, 0x80, 0x01, -0xE0, 0x92, 0x7F, 0x01, 0x49, 0xE0, 0x50, 0xE0, 0x80, 0xE0, 0x0E, 0x94, 0x89, 0x0A, 0x0E, 0x94, -0x44, 0x06, 0xE1, 0xC0, 0xF0, 0x92, 0x80, 0x01, 0xE0, 0x92, 0x7F, 0x01, 0x0E, 0x94, 0x79, 0x0F, -0xDC, 0x01, 0x12, 0x96, 0xED, 0x90, 0xFC, 0x90, 0x13, 0x97, 0xE1, 0x14, 0xF1, 0x04, 0x09, 0xF4, -0xC0, 0xC0, 0xD7, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x04, 0x80, 0xF5, 0x81, 0xE0, 0x2D, 0xBE, 0x01, -0x6B, 0x5E, 0x7F, 0x4F, 0xC7, 0x01, 0x09, 0x95, 0x00, 0x97, 0x19, 0xF0, 0x0C, 0xF0, 0xC3, 0xC0, -0xC6, 0xC0, 0xF7, 0x01, 0xE0, 0x84, 0xF1, 0x84, 0xE8, 0xCF, 0x97, 0x30, 0x09, 0xF4, 0xBF, 0xC0, -0x98, 0x30, 0x21, 0xF4, 0x81, 0xE0, 0x80, 0x93, 0xF1, 0x00, 0xB5, 0xC0, 0x99, 0x30, 0x09, 0xF0, -0xB2, 0xC0, 0x83, 0x70, 0x09, 0xF0, 0xB3, 0xC0, 0xE9, 0xE1, 0xF1, 0xE0, 0x81, 0xE0, 0x21, 0xE0, -0x36, 0xE3, 0x90, 0x81, 0x99, 0x23, 0x61, 0xF0, 0x80, 0x93, 0xE9, 0x00, 0x20, 0x93, 0xEB, 0x00, -0x91, 0x91, 0x90, 0x93, 0xEC, 0x00, 0x30, 0x93, 0xED, 0x00, 0x8F, 0x5F, 0x87, 0x30, 0x89, 0xF7, -0x8E, 0xE7, 0x80, 0x93, 0xEA, 0x00, 0x10, 0x92, 0xEA, 0x00, 0x8F, 0x89, 0x80, 0x93, 0xCE, 0x07, -0x92, 0xC0, 0x8B, 0x8D, 0x9C, 0x8D, 0x10, 0x92, 0xE9, 0x00, 0x10, 0x92, 0x82, 0x01, 0x10, 0x92, -0x81, 0x01, 0x90, 0x93, 0x80, 0x01, 0x80, 0x93, 0x7F, 0x01, 0x89, 0x8D, 0x81, 0x11, 0x56, 0xC0, -0x8E, 0x89, 0x9D, 0x89, 0x91, 0x3A, 0x59, 0xF4, 0x81, 0x32, 0x09, 0xF0, 0x80, 0xC0, 0x47, 0xE0, -0x50, 0xE0, 0x64, 0xE0, 0x71, 0xE0, 0x80, 0xE0, 0x0E, 0x94, 0x89, 0x0A, 0x74, 0xC0, 0x91, 0x32, -0x09, 0xF0, 0x75, 0xC0, 0x83, 0x32, 0x89, 0xF4, 0x88, 0x8D, 0x90, 0xE0, 0x98, 0x2F, 0x88, 0x27, -0x2F, 0x89, 0x82, 0x2B, 0xA0, 0xE0, 0xB0, 0xE0, 0x80, 0x93, 0x00, 0x01, 0x90, 0x93, 0x01, 0x01, -0xA0, 0x93, 0x02, 0x01, 0xB0, 0x93, 0x03, 0x01, 0x5E, 0xC0, 0x80, 0x32, 0x69, 0xF4, 0x80, 0x91, -0xE8, 0x00, 0x82, 0xFF, 0xFC, 0xCF, 0x67, 0xE0, 0x84, 0xE0, 0x91, 0xE0, 0x0E, 0x94, 0xB0, 0x0A, -0x8B, 0xEF, 0x80, 0x93, 0xE8, 0x00, 0x06, 0xC0, 0x82, 0x32, 0x09, 0xF0, 0x4C, 0xC0, 0x8F, 0x89, -0x80, 0x93, 0x0B, 0x01, 0x80, 0x91, 0xA4, 0x01, 0x88, 0x23, 0x19, 0xF0, 0xEE, 0xEF, 0xFA, 0xE0, -0x02, 0xC0, 0xE0, 0xE0, 0xF8, 0xE0, 0x80, 0x91, 0x04, 0x01, 0x90, 0x91, 0x05, 0x01, 0xA0, 0x91, -0x06, 0x01, 0xB0, 0x91, 0x07, 0x01, 0x80, 0x3B, 0x94, 0x40, 0xA1, 0x05, 0xB1, 0x05, 0x09, 0xF0, -0x88, 0xC0, 0x80, 0x91, 0x0B, 0x01, 0x80, 0xFF, 0xA0, 0xC0, 0x83, 0xC0, 0x0E, 0x94, 0x79, 0x0F, -0xDC, 0x01, 0x12, 0x96, 0x0D, 0x91, 0x1C, 0x91, 0x13, 0x97, 0x01, 0x15, 0x11, 0x05, 0x39, 0xF1, -0xD8, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x01, 0x90, 0xF0, 0x81, 0xE0, 0x2D, 0xBE, 0x01, 0x6B, 0x5E, -0x7F, 0x4F, 0xC8, 0x01, 0x09, 0x95, 0x81, 0x11, 0x16, 0xC0, 0xF8, 0x01, 0x00, 0x85, 0x11, 0x85, -0xEC, 0xCF, 0x11, 0x30, 0xC1, 0xF0, 0x13, 0x30, 0x91, 0xF4, 0x8F, 0x89, 0x88, 0x23, 0x09, 0xF4, -0x55, 0xC0, 0x82, 0x30, 0xE9, 0xF4, 0x40, 0xE8, 0x6A, 0xE0, 0x8C, 0xE1, 0x91, 0xE0, 0x0E, 0x94, -0x4C, 0x0A, 0x88, 0x23, 0x21, 0xF0, 0x8E, 0xEF, 0x80, 0x93, 0xE8, 0x00, 0x87, 0xC0, 0x81, 0xE2, -0x80, 0x93, 0xEB, 0x00, 0x83, 0xC0, 0x8B, 0x8D, 0x9C, 0x8D, 0x08, 0x97, 0x11, 0xF4, 0x10, 0x93, -0xA3, 0x01, 0x80, 0x91, 0xA3, 0x01, 0x81, 0x11, 0x36, 0xC0, 0x67, 0xE2, 0x71, 0xE0, 0x38, 0xC0, -0x81, 0x30, 0x29, 0xF4, 0x40, 0xE8, 0x6B, 0xE0, 0x80, 0xE1, 0x91, 0xE0, 0xE0, 0xCF, 0x83, 0x30, -0x31, 0xF7, 0x0E, 0x94, 0x79, 0x0F, 0xDC, 0x01, 0x12, 0x96, 0xED, 0x90, 0xFC, 0x90, 0x13, 0x97, -0x8E, 0x01, 0x0F, 0x5F, 0x1F, 0x4F, 0x68, 0x01, 0xE1, 0x14, 0xF1, 0x04, 0x79, 0xF0, 0xD7, 0x01, -0xED, 0x91, 0xFC, 0x91, 0x06, 0x80, 0xF7, 0x81, 0xE0, 0x2D, 0xB8, 0x01, 0xC7, 0x01, 0x09, 0x95, -0x08, 0x0F, 0x11, 0x1D, 0xF7, 0x01, 0xE0, 0x84, 0xF1, 0x84, 0xEE, 0xCF, 0xD8, 0x01, 0x1C, 0x92, -0xF6, 0x01, 0x01, 0x90, 0x00, 0x20, 0xE9, 0xF7, 0x31, 0x97, 0xBF, 0x01, 0x6C, 0x19, 0x7D, 0x09, -0x40, 0xE0, 0xC6, 0x01, 0xB4, 0xCF, 0x69, 0xE3, 0x71, 0xE0, 0x02, 0xC0, 0x6C, 0xE0, 0x71, 0xE0, -0x61, 0x15, 0x71, 0x05, 0x09, 0xF4, 0xB3, 0xCF, 0xFB, 0x01, 0x44, 0x91, 0x50, 0xE0, 0x80, 0xE8, -0x33, 0xCF, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, 0x80, 0x91, 0x60, 0x00, 0x88, 0x61, 0x80, 0x93, -0x60, 0x00, 0x10, 0x92, 0x60, 0x00, 0x0F, 0xBE, 0xA8, 0x95, 0xEE, 0x3F, 0x2A, 0xE0, 0xF2, 0x07, -0x39, 0xF0, 0x80, 0x91, 0xFE, 0x0A, 0x90, 0x91, 0xFF, 0x0A, 0x91, 0x83, 0x80, 0x83, 0x93, 0xCF, -0x10, 0x92, 0xFF, 0x0A, 0x10, 0x92, 0xFE, 0x0A, 0x8E, 0xCF, 0xEE, 0x3F, 0x8A, 0xE0, 0xF8, 0x07, -0x31, 0xF0, 0x80, 0x81, 0x91, 0x81, 0x90, 0x93, 0xFF, 0x0A, 0x80, 0x93, 0xFE, 0x0A, 0x87, 0xE7, -0x97, 0xE7, 0x91, 0x83, 0x80, 0x83, 0x9B, 0xE0, 0x88, 0xE1, 0x0F, 0xB6, 0xF8, 0x94, 0xA8, 0x95, -0x80, 0x93, 0x60, 0x00, 0x0F, 0xBE, 0x90, 0x93, 0x60, 0x00, 0x75, 0xCF, 0x6C, 0x96, 0x0F, 0xB6, -0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, 0xDF, 0x91, 0xCF, 0x91, 0xFF, 0x91, 0xEF, 0x91, -0xBF, 0x91, 0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x7F, 0x91, 0x6F, 0x91, 0x5F, 0x91, 0x4F, 0x91, -0x3F, 0x91, 0x2F, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, -0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, 0x1F, 0x90, 0x18, 0x95, 0x40, 0x91, 0x81, 0x01, 0x50, 0x91, -0x82, 0x01, 0x20, 0x91, 0x7F, 0x01, 0x30, 0x91, 0x80, 0x01, 0x42, 0x17, 0x53, 0x07, 0xB4, 0xF4, -0x90, 0x91, 0xE8, 0x00, 0x95, 0x70, 0xE1, 0xF3, 0x90, 0x91, 0xE8, 0x00, 0x92, 0xFD, 0x19, 0xC0, -0x80, 0x93, 0xF1, 0x00, 0x80, 0x91, 0x81, 0x01, 0x90, 0x91, 0x82, 0x01, 0x01, 0x96, 0x8F, 0x73, -0x99, 0x27, 0x89, 0x2B, 0x19, 0xF4, 0x8E, 0xEF, 0x80, 0x93, 0xE8, 0x00, 0x80, 0x91, 0x81, 0x01, -0x90, 0x91, 0x82, 0x01, 0x01, 0x96, 0x90, 0x93, 0x82, 0x01, 0x80, 0x93, 0x81, 0x01, 0x81, 0xE0, -0x08, 0x95, 0x80, 0xE0, 0x08, 0x95, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0x0F, 0x93, -0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x6C, 0x01, 0x7A, 0x01, 0x8B, 0x01, 0xC0, 0xE0, 0xD0, 0xE0, -0xCE, 0x15, 0xDF, 0x05, 0x89, 0xF0, 0xD8, 0x01, 0x6D, 0x91, 0x8D, 0x01, 0xD6, 0x01, 0xED, 0x91, -0xFC, 0x91, 0x01, 0x90, 0xF0, 0x81, 0xE0, 0x2D, 0xC6, 0x01, 0x09, 0x95, 0x89, 0x2B, 0x11, 0xF4, -0x7E, 0x01, 0x02, 0xC0, 0x21, 0x96, 0xEC, 0xCF, 0xC7, 0x01, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, -0x0F, 0x91, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, -0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, 0x69, 0x83, 0xDC, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x02, 0x80, -0xF3, 0x81, 0xE0, 0x2D, 0x41, 0xE0, 0x50, 0xE0, 0xBE, 0x01, 0x6F, 0x5F, 0x7F, 0x4F, 0x09, 0x95, -0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x08, 0x95, 0x83, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, -0xF2, 0x00, 0x88, 0x23, 0x19, 0xF0, 0x8A, 0xE3, 0x80, 0x93, 0xE8, 0x00, 0x08, 0x95, 0xFC, 0x01, -0x84, 0x85, 0x95, 0x85, 0x97, 0xFD, 0x0B, 0xC0, 0x9F, 0xB7, 0xF8, 0x94, 0x82, 0xE0, 0x80, 0x93, -0xE9, 0x00, 0x80, 0x91, 0xF2, 0x00, 0x9F, 0xBF, 0x90, 0xE0, 0x01, 0x96, 0x08, 0x95, 0x9F, 0xB7, -0xF8, 0x94, 0x82, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x80, 0x91, 0xF2, 0x00, 0x9F, 0xBF, 0x90, 0xE0, -0x08, 0x95, 0x22, 0xE0, 0x30, 0xE0, 0xFC, 0x01, 0x30, 0x87, 0x27, 0x83, 0x21, 0xE0, 0x21, 0x87, -0x08, 0x95, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, -0x8C, 0x01, 0xFC, 0x01, 0x84, 0x85, 0x95, 0x85, 0x97, 0xFF, 0x0E, 0xC0, 0xCE, 0x01, 0x01, 0x96, -0x0E, 0x94, 0x4F, 0x0F, 0x01, 0x97, 0x19, 0xF4, 0x29, 0x81, 0x30, 0xE0, 0x02, 0xC0, 0x2F, 0xEF, -0x3F, 0xEF, 0xF8, 0x01, 0x35, 0x87, 0x24, 0x87, 0xF8, 0x01, 0x84, 0x85, 0x95, 0x85, 0x0F, 0x90, -0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x1F, 0x92, -0xCD, 0xB7, 0xDE, 0xB7, 0xFC, 0x01, 0x84, 0x85, 0x95, 0x85, 0x97, 0xFD, 0x05, 0xC0, 0x2F, 0xEF, -0x3F, 0xEF, 0x35, 0x87, 0x24, 0x87, 0x0B, 0xC0, 0xCE, 0x01, 0x01, 0x96, 0x0E, 0x94, 0x4F, 0x0F, -0x01, 0x97, 0x19, 0xF4, 0x89, 0x81, 0x90, 0xE0, 0x02, 0xC0, 0x8F, 0xEF, 0x9F, 0xEF, 0x0F, 0x90, -0xDF, 0x91, 0xCF, 0x91, 0x08, 0x95, 0x4F, 0x92, 0x5F, 0x92, 0x6F, 0x92, 0x7F, 0x92, 0x8F, 0x92, -0x9F, 0x92, 0xAF, 0x92, 0xBF, 0x92, 0xCF, 0x92, 0xDF, 0x92, 0xFF, 0x92, 0x0F, 0x93, 0x1F, 0x93, -0xCF, 0x93, 0xDF, 0x93, 0xEC, 0x01, 0x23, 0x96, 0x8C, 0x01, 0x0D, 0x5B, 0x1E, 0x4F, 0x41, 0x2C, -0x51, 0x2C, 0x32, 0x01, 0x4A, 0x94, 0x9F, 0xE3, 0x89, 0x2E, 0x91, 0x2C, 0xA1, 0x2C, 0xB1, 0x2C, -0xFF, 0x24, 0xF3, 0x94, 0x1A, 0x82, 0x19, 0x82, 0x0E, 0x94, 0x1D, 0x16, 0x6E, 0x01, 0x21, 0xE0, -0xC2, 0x1A, 0xD1, 0x08, 0xA3, 0x01, 0x92, 0x01, 0x0E, 0x94, 0x41, 0x16, 0xF6, 0x01, 0x60, 0x83, -0x0E, 0x94, 0x1D, 0x16, 0xA5, 0x01, 0x94, 0x01, 0x0E, 0x94, 0x41, 0x16, 0x6B, 0x83, 0xF8, 0x82, -0x25, 0x96, 0xC0, 0x17, 0xD1, 0x07, 0x31, 0xF7, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, -0xFF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, 0xAF, 0x90, 0x9F, 0x90, 0x8F, 0x90, 0x7F, 0x90, -0x6F, 0x90, 0x5F, 0x90, 0x4F, 0x90, 0x08, 0x95, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, -0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, 0x18, 0x2F, -0x06, 0x2F, 0xE4, 0x2E, 0x86, 0x2F, 0x88, 0x0F, 0x8E, 0x5F, 0x99, 0x83, 0x0E, 0x94, 0x25, 0x09, -0x83, 0xE0, 0x0E, 0x94, 0x25, 0x09, 0xF1, 0x2E, 0xC1, 0x2E, 0x99, 0x81, 0xD9, 0x2E, 0x8C, 0x2D, -0x8F, 0x19, 0x80, 0x17, 0x98, 0xF4, 0xF6, 0x01, 0xE7, 0xFE, 0x02, 0xC0, 0x84, 0x91, 0x01, 0xC0, -0x80, 0x81, 0x0E, 0x94, 0x25, 0x09, 0x18, 0x2F, 0x80, 0xE0, 0x0E, 0x94, 0x25, 0x09, 0x81, 0x23, -0xFF, 0xEF, 0xCF, 0x1A, 0xDF, 0x0A, 0x81, 0x11, 0xEA, 0xCF, 0x01, 0xC0, 0x81, 0xE0, 0x0F, 0x90, -0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, -0x08, 0x95, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, -0xD8, 0x2E, 0x8A, 0x01, 0x7B, 0x01, 0xE4, 0x0E, 0xF5, 0x1E, 0xEB, 0x01, 0xCE, 0x15, 0xDF, 0x05, -0x71, 0xF0, 0xD7, 0xFE, 0x03, 0xC0, 0xFE, 0x01, 0x84, 0x91, 0x01, 0xC0, 0x88, 0x81, 0x0E, 0x94, -0x25, 0x09, 0x21, 0x96, 0x81, 0x11, 0xF2, 0xCF, 0x8F, 0xEF, 0x9F, 0xEF, 0x01, 0xC0, 0xC8, 0x01, -0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0x08, 0x95, -0x61, 0x50, 0x30, 0xF0, 0x20, 0x91, 0xF1, 0x00, 0xFC, 0x01, 0x20, 0x83, 0x01, 0x96, 0xF8, 0xCF, -0x28, 0x98, 0x84, 0xE6, 0x80, 0x93, 0xCD, 0x07, 0x08, 0x95, 0x3F, 0xB7, 0xF8, 0x94, 0x80, 0x91, -0xC9, 0x07, 0x90, 0x91, 0xCA, 0x07, 0xA0, 0x91, 0xCB, 0x07, 0xB0, 0x91, 0xCC, 0x07, 0x26, 0xB5, -0xA8, 0x9B, 0x05, 0xC0, 0x2F, 0x3F, 0x19, 0xF0, 0x01, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x3F, 0xBF, -0xBA, 0x2F, 0xA9, 0x2F, 0x98, 0x2F, 0x88, 0x27, 0x82, 0x0F, 0x91, 0x1D, 0xA1, 0x1D, 0xB1, 0x1D, -0xBC, 0x01, 0xCD, 0x01, 0x42, 0xE0, 0x66, 0x0F, 0x77, 0x1F, 0x88, 0x1F, 0x99, 0x1F, 0x4A, 0x95, -0xD1, 0xF7, 0x08, 0x95, 0x8F, 0x92, 0x9F, 0x92, 0xAF, 0x92, 0xBF, 0x92, 0xCF, 0x92, 0xDF, 0x92, -0xEF, 0x92, 0xFF, 0x92, 0x6B, 0x01, 0x7C, 0x01, 0x0E, 0x94, 0xBD, 0x0A, 0x4B, 0x01, 0x5C, 0x01, -0xC1, 0x14, 0xD1, 0x04, 0xE1, 0x04, 0xF1, 0x04, 0xF1, 0xF0, 0x0E, 0x94, 0xBD, 0x0A, 0xDC, 0x01, -0xCB, 0x01, 0x88, 0x19, 0x99, 0x09, 0xAA, 0x09, 0xBB, 0x09, 0x88, 0x3E, 0x93, 0x40, 0xA1, 0x05, -0xB1, 0x05, 0x70, 0xF3, 0x21, 0xE0, 0xC2, 0x1A, 0xD1, 0x08, 0xE1, 0x08, 0xF1, 0x08, 0x88, 0xEE, -0x88, 0x0E, 0x83, 0xE0, 0x98, 0x1E, 0xA1, 0x1C, 0xB1, 0x1C, 0xC1, 0x14, 0xD1, 0x04, 0xE1, 0x04, -0xF1, 0x04, 0x19, 0xF7, 0xDD, 0xCF, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, -0xAF, 0x90, 0x9F, 0x90, 0x8F, 0x90, 0x08, 0x95, 0x8F, 0x92, 0x9F, 0x92, 0xAF, 0x92, 0xBF, 0x92, -0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, -0x5C, 0x01, 0x6B, 0x01, 0x8A, 0x01, 0x80, 0x91, 0x0B, 0x01, 0x88, 0x23, 0x09, 0xF4, 0x5E, 0xC0, -0x80, 0x91, 0xCE, 0x07, 0x88, 0x23, 0x09, 0xF4, 0x59, 0xC0, 0x80, 0x91, 0x84, 0x01, 0x80, 0xFF, -0x05, 0xC0, 0x80, 0x91, 0xE0, 0x00, 0x82, 0x60, 0x80, 0x93, 0xE0, 0x00, 0xE8, 0x01, 0x8A, 0xEF, -0xF8, 0x2E, 0x93, 0xE0, 0xE9, 0x2E, 0x2F, 0xE3, 0x82, 0x2E, 0x3A, 0xE3, 0x93, 0x2E, 0x20, 0x97, -0x09, 0xF4, 0x3D, 0xC0, 0x8F, 0xB7, 0xF8, 0x94, 0xE0, 0x92, 0xE9, 0x00, 0x90, 0x91, 0xE8, 0x00, -0x95, 0xFF, 0x06, 0xC0, 0x90, 0x91, 0xF2, 0x00, 0x28, 0x2D, 0x29, 0x1B, 0x92, 0x2F, 0x01, 0xC0, -0x90, 0xE0, 0x8F, 0xBF, 0x91, 0x11, 0x0A, 0xC0, 0xFA, 0x94, 0xFF, 0x20, 0x79, 0xF1, 0x61, 0xE0, -0x70, 0xE0, 0x80, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0xE2, 0x0A, 0xE1, 0xCF, 0x29, 0x2F, 0x30, 0xE0, -0xC2, 0x17, 0xD3, 0x07, 0x0C, 0xF4, 0x9C, 0x2F, 0x8F, 0xB7, 0xF8, 0x94, 0xE0, 0x92, 0xE9, 0x00, -0x20, 0x91, 0xE8, 0x00, 0x25, 0xFF, 0x11, 0xC0, 0x29, 0x2F, 0x30, 0xE0, 0xC2, 0x1B, 0xD3, 0x0B, -0xF6, 0x01, 0x91, 0x50, 0x20, 0xF0, 0x41, 0x91, 0x40, 0x93, 0xF1, 0x00, 0xFA, 0xCF, 0xC2, 0x0E, -0xD3, 0x1E, 0x90, 0x91, 0xE8, 0x00, 0x95, 0xFF, 0x13, 0xC0, 0x8F, 0xBF, 0xC0, 0xCF, 0x5D, 0x98, -0x84, 0xE6, 0x80, 0x93, 0x83, 0x01, 0x10, 0x16, 0x11, 0x06, 0x44, 0xF0, 0x81, 0xE0, 0x90, 0xE0, -0xF5, 0x01, 0x93, 0x83, 0x82, 0x83, 0x80, 0xE0, 0x90, 0xE0, 0x05, 0xC0, 0xC8, 0x01, 0x03, 0xC0, -0x90, 0x92, 0xE8, 0x00, 0xEA, 0xCF, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, 0xFF, 0x90, -0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, 0xAF, 0x90, 0x9F, 0x90, 0x8F, 0x90, 0x08, 0x95, -0x2F, 0x92, 0x3F, 0x92, 0x4F, 0x92, 0x5F, 0x92, 0x6F, 0x92, 0x7F, 0x92, 0x8F, 0x92, 0x9F, 0x92, -0xAF, 0x92, 0xBF, 0x92, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0x0F, 0x93, 0x1F, 0x93, -0xCF, 0x93, 0xDF, 0x93, 0xCD, 0xB7, 0xDE, 0xB7, 0x28, 0x97, 0x0F, 0xB6, 0xF8, 0x94, 0xDE, 0xBF, -0x0F, 0xBE, 0xCD, 0xBF, 0x9C, 0x01, 0x2D, 0x5F, 0x3F, 0x4F, 0x38, 0x87, 0x2F, 0x83, 0x7B, 0x01, -0x32, 0xE0, 0xE3, 0x0E, 0xF1, 0x1C, 0x6C, 0x01, 0xE6, 0xE0, 0xCE, 0x0E, 0xD1, 0x1C, 0x1C, 0x01, -0xFD, 0xEB, 0x2F, 0x1A, 0xFE, 0xEF, 0x3F, 0x0A, 0x5F, 0xE3, 0x45, 0x2E, 0x51, 0x2C, 0x61, 0x2C, -0x71, 0x2C, 0x9C, 0x01, 0x2E, 0x5B, 0x3E, 0x4F, 0x3A, 0x83, 0x29, 0x83, 0xFC, 0x01, 0xEA, 0x5B, -0xFE, 0x4F, 0xFC, 0x83, 0xEB, 0x83, 0x28, 0x5F, 0x3F, 0x4F, 0x3E, 0x83, 0x2D, 0x83, 0xEF, 0x81, -0xF8, 0x85, 0x80, 0x81, 0x01, 0x81, 0x12, 0x81, 0x81, 0x30, 0x09, 0xF0, 0x51, 0xC0, 0x31, 0x97, -0x60, 0x81, 0x70, 0xE0, 0xC8, 0x01, 0x17, 0xFD, 0x03, 0x96, 0x95, 0x95, 0x87, 0x95, 0x95, 0x95, -0x87, 0x95, 0x86, 0x17, 0x97, 0x07, 0x0C, 0xF0, 0x3F, 0xC0, 0x07, 0x2E, 0x00, 0x0C, 0x88, 0x0B, -0x99, 0x0B, 0x0E, 0x94, 0x1D, 0x14, 0x20, 0xE0, 0x30, 0xE0, 0x4F, 0xE7, 0x53, 0xE4, 0x0E, 0x94, -0x73, 0x13, 0x4B, 0x01, 0x5C, 0x01, 0x29, 0xE9, 0x39, 0xE9, 0x49, 0xE9, 0x5D, 0xE3, 0x0E, 0x94, -0xCD, 0x14, 0xA5, 0x01, 0x94, 0x01, 0x0E, 0x94, 0xCD, 0x14, 0xA5, 0x01, 0x94, 0x01, 0x0E, 0x94, -0xCD, 0x14, 0xA5, 0x01, 0x94, 0x01, 0x0E, 0x94, 0xCD, 0x14, 0x20, 0xE0, 0x30, 0xE0, 0x4F, 0xE7, -0x53, 0xE4, 0x0E, 0x94, 0xCD, 0x14, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xEA, 0x50, 0xE4, 0x0E, 0x94, -0x02, 0x13, 0x0E, 0x94, 0xE5, 0x13, 0x66, 0x0F, 0x77, 0x1F, 0x66, 0x0F, 0x77, 0x1F, 0x60, 0x0F, -0x71, 0x1F, 0x61, 0x15, 0xF4, 0xE0, 0x7F, 0x07, 0x14, 0xF0, 0x6C, 0x5F, 0x73, 0x40, 0xEF, 0x81, -0xF8, 0x85, 0x72, 0x83, 0x61, 0x83, 0x39, 0xC0, 0xEF, 0x81, 0xF8, 0x85, 0x10, 0x82, 0x35, 0xC0, -0x04, 0x30, 0x11, 0x05, 0x64, 0xF0, 0x04, 0x51, 0x11, 0x09, 0xEF, 0x81, 0xF8, 0x85, 0x17, 0xFD, -0x03, 0xC0, 0x12, 0x83, 0x01, 0x83, 0x29, 0xC0, 0x12, 0x82, 0x11, 0x82, 0x26, 0xC0, 0xF6, 0x01, -0x80, 0x81, 0x81, 0x11, 0x1E, 0xC0, 0xEF, 0x81, 0xF8, 0x85, 0x12, 0x82, 0x11, 0x82, 0x0E, 0x94, -0x1D, 0x16, 0x0F, 0x81, 0x18, 0x85, 0x01, 0x50, 0x11, 0x09, 0x2F, 0xEF, 0x30, 0xE0, 0x40, 0xE0, -0x50, 0xE0, 0x0E, 0x94, 0x41, 0x16, 0xF8, 0x01, 0x60, 0x83, 0x0E, 0x94, 0x1D, 0x16, 0xA3, 0x01, -0x92, 0x01, 0x0E, 0x94, 0x41, 0x16, 0xF6, 0x01, 0x60, 0x83, 0x21, 0xE0, 0xEF, 0x81, 0xF8, 0x85, -0x20, 0x83, 0xF6, 0x01, 0x80, 0x81, 0x81, 0x50, 0x80, 0x83, 0x87, 0x01, 0x02, 0x50, 0x11, 0x09, -0xEF, 0x81, 0xF8, 0x85, 0x61, 0x81, 0x72, 0x81, 0x77, 0xFF, 0x02, 0xC0, 0x6D, 0x5F, 0x7F, 0x4F, -0x75, 0x95, 0x67, 0x95, 0x75, 0x95, 0x67, 0x95, 0x70, 0xE0, 0x80, 0xE0, 0x90, 0xE0, 0x0E, 0x94, -0x1D, 0x14, 0xE9, 0x81, 0xFA, 0x81, 0x20, 0x81, 0x31, 0x81, 0x42, 0x81, 0x53, 0x81, 0x0E, 0x94, -0xCD, 0x14, 0x0E, 0x94, 0xEC, 0x13, 0xF8, 0x01, 0x60, 0x83, 0x87, 0x01, 0x01, 0x50, 0x11, 0x09, -0xEF, 0x81, 0xF8, 0x85, 0x61, 0x81, 0x72, 0x81, 0x77, 0xFF, 0x02, 0xC0, 0x6D, 0x5F, 0x7F, 0x4F, -0x75, 0x95, 0x67, 0x95, 0x75, 0x95, 0x67, 0x95, 0x70, 0xE0, 0x80, 0xE0, 0x90, 0xE0, 0x0E, 0x94, -0x1D, 0x14, 0xEB, 0x81, 0xFC, 0x81, 0x20, 0x81, 0x31, 0x81, 0x42, 0x81, 0x53, 0x81, 0x0E, 0x94, -0xCD, 0x14, 0x0E, 0x94, 0xEC, 0x13, 0xF8, 0x01, 0x60, 0x83, 0xEF, 0x81, 0xF8, 0x85, 0x61, 0x81, -0x72, 0x81, 0x77, 0xFF, 0x02, 0xC0, 0x6D, 0x5F, 0x7F, 0x4F, 0x75, 0x95, 0x67, 0x95, 0x75, 0x95, -0x67, 0x95, 0x70, 0xE0, 0x80, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x1D, 0x14, 0xED, 0x81, 0xFE, 0x81, -0x20, 0x81, 0x31, 0x81, 0x42, 0x81, 0x53, 0x81, 0x0E, 0x94, 0xCD, 0x14, 0x0E, 0x94, 0xEC, 0x13, -0xF7, 0x01, 0x60, 0x83, 0x2F, 0x81, 0x38, 0x85, 0x2B, 0x5F, 0x3F, 0x4F, 0x38, 0x87, 0x2F, 0x83, -0x33, 0xE0, 0xE3, 0x0E, 0xF1, 0x1C, 0x85, 0xE0, 0xC8, 0x0E, 0xD1, 0x1C, 0xEF, 0x81, 0xF8, 0x85, -0xE2, 0x15, 0xF3, 0x05, 0x09, 0xF0, 0x03, 0xCF, 0x6E, 0xE1, 0x70, 0xE0, 0x80, 0xE0, 0x90, 0xE0, -0x28, 0x96, 0x0F, 0xB6, 0xF8, 0x94, 0xDE, 0xBF, 0x0F, 0xBE, 0xCD, 0xBF, 0xDF, 0x91, 0xCF, 0x91, -0x1F, 0x91, 0x0F, 0x91, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, 0xAF, 0x90, -0x9F, 0x90, 0x8F, 0x90, 0x7F, 0x90, 0x6F, 0x90, 0x5F, 0x90, 0x4F, 0x90, 0x3F, 0x90, 0x2F, 0x90, -0x0C, 0x94, 0xE2, 0x0A, 0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0xFC, 0x01, 0xDB, 0x01, -0x12, 0x96, 0x80, 0xE0, 0x90, 0xE0, 0x47, 0x81, 0x50, 0x85, 0x8D, 0x01, 0x01, 0x50, 0x11, 0x09, -0x84, 0x17, 0x95, 0x07, 0x80, 0xF0, 0x22, 0x81, 0x33, 0x81, 0x24, 0x0F, 0x35, 0x1F, 0x82, 0x17, -0x93, 0x07, 0x48, 0xF4, 0x24, 0x81, 0xEB, 0x01, 0x28, 0x83, 0x25, 0x81, 0xE8, 0x01, 0x28, 0x83, -0x26, 0x81, 0x2C, 0x93, 0x05, 0xC0, 0xEB, 0x01, 0x18, 0x82, 0xE8, 0x01, 0x18, 0x82, 0x1C, 0x92, -0x01, 0x96, 0x6D, 0x5F, 0x7F, 0x4F, 0x13, 0x96, 0x80, 0x34, 0x91, 0x05, 0xE1, 0xF6, 0x21, 0x85, -0x87, 0x81, 0x90, 0x85, 0x21, 0x11, 0x02, 0xC0, 0x01, 0x96, 0x01, 0xC0, 0x01, 0x97, 0x90, 0x87, -0x87, 0x83, 0x27, 0x81, 0x30, 0x85, 0x42, 0x81, 0x53, 0x81, 0x80, 0xE4, 0x90, 0xE0, 0x84, 0x1B, -0x95, 0x0B, 0x82, 0x17, 0x93, 0x07, 0x18, 0xF4, 0x81, 0xE0, 0x81, 0x87, 0x03, 0xC0, 0x23, 0x2B, -0x09, 0xF4, 0x11, 0x86, 0x6E, 0xE1, 0x70, 0xE0, 0x80, 0xE0, 0x90, 0xE0, 0xDF, 0x91, 0xCF, 0x91, -0x1F, 0x91, 0x0F, 0x91, 0x0C, 0x94, 0xE2, 0x0A, 0x2F, 0xB7, 0xF8, 0x94, 0x60, 0x91, 0xC3, 0x07, -0x70, 0x91, 0xC4, 0x07, 0x80, 0x91, 0xC5, 0x07, 0x90, 0x91, 0xC6, 0x07, 0x2F, 0xBF, 0x08, 0x95, -0x1F, 0x92, 0x0F, 0x92, 0x0F, 0xB6, 0x0F, 0x92, 0x11, 0x24, 0x2F, 0x93, 0x3F, 0x93, 0x8F, 0x93, -0x9F, 0x93, 0xAF, 0x93, 0xBF, 0x93, 0x80, 0x91, 0xC3, 0x07, 0x90, 0x91, 0xC4, 0x07, 0xA0, 0x91, -0xC5, 0x07, 0xB0, 0x91, 0xC6, 0x07, 0x30, 0x91, 0xC8, 0x07, 0x23, 0xE0, 0x23, 0x0F, 0x2D, 0x37, -0x20, 0xF4, 0x01, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x05, 0xC0, 0x26, 0xE8, 0x23, 0x0F, 0x02, 0x96, -0xA1, 0x1D, 0xB1, 0x1D, 0x20, 0x93, 0xC8, 0x07, 0x80, 0x93, 0xC3, 0x07, 0x90, 0x93, 0xC4, 0x07, -0xA0, 0x93, 0xC5, 0x07, 0xB0, 0x93, 0xC6, 0x07, 0x80, 0x91, 0xC9, 0x07, 0x90, 0x91, 0xCA, 0x07, -0xA0, 0x91, 0xCB, 0x07, 0xB0, 0x91, 0xCC, 0x07, 0x01, 0x96, 0xA1, 0x1D, 0xB1, 0x1D, 0x80, 0x93, -0xC9, 0x07, 0x90, 0x93, 0xCA, 0x07, 0xA0, 0x93, 0xCB, 0x07, 0xB0, 0x93, 0xCC, 0x07, 0xBF, 0x91, -0xAF, 0x91, 0x9F, 0x91, 0x8F, 0x91, 0x3F, 0x91, 0x2F, 0x91, 0x0F, 0x90, 0x0F, 0xBE, 0x0F, 0x90, -0x1F, 0x90, 0x18, 0x95, 0xFC, 0x01, 0xDA, 0x01, 0x8D, 0xE4, 0x91, 0xE0, 0x91, 0x83, 0x80, 0x83, -0x73, 0x83, 0x62, 0x83, 0x8C, 0x91, 0x84, 0x83, 0x11, 0x96, 0x8C, 0x91, 0x11, 0x97, 0x85, 0x83, -0x12, 0x96, 0x8C, 0x91, 0x86, 0x83, 0x08, 0x95, 0x0C, 0x94, 0x33, 0x16, 0xEF, 0x92, 0xFF, 0x92, -0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0xEC, 0x01, 0x90, 0x91, 0xC7, 0x07, 0x9F, 0x5F, -0x29, 0x2F, 0x27, 0x70, 0x20, 0x93, 0xC7, 0x07, 0x90, 0xFF, 0x02, 0xC0, 0x90, 0xE8, 0x01, 0xC0, -0x90, 0xE0, 0x21, 0xFD, 0x90, 0x64, 0x24, 0x70, 0x09, 0xF0, 0x90, 0x62, 0x20, 0xE1, 0x29, 0x0F, -0xFE, 0x01, 0x3C, 0x96, 0x7E, 0x01, 0x8F, 0xE0, 0xE8, 0x0E, 0xF1, 0x1C, 0x00, 0xE0, 0x11, 0xE0, -0x61, 0x91, 0x66, 0x23, 0x31, 0xF0, 0x70, 0xE0, 0xC8, 0x01, 0x0E, 0x94, 0xCC, 0x12, 0x6F, 0x5F, -0x01, 0xC0, 0x60, 0xE0, 0xDF, 0x01, 0x14, 0x97, 0x6C, 0x93, 0x32, 0x2F, 0x36, 0x9F, 0x03, 0x0E, -0x30, 0xE0, 0x31, 0x1D, 0x11, 0x24, 0xCF, 0x01, 0x07, 0x97, 0x31, 0x11, 0x03, 0xC0, 0xEC, 0x01, -0x18, 0x82, 0x03, 0xC0, 0x31, 0x50, 0xEC, 0x01, 0x38, 0x83, 0x66, 0x23, 0x11, 0xF0, 0x61, 0x50, -0x6C, 0x93, 0xEE, 0x15, 0xFF, 0x05, 0xE1, 0xF6, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0x0F, 0x91, -0xFF, 0x90, 0xEF, 0x90, 0x08, 0x95, 0x3F, 0x92, 0x4F, 0x92, 0x5F, 0x92, 0x6F, 0x92, 0x7F, 0x92, -0x8F, 0x92, 0x9F, 0x92, 0xAF, 0x92, 0xBF, 0x92, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, -0x0F, 0x93, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, -0xF8, 0x2E, 0x80, 0x91, 0x24, 0x08, 0x90, 0x91, 0x25, 0x08, 0xA0, 0x91, 0x26, 0x08, 0xB0, 0x91, -0x27, 0x08, 0x89, 0x2B, 0x8A, 0x2B, 0x8B, 0x2B, 0xE9, 0xF0, 0x0E, 0x94, 0xBD, 0x0A, 0x00, 0x91, -0xC9, 0x09, 0x10, 0x91, 0xCA, 0x09, 0x20, 0x91, 0xCB, 0x09, 0x30, 0x91, 0xCC, 0x09, 0xDC, 0x01, -0xCB, 0x01, 0x80, 0x1B, 0x91, 0x0B, 0xA2, 0x0B, 0xB3, 0x0B, 0x00, 0x91, 0x24, 0x08, 0x10, 0x91, -0x25, 0x08, 0x20, 0x91, 0x26, 0x08, 0x30, 0x91, 0x27, 0x08, 0x80, 0x17, 0x91, 0x07, 0xA2, 0x07, -0xB3, 0x07, 0xB8, 0xF2, 0x0E, 0x94, 0xBD, 0x0A, 0x60, 0x93, 0xC9, 0x09, 0x70, 0x93, 0xCA, 0x09, -0x80, 0x93, 0xCB, 0x09, 0x90, 0x93, 0xCC, 0x09, 0xE0, 0x91, 0x2C, 0x08, 0xF0, 0x91, 0x2D, 0x08, -0x30, 0x97, 0x59, 0xF0, 0x40, 0x91, 0x28, 0x08, 0x50, 0x91, 0x29, 0x08, 0x60, 0x91, 0x2A, 0x08, -0x70, 0x91, 0x2B, 0x08, 0x8F, 0x2D, 0x09, 0x95, 0xF8, 0x2E, 0x00, 0x91, 0xCF, 0x07, 0x10, 0x91, -0xD0, 0x07, 0x4F, 0x2C, 0x51, 0x2C, 0x61, 0x2C, 0x71, 0x2C, 0x01, 0x15, 0x11, 0x05, 0x09, 0xF4, -0x61, 0xC0, 0xD8, 0x01, 0x1C, 0x96, 0xEC, 0x90, 0x1C, 0x97, 0x80, 0x91, 0x22, 0x08, 0x90, 0x91, -0x23, 0x08, 0x84, 0x36, 0x91, 0x05, 0x10, 0xF4, 0x1C, 0x96, 0x1C, 0x92, 0xD8, 0x01, 0xED, 0x91, -0xFC, 0x91, 0xA2, 0x80, 0xB3, 0x80, 0x19, 0x82, 0x1A, 0x82, 0x1B, 0x82, 0xF1, 0x10, 0x14, 0xC0, -0xF8, 0x01, 0x45, 0x85, 0x56, 0x85, 0x62, 0x81, 0x73, 0x81, 0x9E, 0x01, 0x2F, 0x5F, 0x3F, 0x4F, -0xC8, 0x01, 0xF5, 0x01, 0x09, 0x95, 0xD8, 0x01, 0x1C, 0x96, 0xEC, 0x92, 0x1C, 0x97, 0x14, 0x96, -0x0D, 0x91, 0x1C, 0x91, 0x15, 0x97, 0xD1, 0xCF, 0xF8, 0x01, 0x39, 0x96, 0xCE, 0x01, 0x01, 0x96, -0x6C, 0x01, 0x48, 0x01, 0x9C, 0xE0, 0x89, 0x0E, 0x91, 0x1C, 0xDF, 0x01, 0x13, 0x97, 0x3C, 0x90, -0x21, 0x91, 0x33, 0x20, 0x01, 0xF1, 0x22, 0x23, 0xF1, 0xF0, 0x82, 0x2F, 0x90, 0xE0, 0xA0, 0xE0, -0xB0, 0xE0, 0x9C, 0x01, 0xAD, 0x01, 0x2F, 0x5F, 0x3F, 0x4F, 0x4F, 0x4F, 0x5F, 0x4F, 0xC3, 0x01, -0xB2, 0x01, 0x0E, 0x94, 0xB0, 0x12, 0x9B, 0x01, 0xAC, 0x01, 0x83, 0x2D, 0x90, 0xE0, 0xA0, 0xE0, -0xB0, 0xE0, 0xBC, 0x01, 0xCD, 0x01, 0x6F, 0x5F, 0x7F, 0x4F, 0x8F, 0x4F, 0x9F, 0x4F, 0x0E, 0x94, -0xB0, 0x12, 0xD6, 0x01, 0x8C, 0x93, 0xBF, 0xEF, 0xCB, 0x1A, 0xDB, 0x0A, 0xE8, 0x15, 0xF9, 0x05, -0xA1, 0xF6, 0xB6, 0xCF, 0x80, 0x91, 0xC7, 0x09, 0x90, 0x91, 0xC8, 0x09, 0x8C, 0x01, 0x0F, 0x5F, -0x1F, 0x4F, 0x10, 0x93, 0xC8, 0x09, 0x00, 0x93, 0xC7, 0x09, 0x49, 0x97, 0x9C, 0xF1, 0x0E, 0x94, -0x54, 0x0D, 0x4B, 0x01, 0x5C, 0x01, 0x88, 0xEE, 0x93, 0xE0, 0x08, 0x9F, 0xB0, 0x01, 0x09, 0x9F, -0x70, 0x0D, 0x18, 0x9F, 0x70, 0x0D, 0x11, 0x24, 0x07, 0x2E, 0x00, 0x0C, 0x88, 0x0B, 0x99, 0x0B, -0xC0, 0x90, 0xC3, 0x09, 0xD0, 0x90, 0xC4, 0x09, 0xE0, 0x90, 0xC5, 0x09, 0xF0, 0x90, 0xC6, 0x09, -0xA5, 0x01, 0x94, 0x01, 0x2C, 0x19, 0x3D, 0x09, 0x4E, 0x09, 0x5F, 0x09, 0x0E, 0x94, 0x73, 0x16, -0x30, 0x93, 0x23, 0x08, 0x20, 0x93, 0x22, 0x08, 0x10, 0x92, 0xC8, 0x09, 0x10, 0x92, 0xC7, 0x09, -0x0E, 0x94, 0x54, 0x0D, 0x60, 0x93, 0xC3, 0x09, 0x70, 0x93, 0xC4, 0x09, 0x80, 0x93, 0xC5, 0x09, -0x90, 0x93, 0xC6, 0x09, 0x0F, 0x90, 0x0F, 0x90, 0x0F, 0x90, 0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, -0x0F, 0x91, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, 0xAF, 0x90, 0x9F, 0x90, -0x8F, 0x90, 0x7F, 0x90, 0x6F, 0x90, 0x5F, 0x90, 0x4F, 0x90, 0x3F, 0x90, 0x08, 0x95, 0xCF, 0x93, -0xDF, 0x93, 0x90, 0xE0, 0xFC, 0x01, 0xEA, 0x57, 0xFE, 0x4F, 0x24, 0x91, 0xFC, 0x01, 0xE9, 0x59, -0xFE, 0x4F, 0x84, 0x91, 0x88, 0x23, 0xC1, 0xF0, 0x90, 0xE0, 0x88, 0x0F, 0x99, 0x1F, 0xFC, 0x01, -0xE7, 0x5A, 0xFE, 0x4F, 0xC5, 0x91, 0xD4, 0x91, 0xFC, 0x01, 0xE5, 0x5B, 0xFE, 0x4F, 0xA5, 0x91, -0xB4, 0x91, 0x9F, 0xB7, 0xF8, 0x94, 0x38, 0x81, 0x82, 0x2F, 0x80, 0x95, 0x83, 0x23, 0x88, 0x83, -0xEC, 0x91, 0xE2, 0x2B, 0xEC, 0x93, 0x9F, 0xBF, 0xDF, 0x91, 0xCF, 0x91, 0x08, 0x95, 0xFC, 0x01, -0x80, 0x91, 0xCE, 0x07, 0x81, 0x11, 0x03, 0xC0, 0x8F, 0xEF, 0x9F, 0xEF, 0x08, 0x95, 0x9F, 0xB7, -0xF8, 0x94, 0x82, 0xE0, 0x80, 0x93, 0xE9, 0x00, 0x20, 0x91, 0xF2, 0x00, 0x30, 0xE0, 0x12, 0x16, -0x13, 0x06, 0x14, 0xF4, 0x21, 0xE0, 0x30, 0xE0, 0x21, 0x15, 0x31, 0x05, 0x59, 0xF0, 0x28, 0x98, -0x84, 0xE6, 0x80, 0x93, 0xCD, 0x07, 0x80, 0x91, 0xF1, 0x00, 0x80, 0x83, 0x80, 0x91, 0xF2, 0x00, -0x88, 0x23, 0x19, 0xF0, 0x9F, 0xBF, 0xC9, 0x01, 0x08, 0x95, 0x8B, 0xE6, 0x80, 0x93, 0xE8, 0x00, -0xF9, 0xCF, 0x80, 0x91, 0xBB, 0x09, 0x81, 0x11, 0x0D, 0xC0, 0x82, 0xE0, 0x80, 0x93, 0xB7, 0x09, -0x84, 0xE0, 0x80, 0x93, 0xB8, 0x09, 0x10, 0x92, 0xBA, 0x09, 0x10, 0x92, 0xB9, 0x09, 0x81, 0xE0, -0x80, 0x93, 0xBB, 0x09, 0x87, 0xEB, 0x99, 0xE0, 0x08, 0x95, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, -0x1F, 0x92, 0xCD, 0xB7, 0xDE, 0xB7, 0x78, 0x94, 0x84, 0xB5, 0x82, 0x60, 0x84, 0xBD, 0x84, 0xB5, -0x81, 0x60, 0x84, 0xBD, 0x85, 0xB5, 0x82, 0x60, 0x85, 0xBD, 0x85, 0xB5, 0x81, 0x60, 0x85, 0xBD, -0x80, 0x91, 0x6E, 0x00, 0x81, 0x60, 0x80, 0x93, 0x6E, 0x00, 0x10, 0x92, 0x81, 0x00, 0x80, 0x91, -0x81, 0x00, 0x82, 0x60, 0x80, 0x93, 0x81, 0x00, 0x80, 0x91, 0x81, 0x00, 0x81, 0x60, 0x80, 0x93, -0x81, 0x00, 0x80, 0x91, 0x80, 0x00, 0x81, 0x60, 0x80, 0x93, 0x80, 0x00, 0x80, 0x91, 0x91, 0x00, -0x82, 0x60, 0x80, 0x93, 0x91, 0x00, 0x80, 0x91, 0x91, 0x00, 0x81, 0x60, 0x80, 0x93, 0x91, 0x00, -0x80, 0x91, 0x90, 0x00, 0x81, 0x60, 0x80, 0x93, 0x90, 0x00, 0x80, 0x91, 0xC1, 0x00, 0x84, 0x60, -0x80, 0x93, 0xC1, 0x00, 0x80, 0x91, 0xC1, 0x00, 0x82, 0x60, 0x80, 0x93, 0xC1, 0x00, 0x80, 0x91, -0xC1, 0x00, 0x81, 0x60, 0x80, 0x93, 0xC1, 0x00, 0x80, 0x91, 0xC3, 0x00, 0x81, 0x60, 0x80, 0x93, -0xC3, 0x00, 0x80, 0x91, 0xC0, 0x00, 0x82, 0x60, 0x80, 0x93, 0xC0, 0x00, 0x80, 0x91, 0xC2, 0x00, -0x81, 0x60, 0x80, 0x93, 0xC2, 0x00, 0x80, 0x91, 0x7A, 0x00, 0x84, 0x60, 0x80, 0x93, 0x7A, 0x00, -0x80, 0x91, 0x7A, 0x00, 0x82, 0x60, 0x80, 0x93, 0x7A, 0x00, 0x80, 0x91, 0x7A, 0x00, 0x81, 0x60, -0x80, 0x93, 0x7A, 0x00, 0x80, 0x91, 0x7A, 0x00, 0x80, 0x68, 0x80, 0x93, 0x7A, 0x00, 0x10, 0x92, -0xCE, 0x07, 0x10, 0x92, 0xA5, 0x01, 0x10, 0x92, 0x84, 0x01, 0x80, 0x91, 0xD7, 0x00, 0x81, 0x60, -0x80, 0x93, 0xD7, 0x00, 0x80, 0xEA, 0x80, 0x93, 0xD8, 0x00, 0x89, 0xB5, 0x80, 0x61, 0x89, 0xBD, -0x89, 0xB5, 0x82, 0x60, 0x89, 0xBD, 0x09, 0xB4, 0x00, 0xFE, 0xFD, 0xCF, 0x61, 0xE0, 0x70, 0xE0, -0x80, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0xE2, 0x0A, 0x80, 0x91, 0xD8, 0x00, 0x8F, 0x7C, 0x80, 0x61, -0x80, 0x93, 0xD8, 0x00, 0x80, 0x91, 0xE0, 0x00, 0x80, 0x7F, 0x80, 0x93, 0xE0, 0x00, 0x80, 0x91, -0xE1, 0x00, 0x8E, 0x7E, 0x80, 0x93, 0xE1, 0x00, 0x8D, 0xE0, 0x80, 0x93, 0xE2, 0x00, 0x55, 0x9A, -0x20, 0x9A, 0xEE, 0xEF, 0xFF, 0xE7, 0x85, 0x91, 0x94, 0x91, 0x8B, 0x3F, 0x9C, 0x4D, 0x19, 0xF4, -0x81, 0xE0, 0x80, 0x93, 0xA4, 0x01, 0x8F, 0xEF, 0x9F, 0xEF, 0x90, 0x93, 0xDE, 0x07, 0x80, 0x93, -0xDD, 0x07, 0x8A, 0xE0, 0x0E, 0x94, 0x27, 0x0F, 0x8B, 0xE1, 0x0E, 0x94, 0x27, 0x0F, 0x87, 0xE0, -0x0E, 0x94, 0x27, 0x0F, 0x8B, 0xE0, 0x0E, 0x94, 0x27, 0x0F, 0xD8, 0x9A, 0x80, 0x91, 0x6B, 0x00, -0x80, 0x64, 0x80, 0x93, 0x6B, 0x00, 0x80, 0x91, 0x68, 0x00, 0x81, 0x60, 0x80, 0x93, 0x68, 0x00, -0x81, 0xEA, 0x99, 0xE0, 0x0E, 0x94, 0x21, 0x06, 0x8B, 0xE8, 0x99, 0xE0, 0x0E, 0x94, 0x21, 0x06, -0x81, 0xE8, 0x99, 0xE0, 0x0E, 0x94, 0x21, 0x06, 0x8E, 0xE2, 0x98, 0xE0, 0x0E, 0x94, 0x21, 0x06, -0x8C, 0xE7, 0x99, 0xE0, 0x0E, 0x94, 0x21, 0x06, 0x80, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x2B, 0x16, -0x82, 0x31, 0x09, 0xF0, 0x5B, 0xC1, 0x81, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x2B, 0x16, 0x84, 0x33, -0x09, 0xF0, 0x54, 0xC1, 0x82, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x2B, 0x16, 0xF8, 0x2E, 0x80, 0x93, -0xA1, 0x01, 0x83, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0x2B, 0x16, 0x80, 0x93, 0xA2, 0x01, 0x8F, 0x2D, -0x0E, 0x94, 0x7F, 0x05, 0x80, 0x91, 0xA2, 0x01, 0x0E, 0x94, 0x5E, 0x05, 0x80, 0x91, 0xB9, 0x01, -0x81, 0x11, 0x45, 0xC0, 0x10, 0x92, 0xAB, 0x01, 0x10, 0x92, 0xAA, 0x01, 0x8F, 0xEF, 0x80, 0x93, -0xAE, 0x01, 0x80, 0x93, 0xAF, 0x01, 0x80, 0x93, 0xB0, 0x01, 0x80, 0x93, 0xB1, 0x01, 0x80, 0x93, -0xB2, 0x01, 0x80, 0x93, 0xB3, 0x01, 0x81, 0xE0, 0x80, 0x93, 0xB4, 0x01, 0x10, 0x92, 0xB6, 0x01, -0x10, 0x92, 0xB5, 0x01, 0x10, 0x92, 0xAD, 0x01, 0x10, 0x92, 0xAC, 0x01, 0x80, 0x91, 0xCF, 0x07, -0x90, 0x91, 0xD0, 0x07, 0x89, 0x2B, 0x31, 0xF4, 0x88, 0xEA, 0x91, 0xE0, 0x90, 0x93, 0xD0, 0x07, -0x80, 0x93, 0xCF, 0x07, 0xE0, 0x91, 0xA6, 0x01, 0xF0, 0x91, 0xA7, 0x01, 0x30, 0x97, 0x21, 0xF0, -0x88, 0xEA, 0x91, 0xE0, 0x95, 0x83, 0x84, 0x83, 0x88, 0xEA, 0x91, 0xE0, 0x90, 0x93, 0xA7, 0x01, -0x80, 0x93, 0xA6, 0x01, 0x10, 0x92, 0xB8, 0x01, 0x10, 0x92, 0xB7, 0x01, 0x83, 0xE3, 0x91, 0xE0, -0x90, 0x93, 0xA9, 0x01, 0x80, 0x93, 0xA8, 0x01, 0x81, 0xE0, 0x80, 0x93, 0xB9, 0x01, 0xE0, 0x91, -0xA8, 0x01, 0xF0, 0x91, 0xA9, 0x01, 0x04, 0x80, 0xF5, 0x81, 0xE0, 0x2D, 0x88, 0xEA, 0x91, 0xE0, -0x09, 0x95, 0x83, 0xEC, 0x91, 0xE0, 0x90, 0x93, 0xAB, 0x01, 0x80, 0x93, 0xAA, 0x01, 0x80, 0xE4, -0x90, 0xE0, 0x90, 0x93, 0xB6, 0x01, 0x80, 0x93, 0xB5, 0x01, 0xE0, 0x91, 0xA8, 0x01, 0xF0, 0x91, -0xA9, 0x01, 0x02, 0x84, 0xF3, 0x85, 0xE0, 0x2D, 0x88, 0xEA, 0x91, 0xE0, 0x09, 0x95, 0x00, 0x97, -0x11, 0xF1, 0x9C, 0x01, 0x40, 0xE0, 0x50, 0xE0, 0x60, 0xE4, 0x72, 0xE4, 0x8F, 0xE0, 0x90, 0xE0, -0x0E, 0x94, 0x41, 0x16, 0x80, 0x90, 0x24, 0x08, 0x90, 0x90, 0x25, 0x08, 0xA0, 0x90, 0x26, 0x08, -0xB0, 0x90, 0x27, 0x08, 0xC9, 0x01, 0xDA, 0x01, 0x88, 0x15, 0x99, 0x05, 0xAA, 0x05, 0xBB, 0x05, -0x10, 0xF4, 0xD5, 0x01, 0xC4, 0x01, 0x80, 0x93, 0x24, 0x08, 0x90, 0x93, 0x25, 0x08, 0xA0, 0x93, -0x26, 0x08, 0xB0, 0x93, 0x27, 0x08, 0x88, 0xEA, 0x91, 0xE0, 0x90, 0x93, 0xC2, 0x01, 0x80, 0x93, -0xC1, 0x01, 0x80, 0x91, 0x21, 0x08, 0x0E, 0x94, 0x0B, 0x0E, 0x40, 0xE0, 0xE4, 0x2E, 0x40, 0xE0, -0xF4, 0x2E, 0x81, 0xED, 0x97, 0xE0, 0x0E, 0x94, 0x9F, 0x09, 0x18, 0x16, 0x19, 0x06, 0x0C, 0xF0, -0x5A, 0xC0, 0xE0, 0x91, 0xA2, 0x01, 0xF0, 0xE0, 0xEF, 0x5B, 0xFE, 0x4F, 0x80, 0x81, 0x80, 0x93, -0x21, 0x08, 0xB1, 0x2C, 0x33, 0xEC, 0xE3, 0x2E, 0x31, 0xE0, 0xF3, 0x2E, 0x81, 0xED, 0x97, 0xE0, -0x0E, 0x94, 0x9F, 0x09, 0x18, 0x16, 0x19, 0x06, 0xCC, 0xF7, 0x81, 0xED, 0x97, 0xE0, 0x0E, 0x94, -0xE5, 0x09, 0x8F, 0x3F, 0xF9, 0xF4, 0x80, 0x91, 0xC1, 0x01, 0x90, 0x91, 0xC2, 0x01, 0xDC, 0x01, -0xED, 0x91, 0xFC, 0x91, 0x00, 0x84, 0xF1, 0x85, 0xE0, 0x2D, 0x09, 0x95, 0x80, 0x17, 0x91, 0x07, -0x40, 0xF4, 0xE0, 0x91, 0xC1, 0x01, 0xF0, 0x91, 0xC2, 0x01, 0xF3, 0x82, 0xE2, 0x82, 0x16, 0x87, -0x05, 0x87, 0x80, 0x91, 0x21, 0x08, 0x0E, 0x94, 0x0B, 0x0E, 0x90, 0xE0, 0x00, 0xE0, 0x10, 0xE0, -0xB9, 0x2E, 0xD4, 0xCF, 0x91, 0xE0, 0x9B, 0x0D, 0xE1, 0xE0, 0xF0, 0xE0, 0xEC, 0x0F, 0xFD, 0x1F, -0xEB, 0x0D, 0xF1, 0x1D, 0x80, 0x83, 0x93, 0x30, 0x99, 0xF7, 0x01, 0x15, 0xB2, 0xE0, 0x1B, 0x07, -0x10, 0xF0, 0x90, 0xE0, 0xED, 0xCF, 0x8B, 0x81, 0x9A, 0x81, 0xF8, 0x01, 0xEE, 0x0F, 0xFF, 0x1F, -0xE0, 0x0F, 0xF1, 0x1F, 0xED, 0x53, 0xFE, 0x4F, 0x29, 0x81, 0x20, 0x83, 0x91, 0x83, 0x82, 0x83, -0x0F, 0x5F, 0x1F, 0x4F, 0xEE, 0xCF, 0xE0, 0x91, 0xA1, 0x01, 0xF0, 0xE0, 0xEE, 0x0F, 0xFF, 0x1F, -0xE3, 0x57, 0xFE, 0x4F, 0x80, 0x81, 0x91, 0x81, 0xDC, 0x01, 0xED, 0x91, 0xFC, 0x91, 0x01, 0x90, -0xF0, 0x81, 0xE0, 0x2D, 0x63, 0xEC, 0x71, 0xE0, 0x09, 0x95, 0x80, 0x90, 0x89, 0x01, 0x90, 0x90, -0x8A, 0x01, 0xA0, 0x90, 0x8B, 0x01, 0xB0, 0x90, 0x8C, 0x01, 0x20, 0xE0, 0x30, 0xE0, 0x48, 0xE4, -0x52, 0xE4, 0xC5, 0x01, 0xB4, 0x01, 0x0E, 0x94, 0x6E, 0x13, 0x87, 0xFF, 0x14, 0xC0, 0x0E, 0x94, -0x54, 0x0D, 0x40, 0x90, 0x85, 0x01, 0x50, 0x90, 0x86, 0x01, 0x60, 0x90, 0x87, 0x01, 0x70, 0x90, -0x88, 0x01, 0xDC, 0x01, 0xCB, 0x01, 0x84, 0x19, 0x95, 0x09, 0xA6, 0x09, 0xB7, 0x09, 0x40, 0x97, -0xA1, 0x05, 0xB1, 0x05, 0x00, 0xF5, 0x80, 0x91, 0x21, 0x08, 0x0E, 0x94, 0x0B, 0x0E, 0xE1, 0x14, -0xF1, 0x04, 0x09, 0xF4, 0x5E, 0xCF, 0x0E, 0x94, 0x00, 0x00, 0x5B, 0xCF, 0x62, 0xE1, 0x80, 0xE0, -0x90, 0xE0, 0x0E, 0x94, 0xBC, 0x0D, 0x64, 0xE3, 0x81, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0xBC, 0x0D, -0x60, 0xE0, 0x82, 0xE0, 0x90, 0xE0, 0x0E, 0x94, 0xBC, 0x0D, 0x60, 0xE0, 0x83, 0xE0, 0x90, 0xE0, -0x0E, 0x94, 0xBC, 0x0D, 0x97, 0xCE, 0x0E, 0x94, 0x54, 0x0D, 0x60, 0x93, 0x85, 0x01, 0x70, 0x93, -0x86, 0x01, 0x80, 0x93, 0x87, 0x01, 0x90, 0x93, 0x88, 0x01, 0x20, 0xE0, 0x30, 0xE0, 0x40, 0xE8, -0x5F, 0xE3, 0xC5, 0x01, 0xB4, 0x01, 0x0E, 0x94, 0x02, 0x13, 0x4B, 0x01, 0x5C, 0x01, 0x60, 0x93, -0x89, 0x01, 0x70, 0x93, 0x8A, 0x01, 0x80, 0x93, 0x8B, 0x01, 0x90, 0x93, 0x8C, 0x01, 0xE0, 0x91, -0xA2, 0x01, 0xF0, 0xE0, 0xEF, 0x5B, 0xFE, 0x4F, 0x60, 0x81, 0x70, 0xE0, 0x80, 0xE0, 0x90, 0xE0, -0x0E, 0x94, 0x1D, 0x14, 0x2B, 0x01, 0x3C, 0x01, 0x20, 0xE0, 0x30, 0xE0, 0x48, 0xE4, 0x52, 0xE4, -0xC5, 0x01, 0xB4, 0x01, 0x0E, 0x94, 0x73, 0x13, 0x9B, 0x01, 0xAC, 0x01, 0xC3, 0x01, 0xB2, 0x01, -0x0E, 0x94, 0xCD, 0x14, 0x0E, 0x94, 0xEC, 0x13, 0x60, 0x93, 0x21, 0x08, 0xA4, 0xCF, 0xCF, 0x92, -0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0x1F, 0x93, 0xCF, 0x93, 0xDF, 0x93, 0x00, 0xD0, 0x1F, 0x92, -0xCD, 0xB7, 0xDE, 0xB7, 0xE1, 0xED, 0xF7, 0xE0, 0x13, 0x82, 0x12, 0x82, 0x88, 0xEE, 0x93, 0xE0, -0xA0, 0xE0, 0xB0, 0xE0, 0x84, 0x83, 0x95, 0x83, 0xA6, 0x83, 0xB7, 0x83, 0x85, 0xE5, 0x91, 0xE0, -0x91, 0x83, 0x80, 0x83, 0x8F, 0xEF, 0x9F, 0xEF, 0x95, 0x87, 0x84, 0x87, 0xE1, 0xE2, 0xF8, 0xE0, -0x1F, 0xEF, 0x10, 0x83, 0x12, 0x82, 0x11, 0x82, 0x14, 0x86, 0x13, 0x86, 0x8F, 0xEF, 0x9F, 0xEF, -0xDC, 0x01, 0x87, 0x83, 0x90, 0x87, 0xA1, 0x87, 0xB2, 0x87, 0xE1, 0xEA, 0xF9, 0xE0, 0x8D, 0xE6, -0x91, 0xE0, 0x91, 0x83, 0x80, 0x83, 0xC1, 0x2C, 0xD1, 0x2C, 0x20, 0xE8, 0xE2, 0x2E, 0x2F, 0xE3, -0xF2, 0x2E, 0xC2, 0x82, 0xD3, 0x82, 0xE4, 0x82, 0xF5, 0x82, 0xC6, 0x82, 0xD7, 0x82, 0xE0, 0x86, -0xF1, 0x86, 0xC2, 0x86, 0xD3, 0x86, 0xE4, 0x86, 0xF5, 0x86, 0xEB, 0xE8, 0xF9, 0xE0, 0x91, 0x83, -0x80, 0x83, 0x8D, 0xEC, 0x9C, 0xEC, 0xAC, 0xE4, 0xBE, 0xE3, 0x82, 0x83, 0x93, 0x83, 0xA4, 0x83, -0xB5, 0x83, 0xC6, 0x82, 0xD7, 0x82, 0xE0, 0x86, 0xF1, 0x86, 0xC2, 0x86, 0xD3, 0x86, 0xE4, 0x86, -0xF5, 0x86, 0x19, 0x83, 0x1A, 0x82, 0x1B, 0x82, 0xAE, 0x01, 0x4F, 0x5F, 0x5F, 0x4F, 0x64, 0xE0, -0x70, 0xE0, 0x81, 0xE8, 0x99, 0xE0, 0x0E, 0x94, 0xAA, 0x0D, 0x19, 0x83, 0x1A, 0x83, 0x1B, 0x83, -0xBE, 0x01, 0x6F, 0x5F, 0x7F, 0x4F, 0x8C, 0xE7, 0x99, 0xE0, 0x0E, 0x94, 0x32, 0x06, 0x85, 0xE6, -0x91, 0xE0, 0x90, 0x93, 0x2F, 0x08, 0x80, 0x93, 0x2E, 0x08, 0xC0, 0x92, 0x70, 0x09, 0xD0, 0x92, -0x71, 0x09, 0xE0, 0x92, 0x72, 0x09, 0xF0, 0x92, 0x73, 0x09, 0xC0, 0x92, 0x74, 0x09, 0xD0, 0x92, -0x75, 0x09, 0xE0, 0x92, 0x76, 0x09, 0xF0, 0x92, 0x77, 0x09, 0xC0, 0x92, 0x78, 0x09, 0xD0, 0x92, -0x79, 0x09, 0xE0, 0x92, 0x7A, 0x09, 0xF0, 0x92, 0x7B, 0x09, 0x0F, 0x90, 0x0F, 0x90, 0x0F, 0x90, -0xDF, 0x91, 0xCF, 0x91, 0x1F, 0x91, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0x08, 0x95, -0xDB, 0x01, 0x8F, 0x93, 0x9F, 0x93, 0x0E, 0x94, 0x60, 0x16, 0xBF, 0x91, 0xAF, 0x91, 0xA2, 0x9F, -0x80, 0x0D, 0x91, 0x1D, 0xA3, 0x9F, 0x90, 0x0D, 0xB2, 0x9F, 0x90, 0x0D, 0x11, 0x24, 0x08, 0x95, -0x99, 0x1B, 0x79, 0xE0, 0x04, 0xC0, 0x99, 0x1F, 0x96, 0x17, 0x08, 0xF0, 0x96, 0x1B, 0x88, 0x1F, -0x7A, 0x95, 0xC9, 0xF7, 0x80, 0x95, 0x08, 0x95, 0x97, 0xFB, 0x07, 0x2E, 0x16, 0xF4, 0x00, 0x94, -0x07, 0xD0, 0x77, 0xFD, 0x09, 0xD0, 0x0E, 0x94, 0xE7, 0x12, 0x07, 0xFC, 0x05, 0xD0, 0x3E, 0xF4, -0x90, 0x95, 0x81, 0x95, 0x9F, 0x4F, 0x08, 0x95, 0x70, 0x95, 0x61, 0x95, 0x7F, 0x4F, 0x08, 0x95, -0x0E, 0x94, 0x95, 0x16, 0xB7, 0xFF, 0x08, 0x95, 0x82, 0x1B, 0x93, 0x0B, 0x08, 0x95, 0xAA, 0x1B, -0xBB, 0x1B, 0x51, 0xE1, 0x07, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xA6, 0x17, 0xB7, 0x07, 0x10, 0xF0, -0xA6, 0x1B, 0xB7, 0x0B, 0x88, 0x1F, 0x99, 0x1F, 0x5A, 0x95, 0xA9, 0xF7, 0x80, 0x95, 0x90, 0x95, -0xBC, 0x01, 0xCD, 0x01, 0x08, 0x95, 0xEE, 0x0F, 0xFF, 0x1F, 0x05, 0x90, 0xF4, 0x91, 0xE0, 0x2D, -0x09, 0x94, 0x50, 0x58, 0xBB, 0x27, 0xAA, 0x27, 0x0E, 0x94, 0x19, 0x13, 0x0C, 0x94, 0x93, 0x14, -0x0E, 0x94, 0x85, 0x14, 0x38, 0xF0, 0x0E, 0x94, 0x8C, 0x14, 0x20, 0xF0, 0x39, 0xF4, 0x9F, 0x3F, -0x19, 0xF4, 0x26, 0xF4, 0x0C, 0x94, 0x82, 0x14, 0x0E, 0xF4, 0xE0, 0x95, 0xE7, 0xFB, 0x0C, 0x94, -0x7C, 0x14, 0xE9, 0x2F, 0x0E, 0x94, 0xA4, 0x14, 0x58, 0xF3, 0xBA, 0x17, 0x62, 0x07, 0x73, 0x07, -0x84, 0x07, 0x95, 0x07, 0x20, 0xF0, 0x79, 0xF4, 0xA6, 0xF5, 0x0C, 0x94, 0xC6, 0x14, 0x0E, 0xF4, -0xE0, 0x95, 0x0B, 0x2E, 0xBA, 0x2F, 0xA0, 0x2D, 0x0B, 0x01, 0xB9, 0x01, 0x90, 0x01, 0x0C, 0x01, -0xCA, 0x01, 0xA0, 0x01, 0x11, 0x24, 0xFF, 0x27, 0x59, 0x1B, 0x99, 0xF0, 0x59, 0x3F, 0x50, 0xF4, -0x50, 0x3E, 0x68, 0xF1, 0x1A, 0x16, 0xF0, 0x40, 0xA2, 0x2F, 0x23, 0x2F, 0x34, 0x2F, 0x44, 0x27, -0x58, 0x5F, 0xF3, 0xCF, 0x46, 0x95, 0x37, 0x95, 0x27, 0x95, 0xA7, 0x95, 0xF0, 0x40, 0x53, 0x95, -0xC9, 0xF7, 0x7E, 0xF4, 0x1F, 0x16, 0xBA, 0x0B, 0x62, 0x0B, 0x73, 0x0B, 0x84, 0x0B, 0xBA, 0xF0, -0x91, 0x50, 0xA1, 0xF0, 0xFF, 0x0F, 0xBB, 0x1F, 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0xC2, 0xF7, -0x0E, 0xC0, 0xBA, 0x0F, 0x62, 0x1F, 0x73, 0x1F, 0x84, 0x1F, 0x48, 0xF4, 0x87, 0x95, 0x77, 0x95, -0x67, 0x95, 0xB7, 0x95, 0xF7, 0x95, 0x9E, 0x3F, 0x08, 0xF0, 0xB0, 0xCF, 0x93, 0x95, 0x88, 0x0F, -0x08, 0xF0, 0x99, 0x27, 0xEE, 0x0F, 0x97, 0x95, 0x87, 0x95, 0x08, 0x95, 0x0E, 0x94, 0x58, 0x14, -0x08, 0xF4, 0x81, 0xE0, 0x08, 0x95, 0x0E, 0x94, 0x87, 0x13, 0x0C, 0x94, 0x93, 0x14, 0x0E, 0x94, -0x8C, 0x14, 0x58, 0xF0, 0x0E, 0x94, 0x85, 0x14, 0x40, 0xF0, 0x29, 0xF4, 0x5F, 0x3F, 0x29, 0xF0, -0x0C, 0x94, 0x7C, 0x14, 0x51, 0x11, 0x0C, 0x94, 0xC7, 0x14, 0x0C, 0x94, 0x82, 0x14, 0x0E, 0x94, -0xA4, 0x14, 0x68, 0xF3, 0x99, 0x23, 0xB1, 0xF3, 0x55, 0x23, 0x91, 0xF3, 0x95, 0x1B, 0x55, 0x0B, -0xBB, 0x27, 0xAA, 0x27, 0x62, 0x17, 0x73, 0x07, 0x84, 0x07, 0x38, 0xF0, 0x9F, 0x5F, 0x5F, 0x4F, -0x22, 0x0F, 0x33, 0x1F, 0x44, 0x1F, 0xAA, 0x1F, 0xA9, 0xF3, 0x35, 0xD0, 0x0E, 0x2E, 0x3A, 0xF0, -0xE0, 0xE8, 0x32, 0xD0, 0x91, 0x50, 0x50, 0x40, 0xE6, 0x95, 0x00, 0x1C, 0xCA, 0xF7, 0x2B, 0xD0, -0xFE, 0x2F, 0x29, 0xD0, 0x66, 0x0F, 0x77, 0x1F, 0x88, 0x1F, 0xBB, 0x1F, 0x26, 0x17, 0x37, 0x07, -0x48, 0x07, 0xAB, 0x07, 0xB0, 0xE8, 0x09, 0xF0, 0xBB, 0x0B, 0x80, 0x2D, 0xBF, 0x01, 0xFF, 0x27, -0x93, 0x58, 0x5F, 0x4F, 0x3A, 0xF0, 0x9E, 0x3F, 0x51, 0x05, 0x78, 0xF0, 0x0C, 0x94, 0x7C, 0x14, -0x0C, 0x94, 0xC7, 0x14, 0x5F, 0x3F, 0xE4, 0xF3, 0x98, 0x3E, 0xD4, 0xF3, 0x86, 0x95, 0x77, 0x95, -0x67, 0x95, 0xB7, 0x95, 0xF7, 0x95, 0x9F, 0x5F, 0xC9, 0xF7, 0x88, 0x0F, 0x91, 0x1D, 0x96, 0x95, -0x87, 0x95, 0x97, 0xF9, 0x08, 0x95, 0xE1, 0xE0, 0x66, 0x0F, 0x77, 0x1F, 0x88, 0x1F, 0xBB, 0x1F, -0x62, 0x17, 0x73, 0x07, 0x84, 0x07, 0xBA, 0x07, 0x20, 0xF0, 0x62, 0x1B, 0x73, 0x0B, 0x84, 0x0B, -0xBA, 0x0B, 0xEE, 0x1F, 0x88, 0xF7, 0xE0, 0x95, 0x08, 0x95, 0x0E, 0x94, 0xEC, 0x13, 0x68, 0x94, -0xB1, 0x11, 0x0C, 0x94, 0xC7, 0x14, 0x08, 0x95, 0x0E, 0x94, 0xAC, 0x14, 0x88, 0xF0, 0x9F, 0x57, -0x98, 0xF0, 0xB9, 0x2F, 0x99, 0x27, 0xB7, 0x51, 0xB0, 0xF0, 0xE1, 0xF0, 0x66, 0x0F, 0x77, 0x1F, -0x88, 0x1F, 0x99, 0x1F, 0x1A, 0xF0, 0xBA, 0x95, 0xC9, 0xF7, 0x14, 0xC0, 0xB1, 0x30, 0x91, 0xF0, -0x0E, 0x94, 0xC6, 0x14, 0xB1, 0xE0, 0x08, 0x95, 0x0C, 0x94, 0xC6, 0x14, 0x67, 0x2F, 0x78, 0x2F, -0x88, 0x27, 0xB8, 0x5F, 0x39, 0xF0, 0xB9, 0x3F, 0xCC, 0xF3, 0x86, 0x95, 0x77, 0x95, 0x67, 0x95, -0xB3, 0x95, 0xD9, 0xF7, 0x3E, 0xF4, 0x90, 0x95, 0x80, 0x95, 0x70, 0x95, 0x61, 0x95, 0x7F, 0x4F, -0x8F, 0x4F, 0x9F, 0x4F, 0x08, 0x95, 0xE8, 0x94, 0x09, 0xC0, 0x97, 0xFB, 0x3E, 0xF4, 0x90, 0x95, -0x80, 0x95, 0x70, 0x95, 0x61, 0x95, 0x7F, 0x4F, 0x8F, 0x4F, 0x9F, 0x4F, 0x99, 0x23, 0xA9, 0xF0, -0xF9, 0x2F, 0x96, 0xE9, 0xBB, 0x27, 0x93, 0x95, 0xF6, 0x95, 0x87, 0x95, 0x77, 0x95, 0x67, 0x95, -0xB7, 0x95, 0xF1, 0x11, 0xF8, 0xCF, 0xFA, 0xF4, 0xBB, 0x0F, 0x11, 0xF4, 0x60, 0xFF, 0x1B, 0xC0, -0x6F, 0x5F, 0x7F, 0x4F, 0x8F, 0x4F, 0x9F, 0x4F, 0x16, 0xC0, 0x88, 0x23, 0x11, 0xF0, 0x96, 0xE9, -0x11, 0xC0, 0x77, 0x23, 0x21, 0xF0, 0x9E, 0xE8, 0x87, 0x2F, 0x76, 0x2F, 0x05, 0xC0, 0x66, 0x23, -0x71, 0xF0, 0x96, 0xE8, 0x86, 0x2F, 0x70, 0xE0, 0x60, 0xE0, 0x2A, 0xF0, 0x9A, 0x95, 0x66, 0x0F, -0x77, 0x1F, 0x88, 0x1F, 0xDA, 0xF7, 0x88, 0x0F, 0x96, 0x95, 0x87, 0x95, 0x97, 0xF9, 0x08, 0x95, -0x99, 0x0F, 0x00, 0x08, 0x55, 0x0F, 0xAA, 0x0B, 0xE0, 0xE8, 0xFE, 0xEF, 0x16, 0x16, 0x17, 0x06, -0xE8, 0x07, 0xF9, 0x07, 0xC0, 0xF0, 0x12, 0x16, 0x13, 0x06, 0xE4, 0x07, 0xF5, 0x07, 0x98, 0xF0, -0x62, 0x1B, 0x73, 0x0B, 0x84, 0x0B, 0x95, 0x0B, 0x39, 0xF4, 0x0A, 0x26, 0x61, 0xF0, 0x23, 0x2B, -0x24, 0x2B, 0x25, 0x2B, 0x21, 0xF4, 0x08, 0x95, 0x0A, 0x26, 0x09, 0xF4, 0xA1, 0x40, 0xA6, 0x95, -0x8F, 0xEF, 0x81, 0x1D, 0x81, 0x1D, 0x08, 0x95, 0x97, 0xF9, 0x9F, 0x67, 0x80, 0xE8, 0x70, 0xE0, -0x60, 0xE0, 0x08, 0x95, 0x9F, 0xEF, 0x80, 0xEC, 0x08, 0x95, 0x00, 0x24, 0x0A, 0x94, 0x16, 0x16, -0x17, 0x06, 0x18, 0x06, 0x09, 0x06, 0x08, 0x95, 0x00, 0x24, 0x0A, 0x94, 0x12, 0x16, 0x13, 0x06, -0x14, 0x06, 0x05, 0x06, 0x08, 0x95, 0x09, 0x2E, 0x03, 0x94, 0x00, 0x0C, 0x11, 0xF4, 0x88, 0x23, -0x52, 0xF0, 0xBB, 0x0F, 0x40, 0xF4, 0xBF, 0x2B, 0x11, 0xF4, 0x60, 0xFF, 0x04, 0xC0, 0x6F, 0x5F, -0x7F, 0x4F, 0x8F, 0x4F, 0x9F, 0x4F, 0x08, 0x95, 0x57, 0xFD, 0x90, 0x58, 0x44, 0x0F, 0x55, 0x1F, -0x59, 0xF0, 0x5F, 0x3F, 0x71, 0xF0, 0x47, 0x95, 0x88, 0x0F, 0x97, 0xFB, 0x99, 0x1F, 0x61, 0xF0, -0x9F, 0x3F, 0x79, 0xF0, 0x87, 0x95, 0x08, 0x95, 0x12, 0x16, 0x13, 0x06, 0x14, 0x06, 0x55, 0x1F, -0xF2, 0xCF, 0x46, 0x95, 0xF1, 0xDF, 0x08, 0xC0, 0x16, 0x16, 0x17, 0x06, 0x18, 0x06, 0x99, 0x1F, -0xF1, 0xCF, 0x86, 0x95, 0x71, 0x05, 0x61, 0x05, 0x08, 0x94, 0x08, 0x95, 0xE8, 0x94, 0xBB, 0x27, -0x66, 0x27, 0x77, 0x27, 0xCB, 0x01, 0x97, 0xF9, 0x08, 0x95, 0x0E, 0x94, 0xE0, 0x14, 0x0C, 0x94, -0x93, 0x14, 0x0E, 0x94, 0x85, 0x14, 0x38, 0xF0, 0x0E, 0x94, 0x8C, 0x14, 0x20, 0xF0, 0x95, 0x23, -0x11, 0xF0, 0x0C, 0x94, 0x7C, 0x14, 0x0C, 0x94, 0x82, 0x14, 0x11, 0x24, 0x0C, 0x94, 0xC7, 0x14, -0x0E, 0x94, 0xA4, 0x14, 0x70, 0xF3, 0x95, 0x9F, 0xC1, 0xF3, 0x95, 0x0F, 0x50, 0xE0, 0x55, 0x1F, -0x62, 0x9F, 0xF0, 0x01, 0x72, 0x9F, 0xBB, 0x27, 0xF0, 0x0D, 0xB1, 0x1D, 0x63, 0x9F, 0xAA, 0x27, -0xF0, 0x0D, 0xB1, 0x1D, 0xAA, 0x1F, 0x64, 0x9F, 0x66, 0x27, 0xB0, 0x0D, 0xA1, 0x1D, 0x66, 0x1F, -0x82, 0x9F, 0x22, 0x27, 0xB0, 0x0D, 0xA1, 0x1D, 0x62, 0x1F, 0x73, 0x9F, 0xB0, 0x0D, 0xA1, 0x1D, -0x62, 0x1F, 0x83, 0x9F, 0xA0, 0x0D, 0x61, 0x1D, 0x22, 0x1F, 0x74, 0x9F, 0x33, 0x27, 0xA0, 0x0D, -0x61, 0x1D, 0x23, 0x1F, 0x84, 0x9F, 0x60, 0x0D, 0x21, 0x1D, 0x82, 0x2F, 0x76, 0x2F, 0x6A, 0x2F, -0x11, 0x24, 0x9F, 0x57, 0x50, 0x40, 0x9A, 0xF0, 0xF1, 0xF0, 0x88, 0x23, 0x4A, 0xF0, 0xEE, 0x0F, -0xFF, 0x1F, 0xBB, 0x1F, 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0x91, 0x50, 0x50, 0x40, 0xA9, 0xF7, -0x9E, 0x3F, 0x51, 0x05, 0x80, 0xF0, 0x0C, 0x94, 0x7C, 0x14, 0x0C, 0x94, 0xC7, 0x14, 0x5F, 0x3F, -0xE4, 0xF3, 0x98, 0x3E, 0xD4, 0xF3, 0x86, 0x95, 0x77, 0x95, 0x67, 0x95, 0xB7, 0x95, 0xF7, 0x95, -0xE7, 0x95, 0x9F, 0x5F, 0xC1, 0xF7, 0xFE, 0x2B, 0x88, 0x0F, 0x91, 0x1D, 0x96, 0x95, 0x87, 0x95, -0x97, 0xF9, 0x08, 0x95, 0x9F, 0x93, 0x0E, 0x94, 0x44, 0x15, 0x0F, 0x90, 0x07, 0xFC, 0xEE, 0x5F, -0x0C, 0x94, 0x6D, 0x15, 0x0C, 0x94, 0x82, 0x14, 0x0E, 0x94, 0xAC, 0x14, 0xD8, 0xF3, 0xE8, 0x94, -0xE0, 0xE0, 0xBB, 0x27, 0x9F, 0x57, 0xF0, 0xF0, 0x2A, 0xED, 0x3F, 0xE0, 0x49, 0xEC, 0x06, 0xC0, -0xEE, 0x0F, 0xBB, 0x0F, 0x66, 0x1F, 0x77, 0x1F, 0x88, 0x1F, 0x28, 0xF0, 0xB2, 0x3A, 0x62, 0x07, -0x73, 0x07, 0x84, 0x07, 0x28, 0xF0, 0xB2, 0x5A, 0x62, 0x0B, 0x73, 0x0B, 0x84, 0x0B, 0xE3, 0x95, -0x9A, 0x95, 0x72, 0xF7, 0x80, 0x38, 0x30, 0xF4, 0x9A, 0x95, 0xBB, 0x0F, 0x66, 0x1F, 0x77, 0x1F, -0x88, 0x1F, 0xD2, 0xF7, 0x90, 0x48, 0x0C, 0x94, 0x83, 0x15, 0xEF, 0x93, 0xE0, 0xFF, 0x07, 0xC0, -0xA2, 0xEA, 0x2A, 0xED, 0x3F, 0xE0, 0x49, 0xEC, 0x5F, 0xEB, 0x0E, 0x94, 0x19, 0x13, 0x0E, 0x94, -0x93, 0x14, 0x0F, 0x90, 0x03, 0x94, 0x01, 0xFC, 0x90, 0x58, 0xEC, 0xEA, 0xF0, 0xE0, 0x0C, 0x94, -0x8F, 0x15, 0x9F, 0x3F, 0x31, 0xF0, 0x91, 0x50, 0x20, 0xF4, 0x87, 0x95, 0x77, 0x95, 0x67, 0x95, -0xB7, 0x95, 0x88, 0x0F, 0x91, 0x1D, 0x96, 0x95, 0x87, 0x95, 0x97, 0xF9, 0x08, 0x95, 0x9F, 0x93, -0x8F, 0x93, 0x7F, 0x93, 0x6F, 0x93, 0xFF, 0x93, 0xEF, 0x93, 0x9B, 0x01, 0xAC, 0x01, 0x0E, 0x94, -0xCD, 0x14, 0xEF, 0x91, 0xFF, 0x91, 0x0E, 0x94, 0xA3, 0x15, 0x2F, 0x91, 0x3F, 0x91, 0x4F, 0x91, -0x5F, 0x91, 0x0C, 0x94, 0xCD, 0x14, 0xDF, 0x93, 0xCF, 0x93, 0x1F, 0x93, 0x0F, 0x93, 0xFF, 0x92, -0xEF, 0x92, 0xDF, 0x92, 0x7B, 0x01, 0x8C, 0x01, 0x68, 0x94, 0x06, 0xC0, 0xDA, 0x2E, 0xEF, 0x01, -0x0E, 0x94, 0xE0, 0x14, 0xFE, 0x01, 0xE8, 0x94, 0xA5, 0x91, 0x25, 0x91, 0x35, 0x91, 0x45, 0x91, -0x55, 0x91, 0xA6, 0xF3, 0xEF, 0x01, 0x0E, 0x94, 0x19, 0x13, 0xFE, 0x01, 0x97, 0x01, 0xA8, 0x01, -0xDA, 0x94, 0x69, 0xF7, 0xDF, 0x90, 0xEF, 0x90, 0xFF, 0x90, 0x0F, 0x91, 0x1F, 0x91, 0xCF, 0x91, -0xDF, 0x91, 0x08, 0x95, 0x81, 0xE0, 0x90, 0xE0, 0xF8, 0x94, 0x0C, 0x94, 0xA4, 0x16, 0x8F, 0x92, -0x9F, 0x92, 0xAF, 0x92, 0xBF, 0x92, 0xCF, 0x92, 0xDF, 0x92, 0xEF, 0x92, 0xFF, 0x92, 0xCF, 0x93, -0xDF, 0x93, 0xEC, 0x01, 0x68, 0x81, 0x79, 0x81, 0x8A, 0x81, 0x9B, 0x81, 0x61, 0x15, 0x71, 0x05, -0x81, 0x05, 0x91, 0x05, 0x21, 0xF4, 0x64, 0xE2, 0x79, 0xED, 0x8B, 0xE5, 0x97, 0xE0, 0x2D, 0xE1, -0x33, 0xEF, 0x41, 0xE0, 0x50, 0xE0, 0x0E, 0x94, 0x41, 0x16, 0x49, 0x01, 0x5A, 0x01, 0x9B, 0x01, -0xAC, 0x01, 0xA7, 0xEA, 0xB1, 0xE4, 0x0E, 0x94, 0x60, 0x16, 0x6B, 0x01, 0x7C, 0x01, 0xAC, 0xEE, -0xB4, 0xEF, 0xA5, 0x01, 0x94, 0x01, 0x0E, 0x94, 0x6E, 0x16, 0xDC, 0x01, 0xCB, 0x01, 0x8C, 0x0D, -0x9D, 0x1D, 0xAE, 0x1D, 0xBF, 0x1D, 0xB7, 0xFF, 0x03, 0xC0, 0x01, 0x97, 0xA1, 0x09, 0xB0, 0x48, -0x88, 0x83, 0x99, 0x83, 0xAA, 0x83, 0xBB, 0x83, 0xBC, 0x01, 0xCD, 0x01, 0x9F, 0x77, 0xDF, 0x91, -0xCF, 0x91, 0xFF, 0x90, 0xEF, 0x90, 0xDF, 0x90, 0xCF, 0x90, 0xBF, 0x90, 0xAF, 0x90, 0x9F, 0x90, -0x8F, 0x90, 0x08, 0x95, 0x0E, 0x94, 0xCF, 0x15, 0x08, 0x95, 0x8C, 0xE0, 0x91, 0xE0, 0x0E, 0x94, -0xCF, 0x15, 0x08, 0x95, 0x60, 0x93, 0x0C, 0x01, 0x70, 0x93, 0x0D, 0x01, 0x80, 0x93, 0x0E, 0x01, -0x90, 0x93, 0x0F, 0x01, 0x08, 0x95, 0xF9, 0x99, 0xFE, 0xCF, 0x92, 0xBD, 0x81, 0xBD, 0xF8, 0x9A, -0x99, 0x27, 0x80, 0xB5, 0x08, 0x95, 0x26, 0x2F, 0xF9, 0x99, 0xFE, 0xCF, 0x1F, 0xBA, 0x92, 0xBD, -0x81, 0xBD, 0x20, 0xBD, 0x0F, 0xB6, 0xF8, 0x94, 0xFA, 0x9A, 0xF9, 0x9A, 0x0F, 0xBE, 0x01, 0x96, -0x08, 0x95, 0x05, 0x2E, 0x97, 0xFB, 0x1E, 0xF4, 0x00, 0x94, 0x0E, 0x94, 0x58, 0x16, 0x57, 0xFD, -0x07, 0xD0, 0x0E, 0x94, 0x73, 0x16, 0x07, 0xFC, 0x03, 0xD0, 0x4E, 0xF4, 0x0C, 0x94, 0x58, 0x16, -0x50, 0x95, 0x40, 0x95, 0x30, 0x95, 0x21, 0x95, 0x3F, 0x4F, 0x4F, 0x4F, 0x5F, 0x4F, 0x08, 0x95, -0x90, 0x95, 0x80, 0x95, 0x70, 0x95, 0x61, 0x95, 0x7F, 0x4F, 0x8F, 0x4F, 0x9F, 0x4F, 0x08, 0x95, -0x0E, 0x94, 0x95, 0x16, 0xA5, 0x9F, 0x90, 0x0D, 0xB4, 0x9F, 0x90, 0x0D, 0xA4, 0x9F, 0x80, 0x0D, -0x91, 0x1D, 0x11, 0x24, 0x08, 0x95, 0xB7, 0xFF, 0x0C, 0x94, 0x60, 0x16, 0x0E, 0x94, 0x60, 0x16, -0x82, 0x1B, 0x93, 0x0B, 0x08, 0x95, 0xA1, 0xE2, 0x1A, 0x2E, 0xAA, 0x1B, 0xBB, 0x1B, 0xFD, 0x01, -0x0D, 0xC0, 0xAA, 0x1F, 0xBB, 0x1F, 0xEE, 0x1F, 0xFF, 0x1F, 0xA2, 0x17, 0xB3, 0x07, 0xE4, 0x07, -0xF5, 0x07, 0x20, 0xF0, 0xA2, 0x1B, 0xB3, 0x0B, 0xE4, 0x0B, 0xF5, 0x0B, 0x66, 0x1F, 0x77, 0x1F, -0x88, 0x1F, 0x99, 0x1F, 0x1A, 0x94, 0x69, 0xF7, 0x60, 0x95, 0x70, 0x95, 0x80, 0x95, 0x90, 0x95, -0x9B, 0x01, 0xAC, 0x01, 0xBD, 0x01, 0xCF, 0x01, 0x08, 0x95, 0xA2, 0x9F, 0xB0, 0x01, 0xB3, 0x9F, -0xC0, 0x01, 0xA3, 0x9F, 0x70, 0x0D, 0x81, 0x1D, 0x11, 0x24, 0x91, 0x1D, 0xB2, 0x9F, 0x70, 0x0D, -0x81, 0x1D, 0x11, 0x24, 0x91, 0x1D, 0x08, 0x95, 0xF8, 0x94, 0xFF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, -0x00, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x2E, 0x01, 0x4B, 0x01, 0x00, 0xC1, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, -0x06, 0x42, 0x06, 0x42, 0x06, 0x0A, 0x01, 0x06, 0x01, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0xE3, -0x03, 0x9F, 0x03, 0x01, 0x01, 0x0A, 0x01, 0x06, 0x01, 0xFE, 0x00, 0x54, 0x01, 0x5D, 0x46, 0x28, -0x0F, 0x05, 0x0F, 0x28, 0x46, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0D, 0xB9, 0x09, 0x00, 0x00, 0x00, -0x00, 0x7E, 0x09, 0x1C, 0x0B, 0x9F, 0x09, 0xE5, 0x09, 0xC1, 0x09, 0x94, 0x09, 0x00, 0x00, 0x00, -0x00, 0xA8, 0x0B, 0x03, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x26, 0x04, 0x4C, 0x01, 0x00, }; - -#endif // PRODUCTION_SKETCH_H diff --git a/src/libblinky/blinkytapeuploaddata.cpp b/src/libblinky/blinkytapeuploaddata.cpp index c684f26..563807a 100644 --- a/src/libblinky/blinkytapeuploaddata.cpp +++ b/src/libblinky/blinkytapeuploaddata.cpp @@ -1,9 +1,7 @@ #include "blinkytapeuploaddata.h" -#include "PatternPlayer_Sketch.h" #include "blinkytape.h" #include "firmwarestore.h" -#include "firmwarereader.h" #include #include @@ -29,48 +27,23 @@ QByteArray encodeWordLSB(int data) bool BlinkyTapeUploadData::init(const QString &firmwareName, QList &patterns) { - // First, build the flash section for the sketch. This is the same for // all uploads - - QByteArray sketch; // Program data - qDebug() << "Selected firmware: " << firmwareName; - if(firmwareName == DEFAULT_FIRMWARE_NAME){ - sketch.append(reinterpret_cast(PATTERNPLAYER_DATA), sizeof(PATTERNPLAYER_DATA)); - }else{ - // search for third party Firmware - QString documents = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation); - documents.append(FIRMWARE_FOLDER); - documents.append(firmwareName); - QDir firmwareDir(documents); - - if (firmwareDir.exists()){ - documents.append("/"); - documents.append(firmwareName); - documents.append(".hex"); - - FirmwareReader newFirmware; - - if(newFirmware.load(documents)){ - qDebug("Firmware successfully read"); - sketch.append(newFirmware.getData()); - }else{ - errorString = "Firmware read failed!"; - qDebug() << errorString; - return false; - } - } - } + QByteArray firmwareData = FirmwareStore::getFirmwareData(firmwareName); + if(firmwareData.isNull()) { + errorString = "Firmware read failed!"; + return false; + } // Expand sketch size to FLASH_MEMORY_PAGE_SIZE_BYTES boundary - while (sketch.length() % FLASH_MEMORY_PAGE_SIZE_BYTES != 0) - sketch.append(static_cast(0xFF)); + while (firmwareData.length() % FLASH_MEMORY_PAGE_SIZE_BYTES != 0) + firmwareData.append(static_cast(0xFF)); sketchSection = MemorySection("Sketch", FLASH_MEMORY_SKETCH_ADDRESS, - sketch); + firmwareData); @@ -109,7 +82,7 @@ bool BlinkyTapeUploadData::init(const QString &firmwareName, QList(brightnessStepModifiers[i]*maxBrightness/100)); // Offset 2: Brightness steps (8 bytes) - int dataOffset = sketch.length(); + int dataOffset = firmwareData.length(); // Now, for each pattern, append the image data to the sketch for (PatternWriter pattern : patterns) { @@ -135,12 +108,12 @@ bool BlinkyTapeUploadData::init(const QString &firmwareName, QList(0xFF)); - qDebug() << "Sketch size:" << sketch.count() + qDebug() << "Sketch size:" << firmwareData.count() << "Pattern data size:" << patternData.count() << "Pattern table size" << patternTable.count(); patternDataSection = MemorySection("PatternData", - FLASH_MEMORY_SKETCH_ADDRESS + sketch.count(), + FLASH_MEMORY_SKETCH_ADDRESS + firmwareData.count(), patternData); patternTableSection = MemorySection("PatternTable", diff --git a/src/libblinky/blinkytapeuploader.cpp b/src/libblinky/blinkytapeuploader.cpp index 02e34a8..28ac055 100644 --- a/src/libblinky/blinkytapeuploader.cpp +++ b/src/libblinky/blinkytapeuploader.cpp @@ -1,10 +1,8 @@ #include "blinkytapeuploader.h" #include "avr109commands.h" -#include "ProductionSketch.h" #include "blinkycontroller.h" #include "blinkytapeuploaddata.h" -#include "firmwarereader.h" #include "firmwarestore.h" #include @@ -75,7 +73,7 @@ void BlinkyTapeUploader::setDialogText() { QSettings settings; - QString firmwareName = settings.value("BlinkyTape/firmwareName", DEFAULT_FIRMWARE_NAME).toString(); + QString firmwareName = settings.value("BlinkyTape/firmwareName", BLINKYTAPE_DEFAULT_FIRMWARE_NAME).toString(); int flashUsed = 0; textLabel = "Saving to Blinky...\n" @@ -93,22 +91,30 @@ void BlinkyTapeUploader::setDialogText() bool BlinkyTapeUploader::restoreFirmware(qint64 timeout) { - QByteArray sketch = QByteArray(reinterpret_cast(PRODUCTION_DATA), - PRODUCTION_LENGTH); + QByteArray sketch = FirmwareStore::getFirmwareData(BLINKYTAPE_FACTORY_FIRMWARE_NAME); + + if(sketch.isNull()) { + qDebug() << "Error loading factory firmware!"; + return false; + } // Put the sketch, pattern, and metadata into the programming queue. - flashData.append(MemorySection("Sketch", PRODUCTION_ADDRESS, sketch)); + flashData.append(MemorySection("Sketch", BLINKYTAPE_FACTORY_FIRMWARE_ADDRESS, sketch)); return startUpload(timeout); } bool BlinkyTapeUploader::updateFirmware(BlinkyController &blinky) { - QByteArray sketch = QByteArray(reinterpret_cast(PRODUCTION_DATA), - PRODUCTION_LENGTH); + QByteArray sketch = FirmwareStore::getFirmwareData(BLINKYTAPE_FACTORY_FIRMWARE_NAME); + + if(sketch.isNull()) { + qDebug() << "Error loading factory firmware!"; + return false; + } // Put the sketch, pattern, and metadata into the programming queue. - flashData.append(MemorySection("Sketch", PRODUCTION_ADDRESS, sketch)); + flashData.append(MemorySection("Sketch", BLINKYTAPE_FACTORY_FIRMWARE_ADDRESS, sketch)); return startUpload(blinky); } @@ -120,7 +126,7 @@ bool BlinkyTapeUploader::storePatterns(BlinkyController &blinky, QList + + blinkytape/default/default.hex + blinkytape/factory/factory.hex + blinkytape/default/README.md + + diff --git a/src/libblinky/firmwarestore.cpp b/src/libblinky/firmwarestore.cpp index 358c1a6..157f4f7 100644 --- a/src/libblinky/firmwarestore.cpp +++ b/src/libblinky/firmwarestore.cpp @@ -1,66 +1,110 @@ #include "firmwarestore.h" +#include "firmwarereader.h" #include #include #include #include -QStringList FirmwareStore::listAvailableFirmware() { + +QStringList FirmwareStore::listFirmwareSearchPaths() +{ + QStringList firmwarePaths; + + // Built-in firmware for BlinkyTape + firmwarePaths.push_back(":/firmware/blinkytape/"); + + // Search path for third party firmware + firmwarePaths.push_back(QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation).append(FIRMWARE_FOLDER)); + + return firmwarePaths; +} + +QStringList FirmwareStore::listAvailableFirmware() +{ QStringList firmwareNames; - firmwareNames.push_back(DEFAULT_FIRMWARE_NAME); - - // search for third party Firmware - QString documents = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation); - documents.append(FIRMWARE_FOLDER); - QDir firmwareDir(documents); - if (firmwareDir.exists()){ - QStringList firmwarelist = firmwareDir.entryList(QDir::Dirs); - firmwarelist.removeFirst(); // TODO: Is this robust? - firmwarelist.removeFirst(); - firmwareNames +=firmwarelist; + for(QString firmwarePath : listFirmwareSearchPaths()) { + QDir directory(firmwarePath); + if (!directory.exists()) + continue; + + firmwareNames.append(directory.entryList(QDir::Dirs | QDir::NoDotAndDotDot)); } return firmwareNames; } -QString FirmwareStore::getFirmwareDescription(const QString &name) { - - if(name==DEFAULT_FIRMWARE_NAME){ - return QString() - .append("Default BlinkyTape Firmware\n") - .append("Use this for all standard functions"); +QString FirmwareStore::getFirmwareDirectoryName(const QString &name) +{ + for(QString firmwarePath : listFirmwareSearchPaths()) { + QDir directory(firmwarePath); + if (directory.exists(name)) + return directory.absoluteFilePath(name); } + return QString(); +} + + +QString FirmwareStore::getFirmwareDescription(const QString &name) +{ + QString directoryName = getFirmwareDirectoryName(name); + + if(directoryName.isNull()) + return QString(); + // read README.md - QString documents = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation); - documents.append(FIRMWARE_FOLDER); - documents.append(name); - documents.append("/"); - documents.append(FIRMWARE_DESCRIPTION_FILE); - - QFile inputFile(documents); - if (!inputFile.open(QIODevice::ReadOnly)) - { - return QString() - .append("No description available"); - } + QString filename; + filename.append(directoryName); + filename.append("/"); + filename.append(FIRMWARE_DESCRIPTION_FILE); + + QFile readmeFile(filename); + if (!readmeFile.open(QIODevice::ReadOnly)) + return QString().append("No description available"); QString description; - QTextStream in(&inputFile); + QTextStream in(&readmeFile); description.append(in.readAll()); - inputFile.close(); + readmeFile.close(); return description; } -bool FirmwareStore::addFirmware(const QString &sourcePathName) { - qDebug() << "Adding firmware from directory:" << sourcePathName; +QByteArray FirmwareStore::getFirmwareData(const QString &name) +{ + QString directoryName = getFirmwareDirectoryName(name); + if(directoryName.isNull()) + return QByteArray(); + + QString filename; + filename.append(directoryName); + filename.append("/"); + filename.append(name); + filename.append(".hex"); + + FirmwareReader reader; + if(!reader.load(filename)) { + return QByteArray(); + } + + return reader.getData(); +} + + +bool FirmwareStore::addFirmware(const QString &sourcePathName) +{ QDir sourceDirectory(sourcePathName); + if(listAvailableFirmware().contains(sourceDirectory.dirName())) { + errorString = "Firmware with this name already exists, please use a different name!"; + return false; + } + if (!sourceDirectory.exists()){ errorString = "Source directory doesn't exist"; return false; @@ -117,35 +161,37 @@ bool FirmwareStore::addFirmware(const QString &sourcePathName) { destinationReadmeName.append("/"); destinationReadmeName.append(FIRMWARE_DESCRIPTION_FILE); - if(!QFile::copy(sourceReadmeName, destinationReadmeName)){ + if(!QFile::copy(sourceReadmeName, destinationReadmeName)) qDebug() << "can not copy Firmware description file"; - } return true; } -bool FirmwareStore::removeFirmware(const QString &name) { - qDebug() << "remove Firmware " << name; +bool FirmwareStore::removeFirmware(const QString &name) +{ + + QString firmwareDirectoryName = getFirmwareDirectoryName(name); - if (name == DEFAULT_FIRMWARE_NAME) { - errorString = "Cannot remove default firmware"; + if(firmwareDirectoryName.isNull()) { + errorString = "No firmware with that name found"; return false; } - QString documents = QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation); - documents.append(FIRMWARE_FOLDER); - documents.append(name); - - QDir firmwareDir(documents); + if(firmwareDirectoryName.startsWith(":/")) { + errorString = "Cannot remove built-in firmware"; + return false; + } - if(!firmwareDir.removeRecursively()) { - errorString = "Error removing firmware directory"; + QDir firmwareDirectory(firmwareDirectoryName); + if(!firmwareDirectory.removeRecursively()) { + errorString = "Error removing firmware directory, please check manually"; return false; } return true; } -QString FirmwareStore::getErrorString() const { +QString FirmwareStore::getErrorString() const +{ return errorString; } diff --git a/src/libblinky/firmwarestore.h b/src/libblinky/firmwarestore.h index 576539d..7018a6b 100644 --- a/src/libblinky/firmwarestore.h +++ b/src/libblinky/firmwarestore.h @@ -5,14 +5,24 @@ #include #define FIRMWARE_FOLDER "/Pattern Paint/Firmware/" /// Default folder for Firmware import -#define DEFAULT_FIRMWARE_NAME "Default" #define FIRMWARE_DESCRIPTION_FILE "README.md" +// TODO: Put these somewhere specific to the BlinkyTape +#define BLINKYTAPE_FACTORY_FIRMWARE_NAME "factory" +#define BLINKYTAPE_FACTORY_FIRMWARE_ADDRESS 0 + +#define BLINKYTAPE_DEFAULT_FIRMWARE_NAME "default" +#define BLINKYTAPE_FACTORY_FIRMWARE_ADDRESS 0 + class FirmwareStore { public: + static QStringList listFirmwareSearchPaths(); static QStringList listAvailableFirmware(); + + static QString getFirmwareDirectoryName(const QString &name); static QString getFirmwareDescription(const QString &name); + static QByteArray getFirmwareData(const QString &name); bool addFirmware(const QString &sourcePathName); bool removeFirmware(const QString &name); diff --git a/src/libblinky/libblinky.pro b/src/libblinky/libblinky.pro index 5523e1d..dad0711 100644 --- a/src/libblinky/libblinky.pro +++ b/src/libblinky/libblinky.pro @@ -76,8 +76,6 @@ SOURCES += \ serialcommandqueue.h \ blinkytape.h \ lightbuddyuploader.h \ - PatternPlayer_Sketch.h \ - ProductionSketch.h \ usbutils.h SOURCES += \ @@ -89,3 +87,6 @@ SOURCES += \ usbutils.cpp #} + +RESOURCES += \ + firmware/firmware.qrc