From 74543a99f84e5345952360de81b7772d4afea8dd Mon Sep 17 00:00:00 2001 From: David Date: Mon, 4 Oct 2021 13:45:39 +0000 Subject: [PATCH] Many changes - not yet "controlled" updates. --- .../Grow Controller EL System Diagram.vsdx | Bin 7737905 -> 7944467 bytes Firmware/DNSServer.cpp | 143 + Firmware/DNSServer.h | 68 + Firmware/Firmware.ino | 847 ++++ Firmware/GrowController.h | 23 + Firmware/ProjGlobals.h | 16 + Firmware/Resources/Button.css | 21 + Firmware/Resources/Green1x1.png | Bin 0 -> 119 bytes Firmware/Resources/Heater.png | Bin 0 -> 443 bytes Firmware/Resources/Open.png | Bin 0 -> 655 bytes Firmware/Resources/PlantModel.png | Bin 0 -> 28345 bytes Firmware/Resources/Water.png | Bin 0 -> 869 bytes Firmware/Resources/about.htm | 55 + Firmware/Resources/about.js | 30 + Firmware/Resources/curr.htm | 43 + Firmware/Resources/curr.js | 141 + Firmware/Resources/favicon.ico | Bin 0 -> 4286 bytes Firmware/Resources/icon.png | Bin 0 -> 8721 bytes Firmware/Resources/index.htm | 208 + Firmware/Resources/index.js | 44 + Firmware/Resources/rssi.htm | 43 + Firmware/Resources/rssi.js | 109 + Firmware/SmartSwitch.sln | 25 + Firmware/SmartSwitch.vcxproj | 163 + Firmware/WeMo.h | 262 ++ Firmware/Web_APConfig.cpp | 253 ++ Firmware/Web_APConfig.h | 12 + Firmware/Web_FavIcon.cpp | 39 + Firmware/Web_FavIcon.h | 13 + Firmware/Web_RSSIGraph.cpp | 22 + Firmware/Web_RSSIGraph.h | 10 + Firmware/Web_Resources.h | 3549 +++++++++++++++++ Firmware/Web_RootPage.cpp | 33 + Firmware/Web_RootPage.h | 7 + Firmware/WiFiConfiguration.h | 55 + Firmware/WifiConfiguration.cpp | 157 + Firmware/fauxmoESP.cpp | 479 +++ Firmware/fauxmoESP.h | 135 + Hardware/GrowController.sch | 290 ++ Tools/MakeByteArray.pl | 244 ++ Tools/MakeResourceFiles.cmd | 55 + Tools/MoveToServer.pl | 124 + 42 files changed, 7718 insertions(+) create mode 100644 Firmware/DNSServer.cpp create mode 100644 Firmware/DNSServer.h create mode 100644 Firmware/Firmware.ino create mode 100644 Firmware/GrowController.h create mode 100644 Firmware/ProjGlobals.h create mode 100644 Firmware/Resources/Button.css create mode 100644 Firmware/Resources/Green1x1.png create mode 100644 Firmware/Resources/Heater.png create mode 100644 Firmware/Resources/Open.png create mode 100644 Firmware/Resources/PlantModel.png create mode 100644 Firmware/Resources/Water.png create mode 100644 Firmware/Resources/about.htm create mode 100644 Firmware/Resources/about.js create mode 100644 Firmware/Resources/curr.htm create mode 100644 Firmware/Resources/curr.js create mode 100644 Firmware/Resources/favicon.ico create mode 100644 Firmware/Resources/icon.png create mode 100644 Firmware/Resources/index.htm create mode 100644 Firmware/Resources/index.js create mode 100644 Firmware/Resources/rssi.htm create mode 100644 Firmware/Resources/rssi.js create mode 100644 Firmware/SmartSwitch.sln create mode 100644 Firmware/SmartSwitch.vcxproj create mode 100644 Firmware/WeMo.h create mode 100644 Firmware/Web_APConfig.cpp create mode 100644 Firmware/Web_APConfig.h create mode 100644 Firmware/Web_FavIcon.cpp create mode 100644 Firmware/Web_FavIcon.h create mode 100644 Firmware/Web_RSSIGraph.cpp create mode 100644 Firmware/Web_RSSIGraph.h create mode 100644 Firmware/Web_Resources.h create mode 100644 Firmware/Web_RootPage.cpp create mode 100644 Firmware/Web_RootPage.h create mode 100644 Firmware/WiFiConfiguration.h create mode 100644 Firmware/WifiConfiguration.cpp create mode 100644 Firmware/fauxmoESP.cpp create mode 100644 Firmware/fauxmoESP.h create mode 100644 Hardware/GrowController.sch create mode 100644 Tools/MakeByteArray.pl create mode 100644 Tools/MakeResourceFiles.cmd create mode 100644 Tools/MoveToServer.pl diff --git a/Documentation/Grow Controller EL System Diagram.vsdx b/Documentation/Grow Controller EL System Diagram.vsdx index aefcd1d8eacb61e1e3dab7cf462b723dba681ba2..de0975b94688a5754d96376929637a4f5a0b9c7f 100644 GIT binary patch delta 270294 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%0DW`UQSs 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 z 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Μ28*p5 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 delta 62328 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 +#include + +#define DEBUG +#define DEBUG_OUTPUT Serial + +DNSServer::DNSServer() { + _ttl = htonl(60); + _errorReplyCode = DNSReplyCode::NonExistentDomain; +} + +bool DNSServer::start(const uint16_t &port, const String &domainName, + const IPAddress &resolvedIP) { + _port = port; + _domainName = domainName; + _resolvedIP[0] = resolvedIP[0]; + _resolvedIP[1] = resolvedIP[1]; + _resolvedIP[2] = resolvedIP[2]; + _resolvedIP[3] = resolvedIP[3]; + downcaseAndRemoveWwwPrefix(_domainName); + return _udp.begin(_port) == 1; +} + +void DNSServer::setErrorReplyCode(const DNSReplyCode &replyCode) { + _errorReplyCode = replyCode; +} + +void DNSServer::setTTL(const uint32_t &ttl) { + _ttl = htonl(ttl); +} + +void DNSServer::stop() { + _udp.stop(); +} + +void DNSServer::downcaseAndRemoveWwwPrefix(String &domainName) { + domainName.toLowerCase(); + domainName.replace("www.", ""); +} + +void DNSServer::processNextRequest() { + _currentPacketSize = _udp.parsePacket(); + if (_currentPacketSize) { + _buffer = (unsigned char*) malloc(_currentPacketSize * sizeof(char)); + _udp.read(_buffer, _currentPacketSize); + _dnsHeader = (DNSHeader*) _buffer; + + if (_dnsHeader->QR == DNS_QR_QUERY && + _dnsHeader->OPCode == DNS_OPCODE_QUERY && + requestIncludesOnlyOneQuestion() && + (_domainName == "*" || getDomainNameWithoutWwwPrefix() == _domainName) + ) { + replyWithIP(); + } else if (_dnsHeader->QR == DNS_QR_QUERY) { + replyWithCustomCode(); + } + + free(_buffer); + } +} + +bool DNSServer::requestIncludesOnlyOneQuestion() { + return ntohs(_dnsHeader->QDCount) == 1 && + _dnsHeader->ANCount == 0 && + _dnsHeader->NSCount == 0 && + _dnsHeader->ARCount == 0; +} + +String DNSServer::getDomainNameWithoutWwwPrefix() { + String parsedDomainName = ""; + unsigned char *start = _buffer + 12; + if (*start == 0) { + return parsedDomainName; + } + int pos = 0; + while (true) { + unsigned char labelLength = *(start + pos); + for (int i = 0; i < labelLength; i++) { + pos++; + parsedDomainName += (char)*(start + pos); + } + pos++; + if (*(start + pos) == 0) { + downcaseAndRemoveWwwPrefix(parsedDomainName); + return parsedDomainName; + } else { + parsedDomainName += "."; + } + } +} + +void DNSServer::replyWithIP() { + _dnsHeader->QR = DNS_QR_RESPONSE; + _dnsHeader->ANCount = _dnsHeader->QDCount; + _dnsHeader->QDCount = _dnsHeader->QDCount; + //_dnsHeader->RA = 1; + + _udp.beginPacket(_udp.remoteIP(), _udp.remotePort()); + _udp.write(_buffer, _currentPacketSize); + + _udp.write((uint8_t) 192); // answer name is a pointer + _udp.write((uint8_t) 12); // pointer to offset at 0x00c + + _udp.write((uint8_t) 0); // 0x0001 answer is type A query (host address) + _udp.write((uint8_t) 1); + + _udp.write((uint8_t) 0); //0x0001 answer is class IN (internet address) + _udp.write((uint8_t) 1); + + _udp.write((unsigned char*) &_ttl, 4); + + // Length of RData is 4 bytes (because, in this case, RData is IPv4) + _udp.write((uint8_t) 0); + _udp.write((uint8_t) 4); + _udp.write(_resolvedIP, sizeof(_resolvedIP)); + _udp.endPacket(); + + + + #ifdef DEBUG + DEBUG_OUTPUT.print("DNS responds: "); + DEBUG_OUTPUT.print(_resolvedIP[0]); + DEBUG_OUTPUT.print("."); + DEBUG_OUTPUT.print(_resolvedIP[1]); + DEBUG_OUTPUT.print("."); + DEBUG_OUTPUT.print(_resolvedIP[2]); + DEBUG_OUTPUT.print("."); + DEBUG_OUTPUT.print(_resolvedIP[3]); + DEBUG_OUTPUT.print(" for "); + DEBUG_OUTPUT.println(getDomainNameWithoutWwwPrefix()); + #endif +} + +void DNSServer::replyWithCustomCode() { + _dnsHeader->QR = DNS_QR_RESPONSE; + _dnsHeader->RCode = (unsigned char) _errorReplyCode; + _dnsHeader->QDCount = 0; + + _udp.beginPacket(_udp.remoteIP(), _udp.remotePort()); + _udp.write(_buffer, sizeof(DNSHeader)); + _udp.endPacket(); +} diff --git a/Firmware/DNSServer.h b/Firmware/DNSServer.h new file mode 100644 index 0000000..f5bab4e --- /dev/null +++ b/Firmware/DNSServer.h @@ -0,0 +1,68 @@ +#ifndef DNSServer_h +#define DNSServer_h +#include + +#define DNS_QR_QUERY 0 +#define DNS_QR_RESPONSE 1 +#define DNS_OPCODE_QUERY 0 + +enum class DNSReplyCode { + NoError = 0, + FormError = 1, + ServerFailure = 2, + NonExistentDomain = 3, + NotImplemented = 4, + Refused = 5, + YXDomain = 6, + YXRRSet = 7, + NXRRSet = 8 +}; + +struct DNSHeader { + uint16_t ID; // identification number + unsigned char RD : 1; // recursion desired + unsigned char TC : 1; // truncated message + unsigned char AA : 1; // authoritive answer + unsigned char OPCode : 4; // message_type + unsigned char QR : 1; // query/response flag + unsigned char RCode : 4; // response code + unsigned char Z : 3; // its z! reserved + unsigned char RA : 1; // recursion available + uint16_t QDCount; // number of question entries + uint16_t ANCount; // number of answer entries + uint16_t NSCount; // number of authority entries + uint16_t ARCount; // number of resource entries +}; + +class DNSServer { +public: + DNSServer(); + void processNextRequest(); + void setErrorReplyCode(const DNSReplyCode &replyCode); + void setTTL(const uint32_t &ttl); + + // Returns true if successful, false if there are no sockets available + bool start(const uint16_t &port, + const String &domainName, + const IPAddress &resolvedIP); + // stops the DNS server + void stop(); + +private: + WiFiUDP _udp; + uint16_t _port; + String _domainName; + unsigned char _resolvedIP[4]; + int _currentPacketSize; + unsigned char* _buffer; + DNSHeader* _dnsHeader; + uint32_t _ttl; + DNSReplyCode _errorReplyCode; + + void downcaseAndRemoveWwwPrefix(String &domainName); + String getDomainNameWithoutWwwPrefix(); + bool requestIncludesOnlyOneQuestion(); + void replyWithIP(); + void replyWithCustomCode(); +}; +#endif diff --git a/Firmware/Firmware.ino b/Firmware/Firmware.ino new file mode 100644 index 0000000..e94dc66 --- /dev/null +++ b/Firmware/Firmware.ino @@ -0,0 +1,847 @@ +/// +/// +/// Grow Controller +/// +/// +/// The beginnings of a WiFi accessible switch. +/// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include + + +// Application includes +#include "./DNSServer.h" // Patched lib +#include "WiFiConfiguration.h" +#include "Web_RootPage.h" +#include "Web_RSSIGraph.h" +#include "Web_FavIcon.h" +#include "Web_APConfig.h" +#include "ProjGlobals.h" +#include "Web_Resources.h" +#include "GrowController.h" // APIs available in this (.ino) file +#include "fauxmoESP.h" + + +// If there is no hardware, such as with an ESP-01 module only, +// set this. Then it won't loop through reset constantly, and +// other behaviors that will be determined. +#define HW_SIMULATE + +// SW Update Deployment instructions: +// +// 1) If any resources changed, rebuild Web_Resources.h +// 2) Update this version number +// 3) Build the binary +// 4) Rename the .bin to match the version (e.g. GrowController v1.02.12.bin) +// 5) Move the product (.bin) to the server location +// 6) Update the PHP script on the server to match this version (if it does not auto-adapt) +// 7) Visit the node's web page and initiate an update, or let it check on its own cycle +// +const String MyVer = "GrowController v2.00.11"; ///< Compared to the server version for SW Updates +#define UPDATE_INTERVAL (12 * 60 * 60 * 1000) ///< Check once every 12 hours +bool swUpdateInProcess = false; ///< Status of an update to keep the relays from running + +// ESP12-E pinout Version 2 +// +// +------------------+ +// | __ __ _____ | +// | | |_| |_| | +// | |__________ | +// |__________________| +// Reset | !Reset Tx | Tx +// Current | ADC Rx | Rx +// Prog En | CHPD-EN GPIO5 | FAULT +// SW_RESET | GPIO16 GPIO4 | SW_TOGGLE +// OLED SCL | GPIO14 GPIO0 | +// RLY Set2 | GPIO12 GPIO2 | OLED SDA +// RLY Set1 | GPIO13 GPIO15 | Pull-down +// | Vcc Gnd | +// +------------------+ + +// ESP12-E pinout Version 1 +// +// +------------------+ +// | __ __ _____ | +// | | |_| |_| | +// | |__________ | +// |__________________| +// Reset | !Reset Tx | Tx +// Current | ADC Rx | Rx +// Prog En | CHPD-EN GPIO5 | +// SW_RESET | GPIO16 GPIO4 | SW_TOGGLE +// RLY Set2 | GPIO14 GPIO0 | +// LED On | GPIO12 GPIO2 | +// RLY Set1 | GPIO13 GPIO15 | LED WiFi +// | Vcc Gnd | +// +------------------+ + +// +-------------+ +// SW_RESET ---+----|(----------->| WiFiConfig |-----> LED_WIFI +// | | | +// | | |-----> isStationMode +// | |-------------| +// +----|>o---------->| Timer | +// | |-----> Factory Reset +// RESET_MS --------------------->| | +// +-------------+ +// +#define SW_RESET 16 ///< The local reset switch +#define RESET_MS 8000 ///< Hold Reset for this long to factory reset +#define LED_WIFI 15 ///< The Pin controlling the WiFi on LED +bool isStationMode = false; ///< Tracks if the WiFi is in station mode + +// WiFI LED Duty Cycle +// +// |******* | AP Mode +// |************************* | Joining AP +// |************************************************ | Joined +// | | | | | | +// 0 100 200 300 400 500ms +// +#define LED_APMODE__MS 80 +#define LED_JOINING_MS 250 +#define LED_JOINED__MS 490 +#define LED_PERIOD__MS 500 + +// __ // +// | \ // +// onRef ------------------------------|- \ +-----------+ // +// | +-----| S Q |--+--> CurrStatus // +// +--------|+ / | | | // +// +---------+ | |__/ +--| R !Q | +--> LED_ON // +// ANA_IN --+--->| average |----+-->iRawSum/X | +-----------+ // +// | +---------+ | __ | // +// | | | \ | // +// +--> iRaw +--------|- \ | // +// | +--+ // +// offRef ------------------------------|+ / // +// |__/ // +// +#define ANA_IN A0 ///< The Analog input signal +#define SENSE_SAMPLE_MS 20 ///< The Sample rate for the analog input +#define AVG_RATIO 64 ///< Average Ratio (new is 1/AVG_RATIO of old) +#define LED_ON 12 ///< The load-on indicating LED +int32_t iRaw; ///< The raw sampled value +int32_t iRawSum; ///< The Averaged Sum of Raw Samples +bool CurrStatus = false; ///< Track the current sense indication of power on/off + + +// _ +------------------+ +// Turn On -------------| \____ | +-----------+ | +// +--|>o--|_/ | _ +-->| D !Q |--+ +// CurrStatus --| and +-------->) \ | | +// | _ +-------->) +--->| ck Q |--------> RelayState +// +-------| \____| +---->)_/ +-----------+ +// Turn Off-------------|_/ | or +// and | +// SW_TOGGLE ----|>o---------------+ +// +#define SW_TOGGLE 4 ///< The local toggle switch +bool RelayState = false; ///< The current tracked relay drive state + +// +-----------+ +// | _ _ | +// | _/ _| |_ |--------> Relay Set +// RelayState ---------------------------------->| _ _ | +// | \_ _| |_ |--------> Relay Reset +// | | +// +-----------+ +// +#define RELAY_PULSE_MS 15 ///< Duration of a pulse +#define RLY_SET1 13 ///< The set-pin for the relay +#define RLY_SET2 14 ///< The reset-pin for the relay + +// Timing: +// +// | | | | | +// _________________________ +// 3WaySwitch ____________________/ \__________________ +// | | |b->| | |b->| +// ______________________ +// RelayState __________/ \______________________ +// | |a->| | |a->| | +// | | | | | +// +++++++ ++++++++++ +// +++ +++ +++ +++ +// AnalogIn ++++++++++++ ++++++++++ +++++++++++++++ +// | | | | | +// CurrStatus |Off |On |Off |On |Off +// +// a) Locally applied change in load to filtered AnalogIn delay +// b) Externally applied change in load to filtered AnalogIn delay +// + +bool DebugValue; ///< Makes it chatty while running + +const byte DNS_PORT = 53; ///< Capture DNS requests on port 53 +IPAddress apIP(192,168,4,1); ///< Private network for server +DNSServer dnsServer; ///< Create the DNS object + +ESP8266WebServer server(80); ///< For the user experience +fauxmoESP fauxmo; ///< For the WEMO emulator +ConfigManager wifiConfig; ///< Track various configuration items + +ESP8266HTTPUpdate Updater; +bool updateCheck = false; ///< Set when a SW update check is pending + +uint16_t autoOffTimer; ///< When the output is turned on, this is set to timeout in seconds + +// local functions +void WiFiStateHandler(); ///< WiFi interface manager +void StartWebServer(); ///< Activate the web server +void HandleNotFound(); ///< Webpage for not-found URL +void ProcessAutoOff(bool init = false); ///< Process the auto-off timer + +String AP_SSID = "GrowController"; ///< When in Access Point, this is the prefix +void GetMac(); +String macToStr(const uint8_t* mac); ///< Create C++ String with the mac +String clientMac = ""; ///< Hosts the MAC to easily identify this node + + +// =========================================================================== +typedef enum { + WFC_ConnectToAP, + WFC_JoiningAP, + WFC_JoinedAP, + WFC_CreateAP, + WFC_HostingAP, +} WiFiConnectState; +WiFiConnectState wifiConState; ///< Track the current WiFi state + +void SetLED(int pin, int state) { + digitalWrite(pin, state); + if (pin == LED_WIFI) + ; // Serial.printf("SET LED_WIFI to %d\n", state); + else if (pin == LED_ON) + Serial.printf("SET LED_ON to %d\n", state); + else + Serial.printf("***** ERROR setting LED pin %d to %d\n", pin, state); +} + +void ResetMonitor(bool init = false) { + static unsigned long timeAtReset; + static bool monitorActive; + + if (init) { + timeAtReset = millis(); + monitorActive = true; + } else if (monitorActive) { + int sw_state = digitalRead(SW_RESET); + #ifdef HW_SIMULATE + sw_state = 1; + #endif + if (sw_state == 1) { + // not pressed + monitorActive = false; + } else if ((millis() - timeAtReset) > RESET_MS) { + // reset has been held long enough + FactoryReset(true); + } + } +} + +// +// Average the new sample by summation with 7/8 of the running Sum. +// +void ProcessCurrentSense() { + static unsigned long last = millis(); + unsigned long now = millis(); + + if (now - last > SENSE_SAMPLE_MS) { + last = now; + iRaw = analogRead(ANA_IN); // 1023 = 1.0v + iRawSum = iRawSum - (iRawSum / AVG_RATIO) + iRaw; // Now have running avg. + if (DebugValue) + Serial.printf("Sample: %d, rawSum: %d, relay: %d (%d%d), \n", + iRaw, iRawSum, RelayState, digitalRead(RLY_SET1), digitalRead(RLY_SET2)); + if (iRawSum / AVG_RATIO > wifiConfig.getOnRef() && !CurrStatus) { + CurrStatus = true; + SetLED(LED_ON, 1); + ProcessAutoOff(true); + autoOffTimer = wifiConfig.getAutoOff(); // if zero, we do nothing... + Serial.printf("Auto Off Timer set to %d\n", autoOffTimer); + } else if (iRawSum / AVG_RATIO < wifiConfig.getOffRef() && CurrStatus) { + CurrStatus = false; + SetLED(LED_ON, 0); + } + } +} + +// _______ ___ __ _______ +// Press \_________________________/ \___/ \___/ +// | | +// v v +// _ _ +// Toggle _______/ \____________.............../ \______________.... +// +// Sample | | | | | ... +// Block |---- 80 ms ---| |---- 80 ms -----| +#define Block_ms 800 +#define SAMPL_ms 100 +void ProcessToggleSw() { + static unsigned long last = millis(); + static bool lastSWState = false; + static uint8_t blockTics; + unsigned long now = millis(); + + if (now - last > SAMPL_ms) { + last = now; + if (blockTics) { + blockTics--; + return; + } + bool swState = !digitalRead(SW_TOGGLE); // active low is pressed. + if (DebugValue) + Serial.printf("Sample: %d, rawSum: %d, relay: %d (%d%d), sw: %d\n", + iRaw, iRawSum, RelayState, digitalRead(RLY_SET1), digitalRead(RLY_SET2), swState); + if (swState != lastSWState && swState == true) { + Serial.printf("Toggle pushed\n"); + blockTics = Block_ms / SAMPL_ms; + SetCircuit(CMD_Toggle); + } + lastSWState = swState; + } +} + +// Drive Relay controls pulsing either the set or the reset pin +// +// If the control signal changes, then it will generate a pulse on the +// appropriate relay driver pin, ensuring that the alternate pin is +// first off. +// +// This API is also called periodically, which permits it to then +// time and auto-off any active control pin. +// +// @param i can be -1 for timing, 0 to drive one relay pin, 1 to drive the other. +// +void DriveRelay(int i = -1) { + static int currentSignal = -1; + static bool isActive = false; + static unsigned long timeSet = 0; + + if (swUpdateInProcess) + i = 2; + + switch (i) { + case -1: + // Any active timing to process + if (isActive && (millis() - timeSet > RELAY_PULSE_MS)) { + digitalWrite(RLY_SET1, LOW); + digitalWrite(RLY_SET2, LOW); + isActive = false; + } + break; + case 0: + if (i != currentSignal) { + currentSignal = i; + digitalWrite(RLY_SET2, LOW); // Turn off the alternate + digitalWrite(RLY_SET1, HIGH); + timeSet = millis(); + isActive = true; + } + break; + case 1: + if (i != currentSignal) { + currentSignal = i; + digitalWrite(RLY_SET1, LOW); // Turn off the alternate + digitalWrite(RLY_SET2, HIGH); + timeSet = millis(); + isActive = true; + } + break; + case 2: + default: + // Error, or the force-off state + digitalWrite(RLY_SET1, LOW); // Turn off the elements + digitalWrite(RLY_SET2, LOW); + isActive = false; + break; + } +} + +void ProcessNameChange() { + char xName[CFG_NAMESIZE]; + + fauxmo.getDeviceName(0, xName, CFG_NAMESIZE); + if (0 != strcmp(wifiConfig.getName().c_str(), xName)) { + fauxmo.renameDevice(0, wifiConfig.getName().c_str()); + } +} + +void ProcessSWUpdate() { + static unsigned long lastCheck; + unsigned long nowCheck = millis(); + + if ((nowCheck - lastCheck) > (UPDATE_INTERVAL)) { + lastCheck = nowCheck; + updateCheck = true; + } + if (updateCheck) { + WiFiClient wifiClient; + swUpdateInProcess = true; + Serial.printf("SW Update start '%s'...\n", wifiConfig.getURL().c_str()); + t_httpUpdate_return swRet = Updater.update(wifiClient, wifiConfig.getURL(), MyVer); + switch (swRet) { + default: + case HTTP_UPDATE_FAILED: + Serial.printf("SW Update - failed.\n"); + Serial.printf("Error: %s\n", Updater.getLastErrorString().c_str()); + delay(100); + ESP.restart(); + break; + case HTTP_UPDATE_NO_UPDATES: + Serial.printf("SW Update - no updates.\n"); + break; + case HTTP_UPDATE_OK: + Serial.printf("SW Update - update ok.\n"); + break; + } + swUpdateInProcess = false; + updateCheck = false; + Serial.printf("SW Update - process end.\n"); + } +} + +void ProcessConsole() { + if (Serial.available()) { + int ch = Serial.read(); + Serial.printf("Serial.available() => %d\n", ch); + switch (ch) { + case '0': + iRawSum = 10; + break; + case '1': + iRawSum = 1000; + break; + case 'd': + DebugValue = !DebugValue; + break; + case 'u': + updateCheck = true; + break; + case '\x0D': // Ignore + break; + case '?': + default: + DebugValue = false; + Serial.printf("Commands:\n"); + Serial.printf(" 0|1 Off or On (by forcing rawSum\n"); + Serial.printf(" d Debug toggle\n"); + Serial.printf(" u update check\n"); + break; + } + } + static unsigned long last = millis(); + if (millis() - last > 5000) { + static uint32_t refFreeHeap; + uint32_t freeHeap = ESP.getFreeHeap(); + last = millis(); + if (freeHeap != refFreeHeap) + Serial.printf("[MAIN] Free heap: %d bytes\n", ESP.getFreeHeap()); + refFreeHeap = freeHeap; + } +} + +void ProcessAutoOff(bool init) { + static unsigned long lastCheck; + unsigned long nowCheck = millis(); + + if (init) + lastCheck = nowCheck; + if (autoOffTimer && ((nowCheck - lastCheck) >= 1000)) { + lastCheck += 1000; + --autoOffTimer; + SetLED(LED_ON, autoOffTimer & 1); // During auto-Off, blink slowly... + if (autoOffTimer == 0) { + Serial.printf("AutoOff time remaining 0 sec. Off Now.\n"); + SetCircuit(CMD_Off); + } + else { + Serial.printf("AutoOff time remaining %d sec\n", autoOffTimer); + } + } +} + +void HWIOInit() { + // User push-buttons + pinMode(SW_TOGGLE, INPUT); + pinMode(SW_RESET, INPUT); + // Turn off relay drivers + pinMode(RLY_SET1, OUTPUT); + digitalWrite(RLY_SET1, 0); + pinMode(RLY_SET2, OUTPUT); + digitalWrite(RLY_SET2, 0); + // Turn off user LEDs + pinMode(LED_ON, OUTPUT); + digitalWrite(LED_ON, 0); + pinMode(LED_WIFI, OUTPUT); + digitalWrite(LED_WIFI, 0); +} + + +void setup(void) { + HWIOInit(); + ResetMonitor(true); /// Initialize the reset switch monitor for long press + + Serial.begin(115200); + Serial.printf("\n******************************************************************\n"); + Serial.printf(" GrowController Web Server - Build " __DATE__ " " __TIME__ "\n"); + Serial.printf(" Version %s\n", MyVer.c_str()); + Serial.printf(" Copyright (c) 2018 by Smartware Computing, all rights reserved.\n"); + Serial.printf("******************************************************************\n"); + + GetMac(); + AP_SSID += "-"; + AP_SSID += clientMac; + + wifiConfig.load(); + String name = wifiConfig.getName(); + String ssid = wifiConfig.getSSID(); + String pass = wifiConfig.getPassword(); + if (ssid == "" || pass == "") + wifiConState = WFC_CreateAP; + else + wifiConState = WFC_ConnectToAP; + #if 0 + if (MDNS.begin("esp")) { // clientMac.c_str() + //MDNS.addService("switch", "tcp", 80); + //MDNS.addServiceTxt("switch", "tcp", "switchkey", "SWITCHVALUE"); + Serial.printf("MDNS responder started.\n"); + } + #endif + StartWebServer(); + #if 1 + fauxmo.addDevice(name.c_str()); + fauxmo.enable(true); + fauxmo.onSetState([](unsigned char device_id, const char * device_name, bool state) { + Serial.printf("[MAIN] Device #%d (%s) state command: %s\n", device_id, device_name, state ? "ON" : "OFF"); + if ((state && !CurrStatus) + || (!state && CurrStatus)) { + SetCircuit(RelayState ? CMD_Off : CMD_On); + } + }); + fauxmo.onGetState([](unsigned char device_id, const char * device_name) { + (void) device_id; + (void) device_name; + return CurrStatus; // GetCircuitStatus(); // whatever the state of the device is + }); + #endif +} + + +void loop(void) { + ResetMonitor(); // Monitor for long press to factory reset + WiFiStateHandler(); // start/connect as AP or Station + ProcessSWUpdate(); // query the server for fresh SW + fauxmo.handle(); // WEMO interface + ProcessNameChange(); // Update fauxmo if the name changes + ProcessCurrentSense(); // Get status by measuring current + ProcessToggleSw(); // Monitor for user pressing toggle + DriveRelay(); // Do what the relays need, if anything + ProcessConsole(); + ProcessAutoOff(); // If auto-off is enabled... +} + + +// ########################################################################### + +void WiFiStateHandler() { + static unsigned long timeStateChange = 0; + static unsigned long timeLEDControl; + unsigned long timeLEDCycle; + String ssid = wifiConfig.getSSID(); + String pass = wifiConfig.getPassword(); + IPAddress myIP; + + timeLEDCycle = millis() - timeLEDControl; + if (timeLEDCycle >= LED_PERIOD__MS) { + timeLEDControl = millis(); + timeLEDCycle = 0; + } + switch (wifiConState) { + case WFC_ConnectToAP: + isStationMode = true; + WiFi.mode(WIFI_STA); + ssid = wifiConfig.getSSID(); + pass = wifiConfig.getPassword(); + WiFi.begin(ssid.c_str(), pass.c_str()); + timeStateChange = millis(); + timeLEDControl = timeStateChange; + wifiConState = WFC_JoiningAP; + break; + case WFC_JoiningAP: + if (timeLEDCycle <= LED_JOINING_MS) + SetLED(LED_WIFI, 1); + else + SetLED(LED_WIFI, 0); + if (WiFi.status() == WL_CONNECTED) { + myIP = WiFi.localIP(); + Serial.printf("IP Address: %s\n", myIP.toString().c_str()); + timeStateChange = millis(); + StartWebServer(); + wifiConState = WFC_JoinedAP; + } else if (millis() - timeStateChange > 30000) { + timeStateChange = millis(); + wifiConState = WFC_CreateAP; // failed for 30 sec, now what. retry or CreateAP? + } + break; + case WFC_CreateAP: + if (timeLEDCycle <= LED_APMODE__MS) + SetLED(LED_WIFI, 1); + else + SetLED(LED_WIFI, 0); + isStationMode = false; + Serial.printf("Starting Access Point %s\n", AP_SSID.c_str()); + WiFi.softAP(AP_SSID.c_str()); + myIP = WiFi.softAPIP(); + Serial.printf("IP Address: %s\n", myIP.toString().c_str()); + dnsServer.start(DNS_PORT, "*", apIP); + timeStateChange = millis(); + StartWebServer(); + wifiConState = WFC_HostingAP; + break; + case WFC_JoinedAP: + if (timeLEDCycle <= LED_JOINED__MS) + SetLED(LED_WIFI, 1); + else + SetLED(LED_WIFI, 0); + server.handleClient(); + break; + case WFC_HostingAP: + if (timeLEDCycle <= LED_APMODE__MS) + SetLED(LED_WIFI, 1); + else + SetLED(LED_WIFI, 0); + server.handleClient(); + dnsServer.processNextRequest(); + break; + } +} + + +bool GetCircuitStatus() { + return CurrStatus; +} +void SetCircuit(CircuitCmd_T newState) { + if (swUpdateInProcess) + return; + switch (newState) { + case CMD_Off: + if (GetCircuitStatus()) { + RelayState = !RelayState; + DriveRelay(RelayState); + } + break; + case CMD_On: + if (!GetCircuitStatus()) { + RelayState = !RelayState; + DriveRelay(RelayState); + } + break; + case CMD_Toggle: + RelayState = !RelayState; + DriveRelay(RelayState); + break; + default: + break; + } +} + +void HandleCircuitOn() { + SetCircuit(CMD_On); + HandleGetState(); // Reply with current state +} + +void HandleCircuitOff() { + SetCircuit(CMD_Off); + HandleGetState(); // Reply with current state +} + +void HandleCircuitToggle() { + SetCircuit(CMD_Toggle); + HandleGetState(); // Reply with current state +} + +// { +// "id": "5c:cf:7f:c0:52:82", +// "name": "3-Way Switch", +// "state": 0, +// "sense": 56, +// "ip": "192.168.1.23", +// "rssi": -63, +// "countdown": "3:45", +// "uptime": "0:11:45", +// "wifimode": "station"|"ap", +// } +// +void HandleGetState() { + int day, hr, min, sec; + char _upTime[15]; // 0000.00:00:00\0 + 1 spare + char _timeout[10]; // 00:00:00\0 + 1 spare + + sec = millis() / 1000; + min = sec / 60; + hr = min / 60; + day = hr / 24; + if (day) + snprintf(_upTime, sizeof(_upTime), "%dd %d:%02d:%02d", day, hr % 24, min % 60, sec % 60); + else if (hr) + snprintf(_upTime, sizeof(_upTime), "%d:%02d:%02d", hr, min % 60, sec % 60); + else + snprintf(_upTime, sizeof(_upTime), "%02d:%02d", min % 60, sec % 60); + + sec = autoOffTimer; + min = sec / 60; + hr = min / 60; + if (hr) + snprintf(_timeout, sizeof(_timeout), "%d:%02d:%02d", hr, min % 60, sec % 60); + else + snprintf(_timeout, sizeof(_timeout), "%d:%02d", min, sec % 60); + + GetMac(); + String modeText = (isStationMode) ? "Station" : "Access Point"; + String message = "{ \"id\": \"" + String(clientMac) + "\", "; + message += "\"name\": \"" + wifiConfig.getName() + "\", "; + message += "\"version\": \"" + MyVer + "\", "; + message += "\"state\": " + String(CurrStatus) + ", "; + message += "\"raw\": " + String(iRaw) + ", "; + message += "\"sense\": " + String(iRawSum / AVG_RATIO) + ", "; + message += "\"ip\": \"" + + String(WiFi.localIP()[0]) + + "." + String(WiFi.localIP()[1]) + + "." + String(WiFi.localIP()[2]) + + "." + String(WiFi.localIP()[3]) + + "\", "; + message += "\"rssi\": " + String(WiFi.RSSI()) + ", "; + message += "\"countdown\": \"" + String(_timeout) + "\", "; + message += "\"uptime\": \"" + String(_upTime) + "\", "; + message += "\"wifimode\": \"" + modeText + "\", "; + message += "\"toggle\": " + String(!digitalRead(SW_TOGGLE)) + ", "; + message += "\"reset\": " + String(!digitalRead(SW_RESET)); + message += " }"; + if (DebugValue) + Serial.println(message + "\0"); + server.sendHeader("Access-Control-Allow-Origin", String("*"), true); + server.send(200, "text/plain", message); +} + + +// Prototypes: +// const char Button_css[] +// const char favicon_ico[] +// const char Green1x1_png[] +// const char index_htm[] +// const char index_js[] +// const char rssi_htm[] +// const char rssi_js[] + +void HandleSWUpdateCheck() { + updateCheck = true; + HandleAPConfigPage(); +} +void HandleButton_css() { + server.sendHeader("Access-Control-Allow-Origin", String("*"), true); + server.send_P(200, "text/plain", Button_css); +} +void HandleIndex_js() { + server.sendHeader("Access-Control-Allow-Origin", String("*"), true); + server.send_P(200, "text/plain", index_js); +} +void HandleAbout_htm() { + server.sendHeader("Access-Control-Allow-Origin", String("*"), true); + server.send_P(200, "text/html", about_htm); +} +void HandleAbout_js() { + server.sendHeader("Access-Control-Allow-Origin", String("*"), true); + server.send_P(200, "text/plain", about_js); +} +void HandleMyIP_js() { + server.sendHeader("Access-Control-Allow-Origin", String("*"), true); + String message = "var mySite = 'http://"; + message += String(WiFi.localIP()[0]); + message += "." + String(WiFi.localIP()[1]); + message += "." + String(WiFi.localIP()[2]); + message += "." + String(WiFi.localIP()[3]); + message += "';\n"; + server.send(200, "text/plain", message); +} +void StartWebServer() { + // path /firmware + //httpUpdater.setup(&server, update_path, update_username, update_password); + server.on("/", HandleRootPage); + server.on("/myip.js", HandleMyIP_js); + server.on("/button.css", HandleButton_css); + server.on("/index.js", HandleIndex_js); + server.on("/about", HandleAbout_htm); + server.on("/about.js", HandleAbout_js); + server.on("/favicon.ico", HandleFavIcon); + server.on("/PlantModel.png", HandlePlantModel); + server.on("/Heater.png", HandleHeater); + server.on("/Water.png", HandleWater); + server.on("/config", HandleAPConfigPage); + server.on("/swupdatecheck", HandleSWUpdateCheck); + server.on("/scan", HandleAPScan); + server.on("/green1x1.png", HandleGreen1x1); + server.on("/rssi", HandleRSSIPage); + server.on("/rssi.js", HandleRSSI_JS); + server.on("/curr", HandleCurrPage); + server.on("/curr.js", HandleCurr_JS); + server.on("/on", HandleCircuitOn); + server.on("/off", HandleCircuitOff); + server.on("/toggle", HandleCircuitToggle); + server.on("/state", HandleGetState); + server.on("/icon.png", HandleIcon); + server.on("/Open.png", HandleOpenDoor); + server.onNotFound(HandleNotFound); + server.begin(); + Serial.println("HTTP server started"); +} + +void HandleNotFound() { + Serial.printf("not found: %s\n", server.uri().c_str()); + const DirEntry *de = Directory; + boolean found = false; + while (*de->Filename) { + if (0 == strcmp(de->Filename, server.uri().c_str())) { + Serial.printf("send %s\n", de->Filename); + server.send_P(200, de->Filetype, de->Filedata, de->Filesize); + found = true; + break; + } else { + de++; + } + } + if (!found) { + Serial.printf("!found - redirect to home\n"); + server.sendHeader("Location", String("/"), true); + server.send(302, "text/plain", "Not supported. Heading for home."); + } +} + +void GetMac() { + unsigned char mac[6]; + WiFi.macAddress(mac); + clientMac = macToStr(mac); +} + +String macToStr(const uint8_t * mac) { + String result; + + for (int i = 0; i < 6; ++i) { + result += String(mac[i], 16); + if (i < 5) + result += ':'; + } + return result; +} diff --git a/Firmware/GrowController.h b/Firmware/GrowController.h new file mode 100644 index 0000000..db12f33 --- /dev/null +++ b/Firmware/GrowController.h @@ -0,0 +1,23 @@ + +#ifndef GROWCONTROLLER_H +#define GROWCONTROLLER_H + +bool GetCircuitStatus(); + +/// Command for the circuit +typedef enum { + CMD_Off, ///< Command it off + CMD_On, ///< Command it on + CMD_Toggle ///< Command a toggle +} CircuitCmd_T; + + +/// Set the state +/// @param[in] newState +/// - 0 = Off +/// - 1 = On +/// - 2 = Toggle +/// +void SetCircuit(CircuitCmd_T newState); + +#endif // GROWCONTROLLER_H diff --git a/Firmware/ProjGlobals.h b/Firmware/ProjGlobals.h new file mode 100644 index 0000000..a1fc2a2 --- /dev/null +++ b/Firmware/ProjGlobals.h @@ -0,0 +1,16 @@ +// +// Some settings +// + +#ifndef PROJGLOBALS_H +#define PROJGLOBALS_H + +#include + +#include "WiFiConfiguration.h" + +extern bool isStationMode; +extern ESP8266WebServer server; +extern ConfigManager wifiConfig; + +#endif // PROJGLOBALS_H \ No newline at end of file diff --git a/Firmware/Resources/Button.css b/Firmware/Resources/Button.css new file mode 100644 index 0000000..9411547 --- /dev/null +++ b/Firmware/Resources/Button.css @@ -0,0 +1,21 @@ +input.BigButton { + width: 150px; + padding: 20px; + white-space: normal; + cursor: pointer; + font-weight: bold; + font-size: 120%; + background: #3366cc; + color: #fff; + border: 5px solid #112233; + border-radius: 10px; + -moz-box-shadow: 6px 6px 5px #999; + -webkit-box-shadow: 6px 6px 5px #999; + box-shadow: 6px 6px 5px #999; +} + +input.BigButton:hover { + color: #ffff00; + background: #000; + border: 5px solid #fff; +} diff --git a/Firmware/Resources/Green1x1.png b/Firmware/Resources/Green1x1.png new file mode 100644 index 0000000000000000000000000000000000000000..b791f3114a982e5c8d06b45bdd8c17fd05f7ce33 GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2s6ii6yp7}lMWc?smOq&xaLGB9lH z=l+w(3gmMZctjR6FbI`^Fyp;6`3j&QkEe@ch(vgDz^xa|3``P?3XdL4$Onouc)I$z JtaD0e0sxYI8&LoN literal 0 HcmV?d00001 diff --git a/Firmware/Resources/Heater.png b/Firmware/Resources/Heater.png new file mode 100644 index 0000000000000000000000000000000000000000..d3bfd5177d09fecbf5d674b2fc2dd901455348dc GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^UO+6t!3-p`JZA3)QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`)dPG&T>mpL{4Xf@Z(#7hzyE(gz<&;o{}K}a9UT5gMEqA!_%9&vfBJNw z+NzL=(Ljo~B*-uLKN4WDeWBC_l;AAzh%9Dc;5!7ujG`J|4M59TJY5_^JiOlq-xh0D z;1OP5{OSMw-Da5!OYJJoeandB5ty{X;L84o8+Y}mnQCxlFtV>*d}*T0W#Nn|7Bv>h zxs34#(hCB*G$Ic!KJqXuB1u=R$lfbbH|R>&BsOWoiCbr!@L9a7sPh_-D>yaxc8+Iu z<)U}ngI1*aWS4g4sK#x0W!JP+HEWrmqxRCRyOt#W-zIhMTgaPlA}q6ZJU;cxtY~Xa z>6fEV4U}g5UhR5P>R#N0HOD@fdjEf*WH3oJcmhYp)rT{yRC-?h&)eG6qHd}fS-DIu z{Zhkj3b_jG+-bxc)I$ztaD0e0sx8qyIcSO literal 0 HcmV?d00001 diff --git a/Firmware/Resources/Open.png b/Firmware/Resources/Open.png new file mode 100644 index 0000000000000000000000000000000000000000..e39cad78c401d0e22c9ae9d14359f8fd9dbca058 GIT binary patch literal 655 zcmV;A0&x9_P)Px#1ZP1_K>z@;j|==^1poj57*I@9MfUdg`1ttp^78lh_x1Jl^Yioc^z;A#0AQLr zT>t<82y{|TQ~&?}|NsC00N#VWSpWb432;bRa{vGi!vFvd!vV){sAK>D0qjXcK~!i% z?b_LLgD?yQP)Jz*|Bow6Y6%I8t>}vBp!-mk&TwjDWT15O1-T6Ey1qnqM1;`(q0wFV z5c*Veg$_f9Yx*AgxyLbtb^>gmqi%TT5T##2@^{>~;mfG5yJx2{GNN^Z(?3SHk#*36 z{Zm&sQ~4_<-S{%qr;VHL)Zw+LTvw~M+f$3O={2&dyZ1S|ozi-g;#L@2&~--p2{xm2 zC7Y|H8RdaB=tg6#=)kCPI9pLMjU&s7a&fj^LgsT?W<*_Ujvb}e>ascCpyvExDMeCqJ|yi9&-xPmT&f zr;~dM1WLvKxFQ13Vjfq20LtcJQABhvn@0r-fu25bAW)j>bh#4@dXhw;Nfa71I&76g zEL!eNH)c5~D)Y@}6^5dFH~!e}y#&4DoR+h?HLrrv?Ia3KqR=GjoPK=$M^XsNFMM9= zeh4b_s%}tXx|h*~3PhKt#-QaEB6=XbGePJ&i9(YoG>JkJiIz_#cqI;%&z@wJe?~-Z zANYAHuzMNhw}#Ouza9-lCnDwZmq2t$qR=D?O`_1;0hJGWLs6b*NR3D7k?|%di8n!~ pJD|VslR{Cd4ZMg&HFrVh`3I#uXq6P^>$(5{002ovPDHLkV1n#*FIoTq literal 0 HcmV?d00001 diff --git a/Firmware/Resources/PlantModel.png b/Firmware/Resources/PlantModel.png new file mode 100644 index 0000000000000000000000000000000000000000..3a610b8fd8d53cc2c28813c4741eb8242e75c19a GIT binary patch literal 28345 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 Hl+XkK&j`aA literal 0 HcmV?d00001 diff --git a/Firmware/Resources/about.htm b/Firmware/Resources/about.htm new file mode 100644 index 0000000..763ccc7 --- /dev/null +++ b/Firmware/Resources/about.htm @@ -0,0 +1,55 @@ + + + + Grow Controller + + + + + +

Grow Controller

+ by Smartware Computing +
+ + + + + +
+ This Grow Controller is an IOT device based on an ESP8266-12 module. The software for it has been + derived from various sources and where copyrights have been identified, they are listed below.
+
    +
  • The composite work is Copyright © 2018-2021 by Smartware Computing, all rights reserved.
  • +
  • Library for WEMO emulation, Copyright © 2016 by Xose Pérez
  • +
  • Libraries; Copyright © 2001-2013 Free Software Foundation, Inc.
  • +
  • Libraries; Copyright (c) 1997 Silicon Graphics Computer Systems, Inc.
  • +
+
+
Toggle Button
+
Each press will toggle the circuit between on and off.
+
Reset Button
+
Momentary press resets unit. Very Long press causes Factory reset back to Access Point mode.
+
+
+ + Mode: + Uptime: + +
+ + + + + + +
NAV: + Home | + Config | + Scan | + RSSI | + Current | + Factory Reset | + About +
+ + diff --git a/Firmware/Resources/about.js b/Firmware/Resources/about.js new file mode 100644 index 0000000..0e118e5 --- /dev/null +++ b/Firmware/Resources/about.js @@ -0,0 +1,30 @@ +// +// rssi script +// +// var mySite = 'http://192.168.1.23' from myip.js +var url = mySite + '/state'; +setInterval(RefreshStatus, 5000); + +getIt = function(aUrl, callback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', aUrl, true); + xhr.responseType = 'text'; + xhr.onload = function(e) { + if (this.status === 200) { + callback(this.response); + } + }; + xhr.send(); +} + +function RefreshStatus() { + getIt(url, + function(data) { + obj = JSON.parse(data); + var elms = document.querySelectorAll('.' + 'ip'), i; + for (i = 0; i < elms.length; ++i) { + elms[i].textContent = obj.ip; + } + } + ); +} diff --git a/Firmware/Resources/curr.htm b/Firmware/Resources/curr.htm new file mode 100644 index 0000000..67119b1 --- /dev/null +++ b/Firmware/Resources/curr.htm @@ -0,0 +1,43 @@ + + + + Grow Controller + + + + + +

Grow Controller - Current Sense

+
+ + + + + + + + +
+ +
+
x:xx:xx
+
+
xx
+
+
+ + + + + +
NAV: + Home | + Config | + Scan | + RSSI | + Current | + Factory Reset | + About +
+ + diff --git a/Firmware/Resources/curr.js b/Firmware/Resources/curr.js new file mode 100644 index 0000000..f59731f --- /dev/null +++ b/Firmware/Resources/curr.js @@ -0,0 +1,141 @@ +// +// curr script +// +// var mySite = 'http://192.168.1.23' from myip.js +var url = mySite + '/state'; +var rawData = []; +var avgData = []; +var currIndex = 0; +var axes = {}; +var totalSamples = 400; // Width of the graph +for (var i = 0; i < totalSamples; i++) + rawData[i] = avgData[i] = 0; +setInterval(RefreshStatus, 250); + +// ------------------------- + +getIt = function (aUrl, callback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', aUrl, true); + xhr.responseType = 'text'; + xhr.onload = function (e) { + if (this.status === 200) { + callback(this.response); + } + }; + xhr.send(); +}; + +function RefreshStatus() { + getIt(url, + function (data) { + obj = JSON.parse(data); + UpdateGraph(obj.raw, obj.sense); // raw and averaged + document.getElementById('uptime').innerHTML = 'Uptime: ' + obj.uptime; + document.getElementById('currText').innerHTML = 'raw: ' + obj.raw + ', avg: ' + obj.sense; + } + ); +} + +function CurrInit() { + var canvas = document.getElementById('curr'); + if (null === canvas || !canvas.getContext) + return; + ctx = canvas.getContext('2d'); + axes.w = 0.9 * canvas.width; + axes.h = 0.8 * canvas.height; + axes.x0 = 0.07 * canvas.width; // x0 pixels from left to x=0 + axes.y0 = 0.10 * canvas.height; // y0 pixels from top to y=0 + axes.scaleX = totalSamples; // # pixels from x=0 to x=1 + axes.scaleY = 1024; + axes.doNegativeX = false; + ctx.clearRect(0, 0, canvas.width, canvas.height); + ctx.rect(0, 0, canvas.width - 1, canvas.height - 1); + ctx.strokeStyle = 'black'; + ctx.lineWidth = 1; + ctx.stroke(); + showAxes(ctx, axes); +} + +function UpdateGraph(rawCurr, avgCurr) { + var xx, yy; + var i; + + if (rawCurr > axes.scaleY) // safety limit + rawCurr = axes.scaleY; + else if (rawCurr < 0) + rawCurr = 0; + if (avgCurr > axes.scaleY) // safety limit + avgCurr = axes.scaleY; + else if (avgCurr < 0) + avgCurr = 0; + rawData[currIndex] = rawCurr; + avgData[currIndex] = avgCurr; + console.log('UpdateGraph(-' + rawCurr + ')'); + CurrInit(); + + // Draw Raw + x0 = axes.x0; + y0 = axes.y0; + ctx.beginPath(); + ctx.strokeStyle = '#FF8080'; + ctx.lineWidth = 3; + for (i = 0; i < totalSamples; i++) { + pi = (currIndex + 1 + i) % totalSamples; + xx = x0 + i / axes.scaleX * axes.w; + yy = y0 + axes.h - rawData[pi] / axes.scaleY * axes.h; + ctx.lineTo(xx, yy); + } + ctx.stroke(); + // Circle + ctx.beginPath(); + ctx.arc(xx, yy, 7, 0, 2 * Math.PI, false); + ctx.fillstyle = '#FF8080'; + ctx.fill(); + ctx.strokeStyle = '#FF0000'; + ctx.stroke(); + + // Draw Average + x0 = axes.x0; + y0 = axes.y0; + ctx.beginPath(); + ctx.strokeStyle = '#8080FF'; + ctx.lineWidth = 3; + for (i = 0; i < totalSamples; i++) { + pi = (currIndex + 1 + i) % totalSamples; + xx = x0 + i / axes.scaleX * axes.w; + yy = y0 + axes.h - avgData[pi] / axes.scaleY * axes.h; + ctx.lineTo(xx, yy); + } + ctx.stroke(); + // Circle + ctx.beginPath(); + ctx.arc(xx, yy, 7, 0, 2 * Math.PI, false); + ctx.fillstyle = '#8080FF'; + ctx.fill(); + ctx.strokeStyle = '#0000FF'; + ctx.stroke(); + currIndex++; + currIndex %= totalSamples; +} + +function showAxes(ctx, axes) { + var x0 = axes.x0, w = axes.w; + var y0 = axes.y0, h = axes.h; + var xmin = axes.doNegativeX ? 0 : x0; + ctx.lineWidth = 1; + ctx.font = '12px Arial'; + ctx.textAlign = 'end'; + ctx.beginPath(); + ctx.strokeStyle = 'rgb(128,128,128)'; + ctx.moveTo(x0, y0); ctx.lineTo(x0, y0 + h); // Y axis + for (var y = 0; y <= axes.scaleY; y += 100) { + yy = axes.y0 + axes.h - y / axes.scaleY * axes.h; + ctx.moveTo(xmin, yy); ctx.lineTo(x0 + w, yy); // X axis + ctx.fillText(y, x0 - 3, yy + 3); + } + ctx.font = '18px Arial'; + ctx.textAlign = 'start'; + ctx.fillText('Current Graph', axes.x0, axes.y0 - 6); + ctx.stroke(); +} diff --git a/Firmware/Resources/favicon.ico b/Firmware/Resources/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..46c0ed3b1b3961e9a6c7f6cf8daac5aadecb43d9 GIT binary patch literal 4286 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 literal 0 HcmV?d00001 diff --git a/Firmware/Resources/index.htm b/Firmware/Resources/index.htm new file mode 100644 index 0000000..02da567 --- /dev/null +++ b/Firmware/Resources/index.htm @@ -0,0 +1,208 @@ + + + + Grow Controller + + + + + + +

Grow Controller

+
+ + + + + + +
+
+
+ + +
+
92°F
+
8%
+
74°F
+
ON
+
65°F
+
12.3V
+
1.2A
+
0.0V
+
OK
+
+
+
+
+ + +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+

+ + + + + + +
NAV: + Home | + Config | + Scan | + RSSI | + Current | + Factory Reset | + About +
+
+ + + + + +
GrowController by Origin TechnologiesFirmware: v0.00.00
+ + diff --git a/Firmware/Resources/index.js b/Firmware/Resources/index.js new file mode 100644 index 0000000..2093fb5 --- /dev/null +++ b/Firmware/Resources/index.js @@ -0,0 +1,44 @@ +// +// rssi script +// +// var mySite = 'http://192.168.1.23' from myip.js +var url = mySite + '/state'; +setInterval(RefreshStatus, 250); + +getIt = function (aUrl, callback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', aUrl, true); + xhr.responseType = 'text'; + xhr.onload = function (e) { + if (this.status === 200) { + callback(this.response); + } + }; + xhr.send(); +}; + +function RefreshStatus() { + getIt(url, + function(data) { + obj = JSON.parse(data); + if (obj.state === 1) + state = "On"; + else + state = "Off"; + document.getElementById('version').innerHTML = obj.version; + document.getElementById('name').innerHTML = obj.name; + document.getElementById('state').innerHTML = 'Output: ' + state; + document.getElementById('raw').innerHTML = 'raw: ' + obj.raw; + document.getElementById('sense').innerHTML = 'Sense: ' + obj.sense; + document.getElementById('toggle').innerHTML = 'Toggle: ' + obj.toggle; + document.getElementById('reset').innerHTML = 'Reset: ' + obj.reset; + document.getElementById('countdown').innerHTML = obj.countdown; + document.getElementById('uptime').innerHTML = 'Uptime: ' + obj.uptime; + document.getElementById('wifimode').innerHTML = 'Mode: ' + obj.wifimode; + var elms = document.querySelectorAll('.' + 'ip'), i; + for (i = 0; i < elms.length; ++i) { + elms[i].textContent = obj.ip; + } + } + ); +} diff --git a/Firmware/Resources/rssi.htm b/Firmware/Resources/rssi.htm new file mode 100644 index 0000000..e1ec8b9 --- /dev/null +++ b/Firmware/Resources/rssi.htm @@ -0,0 +1,43 @@ + + + + Grow Controller RSSI + + + + + +

Grow Controller - RSSI

+
+ + + + + + + + +
+ +
+
x:xx:xx
+
+
-xx
+
+
+ + + + + +
NAV: + Home | + Config | + Scan | + RSSI | + Current | + Factory Reset | + About +
+ + diff --git a/Firmware/Resources/rssi.js b/Firmware/Resources/rssi.js new file mode 100644 index 0000000..dbd7efb --- /dev/null +++ b/Firmware/Resources/rssi.js @@ -0,0 +1,109 @@ +// +// rssi script +// +// var mySite = 'http://192.168.1.23' from myip.js +var url = mySite + '/state'; +var rssiData = []; +var rssiIndex = 0; +var axes = {}; +for (var i = 0; i<100; i++) + rssiData[i] = 0; +setInterval(RefreshStatus, 250); + +// ------------------------- + +getIt = function (aUrl, callback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', aUrl, true); + xhr.responseType = 'text'; + xhr.onload = function (e) { + if (this.status === 200) { + callback(this.response); + } + }; + xhr.send(); +}; + +function RefreshStatus() { + getIt(url, + function(data) { + obj = JSON.parse(data); + UpdateGraph(obj.rssi); + document.getElementById('rssi').innerHTML = 'RSSI: ' + obj.rssi; + document.getElementById('uptime').innerHTML = 'Uptime: ' + obj.uptime; + } + ); +} + +function RSSIInit() { + var canvas = document.getElementById('RSSIGraph'); + if (null === canvas || !canvas.getContext) + return; + ctx = canvas.getContext('2d'); + axes.w = 0.9 * canvas.width; + axes.h = 0.8 * canvas.height; + axes.x0 = 0.07 * canvas.width; // x0 pixels from left to x=0 + axes.y0 = 0.10 * canvas.height; // y0 pixels from top to y=0 + axes.scaleX = 100; // # pixels from x=0 to x=1 + axes.scaleY = 100; + axes.doNegativeX = false; + ctx.clearRect(0, 0, canvas.width, canvas.height); + ctx.rect(0, 0, canvas.width - 1, canvas.height - 1); + ctx.strokeStyle = 'black'; + ctx.lineWidth = 1; + ctx.stroke(); + showAxes(ctx, axes); +} + +function UpdateGraph(rssi) { + var xx, yy; + rssi = -rssi; // invert for convenience + if (rssi > axes.scaleY) // safety limit + rssi = axes.scaleY; + else if (rssi < 0) + rssi = 0; + rssiData[rssiIndex] = rssi; + console.log('UpdateGraph(-' + rssi + ')'); + RSSIInit(); + x0 = axes.x0; + y0 = axes.y0; + ctx.beginPath(); + ctx.strokeStyle = 'rgb(250,128,128)'; + ctx.lineWidth = 5; + for (var i = 0; i<100; i++) { + pi = (rssiIndex + 1 + i) % 100; + xx = x0 + i / axes.scaleX * axes.w; + yy = y0 + rssiData[pi] / axes.scaleY * axes.h; + ctx.lineTo(xx, yy); + } + ctx.stroke(); + ctx.beginPath(); + ctx.arc(xx, yy, 7, 0, 2 * Math.PI, false); + ctx.fillstyle = 'green'; + ctx.fill(); + ctx.strokeStyle = '#003300'; + ctx.stroke(); + rssiIndex++; + rssiIndex %= 100; +} + +function showAxes(ctx, axes) { + var x0 = axes.x0, w = axes.w; + var y0 = axes.y0, h = axes.h; + var xmin = axes.doNegativeX ? 0 : x0; + ctx.lineWidth = 1; + ctx.font = '12px Arial'; + ctx.textAlign = 'end'; + ctx.beginPath(); + ctx.strokeStyle = 'rgb(128,128,128)'; + ctx.moveTo(x0, y0); ctx.lineTo(x0, y0 + h); // Y axis + for (var y = 0; y <= axes.scaleY; y += 10) { + yy = axes.y0 + y / axes.scaleY * axes.h; + ctx.moveTo(xmin, yy); ctx.lineTo(x0 + w, yy); // X axis + ctx.fillText(-y, x0 - 3, yy + 3); + } + ctx.font = '18px Arial'; + ctx.textAlign = 'start'; + ctx.fillText('RSSI Graph', axes.x0, axes.y0 - 6); + ctx.stroke(); +} diff --git a/Firmware/SmartSwitch.sln b/Firmware/SmartSwitch.sln new file mode 100644 index 0000000..25a4150 --- /dev/null +++ b/Firmware/SmartSwitch.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27130.2020 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SmartSwitch", "SmartSwitch.vcxproj", "{C5F80730-F44F-4478-BDAE-6634EFC2CA88}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C5F80730-F44F-4478-BDAE-6634EFC2CA88}.Debug|x86.ActiveCfg = Debug|Win32 + {C5F80730-F44F-4478-BDAE-6634EFC2CA88}.Debug|x86.Build.0 = Debug|Win32 + {C5F80730-F44F-4478-BDAE-6634EFC2CA88}.Release|x86.ActiveCfg = Release|Win32 + {C5F80730-F44F-4478-BDAE-6634EFC2CA88}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {2245D551-F0E5-4A91-B978-826DFEF0D6BF} + EndGlobalSection +EndGlobal diff --git a/Firmware/SmartSwitch.vcxproj b/Firmware/SmartSwitch.vcxproj new file mode 100644 index 0000000..acca64a --- /dev/null +++ b/Firmware/SmartSwitch.vcxproj @@ -0,0 +1,163 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {C5F80730-F44F-4478-BDAE-6634EFC2CA88} + + + SmartSwitch + + + + Application + true + + + MultiByte + + + Application + false + + + true + MultiByte + + + + + + + + + + + + + Build + + + + Level4 + Disabled + true + $(ProjectDir)..\Firmware;$(ARDUINO_ESP8266_SDK)\libraries\esp8266\src;$(ARDUINO_ESP8266_SDK)\libraries\Wire;$(ARDUINO_ESP8266_SDK)\libraries\ESP8266WiFi\src;$(ARDUINO_ESP8266_SDK)\libraries\ESP8266WebServer\src;$(ARDUINO_ESP8266_SDK)\libraries\ESP8266httpUpdate\src;$(ARDUINO_ESP8266_SDK)\libraries\ESP8266HTTPClient\src;$(ARDUINO_ESP8266_SDK)\libraries\EEPROM;$(ARDUINO_ESP8266_SDK)\libraries;$(ARDUINO_ESP8266_SDK)\cores\esp8266;$(ARDUINO_ESP8266_SDK)\cores\esp8266\libb64;$(ARDUINO_ESP8266_SDK)\cores\esp8266\spiffs;$(ARDUINO_ESP8266_SDK)\cores\esp8266\umm_malloc;$(ARDUINO_ESP8266_SDK)\variants\espino;$(ARDUINO_ESP8266_SDK)\tools\sdk\include;$(ARDUINO_ESP8266_SDK)\tools\sdk\lwip2\include;$(ARDUINO_ESP8266_SDK)\tools\sdk\libc\xtensa-lx106-elf\include;$(ProjectDir)..\..\..\Users\David\Documents\Arduino\libraries;$(ProjectDir)..\..\..\Users\David\Documents\Arduino\libraries\ESPAsyncTCP-master\src;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\xtensa-lx106-elf;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\lib\gcc\xtensa-lx106-elf\4.8.2\include;$(ProjectDir)..\..\..\program files (x86)\microsoft visual studio\2019\preview\common7\ide\extensions\mbsqucm2.qs1\Micro Platforms\visualmicro\ide\libraries;%(AdditionalIncludeDirectories) + $(ProjectDir)__vm\.Firmware.vsarduino.h;%(ForcedIncludeFiles) + false + WIN32;__ESP8266_ESp8266__;__ESP8266_ESP8266__;DEBUG_FAUXMO=Serial;__ets__;ICACHE_FLASH;F_CPU=80000000L;LWIP_OPEN_SRC;TCP_MSS=536;ARDUINO=10807;ARDUINO_ESP8266_ESP12;ARDUINO_ARCH_ESP8266;ESP8266;__cplusplus=201103L;_VMICRO_INTELLISENSE;%(PreprocessorDefinitions) + + + true + + + cd $(ProjectDir)\Tools +MakeResourceFiles.cmd +pause + + + + $(ProjectDir)\Resources\*.*;%(Inputs) + + + + + Level3 + Disabled + true + true + true + $(ProjectDir)..\Firmware;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\esp8266\src;$(ProjectDir)..\..\..\Users\David\Documents\Arduino\libraries\ESPAsyncTCP-master\src;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\Wire;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\ESP8266WiFi\src;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\ESP8266WebServer\src;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\ESP8266httpUpdate\src;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\ESP8266HTTPClient\src;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\EEPROM;$(ProjectDir)..\..\..\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\mcovr5xb.z02\Micro Platforms\visualmicro\ide\libraries;$(ProjectDir)..\..\..\Users\David\Documents\Arduino\libraries;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266\libb64;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266\spiffs;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266\umm_malloc;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\variants\espino;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\tools\sdk\include;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\tools\sdk\lwip2\include;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\tools\sdk\libc\xtensa-lx106-elf\include;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\c++\4.8.2\xtensa-lx106-elf;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\lib\gcc\xtensa-lx106-elf\4.8.2\include;$(ProjectDir)..\..\..\Users\David\AppData\Local\arduino15\packages\esp8266\hardware\esp8266\2.4.1\tools\sdk\include;%(AdditionalIncludeDirectories) + $(ProjectDir)__vm\.Firmware.vsarduino.h;%(ForcedIncludeFiles) + false + __ESP8266_ESp8266__;__ESP8266_ESP8266__;__ets__;ICACHE_FLASH;F_CPU=80000000L;LWIP_OPEN_SRC;TCP_MSS=536;ARDUINO=10801;ARDUINO_ESP8266_ESP12;ARDUINO_ARCH_ESP8266;ESP8266;__cplusplus=201103L;_VMICRO_INTELLISENSE;%(PreprocessorDefinitions) + + + true + true + true + + + cd $(ProjectDir)\Resources +\tools\MakeByteArray.pl *.* -o=..\Web_Resources.h +pause + + + + $(ProjectDir)\Resources\*.*;%(Inputs) + + + + + + + + + + + true + + + + true + + + + + true + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + VisualMicroDebugger + + + + + + + + + + \ No newline at end of file diff --git a/Firmware/WeMo.h b/Firmware/WeMo.h new file mode 100644 index 0000000..2c91f17 --- /dev/null +++ b/Firmware/WeMo.h @@ -0,0 +1,262 @@ +/* + +FAUXMO ESP 2.4.0 + +Copyright (C) 2016 by Xose Pérez + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +#pragma once + +const char UDP_TEMPLATE[] PROGMEM = + "HTTP/1.1 200 OK\r\n" + "CACHE-CONTROL: max-age=86400\r\n" + "DATE: Mon, 22 Jun 2015 17:24:01 GMT\r\n" + "EXT:\r\n" + "LOCATION: http://%s:%d/setup.xml\r\n" + "OPT: \"http://schemas.upnp.org/upnp/1/0/\"; ns=01\r\n" + "01-NLS: %s\r\n" + "SERVER: Unspecified, UPnP/1.0, Unspecified\r\n" + "ST: %s\r\n" + "USN: uuid:Socket-1_0-%s::" + "%s\r\n" // %s = urn:Belkin:device:** (Echo Dot 2Gen, Echo 1Gen) or %s = upnp:rootdevice (Echo 2Gen, Echo Plus) + "X-User-Agent: redsonic\r\n" + "\r\n"; + +const char SETUP_TEMPLATE[] PROGMEM = + "\n" + "\n" + " \n" + " 1\n" + " 0\n" + " \n" + " \n" + " urn:Belkin:device:controllee:1\n" + " %s\n" + " Belkin International Inc.\n" ///< must be "Belkin..." for Alexa discovery + " http://www.smart-family.net\n" ///< + " Smartware Grow Controller\n" ///< + " Grow Controller\n" ///< + " 1.0.0\n" +#if 0 + " http://www.smart-family.net\n" ///< This causes it to fail to send completely +#endif + " uuid:Socket-1_0-%s\n" + " %s\n" + " \n" + " jpg\n" + " 100\n" + " 100\n" + " 100\n" + " icon.jpg\n" + " \n" + " http://%s:%d\n" +#if 0 + " \n" + " \n" + " urn:Belkin:service:WiFiSetup:1\n" + " urn:Belkin:serviceId:WiFiSetup1\n" + " /upnp/control/WiFiSetup1\n" + " /upnp/event/WiFiSetup1\n" + " /setupservice.xml\n" + " \n" + " \n" + " urn:Belkin:service:timesync:1\n" + " urn:Belkin:serviceId:timesync1\n" + " /upnp/control/timesync1\n" + " /upnp/event/timesync1\n" + " /timesyncservice.xml\n" + " \n" + " \n" + " urn:Belkin:service:basicevent:1\n" + " urn:Belkin:serviceId:basicevent1\n" + " /upnp/control/basicevent1\n" + " /upnp/event/basicevent1\n" + " /eventservice.xml\n" + " \n" + " \n" + " urn:Belkin:service:firmwareupdate:1\n" + " urn:Belkin:serviceId:firmwareupdate1\n" + " /upnp/control/firmwareupdate1\n" + " /upnp/event/firmwareupdate1\n" + " /firmwareupdate.xml\n" + " \n" + " \n" + " urn:Belkin:service:rules:1\n" + " urn:Belkin:serviceId:rules1\n" + " /upnp/control/rules1\n" + " /upnp/event/rules1\n" + " /rulesservice.xml\n" + " \n" + " \n" + " urn:Belkin:service:metainfo:1\n" + " urn:Belkin:serviceId:metainfo1\n" + " /upnp/control/metainfo1\n" + " /upnp/event/metainfo1\n" + " /metainfoservice.xml\n" + " \n" + " \n" + " urn:Belkin:service:remoteaccess:1\n" + " urn:Belkin:serviceId:remoteaccess1\n" + " /upnp/control/remoteaccess1\n" + " /upnp/event/remoteaccess1\n" + " /remoteaccess.xml\n" + " \n" + " \n" + " urn:Belkin:service:deviceinfo:1\n" + " urn:Belkin:serviceId:deviceinfo1\n" + " /upnp/control/deviceinfo1\n" + " /upnp/event/deviceinfo1\n" + " /deviceinfoservice.xml\n" + " \n" + " \n" + " urn:Belkin:service:smartsetup:1\n" + " urn:Belkin:serviceId:smartsetup1\n" + " /upnp/control/smartsetup1\n" + " /upnp/event/smartsetup1\n" + " /smartsetup.xml\n" + " \n" + " \n" + " urn:Belkin:service:manufacture:1\n" + " urn:Belkin:serviceId:manufacture1\n" + " /upnp/control/manufacture1\n" + " /upnp/event/manufacture1\n" + " /manufacture.xml\n" + " \n" + " \n" +#endif + " \n" + "\n"; + +const char EVENTSERVICE_TEMPLATE[] PROGMEM = + "" + "" + "" + "SetBinaryState" + "" + "" + "" + "BinaryState" + "BinaryState" + "in" + "" + "" + "" + "" + "GetBinaryState" + "" + "" + "" + "BinaryState" + "BinaryState" + "out" + "" + "" + "" + "" + "" + "" + "BinaryState" + "Boolean" + "0" + "" + "" + "level" + "string" + "0" + "" + "" + "\r\n" + "\r\n"; + +const char METAINFO_TEMPLATE[] PROGMEM = + "" + "10" + "" + "" + "GetMetaInfo" + "" + "" + "GetMetaInfo" + "MetaInfo" + "in" + "" + "" + "" + "" + "" + "MetaInfo" + "string" + "0" + "" + "" + "\r\n" + "\r\n"; + +const char SETSTATE_TEMPLATE[] PROGMEM = + "" + "" + "" + "%d" + "" + "" + "\r\n"; + +const char GETSTATE_TEMPLATE[] PROGMEM = + "" + "" + "" + "%d" + "" + "" + "\r\n"; + +const char HEADERS[] PROGMEM = + "HTTP/1.1 200 OK\r\n" + "CONTENT-LENGTH: %d\r\n" + "CONTENT-TYPE: text/xml\r\n" + "DATE: Sun, 01 Jan 2017 00:00:00 GMT\r\n" + "LAST-MODIFIED: Sat, 01 Jan 2017 00:00:00 GMT\r\n" + "SERVER: Unspecified, UPnP/1.0, Unspecified\r\n" + "X-USER-AGENT: redsonic\r\n" + "CONNECTION: close\r\n\r\n"; + +const char HEADERJPG[] PROGMEM = + "HTTP/1.1 200 OK\r\n" + "CONTENT-LENGTH: %d\r\n" + "CONTENT-TYPE: image/jpg\r\n" + "DATE: Sun, 01 Jan 2017 00:00:00 GMT\r\n" + "LAST-MODIFIED: Sat, 01 Jan 2017 00:00:00 GMT\r\n" + "SERVER: Unspecified, UPnP/1.0, Unspecified\r\n" + "X-USER-AGENT: redsonic\r\n" + "CONNECTION: close\r\n\r\n"; + +const char HEADERPNG[] PROGMEM = + "HTTP/1.1 200 OK\r\n" + "CONTENT-LENGTH: %d\r\n" + "CONTENT-TYPE: image/png\r\n" + "DATE: Sun, 01 Jan 2017 00:00:00 GMT\r\n" + "LAST-MODIFIED: Sat, 01 Jan 2017 00:00:00 GMT\r\n" + "SERVER: Unspecified, UPnP/1.0, Unspecified\r\n" + "X-USER-AGENT: redsonic\r\n" + "CONNECTION: close\r\n\r\n"; diff --git a/Firmware/Web_APConfig.cpp b/Firmware/Web_APConfig.cpp new file mode 100644 index 0000000..eedda09 --- /dev/null +++ b/Firmware/Web_APConfig.cpp @@ -0,0 +1,253 @@ + +#include + +#include "ProjGlobals.h" +#include "Web_APConfig.h" + +static String EncType_str(uint8_t encType) { + switch (encType) { + case ENC_TYPE_NONE: + return "open"; + break; + case ENC_TYPE_WEP: + return "wep"; + break; + case ENC_TYPE_TKIP: + return "wpa psk"; + break; + case ENC_TYPE_CCMP: + return "wpa2 psk"; + break; + case ENC_TYPE_AUTO: + return "wpa wpa2 psk"; + break; + default: + return "unknown"; + break; + } +} + +void HandleAPScan() { + // WiFi.scanNetworks will return the number of networks found + Serial.println("Scan ..."); + int n = WiFi.scanNetworks(false, true); // blocking call and show hidden. + Serial.println("scan done."); + if (n == 0) { + Serial.println("no networks found"); + } else { + Serial.print(n); + Serial.println(" networks found"); + server.sendContent_P("HTTP/1.1 200 OK\r\n"); + server.sendContent_P("Content-Type: text/html\r\n"); + server.sendContent_P("\r\n"); + server.sendContent_P( + "\n" + "\n" + "Grow Controller - Scan\n" + "\n" + "

Grow Controller - Scan

" + ); + + server.sendContent_P( + "
\n" + "
\n" + " \n" + " \n" + ); + + for (int i = 0; i < n; ++i) { + // Select, Network #, RSSI, SSID, BSSID, Channel, Hidden + String bgcolor = (i & 1) ? "#E0E0E0" : "#FFFFFF"; + String record = + " \n" + + " \n" + + " \n" + + " \n" + + " \n"; + + record += " \n"; + record += " \n"; + record += WiFi.isHidden(i) + ? " \n" + : " \n"; + record += " \n"; + server.sendContent(record); + // + Serial.print(i + 1); + Serial.print(": "); + Serial.print(WiFi.SSID(i)); + Serial.print(" ("); + Serial.print(WiFi.RSSI(i)); + Serial.print(")"); + Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*"); + } + server.sendContent_P( + " \n" + " \n" + " \n" + "
NetRSSISSIDBSSIDEncryptionChannelHidden
" + (i + 1) + "" + WiFi.RSSI(i) + "" + WiFi.SSID(i) + "
" + + "
" + WiFi.BSSIDstr(i) + "" + EncType_str(WiFi.encryptionType(i)) + "" + String(WiFi.channel(i)); + record += "YesNo
 \n" + " \n" + " \n" + "
\n" + "
\n" + "
\n" + "NAV:  " + "
Home | " + " Config | " + " Scan | " + " RSSI | " + " Current | " + " Factory Reset | " + " About\n" + "
\n" + "\n" + "\n" + ); + } +} + +void FactoryReset(bool forceRestart) { + Serial.println("Factory Reset Configuration...\n"); + wifiConfig.factoryReset(); + wifiConfig.save(); + if (forceRestart) { + Serial.println("Restart in 3 sec ..."); + delay(3000); + ESP.restart(); + } +} + +void HandleAPConfigPage() { + String name = wifiConfig.getName(); + String ssid = wifiConfig.getSSID(); + String pass = wifiConfig.getPassword(); + String url = wifiConfig.getURL(); + //String ntp = wifiConfig.getNTPServerName(); + char _onref[6], _offref[6], _autoOff[6]; + + snprintf(_onref, sizeof(_onref), "%d", wifiConfig.getOnRef()); + snprintf(_offref, sizeof(_offref), "%d", wifiConfig.getOffRef()); + snprintf(_autoOff, sizeof(_autoOff), "%d", wifiConfig.getAutoOff()); + String onref = String(_onref); + String offref = String(_offref); + String autooff = String(_autoOff); + + if (server.hasArg("ssid") && server.hasArg("pass")) { + String _ssid = server.hasArg("_ssid") ? server.arg("_ssid") : ""; + String _pass = server.hasArg("_pass") ? server.arg("_pass") : ""; + name = server.arg("name"); + ssid = server.arg("ssid"); + pass = server.arg("pass"); + url = server.hasArg("url") ? server.arg("url") : ""; + onref = server.hasArg("onref") ? server.arg("onref") : ""; + offref = server.hasArg("offref") ? server.arg("offref") : ""; + autooff = server.hasArg("autooff") ? server.arg("autooff") : ""; + //ntp = server.hasArg("ntp") ? server.arg("ntp") : ""; + if (ssid == "reset" && pass == "reset") { + FactoryReset(true); + } + wifiConfig.setName(name); + wifiConfig.setSSID(ssid); + wifiConfig.setPassword(pass); + wifiConfig.setURL(url); + wifiConfig.setOnRef(onref.toInt()); + wifiConfig.setOffRef(offref.toInt()); + wifiConfig.setAutoOff(autooff.toInt()); + //wifiConfig.setNTPServerName(ntp); + wifiConfig.save(); + Serial.println("Settings saved."); + if (ssid != _ssid || pass != _pass) { + // They changed stuff that requires a restart. + server.send(200, "text/html", "Configuration Saved! Restarting in 3 sec..."); + Serial.printf("Config saved. Restarting in 3 sec . . ."); + delay(3000); + ESP.restart(); + return; + } + } + + String modeText = (isStationMode) ? "Station mode
" : "Access Point mode
"; + if (server.hasArg("ssid") && !server.hasArg("pass")) { + ssid = server.arg("ssid"); + pass = ""; + Serial.println("ssid: " + ssid + ", pass: " + pass); + } + if (server.hasArg("url")) + url = server.arg("url"); + //if (server.hasArg("ntp")) + // ntp = server.arg("ntp"); + server.send(200, "text/html", + "\n" + "\n" + "Grow Controller - Config\n" + "\n" + "

Grow Controller - Configuration

" + "
\n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" +// " \n" +// " \n" +// " \n" +// " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
Node Name
SSID **\n" + "
Password **\n" + "
Update URL
NTP Server
Auto-Off (time in seconds when non-zero)
On Reference (sense above this indicates power is on)
Off Reference (sense below this indicates power is off)
 \n" + " \n" + " ** Changes to these will trigger a module restart.\n" + "

 Check for SW update (module will restart if updated)
\n" + "
\n" + "
\n" + "NAV:  " + " Home | " + " Config | " + " Scan | " + " RSSI | " + " Current | " + " Factory Reset | " + " About\n" + "
\n" + "\n" + "\n" + ); +} diff --git a/Firmware/Web_APConfig.h b/Firmware/Web_APConfig.h new file mode 100644 index 0000000..720b8de --- /dev/null +++ b/Firmware/Web_APConfig.h @@ -0,0 +1,12 @@ + +#ifndef WEB_APCONFIG_H +#define WEB_APCONFIG_H + + +void FactoryReset(bool forceRestart = false); + +void HandleAPScan(); + +void HandleAPConfigPage(); + +#endif // WEB_APCONFIG_H diff --git a/Firmware/Web_FavIcon.cpp b/Firmware/Web_FavIcon.cpp new file mode 100644 index 0000000..77ec92d --- /dev/null +++ b/Firmware/Web_FavIcon.cpp @@ -0,0 +1,39 @@ + +#include + +#include "ProjGlobals.h" +#include "Web_FavIcon.h" +#include "Web_Resources.h" + +void HandleGreen1x1() { + Serial.printf("Green1x1.png\n"); + server.send_P(200, "image/png", Green1x1_png, sizeof(Green1x1_png)); +} + +void HandleFavIcon() { + Serial.printf("favicon.ico\n"); + server.send_P(200, "image/x-icon", favicon_ico, sizeof(favicon_ico)); +} + +void HandleIcon() { + Serial.printf("icon.png\n"); + server.send_P(200, "image/png", icon_png, sizeof(icon_png)); +} + +void HandleOpenDoor() { + Serial.printf("Open.png\n"); + server.send_P(200, "image/png", Open_png, sizeof(Open_png)); +} + +void HandlePlantModel() { + Serial.printf("PlantModel\n"); + server.send_P(200, "image/png", PlantModel_png, sizeof(PlantModel_png)); +} +void HandleHeater() { + Serial.printf("Heater\n"); + server.send_P(200, "image/png", Heater_png, sizeof(Heater_png)); +} +void HandleWater() { + Serial.printf("Water\n"); + server.send_P(200, "image/png", Water_png, sizeof(Water_png)); +} diff --git a/Firmware/Web_FavIcon.h b/Firmware/Web_FavIcon.h new file mode 100644 index 0000000..8b4967a --- /dev/null +++ b/Firmware/Web_FavIcon.h @@ -0,0 +1,13 @@ + +#ifndef WEB_FAVICON_H +#define WEB_FAVICON_H + +void HandleGreen1x1(); +void HandleFavIcon(); +void HandlePlantModel(); +void HandleHeater(); +void HandleWater(); +void HandleIcon(); +void HandleOpenDoor(); + +#endif // WEB_FAVICON_H \ No newline at end of file diff --git a/Firmware/Web_RSSIGraph.cpp b/Firmware/Web_RSSIGraph.cpp new file mode 100644 index 0000000..1eed749 --- /dev/null +++ b/Firmware/Web_RSSIGraph.cpp @@ -0,0 +1,22 @@ + +#include + +#include "ProjGlobals.h" +#include "Web_RSSIGraph.h" +#include "Web_Resources.h" + +void HandleRSSIPage() { + server.send_P(200, "text/html", rssi_htm); +} + +void HandleRSSI_JS() { + server.send_P(200, "text/html", rssi_js); +} + +void HandleCurrPage() { + server.send_P(200, "text/html", curr_htm); +} + +void HandleCurr_JS() { + server.send_P(200, "text/html", curr_js); +} \ No newline at end of file diff --git a/Firmware/Web_RSSIGraph.h b/Firmware/Web_RSSIGraph.h new file mode 100644 index 0000000..4a5048f --- /dev/null +++ b/Firmware/Web_RSSIGraph.h @@ -0,0 +1,10 @@ + +#ifndef WEB_RSSIGRAPH_H +#define WEB_RSSIGRAPH_H + +void HandleRSSIPage(); +void HandleRSSI_JS(); +void HandleCurrPage(); +void HandleCurr_JS(); + +#endif // WEB_RSSIGRAPH_H diff --git a/Firmware/Web_Resources.h b/Firmware/Web_Resources.h new file mode 100644 index 0000000..6d2a2f5 --- /dev/null +++ b/Firmware/Web_Resources.h @@ -0,0 +1,3549 @@ +// +// Command : MakeByteArray -ESP -DIR *.* -o=..\Web_Resources.h +// version: 1.0 +// From cwd : D:/Projects/GrowController/Firmware/Resources +// Generated: Tue Sep 28 16:12:34 2021 +// Run script in command shell, not PowerShell + +// File: about.htm +// +const char about_htm[] PROGMEM = { + "\n" + "\n" + "\n" + " Grow Controller\n" + " \n" + " \n" + " \n" + "\n" + "\n" + "

Grow Controller

\n" + " by Smartware Computing\n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
\n" + " This Grow Controller is an IOT device based on an ESP8266-12 module. The software for it has been\n" + " derived from various sources and where copyrights have been identified, they are listed below.
\n" + "
    \n" + "
  • The composite work is Copyright © 2018-2021 by Smartware Computing, all rights reserved.
  • \n" + "
  • Library for WEMO emulation, Copyright © 2016 by Xose Pérez
  • \n" + "
  • Libraries; Copyright © 2001-2013 Free Software Foundation, Inc.
  • \n" + "
  • Libraries; Copyright (c) 1997 Silicon Graphics Computer Systems, Inc.
  • \n" + "
\n" + "
\n" + "
Toggle Button
\n" + "
Each press will toggle the circuit between on and off.
\n" + "
Reset Button
\n" + "
Momentary press resets unit. Very Long press causes Factory reset back to Access Point mode.
\n" + "
\n" + "
\n" + "\n" + " Mode: \n" + " Uptime: \n" + "\n" + "
\n" + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
NAV:\n" + " Home |\n" + " Config |\n" + " Scan |\n" + " RSSI |\n" + " Current |\n" + " Factory Reset |\n" + " About\n" + "
\n" + "\n" + "\n" +}; // about_htm, 1839 bytes + +// File: about.js +// +const char about_js[] PROGMEM = { + "//\n" + "// rssi script\n" + "//\n" + "// var mySite = 'http://192.168.1.23' from myip.js\n" + "var url = mySite + '/state';\n" + "setInterval(RefreshStatus, 5000);\n" + "\n" + "getIt = function(aUrl, callback) {\n" + " var xhr = new XMLHttpRequest();\n" + " xhr.open('GET', aUrl, true);\n" + " xhr.responseType = 'text';\n" + " xhr.onload = function(e) {\n" + " if (this.status === 200) {\n" + " callback(this.response);\n" + " }\n" + " };\n" + " xhr.send();\n" + "}\n" + "\n" + "function RefreshStatus() {\n" + " getIt(url,\n" + " function(data) {\n" + " obj = JSON.parse(data);\n" + " var elms = document.querySelectorAll('.' + 'ip'), i;\n" + " for (i = 0; i < elms.length; ++i) {\n" + " elms[i].textContent = obj.ip;\n" + " }\n" + " }\n" + " );\n" + "}\n" +}; // about_js, 605 bytes + +// File: Button.css +// +const char Button_css[] PROGMEM = { + "input.BigButton {\n" + " width: 150px;\n" + " padding: 20px;\n" + " white-space: normal;\n" + " cursor: pointer;\n" + " font-weight: bold;\n" + " font-size: 120%;\n" + " background: #3366cc;\n" + " color: #fff;\n" + " border: 5px solid #112233;\n" + " border-radius: 10px;\n" + " -moz-box-shadow: 6px 6px 5px #999;\n" + " -webkit-box-shadow: 6px 6px 5px #999;\n" + " box-shadow: 6px 6px 5px #999;\n" + "}\n" + "\n" + "input.BigButton:hover {\n" + " color: #ffff00;\n" + " background: #000;\n" + " border: 5px solid #fff;\n" + "}\n" +}; // Button_css, 404 bytes + +// File: curr.htm +// +const char curr_htm[] PROGMEM = { + "\n" + "\n" + "\n" + " Grow Controller\n" + " \n" + " \n" + " \n" + "\n" + "\n" + "

Grow Controller - Current Sense

\n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
\n" + " \n" + "
\n" + "
x:xx:xx
\n" + "
\n" + "
xx
\n" + "
\n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
NAV:\n" + " Home |\n" + " Config |\n" + " Scan |\n" + " RSSI |\n" + " Current |\n" + " Factory Reset |\n" + " About\n" + "
\n" + "\n" + "\n" +}; // curr_htm, 1196 bytes + +// File: curr.js +// +const char curr_js[] PROGMEM = { + "//\n" + "// curr script\n" + "//\n" + "// var mySite = 'http://192.168.1.23' from myip.js\n" + "var url = mySite + '/state';\n" + "var rawData = [];\n" + "var avgData = [];\n" + "var currIndex = 0;\n" + "var axes = {};\n" + "var totalSamples = 400; // Width of the graph\n" + "for (var i = 0; i < totalSamples; i++)\n" + " rawData[i] = avgData[i] = 0;\n" + "setInterval(RefreshStatus, 250);\n" + "\n" + "// -------------------------\n" + "\n" + "getIt = function (aUrl, callback) {\n" + " var xhr = new XMLHttpRequest();\n" + " xhr.open('GET', aUrl, true);\n" + " xhr.responseType = 'text';\n" + " xhr.onload = function (e) {\n" + " if (this.status === 200) {\n" + " callback(this.response);\n" + " }\n" + " };\n" + " xhr.send();\n" + "};\n" + "\n" + "function RefreshStatus() {\n" + " getIt(url,\n" + " function (data) {\n" + " obj = JSON.parse(data);\n" + " UpdateGraph(obj.raw, obj.sense); // raw and averaged\n" + " document.getElementById('uptime').innerHTML = 'Uptime: ' + obj.uptime;\n" + " document.getElementById('currText').innerHTML = 'raw: ' + obj.raw + ', avg: ' + obj.sense;\n" + " }\n" + " );\n" + "}\n" + "\n" + "function CurrInit() {\n" + " var canvas = document.getElementById('curr');\n" + " if (null === canvas || !canvas.getContext)\n" + " return;\n" + " ctx = canvas.getContext('2d');\n" + " axes.w = 0.9 * canvas.width;\n" + " axes.h = 0.8 * canvas.height;\n" + " axes.x0 = 0.07 * canvas.width; // x0 pixels from left to x=0\n" + " axes.y0 = 0.10 * canvas.height; // y0 pixels from top to y=0\n" + " axes.scaleX = totalSamples; // # pixels from x=0 to x=1\n" + " axes.scaleY = 1024;\n" + " axes.doNegativeX = false;\n" + " ctx.clearRect(0, 0, canvas.width, canvas.height);\n" + " ctx.rect(0, 0, canvas.width - 1, canvas.height - 1);\n" + " ctx.strokeStyle = 'black';\n" + " ctx.lineWidth = 1;\n" + " ctx.stroke();\n" + " showAxes(ctx, axes);\n" + "}\n" + "\n" + "function UpdateGraph(rawCurr, avgCurr) {\n" + " var xx, yy;\n" + " var i;\n" + "\n" + " if (rawCurr > axes.scaleY) // safety limit\n" + " rawCurr = axes.scaleY;\n" + " else if (rawCurr < 0)\n" + " rawCurr = 0;\n" + " if (avgCurr > axes.scaleY) // safety limit\n" + " avgCurr = axes.scaleY;\n" + " else if (avgCurr < 0)\n" + " avgCurr = 0;\n" + " rawData[currIndex] = rawCurr;\n" + " avgData[currIndex] = avgCurr;\n" + " console.log('UpdateGraph(-' + rawCurr + ')');\n" + " CurrInit();\n" + "\n" + " // Draw Raw\n" + " x0 = axes.x0;\n" + " y0 = axes.y0;\n" + " ctx.beginPath();\n" + " ctx.strokeStyle = '#FF8080';\n" + " ctx.lineWidth = 3;\n" + " for (i = 0; i < totalSamples; i++) {\n" + " pi = (currIndex + 1 + i) % totalSamples;\n" + " xx = x0 + i / axes.scaleX * axes.w;\n" + " yy = y0 + axes.h - rawData[pi] / axes.scaleY * axes.h;\n" + " ctx.lineTo(xx, yy);\n" + " }\n" + " ctx.stroke();\n" + " // Circle\n" + " ctx.beginPath();\n" + " ctx.arc(xx, yy, 7, 0, 2 * Math.PI, false);\n" + " ctx.fillstyle = '#FF8080';\n" + " ctx.fill();\n" + " ctx.strokeStyle = '#FF0000';\n" + " ctx.stroke();\n" + "\n" + " // Draw Average\n" + " x0 = axes.x0;\n" + " y0 = axes.y0;\n" + " ctx.beginPath();\n" + " ctx.strokeStyle = '#8080FF';\n" + " ctx.lineWidth = 3;\n" + " for (i = 0; i < totalSamples; i++) {\n" + " pi = (currIndex + 1 + i) % totalSamples;\n" + " xx = x0 + i / axes.scaleX * axes.w;\n" + " yy = y0 + axes.h - avgData[pi] / axes.scaleY * axes.h;\n" + " ctx.lineTo(xx, yy);\n" + " }\n" + " ctx.stroke();\n" + " // Circle\n" + " ctx.beginPath();\n" + " ctx.arc(xx, yy, 7, 0, 2 * Math.PI, false);\n" + " ctx.fillstyle = '#8080FF';\n" + " ctx.fill();\n" + " ctx.strokeStyle = '#0000FF';\n" + " ctx.stroke();\n" + " currIndex++;\n" + " currIndex %= totalSamples;\n" + "}\n" + "\n" + "function showAxes(ctx, axes) {\n" + " var x0 = axes.x0, w = axes.w;\n" + " var y0 = axes.y0, h = axes.h;\n" + " var xmin = axes.doNegativeX ? 0 : x0;\n" + " ctx.lineWidth = 1;\n" + " ctx.font = '12px Arial';\n" + " ctx.textAlign = 'end';\n" + " ctx.beginPath();\n" + " ctx.strokeStyle = 'rgb(128,128,128)';\n" + " ctx.moveTo(x0, y0); ctx.lineTo(x0, y0 + h); // Y axis\n" + " for (var y = 0; y <= axes.scaleY; y += 100) {\n" + " yy = axes.y0 + axes.h - y / axes.scaleY * axes.h;\n" + " ctx.moveTo(xmin, yy); ctx.lineTo(x0 + w, yy); // X axis\n" + " ctx.fillText(y, x0 - 3, yy + 3);\n" + " }\n" + " ctx.font = '18px Arial';\n" + " ctx.textAlign = 'start';\n" + " ctx.fillText('Current Graph', axes.x0, axes.y0 - 6);\n" + " ctx.stroke();\n" + "}\n" +}; // curr_js, 3615 bytes + +// File: favicon.ico +// +const char favicon_ico[] PROGMEM = { + 0x00,0x00,0x01,0x00,0x01,0x00,0x20,0x20,0x00,0x00,0x00,0x00,0x20,0x00,0xA8,0x10, + 0x00,0x00,0x16,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x40,0x00, + 0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08, + 0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08, + 0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08, + 0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08, + 0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0xFF,0x08,0x08, + 0x08,0xFF,0x02,0x02,0x02,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x00,0x00,0x00,0xFF,0x06,0x06, + 0x06,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFD,0x00, + 0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x0A,0x02,0x00,0xFF,0x06,0x06, + 0x06,0xFF,0xFD,0x00,0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xFF,0x00, + 0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x3F, + 0x0F,0xFF,0xFF,0x66,0x3F,0xFF,0xFF,0x66,0x3F,0xFF,0xFF,0x66,0x3F,0xFF,0xFF,0x66, + 0x3F,0xFF,0xFF,0x66,0x3F,0xFF,0xFF,0x66,0x3F,0xFF,0xFF,0x66,0x3F,0xFF,0xFF,0x66, + 0x3F,0xFF,0xFF,0x66,0x3F,0xFF,0xFF,0x66,0x3F,0xFF,0xFF,0x66,0x3F,0xFF,0xFF,0x66, + 0x3F,0xFF,0xFF,0x66,0x3F,0xFF,0xFF,0x59,0x2F,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x22,0x06,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xFF,0x00, + 0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x66, + 0x3F,0xFF,0x82,0x82,0x82,0xFF,0x59,0x59,0x59,0xFF,0x59,0x59,0x59,0xFF,0x59,0x59, + 0x59,0xFF,0x59,0x59,0x59,0xFF,0x59,0x59,0x59,0xFF,0x59,0x59,0x59,0xFF,0x59,0x59, + 0x59,0xFF,0x59,0x59,0x59,0xFF,0x59,0x59,0x59,0xFF,0x59,0x59,0x59,0xFF,0x59,0x59, + 0x59,0xFF,0x45,0x45,0x45,0xFF,0xFF,0xCC,0xBF,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x22,0x06,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xFD,0x00, + 0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFD,0x64, + 0x3E,0xFF,0x57,0x57,0x57,0xFF,0x0F,0x0F,0x0C,0xFF,0x3F,0x3F,0x33,0xFF,0x16,0x16, + 0x13,0xFF,0x3F,0x3F,0x33,0xFF,0x31,0x31,0x28,0xFF,0x31,0x31,0x28,0xFF,0x3F,0x3F, + 0x33,0xFF,0x3F,0x3F,0x33,0xFF,0x3F,0x3F,0x33,0xFF,0x3F,0x3F,0x33,0xFF,0x2F,0x2F, + 0x26,0xFF,0x1E,0x1E,0x1E,0xFF,0xFF,0xCC,0xBF,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x31,0x09,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFD,0x00,0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFD,0x64, + 0x3E,0xFF,0x57,0x57,0x57,0xFF,0x3F,0x3F,0x33,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xBF,0xBF, + 0x99,0xFF,0x1E,0x1E,0x1E,0xFF,0xFF,0xCC,0xBF,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFD,0x64, + 0x3E,0xFF,0x57,0x57,0x57,0xFF,0x3F,0x3F,0x33,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xBF,0xBF, + 0x99,0xFF,0x1E,0x1E,0x1E,0xFF,0xFF,0xCC,0xBF,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x12,0x12, + 0x12,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFD,0x00, + 0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFD,0x64, + 0x3E,0xFF,0x57,0x57,0x57,0xFF,0x3F,0x3F,0x33,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xBF,0xBF, + 0x99,0xFF,0x1E,0x1E,0x1E,0xFF,0xFF,0xCC,0xBF,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0xFD,0x00,0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xFF,0x00, + 0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFD,0x64, + 0x3E,0xFF,0x57,0x57,0x57,0xFF,0x3F,0x3F,0x33,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xBF,0xBF, + 0x99,0xFF,0x1E,0x1E,0x1E,0xFF,0xFF,0xCC,0xBF,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xFF,0x00, + 0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFD,0x64, + 0x3E,0xFF,0x57,0x57,0x57,0xFF,0x3F,0x3F,0x33,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xBF,0xBF, + 0x99,0xFF,0x1E,0x1E,0x1E,0xFF,0xFF,0xCC,0xBF,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xFD,0x00, + 0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFD,0x64, + 0x3E,0xFF,0x57,0x57,0x57,0xFF,0x3F,0x3F,0x33,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xBF,0xBF, + 0x99,0xFF,0x1E,0x1E,0x1E,0xFF,0xFF,0xCC,0xBF,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFD,0x00,0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0xCC,0xBF,0xFF,0xFF,0xCC,0xBF,0xFF,0xFD,0xD6, + 0xCD,0xFF,0x57,0x57,0x57,0xFF,0x3F,0x3F,0x33,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xBF,0xBF, + 0x99,0xFF,0x1E,0x1E,0x1E,0xFF,0xFF,0xF2,0xEF,0xFF,0xFF,0xCC,0xBF,0xFF,0xFF,0xCC, + 0xBF,0xFF,0xFF,0xB5,0xA2,0xFF,0xFF,0x33,0x00,0xFF,0x26,0x07,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xBD,0xBD,0xBD,0xFF,0x06,0x06,0x06,0xFF,0x08,0x08, + 0x08,0xFF,0x14,0x14,0x14,0xFF,0x3F,0x3F,0x33,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xBF,0xBF, + 0x99,0xFF,0x06,0x06,0x06,0xFF,0x21,0x21,0x21,0xFF,0x0A,0x0A,0x0A,0xFF,0x00,0x00, + 0x00,0xFF,0xBF,0xBF,0xBF,0xFF,0xFF,0x33,0x00,0xFF,0x00,0x00,0x00,0xFF,0x12,0x12, + 0x12,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFD,0x00, + 0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xEC,0xEC,0xEC,0xFF,0x34,0x34,0x34,0xFF,0x1B,0x1B, + 0x1B,0xFF,0x91,0x91,0x74,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0x97,0x97,0x7B,0xFF,0x08,0x08,0x08,0xFF,0x2F,0x2F, + 0x2F,0xFF,0xEF,0xEF,0xEF,0xFF,0xFF,0x33,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0xFD,0x00,0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xFF,0x00, + 0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x59,0x2F,0xFF,0xFA,0xED,0xEA,0xFF,0x34,0x34, + 0x34,0xFF,0x0C,0x0C,0x0C,0xFF,0xCF,0xCF,0xA5,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xCF,0xCF,0xA5,0xFF,0x06,0x06,0x06,0xFF,0x35,0x35,0x35,0xFF,0xFF,0xF2, + 0xEF,0xFF,0xFF,0x53,0x27,0xFF,0xFF,0x33,0x00,0xFF,0x26,0x07,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xFF,0x00, + 0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x59,0x2F,0xFF,0xEC,0xEC, + 0xEC,0xFF,0x34,0x34,0x34,0xFF,0x29,0x29,0x26,0xFF,0xD5,0xD5,0xAB,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xCF,0xCF, + 0xA5,0xFF,0x0F,0x0F,0x0C,0xFF,0x2F,0x2F,0x2F,0xFF,0xEF,0xEF,0xEF,0xFF,0xFF,0x59, + 0x2F,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xFD,0x00, + 0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x59, + 0x2F,0xFF,0xFA,0xED,0xEA,0xFF,0x2E,0x2E,0x2E,0xFF,0x19,0x19,0x19,0xFF,0xD5,0xD5, + 0xAC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xD5,0xD5,0xAC,0xFF,0x12,0x12, + 0x12,0xFF,0x2F,0x2F,0x2F,0xFF,0xFF,0xF2,0xEF,0xFF,0xFF,0x59,0x2F,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFD,0x00,0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x59,0x2F,0xFF,0xBD,0xBD,0xBD,0xFF,0x19,0x19,0x19,0xFF,0x16,0x16, + 0x13,0xFF,0xCF,0xCF,0xA5,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xFF,0xFF,0xCC,0xFF,0xD5,0xD5,0xAB,0xFF,0x1C,0x1C,0x19,0xFF,0x2F,0x2F, + 0x2F,0xFF,0xEF,0xEF,0xEF,0xFF,0xFF,0x59,0x2F,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xBF,0xBF,0xBF,0xFF,0xBF,0xBF,0xBF,0xFF,0xBF,0xBF, + 0xBF,0xFF,0x19,0x19,0x19,0xFF,0xCF,0xCF,0xA5,0xFF,0xFF,0xFF,0xCC,0xFF,0xFF,0xFF, + 0xCC,0xFF,0xCF,0xCF,0xA5,0xFF,0x12,0x12,0x12,0xFF,0x2F,0x2F,0x2F,0xFF,0xFF,0xF2, + 0xEF,0xFF,0xFF,0x59,0x2F,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFD,0x00, + 0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xBF,0xBF,0xBF,0xFF,0xBF,0xBF,0xBF,0xFF,0xBF,0xBF, + 0xBF,0xFF,0x06,0x06,0x06,0xFF,0x0F,0x0F,0x0C,0xFF,0xCF,0xCF,0xA5,0xFF,0xCF,0xCF, + 0xA5,0xFF,0x0F,0x0F,0x0C,0xFF,0x2F,0x2F,0x2F,0xFF,0xEF,0xEF,0xEF,0xFF,0xFF,0x59, + 0x2F,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFD,0x00,0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xFF,0x00, + 0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xBF,0xBF,0xBF,0xFF,0x8F,0x8F,0x8F,0xFF,0xFF,0x33, + 0x00,0xFF,0xBF,0xBF,0xBF,0xFF,0x2F,0x2F,0x2F,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x2F,0x2F,0x2F,0xFF,0xFF,0xF2,0xEF,0xFF,0xFF,0x59,0x2F,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xFF,0x00, + 0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xEF,0xEF,0xEF,0xFF,0xBF,0xBF,0xBF,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xEF,0xEF,0xEF,0xFF,0xBF,0xBF,0xBF,0xFF,0xBF,0xBF, + 0xBF,0xFF,0xEF,0xEF,0xEF,0xFF,0xFF,0x59,0x2F,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x19,0x19, + 0x19,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xE8,0x29,0x29,0xFF,0xFD,0x00, + 0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xD5,0x3C,0x16,0xFF,0xFF,0x33,0x00,0xFF,0x40,0x40,0x40,0xBF,0x67,0x3D, + 0x31,0xD8,0xD4,0x35,0x0E,0xFF,0xF3,0x41,0x14,0xFF,0xF3,0x41,0x14,0xFF,0xF3,0x41, + 0x14,0xFF,0xF3,0x41,0x14,0xFF,0xF3,0x41,0x14,0xFF,0xF3,0x41,0x14,0xFF,0xF3,0x41, + 0x14,0xFF,0xF6,0x3D,0x0F,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0xFD,0x00,0x00,0xBF,0xFD,0x00,0x00,0xBF,0xE1,0x32,0x32,0xCF,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0xA5,0xA5,0xA5,0x3F,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x00,0x00,0x00,0xFF,0x7F,0x19, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA5,0xA5,0xA5,0x3F,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x26,0x07, + 0x00,0xFF,0x7F,0x19,0x00,0xFF,0x9E,0x1F,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0x00,0x00,0x00,0xFF,0x26,0x07,0x00,0xFF,0x9E,0x1F,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33, + 0x00,0xFF,0xFF,0x33,0x00,0xFF,0xFF,0x33,0x00,0xFF,0x7F,0x19,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0x26,0x07,0x00,0xFF,0xD1,0x6B, + 0x52,0xFF,0xD1,0x6B,0x52,0xFF,0xD1,0x6B,0x52,0xFF,0xD1,0x6B,0x52,0xFF,0xD1,0x6B, + 0x52,0xFF,0xD1,0x6B,0x52,0xFF,0xD1,0x6B,0x52,0xFF,0x26,0x07,0x00,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4, + 0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0xA4,0xA4,0xA4,0xFF,0x00,0x00, + 0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00, + 0x00,0x07,0xE0,0x00,0x00,0x07,0xE0,0x00,0x00,0x07,0xE0,0x00,0x00,0x07,0xE0,0x00, + 0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xE0,0x00,0x00,0x07,0xE0,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x07,0xE0,0x00, + 0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0xE0,0x00,0x00,0x07,0xE0,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x07,0xE0,0x00, + 0x00,0x07,0xE0,0x00,0x00,0x07,0xE0,0x00,0x00,0x07,0xE0,0x00,0x00,0x07, +}; // favicon_ico, 4286 bytes + +// File: Green1x1.png +// +const char Green1x1_png[] PROGMEM = { + 0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,0x0D,0x49,0x48,0x44,0x52, + 0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x08,0x02,0x00,0x00,0x00,0x90,0x77,0x53, + 0xDE,0x00,0x00,0x00,0x01,0x73,0x52,0x47,0x42,0x00,0xAE,0xCE,0x1C,0xE9,0x00,0x00, + 0x00,0x04,0x67,0x41,0x4D,0x41,0x00,0x00,0xB1,0x8F,0x0B,0xFC,0x61,0x05,0x00,0x00, + 0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x12,0x74,0x00,0x00,0x12,0x74,0x01,0xDE, + 0x66,0x1F,0x78,0x00,0x00,0x00,0x0C,0x49,0x44,0x41,0x54,0x18,0x57,0x63,0x50,0xDA, + 0xE8,0x03,0x00,0x02,0x18,0x01,0x20,0xE2,0xE0,0x90,0x6F,0x00,0x00,0x00,0x00,0x49, + 0x45,0x4E,0x44,0xAE,0x42,0x60,0x82, +}; // Green1x1_png, 119 bytes + +// File: Heater.png +// +const char Heater_png[] PROGMEM = { + 0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,0x0D,0x49,0x48,0x44,0x52, + 0x00,0x00,0x00,0x4A,0x00,0x00,0x00,0x18,0x08,0x03,0x00,0x00,0x00,0x6A,0x48,0x9B, + 0xBF,0x00,0x00,0x00,0x01,0x73,0x52,0x47,0x42,0x00,0xAE,0xCE,0x1C,0xE9,0x00,0x00, + 0x00,0x04,0x67,0x41,0x4D,0x41,0x00,0x00,0xB1,0x8F,0x0B,0xFC,0x61,0x05,0x00,0x00, + 0x00,0x27,0x50,0x4C,0x54,0x45,0xFF,0x00,0x00,0xFF,0x70,0x70,0xFF,0x30,0x30,0xFF, + 0x8F,0x8F,0xFF,0x50,0x50,0xFF,0x08,0x08,0xFF,0x18,0x18,0xFF,0x40,0x40,0xFF,0x58, + 0x58,0xFF,0x20,0x20,0xFF,0x10,0x10,0xFF,0x97,0x97,0x00,0x00,0x00,0x7A,0x54,0x91, + 0x5B,0x00,0x00,0x00,0x0D,0x74,0x52,0x4E,0x53,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x3D,0xE8,0x22,0x86,0x00,0x00,0x00,0x09,0x70,0x48, + 0x59,0x73,0x00,0x00,0x0E,0xC2,0x00,0x00,0x0E,0xC2,0x01,0x15,0x28,0x4A,0x80,0x00, + 0x00,0x01,0x04,0x49,0x44,0x41,0x54,0x48,0x4B,0xED,0x53,0xDB,0x16,0x83,0x20,0x0C, + 0x13,0xAF,0x73,0xF2,0xFF,0xDF,0xBB,0x36,0x69,0xA1,0x75,0x3E,0x78,0xCE,0xF6,0x68, + 0x5E,0x0C,0x10,0x92,0xA8,0x30,0xD4,0xBF,0xE1,0xB1,0xBA,0x8F,0x66,0x35,0x28,0x0A, + 0x68,0x01,0x07,0xAD,0xA3,0xD2,0x91,0x1C,0xD3,0x13,0x68,0x94,0x38,0x7C,0x38,0x63, + 0x6D,0x01,0x5F,0xC0,0x67,0x70,0x50,0x8A,0x28,0x59,0xC1,0xA3,0xC4,0xE1,0x56,0x58, + 0x62,0x2D,0x26,0x72,0x3F,0x4A,0x59,0x2D,0x52,0xD4,0x8A,0x92,0x06,0x1B,0x31,0x91, + 0xB5,0x98,0xC8,0x4C,0xA3,0xAA,0x72,0x89,0xD6,0x8A,0x92,0x06,0x11,0x95,0x6D,0xDB, + 0x6C,0x49,0x6B,0x79,0xA2,0xEE,0xB7,0x52,0xA8,0x65,0x4C,0x6B,0x75,0x89,0x6C,0x25, + 0x5E,0xB0,0xEA,0x3E,0x82,0xA5,0x25,0x6A,0xA6,0x11,0x41,0x2B,0xA5,0xB5,0xBA,0xA4, + 0x61,0xFF,0xB6,0x1A,0xDE,0xF6,0x54,0xEC,0xF6,0x14,0x04,0x9A,0xB8,0xE3,0xCA,0xEA, + 0x36,0x72,0xB5,0x6C,0x75,0xF4,0xC5,0xE5,0x30,0x22,0x98,0xFB,0xAB,0x45,0xC9,0x1A, + 0xDE,0x5E,0x90,0xAC,0xC6,0xF0,0x35,0x4B,0xFF,0xE0,0x22,0x30,0x92,0x25,0x53,0x90, + 0x08,0x68,0xD5,0xE1,0x99,0x7A,0x24,0x8C,0xEA,0xFF,0x6E,0xB5,0x82,0x84,0x27,0x35, + 0x21,0x59,0x79,0xA6,0x1E,0x54,0xCF,0xD4,0x79,0xA3,0x7A,0x50,0x5D,0xC2,0xFB,0x93, + 0x90,0xAC,0x2C,0x93,0xD7,0x07,0x94,0x87,0xD0,0x6A,0x61,0x9A,0x92,0x8B,0x52,0x27, + 0x2B,0x66,0xF2,0x52,0xB3,0x16,0x28,0x6D,0x79,0xA9,0x29,0xB9,0x28,0x75,0xB2,0xFA, + 0x09,0x8F,0xD5,0x5D,0xD4,0xFA,0x01,0xFE,0x53,0x35,0x93,0x78,0xB2,0x5F,0x66,0x00, + 0x00,0x00,0x00,0x49,0x45,0x4E,0x44,0xAE,0x42,0x60,0x82, +}; // Heater_png, 443 bytes + +// File: icon.png +// +const char icon_png[] PROGMEM = { + 0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,0x0D,0x49,0x48,0x44,0x52, + 0x00,0x00,0x00,0x50,0x00,0x00,0x00,0xA0,0x08,0x02,0x00,0x00,0x00,0x14,0xE1,0x7C, + 0xE3,0x00,0x00,0x00,0x01,0x73,0x52,0x47,0x42,0x00,0xAE,0xCE,0x1C,0xE9,0x00,0x00, + 0x00,0x04,0x67,0x41,0x4D,0x41,0x00,0x00,0xB1,0x8F,0x0B,0xFC,0x61,0x05,0x00,0x00, + 0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x0E,0xC3,0x00,0x00,0x0E,0xC3,0x01,0xC7, + 0x6F,0xA8,0x64,0x00,0x00,0x21,0xA6,0x49,0x44,0x41,0x54,0x78,0x5E,0xED,0x9D,0x07, + 0x60,0x14,0x55,0xFE,0xC7,0xB3,0xB3,0x35,0x6D,0xB3,0xBB,0xE9,0x8D,0xF4,0x84,0x84, + 0x40,0x48,0x08,0x20,0x2D,0x90,0x80,0x34,0xA9,0x22,0x20,0x2A,0x28,0x82,0xE5,0xF0, + 0x44,0x3D,0x1B,0x78,0xF7,0xBF,0xF3,0x3C,0x3D,0xFF,0x7A,0x77,0x9E,0x5E,0xF1,0xD4, + 0x13,0xB1,0xA1,0x22,0x52,0x44,0x10,0x10,0xA4,0x93,0x04,0x48,0x42,0x80,0x90,0x02, + 0x04,0xD2,0x48,0xDB,0x24,0x9B,0x64,0x7B,0xCD,0xFF,0x3B,0xFB,0x86,0x25,0xD9,0xDD, + 0x6C,0x49,0x36,0x67,0xB9,0xFF,0x87,0x61,0x33,0xF3,0x66,0x76,0x77,0x7E,0xAF,0xFC, + 0xCA,0x7B,0x6F,0xDE,0xB2,0x7A,0x7A,0x7A,0xBC,0xFE,0xB3,0x98,0x4C,0x26,0x8D,0x46, + 0x63,0x34,0x1A,0xD9,0x6C,0x36,0xF6,0xF1,0xCA,0x62,0xB1,0x04,0x02,0x01,0x73,0x7A, + 0x88,0x19,0x72,0x81,0xF5,0x7A,0x7D,0x63,0x63,0xE3,0x8D,0x1B,0x37,0xDA,0xCC,0x48, + 0xA5,0x52,0xB5,0x5A,0x8D,0xF4,0xE8,0xE8,0xE8,0x65,0xCB,0x96,0x61,0xA7,0xA5,0xA5, + 0x65,0xCB,0x96,0x2D,0x90,0x59,0x2C,0x16,0x47,0x45,0x45,0x4D,0x9D,0x3A,0x95,0xC7, + 0xE3,0x19,0x0C,0x06,0x91,0x48,0x64,0xFE,0x00,0x0F,0x33,0x54,0x02,0x77,0x74,0x74, + 0x94,0x97,0x97,0x5F,0xBD,0x7A,0xB5,0xBE,0xBE,0x1E,0x85,0xC9,0xA4,0x9A,0xE1,0x72, + 0xB9,0x1C,0x0E,0x27,0x2E,0x2E,0x6E,0xDA,0xB4,0x69,0x14,0x45,0xB5,0xB6,0xB6,0xEE, + 0xDE,0xBD,0x1B,0x65,0x8E,0x53,0x41,0x41,0x41,0xF7,0xDF,0x7F,0xBF,0x42,0xA1,0x78, + 0xFF,0xFD,0xF7,0xFD,0xFC,0xFC,0x12,0x13,0x13,0x53,0x52,0x52,0xE2,0xE3,0xE3,0x71, + 0x3D,0x79,0xEF,0xE0,0xF1,0xB0,0xC0,0xB8,0xEF,0x8A,0x8A,0x8A,0x92,0x92,0x92,0x86, + 0x86,0x06,0xF2,0xC9,0x10,0x09,0x62,0x44,0x46,0x46,0x06,0x07,0x07,0x87,0x84,0x84, + 0x84,0x86,0x86,0xFA,0xFA,0xFA,0x22,0x1D,0x45,0x6A,0x7E,0x07,0x0D,0xAE,0x44,0xA6, + 0xA0,0xF0,0xF1,0x76,0x89,0x44,0x82,0xEA,0xB0,0x77,0xEF,0x5E,0x95,0x4A,0x85,0x53, + 0xFE,0xFE,0xFE,0x0F,0x3E,0xF8,0x20,0x2E,0xC0,0xA9,0x88,0x88,0x08,0x72,0xFD,0x60, + 0xF0,0x98,0xC0,0x4A,0xA5,0x12,0x72,0xE6,0xE7,0xE7,0x93,0x1A,0xCB,0xE7,0xF3,0x51, + 0x32,0x69,0x69,0x69,0x09,0x09,0x09,0xDE,0xDE,0xDE,0xBD,0xC5,0x73,0x05,0xC8,0xDF, + 0xDC,0xDC,0x5C,0x55,0x55,0x85,0x37,0x66,0x67,0x67,0x5F,0xBB,0x76,0x6D,0xD7,0xAE, + 0x5D,0xA8,0x14,0x39,0x39,0x39,0x31,0x31,0x31,0xEE,0x7E,0x5A,0x6F,0x3C,0x20,0xB0, + 0x56,0xAB,0x2D,0x2C,0x2C,0x3C,0x75,0xEA,0x94,0x4E,0xA7,0xC3,0xAD,0x84,0x87,0x87, + 0x67,0x65,0x65,0x8D,0x1C,0x39,0x12,0x32,0x33,0x57,0x0C,0x02,0xDC,0x1E,0x72,0xB0, + 0xAC,0xAC,0xEC,0xF0,0xE1,0xC3,0x28,0x64,0x7C,0xFE,0x88,0x11,0x23,0xEE,0xB8,0xE3, + 0x0E,0x64,0x22,0x73,0x85,0x9B,0x0C,0x4A,0x60,0xBC,0x17,0xAD,0xF4,0xDB,0x6F,0xBF, + 0x95,0xC9,0x64,0xA8,0xBA,0x50,0x39,0x68,0x96,0xB1,0xB1,0xB1,0xD8,0x67,0xAE,0xF0, + 0x1C,0xA8,0xE1,0xC8,0xD3,0xF3,0xE7,0xCF,0xCF,0x9F,0x3F,0x1F,0x79,0xDA,0xD4,0xD4, + 0x04,0xB5,0xE7,0xE3,0xE3,0xC3,0x9C,0x76,0x99,0x81,0x0B,0x8C,0x8C,0xDF,0xB3,0x67, + 0x0F,0x34,0x13,0x3E,0x01,0xED,0x73,0xCE,0x9C,0x39,0xA8,0x72,0x83,0xA9,0x6C,0xAE, + 0x80,0x42,0x26,0x7C,0xF4,0xD1,0x47,0xB0,0x67,0x8B,0x16,0x2D,0x82,0x62,0x63,0xCE, + 0xB9,0xC6,0x00,0x05,0x86,0xA5,0xD9,0xB6,0x6D,0x1B,0x0A,0x16,0xF5,0x76,0xF2,0xE4, + 0xC9,0x13,0x26,0x4C,0xF0,0xA0,0x22,0x75,0x4A,0x7B,0x7B,0xFB,0x8E,0x1D,0x3B,0xA0, + 0xDB,0x50,0x95,0x26,0x4D,0x9A,0x94,0x9B,0x9B,0xEB,0x7A,0x9D,0x72,0x5B,0x60,0x5C, + 0x5F,0x5A,0x5A,0x8A,0x6A,0x0C,0x03,0x8B,0x82,0x5D,0xBA,0x74,0x29,0x74,0x2F,0x73, + 0xAE,0x7F,0xB4,0x3A,0x0D,0x9F,0xE7,0x49,0xD7,0x02,0x5A,0xED,0xC8,0x91,0x23,0x05, + 0x05,0x05,0x50,0x16,0x68,0x47,0xD0,0xFC,0xB0,0x76,0xCC,0x39,0x87,0xB8,0x27,0x30, + 0x2E,0x86,0x1E,0x3E,0x74,0xE8,0x10,0xF6,0x47,0x8D,0x1A,0x35,0x77,0xEE,0x5C,0x57, + 0x34,0x53,0x4B,0x7B,0xD3,0x63,0xBF,0xBF,0xF7,0xC9,0xFB,0x7F,0x33,0x3E,0x63,0x32, + 0x97,0xC3,0x33,0x18,0x0D,0xC5,0x65,0x05,0xF1,0xC3,0x92,0x83,0xC5,0xA1,0xCC,0x15, + 0x03,0xA5,0xA6,0xA6,0x06,0xE6,0x1A,0x8E,0xCA,0xB9,0x73,0xE7,0x46,0x8F,0x1E,0x1D, + 0x10,0x10,0xC0,0x9C,0xE8,0x1F,0x37,0x04,0xC6,0x95,0x10,0x15,0x9A,0x03,0x0D,0x35, + 0x2F,0x2F,0x0F,0x35,0xD9,0xC5,0x16,0xAB,0xD3,0x6B,0x7F,0xFD,0xE6,0xFA,0x82,0x73, + 0xC7,0xD2,0x93,0x32,0xDF,0xFC,0xF5,0xE6,0x4F,0x77,0xBF,0xF7,0xFE,0xB6,0xBF,0x85, + 0x06,0x86,0x7F,0xFD,0xF6,0x09,0xE6,0x8A,0x41,0x00,0x1B,0x51,0x54,0x54,0x74,0xF0, + 0xE0,0x41,0x48,0xBB,0x72,0xE5,0x4A,0xD8,0x7C,0xE6,0x44,0x3F,0xB8,0xA1,0x4E,0x8F, + 0x1E,0x3D,0x0A,0x69,0xA1,0x2A,0xE6,0xCD,0x9B,0x37,0x65,0xCA,0x14,0xD7,0xF5,0x13, + 0x8F,0xCB,0x7F,0xFD,0x99,0x77,0xFE,0xF5,0xE2,0x67,0x95,0xD7,0x2E,0x1E,0x3D,0x7D, + 0xE0,0xCC,0x85,0x53,0x48,0x94,0x75,0x77,0x90,0xB3,0x83,0x04,0x55,0x2C,0x23,0x23, + 0x03,0x3E,0x49,0x57,0x57,0xD7,0xC7,0x1F,0x7F,0x8C,0x57,0xE6,0x44,0x3F,0xB8,0x2A, + 0xF0,0xD9,0xB3,0x67,0x8F,0x1D,0x3B,0x06,0x21,0x17,0x2E,0x5C,0x38,0x66,0xCC,0x18, + 0x26,0xD5,0x65,0xF0,0x46,0x14,0x6F,0x46,0xEA,0xD8,0x8F,0x76,0xFD,0xAB,0xB1,0xB5, + 0x1E,0x29,0x91,0xA1,0xD1,0xE4,0xD4,0xE0,0x41,0xAD,0x86,0x43,0x0A,0xA3,0x08,0xE7, + 0xA7,0xBA,0xBA,0x1A,0xCA,0x85,0x39,0x61,0x0F,0x97,0x04,0x86,0xB7,0x08,0x2D,0x85, + 0x9D,0xD9,0xB3,0x67,0xA3,0xE9,0x92,0x44,0x57,0x40,0x65,0x3E,0x55,0x72,0xE4,0xEC, + 0xC5,0x53,0x46,0x93,0x11,0x32,0xAF,0xBF,0x6F,0x43,0x67,0x77,0x47,0x9B,0xAC,0x15, + 0xA7,0x42,0x83,0x3C,0xE0,0x27,0x5A,0x40,0x39,0xAF,0x58,0xB1,0x02,0x85,0x91,0x94, + 0x94,0xD4,0xDD,0xDD,0x8D,0x20,0x8C,0x39,0x61,0x83,0x73,0x81,0x61,0x03,0xBE,0xFE, + 0xFA,0x6B,0x34,0x60,0xB8,0x75,0xE3,0xC7,0x8F,0x67,0x52,0x5D,0xE0,0xD2,0xD5,0xF3, + 0x2B,0x9F,0x9B,0xFF,0xF4,0x6B,0x0F,0x3D,0xFE,0xF2,0xFD,0xEB,0x5F,0xBE,0x5F,0xA3, + 0x55,0x27,0x0C,0x4B,0x79,0xEF,0xA5,0x2F,0xC9,0x59,0x49,0x00,0xD3,0xD8,0xA0,0xC0, + 0xC9,0xCE,0x20,0x81,0xA2,0x46,0xA4,0xD1,0xD9,0xD9,0xB9,0x73,0xE7,0xCE,0x7D,0xFB, + 0xF6,0xF5,0xA7,0x9B,0xFA,0x08,0x8C,0x6B,0x6A,0x9B,0x55,0x67,0x2A,0x64,0xC7,0x4A, + 0xDB,0x4A,0xAF,0x74,0x5D,0x6F,0x52,0xB5,0x75,0xAA,0xBE,0xDC,0xF6,0x15,0x0C,0x7D, + 0x72,0x72,0x72,0x6E,0x6E,0x9E,0x42,0x6D,0x20,0x9B,0x46,0xD7,0x6F,0x16,0x12,0x8A, + 0x2F,0x15,0x3E,0xFA,0xBB,0x15,0x41,0xE2,0x90,0x1D,0x7F,0x3F,0xB2,0xF9,0x8F,0x3B, + 0x2B,0xAA,0x2F,0x7E,0xB0,0xE3,0x9F,0x48,0xEF,0xC1,0x3F,0x33,0x42,0xDF,0x80,0x4B, + 0x57,0x4A,0xEF,0xDF,0xB0,0x70,0xC6,0xEA,0xCC,0x77,0xBE,0xF8,0x8B,0x83,0x32,0x71, + 0x1D,0x62,0x32,0xE0,0x84,0x41,0x8D,0xC1,0x23,0x22,0x89,0x56,0xDC,0xD2,0xD2,0x2D, + 0x1D,0xDA,0xD7,0x3F,0xBB,0x7C,0xA9,0xA6,0xDB,0x92,0x35,0xD0,0x4A,0xD0,0x4B,0xE4, + 0x02,0x54,0x48,0x60,0xC9,0x34,0x8A,0xE5,0x95,0x1C,0xED,0x77,0x67,0x4E,0xC4,0xE4, + 0x51,0x41,0x76,0x95,0xD7,0xC9,0x92,0xC3,0xE7,0x2B,0x8A,0x1E,0x5D,0xF1,0x34,0x9B, + 0x62,0xE3,0x10,0x6A,0x79,0xFB,0xC1,0x2D,0xDB,0xDF,0xFA,0xBE,0xB1,0xB5,0xE1,0xBE, + 0xE7,0xE6,0x21,0x45,0x2C,0x0C,0xEC,0x94,0x77,0x64,0xA6,0x8E,0xCB,0x4E,0x9F,0xB0, + 0x79,0xC7,0xDB,0xF7,0xCC,0x5B,0xF3,0x8B,0x15,0x4F,0x9B,0xDF,0x3A,0x58,0x60,0x9C, + 0x0F,0x1C,0x38,0x20,0x10,0x08,0xD6,0xAD,0x5B,0x27,0x14,0x0A,0x99,0xD4,0x9B,0x30, + 0x02,0x77,0x2B,0xF5,0x8F,0xBF,0x79,0x41,0xDA,0xA9,0x9D,0x3C,0x2A,0x30,0x23,0x31, + 0xC0,0xCF,0x9B,0xD3,0xD1,0xAD,0xAB,0xAC,0x6E,0xBA,0x50,0x59,0x67,0x62,0x09,0xC2, + 0xC2,0x23,0x21,0x3A,0x8F,0x43,0xF9,0x08,0xD8,0x78,0x85,0x57,0xD3,0xD1,0xAD,0xBF, + 0xD2,0xA0,0xD0,0xEA,0x4C,0xEB,0xEF,0x4A,0x98,0x73,0x9B,0x73,0x73,0x7A,0xA3,0xA5, + 0xEE,0xEE,0x5F,0xCD,0x7A,0xF5,0x57,0xFF,0x14,0xF9,0x8B,0xD7,0xFE,0xCF,0x52,0xA4, + 0x24,0x44,0x27,0xAF,0x5E,0xF2,0x58,0xDE,0x6D,0x73,0x28,0x16,0xB5,0xEB,0xFB,0x2F, + 0xBE,0x39,0xBC,0xED,0xDD,0x97,0xB6,0x72,0xD8,0x1E,0x70,0xD7,0x20,0xD1,0xE7,0x9F, + 0x7F,0x0E,0x05,0x76,0xFB,0xED,0xB7,0xDB,0x86,0x56,0x8C,0xC0,0x6F,0xEF,0xBA,0xF6, + 0xF5,0x89,0xA6,0x47,0x17,0xC6,0x2D,0xCE,0x61,0x74,0x89,0xC1,0x60,0x40,0x14,0x8E, + 0x18,0x0D,0x6E,0xE3,0xAC,0x59,0xB3,0x48,0x62,0x6F,0x5A,0x65,0xDA,0xC7,0xDF,0x3C, + 0xCF,0xE5,0x50,0x1F,0x6C,0xC8,0xE2,0x71,0x9D,0xE8,0x02,0xD4,0xD8,0x47,0x7E,0xB7, + 0x1C,0x3B,0x0F,0x2D,0x7D,0x62,0xFD,0x2B,0x0F,0x60,0x67,0xDD,0x8A,0x67,0x56,0x2D, + 0x7A,0xD4,0x7C,0x92,0xAE,0xE7,0xF0,0x9C,0x3C,0x22,0x2D,0x81,0xF8,0xDB,0x28,0x19, + 0x48,0x8B,0x88,0x9A,0x49,0x35,0x43,0xDF,0x68,0xB7,0xD2,0xB0,0xAF,0xB0,0x05,0x55, + 0x74,0xE1,0x94,0x70,0x92,0x0A,0xE0,0xBB,0x40,0x5A,0x54,0x89,0xA9,0x53,0xA7,0x32, + 0x49,0x7D,0x09,0x11,0xF3,0x73,0x32,0x82,0x3A,0xE4,0x3A,0x99,0xC2,0x91,0x19,0x20, + 0xE0,0xBB,0x9F,0x5E,0xFD,0xBB,0xAB,0xB5,0x55,0xAF,0x6F,0xFA,0x1D,0x49,0x11,0xF0, + 0x6F,0xC5,0x77,0x68,0x3A,0x1E,0x94,0x16,0x90,0x1E,0xB2,0xE2,0xE2,0xE2,0x2D,0x5B, + 0xB6,0xA0,0xE4,0x48,0x22,0x81,0x16,0xF8,0x6C,0xA5,0x4C,0xA7,0x37,0xCD,0x1E,0x1F, + 0x8A,0x0C,0x21,0xA9,0x70,0x5F,0x8E,0x1F,0x3F,0x8E,0xEC,0x99,0x39,0x73,0xA6,0x83, + 0xEE,0x35,0xC8,0x6C,0x34,0xF6,0x18,0x8C,0x2E,0xE9,0x9B,0xE1,0xF1,0xE9,0x6F,0x6C, + 0x78,0xDF,0xD2,0xDD,0x43,0x6A,0x5A,0x4F,0x8F,0x09,0x8E,0x27,0x31,0x54,0x9E,0x05, + 0x4A,0xFB,0xC2,0x85,0x0B,0x28,0xB3,0x8B,0x17,0x2F,0x32,0x49,0x66,0x68,0x81,0x8B, + 0xAB,0x3A,0xD9,0x14,0x0B,0xC5,0x45,0x92,0x00,0x0C,0xAF,0x5C,0x2E,0x97,0x48,0x24, + 0xA9,0xA9,0xA9,0x4C,0x92,0x3D,0x44,0xFE,0xDC,0xA0,0x00,0x9E,0x0F,0xDF,0xD5,0xC2, + 0xC9,0x4C,0x1B,0xF7,0xC4,0xAA,0x8D,0x64,0x1F,0xB1,0x84,0xD1,0x68,0x78,0xE3,0xC3, + 0x97,0xEF,0x5A,0x9F,0xB7,0x64,0x7D,0xDE,0x4B,0xFF,0x7C,0x76,0xCF,0xD1,0xED,0x07, + 0xF3,0xF7,0x78,0x44,0x5D,0x03,0xC4,0x12,0xA4,0x6E,0xC2,0x3B,0xB4,0xE4,0x32,0xA0, + 0x05,0x2E,0xBB,0xD6,0x15,0x1E,0x28,0x80,0xA2,0x22,0x49,0xF0,0x54,0xE0,0x45,0x62, + 0x07,0x86,0x17,0x8E,0x24,0x49,0xB4,0xCB,0x8C,0x31,0x21,0xFF,0x7E,0x2E,0x4B,0xEC, + 0xEF,0x3C,0x4C,0xB1,0xD8,0x02,0x8B,0x1B,0x84,0x12,0xFE,0x74,0xF7,0xBF,0x77,0x1D, + 0xFA,0xE2,0xB9,0xB5,0x7F,0x78,0x62,0xD5,0x0B,0x95,0xD7,0xCB,0xFE,0xF6,0xC9,0xAB, + 0x5B,0xBE,0x79,0x1F,0xBE,0x0A,0xB9,0x60,0xF0,0xA0,0xB4,0xD0,0x24,0xE1,0x87,0x34, + 0x34,0x34,0x30,0x49,0x5E,0x5E,0x1C,0x95,0xD6,0xD8,0xDA,0xA9,0x1D,0x9F,0x26,0xB1, + 0x28,0xB3,0xFA,0xFA,0x7A,0x98,0x6F,0x91,0x48,0x34,0x62,0xC4,0x08,0x26,0xA9,0x1F, + 0xF0,0x16,0xE8,0x6D,0xE6,0xC0,0x06,0xE4,0x2B,0x4A,0xAC,0xFC,0xEA,0xF9,0xF2,0xEA, + 0x8B,0x3A,0xBD,0x66,0x52,0x66,0xEE,0x8A,0x79,0x0F,0x6A,0x74,0x74,0x8F,0x17,0xA8, + 0x6F,0xAA,0xF9,0x7C,0xEF,0x07,0x6B,0x97,0xAE,0x9F,0x9F,0x7B,0x17,0x0E,0x17,0xCF, + 0x58,0x81,0x53,0x7C,0x2E,0x9F,0x32,0x9B,0x31,0x8F,0x00,0xB3,0xBC,0x60,0xC1,0x02, + 0x6F,0x33,0x4C,0x12,0x4A,0xB8,0xB9,0x5D,0x83,0xDC,0x8F,0x0E,0xB9,0x95,0x54,0x52, + 0x52,0x82,0x57,0x48,0xEB,0x34,0xA6,0x47,0xF5,0x6B,0x69,0x91,0x32,0x07,0x36,0x74, + 0x2B,0xBB,0xE0,0x51,0x9C,0xBE,0x70,0x32,0x22,0x24,0x2A,0x3E,0x3A,0x79,0xC7,0xA1, + 0xCF,0x57,0x6F,0x5C,0x7C,0xA5,0xB6,0x82,0x9C,0xDD,0x71,0xF0,0xF3,0xE4,0xD8,0xB4, + 0xFB,0x16,0x3C,0x4C,0x0E,0x51,0xE0,0xDE,0x7C,0x1F,0x0F,0x4A,0x4B,0x80,0x59,0x42, + 0x63,0x56,0xAB,0xD5,0x0A,0x85,0x82,0xA4,0x50,0xB0,0xB7,0xF8,0x13,0x2C,0x62,0xC2, + 0x5A,0x95,0x4A,0x75,0xF9,0xF2,0x65,0xD4,0xE4,0xAC,0xAC,0x2C,0x92,0xE2,0x80,0x6E, + 0xB9,0xEA,0x70,0x49,0x33,0x73,0x60,0x83,0x58,0x28,0xD9,0xF5,0xCF,0xE3,0x5B,0xFF, + 0xFA,0xDD,0x4B,0xEB,0xFF,0xFA,0xE2,0x2F,0xFF,0xF2,0xE9,0xEB,0x7B,0x4C,0x3D,0xA6, + 0x1D,0xDF,0x7D,0x46,0xCE,0xAA,0x35,0xCA,0xE7,0xD6,0xBE,0x44,0xDC,0x92,0xA1,0x03, + 0x2D,0xF9,0xCC,0x99,0x33,0x9B,0x36,0x6D,0x22,0xA5,0x08,0xA8,0x0E,0x39,0xDD,0xA8, + 0x2C,0x02,0xD7,0xD5,0xD5,0xE9,0x74,0xBA,0xD0,0xD0,0x50,0x68,0x2C,0x92,0xE2,0x80, + 0x4B,0xD7,0xDA,0xF6,0x9E,0x51,0xC8,0xBA,0x98,0xCC,0x73,0x4C,0xB0,0x24,0xF4,0x99, + 0x07,0x5F,0x44,0xF4,0x4F,0x0E,0x97,0xCF,0x7D,0x20,0x25,0xCE,0x49,0x93,0xF1,0x08, + 0xB1,0xB1,0xB1,0xA8,0x89,0xD0,0xD8,0xE4,0x90,0x92,0x99,0x4B,0x38,0x50,0xC8,0x23, + 0xC7,0x08,0xAF,0xF0,0x9A,0x98,0x98,0x48,0xCC,0x86,0x03,0x34,0x5A,0xDD,0xD6,0x23, + 0x2D,0xD2,0x6E,0xD3,0x81,0xFC,0x3A,0x26,0xC9,0x19,0xA3,0x52,0xE0,0xA2,0xD0,0x5F, + 0x14,0x28,0x0A,0xFE,0xE5,0xBD,0xCF,0x93,0xC4,0xA1,0x26,0x3A,0x3A,0x1A,0x8D,0x19, + 0x5A,0x09,0xDA,0x0B,0x87,0x54,0x97,0x92,0xCE,0x72,0x89,0x90,0xD6,0xB4,0xD0,0xA5, + 0x55,0x55,0x55,0xD8,0x41,0xD8,0x81,0x57,0xC7,0x94,0x94,0x37,0x5D,0x6E,0xA4,0xDF, + 0xBB,0xE7,0x4C,0x97,0x5C,0x41,0x8F,0x12,0x38,0x45,0xA9,0x56,0xE8,0x0D,0x74,0x85, + 0x82,0xE4,0xAE,0x77,0xBB,0x0D,0x12,0xF8,0x11,0x81,0x81,0x81,0x88,0x99,0x11,0xF6, + 0xE1,0x90,0x52,0x6A,0xE8,0x9B,0xF6,0xF7,0xA1,0x05,0x96,0xC9,0x64,0x68,0xDC,0x3E, + 0x3E,0x3E,0xC1,0xC1,0xC1,0xF4,0xB5,0xFD,0x83,0xAC,0x29,0x28,0x6B,0x23,0xB6,0x46, + 0xA6,0x34,0xD5,0x36,0xCA,0xCC,0xC9,0x4E,0xA8,0xA8,0x2E,0x23,0xF6,0x69,0x54,0x8A, + 0xDB,0x5D,0x08,0x03,0x06,0x55,0x75,0xC9,0x92,0x25,0x6B,0xD6,0xAC,0x21,0x8D,0x94, + 0x52,0x69,0x8C,0x6C,0x36,0x8B,0x6F,0x76,0x86,0x3B,0x3A,0x3A,0x50,0xDD,0xC5,0x62, + 0x31,0x8F,0xC7,0xD4,0xF0,0xFE,0xC0,0x65,0x72,0x35,0xE3,0x21,0xC0,0x53,0x50,0x9B, + 0x73,0xCD,0x29,0x17,0x2F,0xD3,0x9A,0x03,0x77,0x90,0x96,0xE0,0x46,0x2F,0xC2,0xE0, + 0x81,0xEA,0x42,0x41,0x22,0x6C,0xC4,0x3E,0xA5,0xD5,0x9B,0x88,0xB4,0xA0,0xAD,0xAD, + 0x0D,0xAF,0x4E,0x8B,0x17,0x40,0x8D,0x4B,0xFC,0x19,0x05,0xCB,0x61,0xA3,0x4D,0xBA, + 0x34,0xF0,0x41,0x04,0x86,0x66,0x8E,0x8B,0x4A,0x22,0x29,0xFF,0x31,0x10,0x08,0xED, + 0xDC,0xB9,0x13,0xE5,0x44,0x69,0x75,0x46,0x44,0x3C,0x24,0x55,0x2A,0xA5,0x8D,0xAA, + 0xD3,0x8E,0x3F,0xC2,0xAC,0xDB,0xA2,0x84,0xDE,0xB4,0x62,0x4B,0x8B,0xE6,0x45,0x85, + 0x89,0x49,0xA2,0x03,0xD0,0x7A,0xDB,0x3B,0xE9,0xCF,0x97,0x88,0x82,0x84,0x7E,0xCE, + 0xFB,0x53,0x3D,0x08,0x9A,0x31,0xF4,0x16,0x9C,0x3C,0xE8,0x2D,0x4A,0x67,0x30,0x71, + 0xD9,0x8C,0xC0,0x2D,0x2D,0x2D,0x78,0x0D,0x0F,0xBF,0x15,0x33,0x39,0x20,0x25,0x2E, + 0xE4,0xAD,0xC7,0x53,0xFE,0xFC,0x70,0xF4,0xFF,0xAC,0x4E,0xE7,0xF1,0x9C,0x7B,0x97, + 0x06,0x83,0x5E,0xA3,0xA5,0x7B,0x73,0x2C,0x9D,0x3B,0x84,0xFA,0xFA,0x0F,0x5A,0x5B, + 0x9F,0xEF,0xBD,0xB5,0xB5,0x31,0xCE,0x89,0xA7,0x80,0x07,0x05,0xA5,0x85,0xE2,0x85, + 0xAE,0xA6,0x10,0xEA,0x58,0xF4,0x25,0x82,0x66,0xBC,0xDA,0xF6,0x12,0xF4,0x47,0x44, + 0x68,0xE0,0xC8,0x94,0x61,0x7E,0xBE,0x2E,0xD5,0x67,0xA8,0x2B,0xC4,0x46,0xD8,0x11, + 0xF4,0x1D,0x82,0xE0,0xF3,0xF7,0x87,0x84,0xBC,0xDE,0x7B,0x33,0x1A,0x3D,0x1C,0x3C, + 0xC1,0x22,0x40,0x63,0x21,0x30,0x46,0xA8,0x08,0x59,0x7B,0xB8,0x6C,0xC6,0xE4,0x22, + 0x68,0xC6,0xEB,0x80,0x47,0x22,0x5D,0x80,0xFE,0x22,0xA3,0xA9,0xCF,0x84,0x00,0x82, + 0x5C,0x3E,0x56,0x2E,0x9F,0xA2,0xD5,0x46,0x32,0xC7,0x9E,0x66,0xFA,0xF4,0xE9,0x50, + 0xD4,0x61,0x61,0x61,0x68,0xC3,0x8C,0xB2,0x45,0xFE,0xA3,0x96,0x23,0x33,0x86,0x68, + 0x58,0x8C,0xCB,0xE5,0x79,0x0B,0xE8,0xAC,0x6C,0x92,0xDE,0x20,0x29,0xBD,0x51,0x28, + 0x3E,0xF5,0xF6,0x3E,0x2C,0x93,0xDD,0xC9,0x1C,0x0F,0x01,0x50,0xB4,0x28,0x61,0xD6, + 0x43,0xAF,0x97,0x18,0x0C,0xA6,0x4D,0x1B,0xC6,0x20,0x3A,0x7D,0xF5,0xD5,0x57,0x21, + 0xF0,0x53,0x4F,0xFD,0xAA,0xFA,0x7C,0xA1,0x56,0x25,0x67,0x2E,0xF4,0x1C,0xE5,0xD5, + 0x17,0x54,0x6A,0x25,0xCC,0x52,0x56,0xDA,0x78,0x8B,0x27,0x17,0x9D,0xFE,0x71,0x68, + 0xE8,0xF6,0xE2,0x53,0xBB,0x7B,0x34,0x3D,0x61,0x49,0x7B,0xA3,0x86,0xBD,0x77,0xB1, + 0x68,0xB3,0xB6,0xCB,0xB9,0x63,0xEB,0x3A,0x89,0x99,0x53,0x34,0x3A,0x2D,0x8C,0x13, + 0x0A,0xF5,0x56,0x61,0x22,0x03,0x70,0x13,0x88,0xE9,0x7A,0x4C,0xA6,0xC2,0x6F,0xDE, + 0x6F,0xAE,0x3E,0xCF,0x9C,0x18,0x02,0xF6,0x9F,0xDA,0xCD,0xEC,0x79,0x79,0x3D,0xF4, + 0x66,0x32,0x5E,0x2F,0x9F,0x39,0x70,0xB5,0xF0,0xE8,0x3D,0x2F,0xD1,0xF6,0xB9,0xF6, + 0x52,0xC1,0xB9,0x6F,0xE9,0xE1,0x18,0x8F,0xC0,0x62,0x51,0xAB,0x5E,0xDE,0x56,0x5A, + 0x5E,0x05,0x77,0x7A,0xE6,0xCC,0x99,0x37,0xF5,0x95,0xD9,0x1F,0x40,0x1E,0x40,0x95, + 0x19,0x4D,0x26,0xBE,0x4F,0x9F,0x8E,0xAF,0x9F,0x34,0x2C,0x8A,0x0D,0xCB,0x8F,0x28, + 0x10,0xF5,0x19,0xC6,0xE9,0x96,0xC0,0x80,0x74,0x5F,0x69,0xB5,0x1A,0x6F,0xBF,0x21, + 0x99,0x23,0xF5,0x83,0x40,0x6B,0x25,0x1E,0x97,0xE8,0x63,0x6B,0x81,0x61,0xAC,0xF0, + 0xDA,0xD5,0xD5,0xED,0x37,0xE8,0x91,0xDB,0x1F,0x0F,0x6C,0x1E,0xDF,0xDB,0x2F,0x80, + 0x4C,0x82,0x42,0x89,0xF6,0x11,0x98,0x8C,0xE5,0x37,0x37,0x37,0x89,0xC3,0x86,0x91, + 0x94,0x9F,0x01,0x7C,0x1F,0x21,0x87,0xC7,0x87,0x2F,0x8D,0xA2,0x16,0x89,0x44,0x94, + 0x80,0x77,0xAB,0xCF,0x81,0x78,0xD1,0x70,0x30,0xC3,0xE3,0x86,0x93,0x94,0x9F,0x01, + 0x81,0x11,0xF1,0x3A,0x9D,0x4E,0xAD,0x56,0x43,0x43,0x05,0x04,0x04,0xD0,0x25,0x6C, + 0xE9,0x57,0x26,0x5E,0x34,0xE2,0x46,0x5F,0xA1,0x98,0xE3,0xD1,0x29,0x19,0x3F,0x20, + 0x92,0xF0,0x78,0x44,0x81,0x30,0x48,0x70,0xB6,0xA0,0x98,0xE9,0xBE,0x77,0x83,0x91, + 0xE9,0x43,0x45,0xA0,0x8C,0x72,0xC7,0x69,0x6F,0x7F,0x91,0x7F,0xA0,0x27,0xC7,0x6F, + 0x7F,0x38,0x58,0xC9,0xD9,0xB9,0x75,0x75,0xB5,0xD8,0x23,0x31,0x02,0x65,0x89,0x0D, + 0x01,0xAA,0x38,0xF4,0x16,0xDA,0x77,0x47,0x47,0x7B,0x7C,0x46,0x0E,0x93,0x3A,0xC4, + 0xB4,0x37,0x87,0x37,0xD6,0x4E,0xD0,0x6B,0xE9,0x9E,0x90,0x4E,0x69,0x10,0xF6,0x35, + 0xB4,0x47,0xEF,0x19,0x04,0xBE,0xC2,0xE0,0xC8,0x38,0xD2,0x8D,0x43,0x66,0x74,0x51, + 0xF0,0x77,0x2C,0x63,0x25,0x28,0xF1,0xA4,0x24,0x3A,0x52,0xBD,0x7C,0xF9,0x72,0xEC, + 0x88,0x71,0x24,0x71,0xA8,0xD9,0xF5,0xA7,0xFC,0xCD,0x2F,0xA8,0xEB,0x4A,0x0B,0xB0, + 0xBF,0xFF,0xED,0xE3,0xD8,0xAF,0x3C,0x41,0xEF,0x7B,0x04,0x51,0x58,0x2C,0x9B,0xC7, + 0x43,0x23,0x85,0x5B,0x15,0x19,0x49,0x3B,0xEA,0x14,0x8F,0x8B,0x80,0x89,0xA9,0xD2, + 0x20,0x21,0x21,0x01,0xAF,0xD5,0xD5,0xD5,0x51,0xC9,0xA3,0xBC,0xFD,0x3D,0xE9,0xDF, + 0xF5,0x87,0xC9,0xA8,0x37,0x19,0xF4,0x24,0x90,0x32,0x19,0x0D,0xF4,0xBE,0x87,0x46, + 0x5B,0x40,0xDA,0x84,0xB9,0x8D,0x8D,0x8D,0x50,0x5A,0xA8,0xBC,0x64,0x52,0x13,0xDA, + 0x2C,0x0B,0x21,0x31,0x39,0x0D,0x62,0x63,0x63,0x79,0x3C,0x1E,0x02,0x63,0x9D,0xC1, + 0x90,0x38,0x26,0x8F,0x49,0xFD,0x69,0xC2,0xF3,0xF6,0x4B,0x9B,0x30,0xB3,0xA8,0xA8, + 0x08,0xFB,0x19,0x19,0x19,0x24,0x91,0x6E,0xC3,0xBD,0x33,0xD4,0xC7,0xC7,0x27,0x39, + 0x39,0x19,0x1E,0xF5,0xB9,0x73,0xE7,0x32,0xA6,0x2E,0xB6,0xB8,0xF8,0x3F,0x45,0x22, + 0x93,0xB3,0xE0,0x75,0xD4,0xD4,0xD4,0x40,0x8A,0x91,0x23,0x47,0x92,0x44,0x38,0x9A, + 0x2C,0x7D,0xAF,0x12,0x06,0x64,0xCC,0xA1,0xAC,0xAC,0x2C,0x34,0x26,0x29,0x24,0xF6, + 0x3F,0xD1,0x57,0x3E,0x14,0xB0,0x28,0x6A,0xFC,0xBC,0x07,0x2B,0x2A,0x2A,0xE0,0x72, + 0xA0,0x4A,0x8B,0xC5,0x4C,0x27,0x14,0x45,0xFA,0x77,0x74,0xFA,0x5B,0x32,0x47,0x47, + 0x47,0xC3,0xCF,0xEE,0xEA,0xEA,0xAA,0xBA,0x5C,0x75,0xDB,0xFC,0xB5,0x4C,0xEA,0x4F, + 0x8D,0xD0,0xD8,0x11,0x11,0xF1,0xA9,0x27,0x4E,0x9C,0x40,0x1B,0x5E,0xBA,0x94,0x9E, + 0x64,0x41,0xA0,0x95,0x16,0xFE,0x58,0x4C,0x31,0x80,0x47,0x02,0x83,0x8C,0xB0,0x29, + 0x3F,0x3F,0x3F,0x29,0x73,0x62,0x50,0x14,0x1D,0xBE,0xFD,0xC4,0x60,0xB1,0x26,0xDD, + 0xB9,0xEE,0x6A,0xF5,0xD5,0xEE,0xEE,0x6E,0x0E,0x87,0x63,0xA9,0xCF,0x00,0x25,0x4C, + 0xB7,0x52,0x8D,0xAE,0x4F,0xB7,0xCB,0xA2,0x45,0x8B,0x64,0x32,0x59,0x5B,0x5B,0xDB, + 0xD5,0xEA,0xEA,0x29,0xCB,0xD6,0xE3,0x03,0x98,0x13,0x3F,0x11,0x22,0x93,0xC7,0xC4, + 0x8D,0xC8,0x3E,0x72,0xE4,0x08,0x0C,0xD2,0xCA,0x95,0x2B,0x61,0x93,0x98,0x13,0xB4, + 0xC0,0xE6,0x3E,0xDA,0xDE,0x8A,0x1A,0xC4,0xC5,0xC5,0x41,0x89,0xC3,0x1D,0x3B,0x78, + 0xF0,0x60,0x5C,0xFA,0xD8,0x84,0xCC,0x5C,0xE6,0xC4,0x4F,0x01,0x36,0x97,0x7F,0xFB, + 0xCA,0xE7,0xCF,0x95,0x9E,0xEB,0xEC,0xEC,0x44,0x54,0x38,0x69,0xD2,0x24,0xE6,0x84, + 0x19,0x8A,0xCF,0xB3,0x23,0x30,0xB8,0xFB,0xEE,0xBB,0xD1,0xD6,0x51,0x25,0xD0,0x0C, + 0x66,0xAC,0x7A,0x8E,0x27,0xA0,0x1F,0x45,0xF9,0x49,0x30,0x6A,0xDA,0x12,0xBF,0xA0, + 0x30,0x14,0xAF,0x5C,0x2E,0x5F,0xB6,0x6C,0x99,0x55,0x17,0x1D,0x53,0xA5,0x7B,0x2B, + 0x2D,0x42,0x6A,0x6A,0xAA,0xBF,0xBF,0x3F,0x2A,0xC3,0xD9,0xB3,0x67,0x75,0x26,0xAF, + 0xDC,0xFF,0xD4,0x60,0xDF,0x20,0x09,0x1E,0x96,0x92,0x77,0xCF,0x93,0xFB,0xF6,0xED, + 0xD3,0x9B,0xC9,0xCD,0xB5,0xAE,0x9B,0x4C,0x95,0xB6,0x9D,0x4A,0x08,0x51,0x73,0x72, + 0x72,0xA2,0xA2,0xA2,0x60,0x93,0xB7,0x6D,0xDB,0x96,0x36,0x71,0x66,0xDA,0xE4,0x85, + 0xCC,0xB9,0x1F,0x2B,0x7C,0x6F,0xFF,0x05,0xEB,0xFE,0xF7,0xFC,0xF9,0xF3,0x70,0x8D, + 0xD1,0x1E,0xC7,0x8E,0x1D,0x6B,0x3B,0x48,0xC6,0x04,0x0F,0x56,0xA6,0x98,0x90,0x9D, + 0x9D,0xCD,0xE7,0xF3,0xC3,0xC2,0xC2,0x60,0xA2,0xBE,0xF9,0xE6,0x9B,0x39,0xAB,0x5F, + 0x08,0x8E,0x76,0x3E,0x8C,0xFA,0x43,0x41,0x51,0xEC,0xE9,0xAB,0x36,0x18,0x39,0x02, + 0xE8,0x1D,0xF8,0x8F,0xB8,0xED,0x85,0x0B,0xED,0x94,0x10,0x63,0x96,0x6C,0xAB,0x34, + 0x80,0xB4,0x42,0xA1,0x70,0xEE,0xDC,0xB9,0x02,0x81,0x00,0x01,0x47,0xC1,0xE9,0xC2, + 0xA5,0xCF,0xFE,0x5D,0x18,0x34,0x54,0x7D,0xE5,0x83,0x01,0xBE,0xD4,0xE4,0xA5,0x4F, + 0xC4,0x67,0xE6,0x7C,0xF9,0xE5,0x97,0x30,0xA8,0x99,0x99,0x99,0xB8,0x67,0xBB,0x43, + 0x28,0x14,0xC7,0xEC,0x78,0x68,0xEC,0x09,0x0C,0xA6,0x4D,0x9B,0x76,0xE9,0xD2,0xA5, + 0x05,0x0B,0x16,0xA0,0x86,0x9F,0x3C,0x79,0xF2,0xCA,0xF5,0xBA,0x65,0xCF,0xBD,0xED, + 0x2D,0x74,0x1E,0x54,0x18,0x24,0x71,0x46,0xE1,0xCD,0x59,0x8C,0xE2,0x18,0x83,0x88, + 0x99,0x0E,0x6E,0x14,0x86,0xEB,0x03,0xE9,0xF8,0x84,0xDE,0xF7,0x0B,0xD6,0x07,0x33, + 0xC3,0x88,0x26,0x6F,0x91,0x2E,0x2C,0x8D,0xEC,0xBB,0x0D,0x8B,0x35,0x6E,0xDE,0xDA, + 0xAC,0xDB,0x97,0x6D,0xD9,0xB2,0x05,0x8A,0x0A,0x8E,0x13,0xC0,0x9D,0x33,0x67,0xFB, + 0xC2,0x94,0xB0,0x46,0x6B,0x67,0xF8,0x03,0x20,0x3C,0x46,0x7D,0x4E,0x49,0x49,0x21, + 0xD3,0x2D,0xBF,0xFB,0xEE,0xBB,0xB6,0x6E,0xD5,0x3D,0x2F,0x6C,0xF2,0x93,0x84,0x91, + 0x0B,0xEC,0xD2,0xC3,0xF5,0x96,0xAE,0xD8,0xDC,0x3E,0xFF,0x35,0x38,0x78,0x3D,0x5C, + 0x81,0x74,0xF9,0xBF,0xDB,0x17,0xBF,0xD5,0x43,0x71,0x90,0xBD,0xED,0x0B,0xFE,0xD2, + 0x76,0xF7,0xA6,0x1E,0x2E,0xFD,0x80,0x95,0x6C,0xD6,0xEF,0xA5,0x77,0x7F,0x60,0xE2, + 0x9B,0x7B,0x0E,0xA7,0x3D,0x2D,0xBD,0xFB,0x43,0xA3,0xD0,0xD1,0xC7,0xDA,0x85,0x45, + 0xB1,0x27,0x2E,0x5A,0x37,0x69,0xF1,0xDA,0xAD,0x5B,0xBF,0x80,0xE3,0x10,0x1C,0x1C, + 0x7C,0xCF,0x3D,0xF7,0x54,0x56,0x56,0x22,0x0A,0x62,0xAE,0xE8,0x0B,0x7B,0xDD,0x13, + 0x1B,0xBF,0x2F,0x96,0x66,0xA7,0x88,0x52,0x86,0xD9,0xEF,0x8B,0x0E,0x0D,0x0D,0x2D, + 0x29,0x29,0x99,0x38,0x71,0x22,0xF6,0xAF,0x5F,0xBF,0x0E,0x7D,0x10,0x1E,0x35,0x6C, + 0xCA,0x1D,0xF7,0xD6,0x5C,0x3A,0xA3,0xB2,0xF7,0xDC,0x82,0x36,0x76,0x42,0xD7,0xD4, + 0xA7,0x58,0x5A,0xB9,0x49,0x18,0xCE,0x91,0x5E,0xD1,0x47,0x8C,0x32,0xA0,0x48,0xD9, + 0x3C,0xB6,0xBC,0xC5,0xE8,0x1F,0xA2,0x1E,0x3E,0x9B,0x23,0xAB,0xED,0xE1,0xF9,0x7A, + 0xF5,0x98,0x14,0x63,0xEE,0xE3,0xD7,0x17,0x1B,0x03,0x63,0xD9,0x8A,0xD6,0xAE,0x9C, + 0x27,0x7D,0xAE,0x7C,0xAF,0xCC,0x58,0xAA,0x0F,0x4E,0xD6,0xC4,0x4D,0x46,0xC9,0xF3, + 0x6F,0x94,0x32,0x9F,0xD8,0x3F,0x6C,0x0E,0x6F,0xDA,0x8A,0x67,0x32,0x6F,0x5F,0xF6, + 0xD9,0x67,0x5B,0xE0,0x42,0xA2,0x0E,0xAF,0x5E,0xBD,0x5A,0xA9,0x54,0xC2,0x7F,0x26, + 0x71,0xAE,0x2D,0xEC,0x5F,0x3E,0xF5,0xC2,0x77,0x67,0x5B,0xB3,0x92,0x45,0xA9,0x31, + 0xF6,0x05,0x46,0xFC,0x74,0xEA,0xD4,0xA9,0x51,0xA3,0x46,0xC5,0xC4,0xC4,0xA0,0x79, + 0xD4,0xD6,0xD6,0x5E,0xB9,0x72,0xC5,0xD7,0x3F,0x60,0xE6,0xD2,0x87,0xDB,0x1B,0xEB, + 0x64,0xCD,0xB5,0x28,0x51,0xE6,0x52,0x33,0x26,0xDF,0x40,0x2F,0x16,0xDB,0xAF,0xF8, + 0x53,0xAE,0xAC,0x56,0x3E,0xE1,0x21,0x75,0x7C,0x8E,0xF8,0xD0,0x1F,0xF9,0xB5,0x85, + 0xDD,0x53,0x9F,0xD2,0x45,0x8F,0xF5,0x3F,0xFD,0x81,0x4F,0xE5,0xBE,0xCE,0xDB,0x7F, + 0x8D,0x5C,0xF0,0x29,0xDF,0xEB,0x77,0xFE,0xCB,0xCE,0xE9,0x1B,0x8D,0xC2,0x48,0x41, + 0x6D,0x81,0xB0,0xF0,0xDF,0xA8,0x0E,0x94,0x5E,0x4D,0xE9,0x55,0x6C,0xB5,0x8C,0xDB, + 0x5A,0xC9,0x7C,0x62,0x3F,0xF8,0x04,0x04,0xCD,0x5F,0xF7,0xBF,0xB1,0x19,0x93,0x3E, + 0xF9,0xE4,0x63,0xA9,0x54,0x0A,0x4F,0x69,0xD5,0xAA,0x55,0x08,0x12,0x8E,0x1E,0x3D, + 0x3A,0x63,0xC6,0x0C,0xE8,0x2D,0xE6,0xBA,0xBE,0xB0,0x1F,0x7B,0x6A,0xE3,0x81,0x33, + 0xAD,0x23,0x13,0x02,0xD2,0xE3,0xED,0x8F,0x92,0x42,0x1F,0x40,0xB9,0x23,0xFF,0xA0, + 0xF7,0xE0,0x81,0x61,0xFF,0xDA,0xB5,0x6B,0x88,0xB9,0x94,0x2A,0xD5,0x1D,0xF7,0x3C, + 0xE2,0x2D,0x0C,0x6E,0xA8,0x2A,0x42,0xE0,0xCE,0x5C,0x8D,0x4F,0x94,0xB7,0xF0,0x6F, + 0x9C,0x63,0xAB,0x64,0x9C,0x8E,0x1A,0xF9,0xF8,0x35,0x28,0xBD,0x80,0x53,0x6F,0x73, + 0xBA,0x1A,0x55,0xE9,0x0B,0x4C,0x7C,0xA1,0xE8,0xD0,0xCB,0x1C,0x79,0xB3,0x76,0xD8, + 0x38,0x7D,0x68,0xAA,0x64,0xCF,0x06,0xB6,0xB2,0xCD,0x10,0x18,0xAF,0x89,0x9F,0x22, + 0xD9,0xFD,0x2C,0xA5,0xE9,0xC2,0x1B,0xC9,0xE6,0x44,0x5A,0x16,0x2B,0x6A,0xF8,0x58, + 0x68,0x13,0x2D,0x8B,0xFF,0xF9,0xE7,0x9F,0xC3,0x3B,0x42,0x4D,0x7E,0xE0,0x81,0x07, + 0x20,0x2D,0x9C,0x25,0xD4,0xC7,0xD1,0xA3,0x47,0x33,0x57,0xDA,0xC0,0xBA,0x52,0xAF, + 0x78,0xEC,0xAF,0xA5,0x2B,0x67,0x0D,0xBB,0x6F,0x66,0xBF,0x8F,0x99,0xC0,0xA6,0x41, + 0xFB,0x2D,0x5F,0x4E,0x4F,0x78,0x06,0xA5,0xA5,0xA5,0x7B,0xF6,0xEC,0x41,0x44,0x85, + 0xAF,0xB9,0xEB,0xAE,0xBB,0xF4,0x8A,0xCE,0x83,0x1F,0xBF,0x76,0xA3,0xEA,0x2C,0x2E, + 0x23,0x17,0x58,0x30,0x04,0x44,0xB1,0x4C,0x06,0xB6,0x9C,0x9E,0xBC,0x66,0xF4,0x0F, + 0xED,0x61,0xF3,0x38,0x9D,0xF4,0x23,0x2D,0x46,0xDF,0xA0,0x1E,0xBE,0x1F,0x72,0x04, + 0xFB,0x26,0x41,0x00,0x0E,0xB9,0xED,0xF4,0x74,0x29,0x57,0x10,0xF8,0x89,0x26,0x2E, + 0xFA,0x45,0xD6,0xF4,0xC5,0x27,0x4F,0x9D,0x2A,0x28,0x28,0x40,0xA5,0x43,0xD5,0xC3, + 0xBD,0x91,0x07,0x2F,0x8F,0x1F,0x3F,0x8E,0x58,0x9F,0x74,0x6E,0xD8,0x85,0xFD,0xD4, + 0xB3,0xBF,0xDE,0x93,0xDF,0x9C,0x16,0xEB,0x9F,0x99,0xD4,0xEF,0xF0,0x0A,0x0A,0xB9, + 0xA3,0xA3,0x03,0x8A,0x9E,0x0C,0x4D,0xA0,0xA8,0x93,0x92,0x92,0x50,0xCE,0x70,0xCD, + 0x2F,0x5C,0xB8,0x20,0x94,0x04,0xCD,0x5A,0xFE,0x70,0x40,0x48,0x6C,0xD3,0xF5,0x4B, + 0x3A,0x75,0x9F,0x49,0x6A,0x94,0xB6,0x9B,0xD2,0xDD,0x9C,0xF3,0xA7,0x53,0x52,0x1A, + 0x7A,0xA6,0x14,0xBD,0xAF,0x57,0x51,0xEA,0x4E,0xB2,0xCF,0x32,0x68,0x51,0x81,0xC9, + 0xBE,0x63,0x60,0x69,0x87,0x4F,0x98,0xBF,0xE4,0xC9,0x37,0x84,0xE1,0xB1,0xDB,0x77, + 0xEC,0x80,0xF9,0xA0,0xAD,0xD1,0xE4,0xC9,0xB0,0xB7,0xB0,0xA0,0xE4,0x1A,0x98,0x12, + 0xF8,0x1B,0x64,0xDF,0x2E,0xAC,0xBA,0x16,0xD5,0xDA,0xD7,0x4A,0xEE,0xCC,0x89,0x78, + 0x64,0x61,0x1C,0x93,0x66,0x0F,0x94,0xDE,0xD6,0xAD,0x5B,0xE1,0x60,0x33,0xC7,0xE6, + 0xD1,0x73,0x78,0x23,0xF8,0x56,0xEC,0xA3,0xA8,0x67,0xCF,0x9E,0x1D,0x11,0x1E,0x51, + 0xFC,0xFD,0xF6,0xE2,0xFD,0x9F,0x74,0xB7,0xD9,0x19,0x01,0x1E,0x0C,0x14,0x9B,0x9D, + 0x94,0x3D,0x73,0xE2,0xC2,0xB5,0x92,0xF0,0x61,0x47,0x8F,0x1E,0x29,0x2A,0x2A,0x42, + 0xC1,0xFA,0xFA,0xFA,0x22,0xAA,0x23,0xBD,0x8E,0x04,0x38,0x0B,0xB8,0x2B,0x4B,0x6F, + 0x8E,0x5D,0x58,0x2D,0x1D,0x9A,0x95,0x2F,0x17,0x2D,0x98,0x1C,0xFE,0xD8,0xE2,0x78, + 0x26,0xAD,0x1F,0xBE,0xFD,0xF6,0xDB,0xE9,0xD3,0xA7,0x5B,0xF2,0x92,0x00,0xA5,0x7D, + 0xE0,0xC0,0x01,0x32,0xE7,0x0B,0x96,0x00,0xDE,0x68,0x44,0x44,0x64,0xD9,0xA9,0x03, + 0x65,0x27,0x77,0xDF,0xE8,0xDB,0xB6,0x07,0x06,0xFC,0x9C,0xA4,0xEC,0x19,0xA3,0x73, + 0xEF,0x14,0x06,0x85,0x9D,0x3D,0x7B,0xA6,0xB0,0xB0,0x50,0xAB,0xD5,0xC2,0x29,0x18, + 0x33,0x66,0x4C,0x5E,0x5E,0x1E,0x19,0xFD,0xB3,0xF0,0xD5,0x57,0x5F,0x2D,0x59,0xB2, + 0x04,0xC5,0xCE,0x1C,0xDB,0x83,0xD5,0xDE,0xA5,0x5D,0xF1,0xFB,0xB3,0x73,0xC6,0x87, + 0x3E,0xB9,0xCC,0xC9,0x83,0xB8,0x6A,0xB5,0x1A,0x32,0xE3,0x13,0x99,0xE3,0x9B,0xA0, + 0x31,0x43,0x8D,0x9F,0x3E,0x7D,0x9A,0x0C,0x58,0x45,0x44,0x44,0x8C,0x1B,0x37,0x2E, + 0x29,0x39,0x59,0xA3,0x90,0x97,0xE7,0xEF,0xAF,0x29,0x2B,0x6C,0xA9,0xB9,0xA4,0x96, + 0xBB,0xF1,0xE0,0x1D,0xC5,0xE6,0x04,0x45,0xA7,0x44,0x26,0x8D,0x4E,0xCE,0xCE,0x8B, + 0x49,0xCD,0x6A,0x6F,0x97,0xA2,0xE1,0x40,0x15,0x41,0x21,0x41,0x18,0x64,0x2B,0x9C, + 0x02,0x34,0x2B,0xE6,0xEA,0x9B,0x40,0x75,0x1D,0x3B,0x76,0x6C,0xFE,0xFC,0xF9,0xCC, + 0x71,0x3F,0xB0,0x3A,0x15,0xBA,0x65,0xBF,0x3D,0x33,0x23,0x3B,0xE4,0xD9,0x15,0xCE, + 0xE7,0x4E,0x7D,0xFD,0xF5,0xD7,0xF8,0x44,0xBB,0x1A,0x9F,0x3C,0x18,0x8F,0xD0,0x0A, + 0x36,0x10,0x87,0x08,0xCA,0xD2,0xD2,0xD2,0x10,0x72,0x41,0x7E,0x1E,0x8F,0x2F,0xAD, + 0xBF,0xDE,0x58,0x7D,0xA1,0xA3,0xB9,0xAE,0xAD,0xE1,0xAA,0x46,0xD1,0xA5,0xD7,0xA9, + 0xF5,0x5A,0xB5,0x41,0xA7,0x46,0xEC,0x0A,0xF1,0x04,0x3E,0x42,0x36,0x8F,0x2F,0x0A, + 0x8E,0x0A,0x8E,0x4E,0x92,0x84,0xC7,0xC6,0xA4,0x65,0xF3,0x05,0x02,0xA9,0xB4,0x15, + 0xB6,0x00,0x0A,0x92,0xCC,0x1E,0xC3,0x97,0xC6,0xC7,0xC7,0x4F,0x9D,0x3A,0x15,0x5E, + 0x94,0xF9,0x0B,0xAD,0xD9,0xBD,0x7B,0x37,0xBC,0x60,0xA7,0xF3,0x35,0x58,0x4A,0x8D, + 0x61,0xF1,0x0B,0x85,0xB9,0x59,0xC1,0x1B,0xEE,0x75,0xDE,0x95,0xD3,0xDC,0xDC,0x5C, + 0x5E,0x5E,0x8E,0xBA,0xC4,0x1C,0xDB,0x80,0x88,0x0C,0xC1,0x0A,0x0A,0xA4,0xA1,0xA1, + 0x01,0xCD,0x0C,0x29,0x28,0x13,0x89,0x44,0x92,0x98,0x98,0x18,0x12,0x12,0x12,0x18, + 0x18,0xE8,0xEF,0x2F,0x44,0x3D,0xE4,0x70,0xB8,0x48,0x37,0xE8,0xF5,0x6C,0x0E,0x9B, + 0xC5,0xA2,0x8C,0x46,0xD4,0x12,0x83,0x42,0x21,0x87,0x6A,0x44,0xEB,0xA8,0xAF,0xAF, + 0x87,0xA8,0x48,0x21,0x6A,0x1F,0x9A,0x12,0xAE,0x1E,0x54,0x91,0x6D,0xA9,0x5A,0xC0, + 0x77,0xA1,0x3E,0x93,0x85,0x41,0x1C,0xC3,0x82,0x53,0xB9,0x60,0x63,0xC1,0xA4,0x91, + 0x81,0xBF,0x7D,0xC0,0xA5,0x11,0x43,0x84,0x8A,0x30,0x45,0x8E,0xDB,0x09,0x6E,0x14, + 0x0E,0x29,0x2A,0x21,0x3C,0x33,0xB2,0x58,0x05,0x73,0xC2,0x5C,0x50,0x78,0x2F,0x01, + 0xF1,0x36,0x6A,0x29,0x39,0x8B,0xB7,0xE0,0xA6,0x2D,0x86,0x0D,0x67,0x61,0x54,0x51, + 0x3B,0x46,0x8C,0x18,0x91,0x9C,0x9C,0xDC,0xBB,0x8F,0xC6,0x2E,0x27,0x4E,0x9C,0x40, + 0x9E,0xBA,0x32,0xC3,0x8C,0xEE,0xA3,0xBD,0xE3,0xB9,0xFC,0x09,0xE9,0x92,0x17,0x57, + 0x3B,0x7A,0x9E,0xC3,0x42,0x45,0x45,0x05,0x6E,0x0B,0xD5,0x95,0x39,0x76,0x08,0xAE, + 0x44,0x41,0xC1,0x69,0x81,0x0D,0x43,0xCD,0x44,0xE9,0xC1,0xEF,0x43,0xE5,0x87,0x6C, + 0x48,0x27,0xD7,0x40,0x36,0x2E,0x97,0x8B,0x8C,0x80,0xD6,0x85,0xFD,0x0C,0x0A,0x0A, + 0x42,0x49,0xE2,0xEE,0x51,0xB0,0xFD,0x79,0x4B,0x56,0xE0,0x5B,0xAC,0x2C,0x88,0x23, + 0x70,0xF5,0xCC,0x5F,0x9D,0xFC,0xED,0x26,0x7A,0xED,0x02,0x17,0xF9,0xE4,0x93,0x4F, + 0x48,0x69,0x0C,0x00,0xD4,0x79,0x14,0x29,0xF4,0x1F,0x34,0x1C,0xB2,0x00,0x0D,0x1E, + 0x3B,0x48,0x41,0x2E,0xD0,0xF3,0x69,0x06,0x04,0xEA,0xFF,0x99,0x33,0x67,0x98,0x03, + 0x67,0xD0,0x59,0x88,0xDA,0x69,0x99,0xAD,0xE5,0x0A,0x30,0x7D,0x64,0x56,0xE6,0x00, + 0x80,0x52,0x81,0x61,0x43,0x33,0xF6,0xF6,0xF6,0x46,0x93,0x46,0xA9,0x62,0x07,0x29, + 0xF0,0x58,0x5D,0x2C,0x4F,0x5B,0x60,0x23,0xB2,0xB3,0xB3,0x99,0x03,0x67,0xD0,0xDF, + 0xC1,0xEF,0x35,0x09,0xC0,0x15,0x60,0x03,0xF7,0xED,0xDB,0xC7,0x1C,0xB8,0x09,0x8A, + 0xB1,0x3F,0x88,0x92,0x73,0x17,0xD4,0x11,0x32,0xD2,0xCD,0x1C,0x3B,0x83,0x7E,0xF6, + 0x70,0xD1,0x0B,0x85,0x89,0x91,0xBE,0x7F,0x7E,0xEC,0x56,0x6F,0xB5,0x53,0x0E,0x1F, + 0x3E,0x3C,0x7E,0xFC,0x78,0x94,0x0F,0x73,0xEC,0x1A,0x0A,0xA5,0xEA,0x6F,0x5F,0x96, + 0x2B,0x35,0xD6,0x2E,0x37,0x61,0xDE,0x6D,0x81,0x13,0x32,0x9D,0x38,0x3F,0xB6,0xC0, + 0x1A,0x21,0x36,0x72,0x7D,0x05,0x13,0xA6,0x16,0xF5,0x1A,0x30,0x75,0x09,0xB8,0x16, + 0xFB,0xF7,0xEF,0x67,0x0E,0x5C,0x06,0x0D,0xFF,0x62,0xAD,0xAE,0xE8,0xAA,0xFD,0x4D, + 0xA6,0x70,0xDB,0x2D,0x83,0x46,0x80,0x3A,0x70,0x5D,0x5A,0x30,0xC0,0x66,0x03,0x15, + 0x0A,0xD5,0x0A,0xA3,0xC2,0x1C,0xFF,0x40,0xC0,0xE0,0x4F,0x98,0x30,0x81,0x39,0x70, + 0x8D,0x01,0x0A,0x0C,0xE0,0x09,0xC0,0x9D,0x64,0x0E,0x7E,0x08,0xD0,0x18,0x21,0xF0, + 0xB0,0x61,0xEE,0xCD,0xB0,0x1A,0xB8,0xC0,0xB0,0xF2,0x75,0x75,0x75,0x03,0xD3,0x34, + 0x1E,0x01,0xE6,0xDD,0xAD,0x15,0x18,0x08,0x03,0x17,0x18,0x40,0x6F,0x91,0xF9,0x22, + 0x2E,0xA2,0xD5,0xE9,0x6D,0xFA,0x08,0x6E,0xA1,0xD5,0x31,0xBE,0xA4,0x8B,0xC0,0xBB, + 0x72,0xD0,0xB3,0xD1,0x1F,0x83,0x12,0x38,0x21,0x21,0x01,0x01,0x03,0x73,0xE0,0x90, + 0x6E,0xB9,0x72,0xFB,0xA1,0xAA,0x0D,0xEF,0x56,0xC8,0x14,0xFD,0x8A,0xF4,0xE1,0x41, + 0xD9,0xEB,0x1F,0x97,0x54,0x54,0x37,0xBB,0x52,0x6B,0x10,0x1B,0x91,0x91,0x20,0xE6, + 0xD8,0x65,0x06,0x25,0x30,0xAC,0x1F,0xF2,0xF8,0xC6,0x0D,0x47,0xE1,0x3E,0xEE,0xBE, + 0xF0,0x7C,0xFD,0x13,0x6F,0x5D,0x78,0x6F,0x5F,0x5B,0x43,0xBB,0x23,0x49,0x34,0x7A, + 0xAF,0xC3,0x17,0x34,0xCF,0xBC,0x5B,0xFD,0xAF,0xAF,0xCA,0xBA,0xBA,0x9D,0x4C,0x5D, + 0x42,0x58,0x36,0x65,0xCA,0x14,0xE6,0xC0,0x1D,0x18,0x81,0x5D,0x35,0xDB,0x36,0xA4, + 0xA7,0xA7,0xC3,0x26,0x33,0x07,0x36,0x18,0x0C,0xC6,0x4F,0xF7,0x55,0xBD,0xF4,0x69, + 0x5D,0xA3,0xCC,0xD5,0xA6,0x6E,0x30,0x7A,0xED,0x3E,0x2D,0x7F,0xFE,0x9D,0xB2,0xC6, + 0x56,0xA6,0x0F,0xC8,0x16,0x58,0x23,0xE4,0xB2,0xEB,0xCF,0x66,0xF4,0x86,0x11,0xD8, + 0xF2,0x24,0x8F,0xBB,0xC0,0x38,0x45,0x46,0x46,0x76,0x76,0xDA,0xB9,0x39,0x38,0x4F, + 0xEF,0x7F,0x5D,0xFE,0xD9,0x91,0x0E,0xD7,0x1E,0x99,0xEF,0xC3,0xF5,0x16,0xC3,0x86, + 0x77,0x2A,0xEA,0x9B,0xEC,0x77,0x1B,0x20,0x44,0x9D,0x3E,0x7D,0x3A,0x73,0xE0,0x26, + 0xB4,0x9C,0xEE,0x68,0x0A,0x3B,0xDC,0x76,0xDB,0x6D,0xE4,0x89,0xF2,0xDE,0x40,0xFD, + 0xEC,0x3E,0x56,0xBD,0xAB,0xE0,0xD6,0xAA,0x20,0xEE,0xD2,0xD2,0x65,0xFA,0xC3,0x47, + 0x97,0x65,0x5D,0x76,0xEA,0x76,0x69,0x69,0x29,0x99,0x65,0x36,0x00,0x68,0x81,0xB5, + 0x7A,0xFB,0xE3,0x2C,0x2E,0x02,0x47,0x07,0x0D,0x15,0xE1,0x0E,0x73,0x6C,0xE6,0x7A, + 0x7D,0xDB,0xE6,0xEF,0x98,0x87,0x13,0x07,0x4C,0xAD,0xD4,0xF8,0xE1,0xDE,0x2B,0x88, + 0xCB,0x98,0x63,0x33,0xB0,0x85,0x2E,0x06,0xA7,0x76,0x61,0x4A,0x18,0x01,0x29,0x39, + 0x1E,0x18,0x79,0x79,0x79,0xF9,0xF9,0xF9,0xCC,0x01,0x3D,0xF8,0x6A,0xD8,0xB4,0xA7, + 0x46,0xAB,0x1F,0x9C,0xB8,0x66,0x0E,0x95,0x2A,0x2F,0x5D,0xA1,0x9F,0x19,0xB4,0x50, + 0x5C,0x5C,0x9C,0x99,0x99,0xC9,0x1C,0xB8,0x0F,0x05,0xFF,0x16,0x7F,0x6E,0x3E,0x9B, + 0x36,0x40,0x44,0x22,0x11,0xDC,0x00,0x8B,0x39,0xB9,0x52,0x23,0x2D,0xBE,0xE6,0x19, + 0xAF,0x13,0x3A,0x6C,0xFB,0xD1,0x46,0x8B,0x7D,0x46,0x6C,0x04,0xD5,0xE0,0xB4,0xE3, + 0xCA,0x01,0x94,0xDE,0xE0,0x81,0x72,0x00,0x39,0x39,0x39,0xE4,0xB1,0x73,0xDC,0xDC, + 0xFE,0xD3,0xCD,0x83,0xAC,0xCC,0xBD,0x39,0x77,0x4D,0xDB,0xDC,0xCA,0x68,0xAF,0xA2, + 0xA2,0xA2,0xD9,0xB3,0x67,0x93,0xFD,0x81,0x41,0x91,0x1B,0xEB,0x3D,0x89,0x78,0x60, + 0x44,0x45,0x45,0x11,0xAF,0x4B,0xA5,0x52,0x97,0x56,0x33,0x4B,0x39,0x78,0x04,0xD8, + 0xE7,0xB3,0x15,0x74,0xBF,0x37,0x6A,0x50,0x8D,0x79,0x11,0x3C,0x92,0x3E,0x30,0x28, + 0xA2,0xB1,0xD8,0xF4,0x34,0xE2,0x41,0x01,0x27,0x24,0x35,0x35,0xF5,0xEA,0xD5,0xAB, + 0x1D,0x5D,0xCA,0xD6,0x6E,0xEB,0xF2,0x85,0xD9,0x23,0x5F,0x40,0x51,0xAC,0x9B,0xBB, + 0x6E,0x50,0x59,0x47,0xEB,0xEA,0x8B,0x17,0x2F,0xF6,0x37,0xCC,0xED,0x3A,0x4C,0x1B, + 0xE6,0x0D,0xD4,0x0E,0xF7,0x06,0xBA,0x04,0x1A,0xE5,0xDA,0x0D,0x85,0x75,0x7D,0x16, + 0xF0,0xFE,0xF1,0x74,0x46,0x9A,0x04,0x0D,0x8F,0x75,0xF7,0x9D,0xA9,0x6B,0xA6,0x98, + 0x9F,0xD4,0x46,0x0E,0xB1,0xBC,0x58,0x3E,0x82,0x85,0x99,0x01,0xC8,0x00,0xEC,0x93, + 0x85,0x71,0x2C,0x3B,0xBD,0xA9,0x6B,0x55,0xA3,0xA5,0x54,0x56,0x56,0xC6,0xC4,0xC4, + 0x30,0x49,0x03,0x85,0x69,0xC3,0xEC,0x9B,0xCF,0x5B,0x0E,0x06,0x48,0x20,0x16,0x8B, + 0x1B,0x9A,0xE8,0x7E,0x73,0x2B,0xAE,0x5F,0xEB,0xCA,0x19,0x1B,0x28,0x10,0x7A,0xFB, + 0xA8,0x54,0x08,0xF3,0xC7,0x8D,0x89,0x98,0x33,0x36,0xF0,0xFE,0xD9,0xD1,0x31,0xE1, + 0x7E,0x63,0x53,0x25,0xB1,0x11,0x7E,0x6B,0x67,0x47,0xCF,0x98,0x14,0x31,0x25,0x4E, + 0x70,0xDF,0xF2,0xB4,0x85,0xD9,0x12,0x1F,0x6E,0x9F,0xFB,0xD1,0x19,0x58,0x70,0xAD, + 0x02,0x03,0x03,0xE9,0x4C,0x1A,0x1C,0x94,0xDE,0xEC,0x07,0x91,0x99,0x1E,0x83,0x07, + 0x0E,0xD0,0xF1,0x13,0x76,0x9E,0xA2,0xD3,0x28,0x35,0xED,0x3C,0xBF,0x69,0xA3,0x03, + 0x4F,0x95,0x75,0x22,0x63,0xC6,0x0E,0xE3,0xEF,0x3D,0xD3,0x56,0xAD,0x62,0xF1,0x95, + 0xEA,0xA6,0x66,0xB9,0x97,0xBF,0x6F,0x4D,0x55,0xCB,0xE1,0x73,0x6D,0x63,0xD3,0xC4, + 0x7A,0x9D,0xE1,0xF0,0xB9,0x76,0x55,0x5F,0x93,0x06,0x5D,0x5D,0x50,0x50,0x60,0x3B, + 0xE9,0x6A,0x00,0x30,0x93,0xA5,0x39,0x9E,0x28,0x61,0x80,0xF0,0xE5,0xCE,0xC5,0x76, + 0x47,0x77,0x7A,0x4E,0x5C,0xEC,0xCC,0x8D,0xA2,0xAE,0x77,0x1B,0xA1,0xC7,0xCB,0x5A, + 0x0D,0x79,0x23,0x45,0xF1,0x3E,0x3D,0xD7,0x3B,0x0D,0x7C,0x89,0x9F,0x97,0x42,0x15, + 0x93,0x1C,0x9C,0x33,0x52,0x52,0x52,0x69,0xDF,0x7F,0xA6,0xBC,0xF4,0x3A,0x9D,0x6E, + 0x00,0xB1,0x91,0x2D,0xAC,0xEB,0x4D,0xCA,0x47,0xFE,0x74,0xEE,0xEE,0xE9,0x51,0xAB, + 0xE7,0x0E,0xB6,0x79,0x10,0x4A,0xCA,0x1B,0x36,0x6E,0xA2,0x9F,0x22,0xE9,0x0D,0x6A, + 0x22,0x1A,0x76,0xEF,0x57,0x68,0x2F,0x34,0x4B,0xF3,0x21,0xF2,0x1A,0xE5,0x49,0xFF, + 0x81,0x53,0x45,0xCE,0x5A,0x21,0x61,0x37,0xBD,0xFB,0x9B,0x99,0x03,0x8B,0x16,0xAC, + 0xA0,0x0C,0xE6,0x36,0xEC,0xA9,0x12,0x06,0xB1,0x61,0x7E,0xB6,0xEB,0x4D,0x11,0x19, + 0x7A,0xBF,0x5A,0xC6,0x55,0x88,0xD8,0xF8,0x4F,0x5C,0x48,0x92,0x68,0xC5,0x8C,0x89, + 0xC3,0x3D,0x22,0x2D,0x60,0xDA,0xF0,0x80,0xA3,0x25,0x5B,0x84,0x42,0xBF,0xC4,0x70, + 0x0F,0xD4,0xBD,0xDE,0x8C,0x4E,0xF4,0x8C,0xB4,0x80,0x79,0xA4,0xC5,0xE9,0xA2,0x76, + 0xAE,0x03,0xBF,0x2F,0x37,0x33,0x90,0x39,0xF0,0x04,0x91,0x12,0x56,0x5A,0x82,0xF3, + 0x05,0x8E,0x5D,0x84,0x22,0x93,0x0E,0x3D,0x56,0xA1,0xCD,0x4C,0xCA,0x08,0x25,0x2B, + 0x5E,0x78,0x84,0xBC,0x4C,0x91,0xB7,0xB7,0xC7,0x9E,0x0B,0xA4,0x48,0x9B,0x19,0xBC, + 0x6B,0xD9,0x1B,0x89,0x48,0xB8,0x7C,0xAA,0x67,0x9E,0x79,0x0A,0x17,0x53,0x0B,0xA6, + 0x78,0x46,0x9B,0x12,0xE8,0x95,0x5A,0xF0,0x87,0x35,0x68,0xD7,0xD2,0x8A,0xB9,0x93, + 0x62,0x93,0x23,0x5D,0x5A,0xE1,0xDA,0x01,0x50,0x2C,0x6B,0xE6,0x44,0x08,0xFD,0x3D, + 0x39,0x37,0x1D,0x25,0x4C,0x17,0xB1,0x67,0x4B,0x18,0xF8,0xF8,0x08,0x36,0xDE,0x9B, + 0x1C,0xE4,0x3F,0xF0,0x8F,0x85,0x7D,0x5A,0x36,0x55,0x3C,0x29,0xD3,0xC3,0x4F,0x32, + 0x53,0xE4,0x79,0x16,0x58,0x45,0x72,0xEC,0x41,0x22,0x42,0x45,0xBF,0x59,0x19,0x1F, + 0x62,0x7E,0x62,0xD7,0x5D,0xE0,0xF8,0x2D,0xBA,0x4D,0x78,0xEF,0xEC,0x64,0x8F,0xDF, + 0x18,0x65,0x34,0x0B,0xEC,0x41,0x3B,0xDC,0x9B,0xD4,0x84,0xD0,0x57,0x1F,0x1E,0x9E, + 0x12,0xC9,0x71,0xEB,0xD3,0x7D,0xF8,0xAC,0x87,0xE7,0x86,0x3C,0xB4,0xD8,0xF9,0xA2, + 0x7C,0x03,0x80,0x31,0x4B,0x96,0xE5,0x78,0x3C,0x4E,0x54,0x98,0xF8,0xB5,0x75,0xA3, + 0x57,0xCF,0x94,0x04,0xF8,0x38,0x97,0x1A,0x77,0x31,0x26,0x91,0xF7,0xD7,0x75,0xC9, + 0x8B,0x72,0x93,0xD8,0x43,0x73,0x4B,0x88,0x96,0x68,0xA5,0x35,0x64,0xF2,0xD2,0x78, + 0x0B,0xF8,0xCB,0x67,0xA5,0xBE,0xFB,0x74,0xFA,0x83,0x33,0x25,0xFC,0xFE,0x15,0x59, + 0x56,0x02,0xEF,0xCF,0x8F,0xC4,0xBF,0xF4,0x50,0x66,0x6C,0x94,0x4B,0xCB,0x3D,0x0D, + 0x0C,0xA6,0xC7,0x83,0xC7,0xF5,0xB0,0x6F,0x64,0x8B,0x58,0x24,0x9C,0x33,0x71,0x98, + 0xAF,0xA0,0xDF,0x72,0x9E,0x32,0x32,0x20,0x2D,0x31,0x7C,0x28,0xAA,0x71,0x6F,0x6E, + 0xAD,0xC5,0xF3,0x5F,0x02,0x53,0x95,0x87,0xB4,0x4A,0xFF,0xA8,0x60,0x04,0xF5,0xA0, + 0x2F,0xFD,0x23,0x87,0xB5,0x69,0x4F,0xCD,0xD6,0xC3,0x0D,0x9B,0x37,0x8E,0x89,0x08, + 0xFA,0x99,0xAC,0x63,0xE1,0x18,0xA6,0x60,0x3D,0xEE,0x69,0xFD,0x68,0xF9,0xAF,0x69, + 0xBB,0x37,0xF9,0x7F,0x81,0x7F,0xEE,0xFC,0xBF,0xC0,0x3F,0x77,0xFE,0x5B,0x05,0x56, + 0xF7,0x5D,0xF4,0xE0,0x67,0x0C,0xBD,0x70,0x09,0xFD,0x97,0xC4,0x10,0xAE,0x61,0x32, + 0xF5,0x68,0xF5,0xA6,0x21,0xDD,0xC8,0x10,0xDF,0x50,0xC0,0xDA,0xF2,0x5D,0xDD,0x47, + 0xFB,0xEB,0xDE,0x7F,0x3E,0xAB,0xF7,0xBA,0xF8,0x8E,0x29,0xAA,0x94,0xFD,0xE9,0x8B, + 0x2B,0x43,0x17,0x42,0x23,0x62,0x7D,0xFE,0xDE,0xE4,0xAC,0x64,0xEB,0x27,0xE5,0xB4, + 0x3A,0xDD,0x85,0xAA,0x26,0x3B,0xB3,0xD6,0x58,0x5E,0xA3,0x92,0x42,0x5C,0x5C,0x70, + 0x95,0x11,0xF8,0x1F,0x4F,0x65,0x24,0x45,0xB9,0x3A,0xD0,0x5C,0x70,0xA9,0x63,0xE7, + 0xF1,0x46,0xDC,0x13,0x73,0xEC,0x69,0xFE,0xF8,0x71,0xD5,0xF2,0xE9,0x51,0xE3,0x52, + 0xAD,0x57,0x34,0x96,0x2B,0x94,0x0F,0xBC,0x5A,0xAA,0xB8,0xF5,0xC4,0x08,0x03,0xC5, + 0xF2,0xFA,0xEC,0xD7,0x69,0x96,0xC5,0x67,0x1C,0xC3,0x2C,0x7A,0xE0,0x2E,0x2C,0x96, + 0x17,0x97,0xCD,0xC2,0xC6,0xE3,0x50,0x81,0x42,0x9E,0x67,0x37,0x8E,0x7B,0x3D,0x42, + 0xEE,0x41,0x91,0xB1,0x7F,0xBB,0x23,0x3A,0x0E,0xD0,0xE9,0x4D,0xCD,0x1D,0x5A,0x6C, + 0xD2,0x4E,0xAD,0xBB,0xEF,0xFD,0x61,0x61,0x8A,0xD7,0xE9,0x2F,0x64,0x59,0xE1,0x23, + 0xE0,0x24,0x47,0xFB,0x61,0x8B,0x8F,0xF0,0xA5,0x87,0xFD,0x7E,0x3A,0x50,0x64,0x86, + 0x16,0xE9,0x9D,0x76,0x1D,0x83,0xD1,0xD4,0xA9,0xD0,0x5B,0x6D,0xD0,0xAE,0xCC,0xE9, + 0x21,0x40,0xA5,0x52,0x9F,0xBE,0xD8,0xA4,0xB3,0xF7,0x94,0x00,0x6E,0xFD,0x78,0x69, + 0x8B,0x5C,0xEE,0xD2,0x52,0x7A,0x96,0xC5,0x87,0xDC,0xBB,0x57,0x8D,0xD6,0x54,0xD7, + 0xA2,0xB2,0xDA,0xC8,0x4F,0x46,0x78,0x1C,0xA3,0xD1,0x78,0xA2,0xB8,0xE6,0xF1,0x37, + 0x4B,0xFF,0xF4,0x55,0x8B,0x7D,0x81,0x7B,0xBC,0xDE,0xDE,0xD3,0xFE,0x8B,0x37,0xCE, + 0xEF,0x3B,0x79,0x55,0xAF,0x77,0xF2,0xE0,0x04,0x45,0xA6,0xB3,0xD8,0x5D,0xC7,0xC3, + 0x01,0x7E,0x3E,0x9C,0x51,0x09,0x01,0x56,0x5B,0x58,0xA0,0xE7,0xBB,0x10,0xB4,0x5A, + 0xDD,0x5B,0x5B,0xCB,0x5E,0xF9,0xEC,0x86,0xE3,0xA9,0xC7,0x40,0xDA,0xDD,0xF3,0xE6, + 0xCE,0x96,0x57,0x3E,0x3C,0xAF,0x54,0x39,0x9A,0x34,0xD5,0xEF,0xE2,0x43,0x8E,0x31, + 0x1A,0x7B,0xE4,0x2A,0x03,0x36,0xF2,0x33,0x11,0x43,0x04,0xA4,0x7D,0xE5,0xA3,0x8B, + 0x07,0x8A,0xFB,0x9F,0x54,0x6E,0x43,0x41,0xA5,0xE6,0x37,0xEF,0x95,0x29,0x94,0xFD, + 0xCA,0xCC,0xAC,0xE3,0xA1,0xEE,0x67,0x1D,0x8F,0xFE,0x50,0xA8,0x0D,0xE5,0x35,0xDD, + 0xD8,0xAA,0xEA,0x14,0x43,0xE4,0x15,0xA1,0x26,0xBF,0xBB,0xB3,0xF2,0x74,0x95,0x8D, + 0xD9,0x75,0x46,0x79,0xBD,0xEE,0x8D,0x2F,0x2A,0xFA,0xAB,0xDB,0xCC,0xDA,0xB4,0x56, + 0x0B,0x88,0x39,0x25,0xC0,0x8F,0x3B,0x3E,0x4D,0x82,0x0D,0xFE,0xD0,0x50,0x8C,0x4B, + 0xA1,0x61,0x16,0x5D,0xBA,0xB1,0xAF,0x68,0x80,0xAB,0x98,0xE7,0x57,0xA8,0x8F,0x15, + 0x5B,0xCF,0x33,0x21,0x50,0xDE,0x66,0x81,0xDD,0x2D,0x61,0x94,0x2A,0xDE,0x62,0xB5, + 0xF5,0x5E,0x67,0x6E,0x90,0xA8,0xD5,0xBA,0xCD,0xFB,0x1A,0x07,0x5C,0x75,0xA0,0xC6, + 0x3E,0x39,0xD8,0x6A,0xF7,0x17,0x64,0x50,0xC2,0x74,0x95,0x56,0xB9,0x29,0x70,0x97, + 0x52,0x0F,0x8F,0xDA,0x6A,0x6B,0x90,0x7A,0x6C,0x8A,0x65,0xE5,0x75,0x69,0x8D,0x74, + 0x50,0x01,0x5C,0x73,0xA7,0xA9,0xE8,0x52,0x9F,0x79,0xC7,0x04,0xCA,0x9B,0x4F,0x97, + 0xB0,0x4A,0xE3,0xDE,0xA7,0x8B,0xFD,0x79,0x53,0x32,0x82,0xAC,0xB6,0xD8,0x30,0xB7, + 0x7F,0xC2,0xBC,0x3F,0xCE,0x5E,0xB6,0x99,0xBF,0xE8,0x3E,0x47,0x4A,0x65,0x96,0x19, + 0xCD,0x16,0xE8,0x1F,0xAB,0xC4,0x1F,0xA5,0x9B,0x02,0xC3,0x51,0x81,0x62,0xC7,0x66, + 0x77,0x21,0xAE,0xC1,0xD3,0xD4,0xF7,0xA1,0x90,0xAC,0x91,0x21,0x53,0xB3,0x82,0x53, + 0x43,0x9D,0xFC,0x64,0x8E,0x15,0xD7,0x9A,0x75,0xD0,0xF3,0xCC,0xC1,0x4D,0x68,0xA5, + 0xC5,0x61,0xB3,0xE4,0x2A,0xE7,0x3F,0xD6,0xD8,0x1B,0x99,0x5C,0x9F,0x7F,0xB1,0x1D, + 0xDB,0xD9,0x4A,0x99,0xD5,0x14,0x7D,0x8F,0x60,0xE8,0x9B,0xFF,0xC3,0xA3,0x7D,0x8E, + 0x97,0xB6,0x4D,0x9F,0x16,0x13,0x1D,0xE9,0x27,0xE1,0xB0,0xA2,0x23,0xFC,0xA3,0xC2, + 0x7D,0xC7,0x24,0x8B,0x73,0xD2,0xC5,0x69,0x49,0xE2,0xD1,0xC3,0x7C,0xB8,0xBE,0xFC, + 0xF1,0xC3,0x45,0xB9,0x19,0x81,0xFC,0x5E,0x03,0xDD,0x4A,0x6D,0x4F,0x67,0xB7,0x75, + 0x33,0xA6,0x67,0xAE,0x42,0xE5,0x2A,0xD4,0x46,0xB7,0x6E,0x5B,0x22,0xE4,0x4D,0xCB, + 0x0C,0xC6,0x36,0x31,0x3D,0xD0,0x76,0xF2,0xAB,0xC7,0x11,0xF8,0xF2,0xF3,0xC6,0x85, + 0x4A,0x6B,0x3A,0x62,0xE2,0x45,0x21,0x5C,0x56,0x52,0x9C,0x38,0x21,0x4E,0x24,0xD2, + 0x68,0xFC,0xA2,0x83,0x7A,0x64,0xF2,0x49,0xD9,0xA1,0x3C,0x7F,0xEF,0xB1,0x11,0xDC, + 0xB2,0x8E,0x9E,0x25,0x99,0xB7,0x96,0x50,0x42,0xAE,0x29,0xD4,0x36,0x25,0x8C,0xFF, + 0x62,0x08,0xAC,0x32,0x58,0x7E,0x28,0xD7,0x45,0xA0,0xA8,0xAD,0xB6,0x21,0x28,0x69, + 0x06,0x8D,0x52,0x7B,0xB8,0xB0,0x79,0xEB,0xE9,0x76,0x9D,0xA1,0x07,0x56,0x50,0x40, + 0xEB,0x9D,0x1E,0x85,0xCA,0xA8,0x50,0xEA,0xE5,0x6A,0x83,0xD6,0x3C,0x99,0x50,0xAE, + 0xD4,0xA3,0x89,0xF5,0x9E,0x6E,0x8B,0x3D,0x5B,0x93,0x49,0x0B,0x8C,0xE2,0xEA,0x56, + 0x39,0x7A,0x2A,0xD0,0x96,0x8E,0x6E,0xDD,0xF1,0xF3,0x6D,0x56,0x1B,0xDC,0x69,0xE6, + 0xB4,0xA7,0xB9,0x7E,0x83,0x59,0xD0,0xA7,0xEC,0x52,0x47,0xFA,0xD8,0x10,0x4A,0xA1, + 0x6E,0x91,0xAA,0xDB,0xB4,0xA6,0x96,0x16,0xA5,0xCA,0xE0,0x75,0xA5,0x9E,0x3E,0x1B, + 0x15,0x15,0x30,0x35,0x4E,0xB0,0xBB,0xF4,0xD6,0x6F,0x88,0x73,0x39,0x2C,0x7F,0x9F, + 0x3E,0xEB,0xCA,0x00,0x7A,0x86,0xE7,0xDF,0xB7,0x57,0xEF,0xC9,0x6F,0xDE,0xFE,0xF2, + 0x78,0xCB,0x8F,0x5B,0x3A,0xA6,0xE0,0x52,0x07,0xAE,0x7F,0xE5,0xA1,0x81,0x3F,0x4B, + 0xE3,0x98,0xE7,0xDF,0x29,0xAB,0xA8,0xE9,0x32,0x2F,0x29,0xEE,0x2A,0x7C,0x91,0x6F, + 0x96,0xC8,0x54,0x50,0xD3,0xC7,0x2E,0x46,0x88,0xA9,0x77,0x9E,0x1D,0xC3,0xE7,0xF7, + 0x51,0x75,0x74,0x09,0x07,0x9A,0x7F,0x12,0xAF,0xB1,0xCD,0x6D,0x27,0x6E,0xE8,0x18, + 0x16,0x44,0xDF,0x98,0xEB,0x68,0x3B,0x95,0x56,0xD2,0x82,0xE4,0x28,0xBE,0xED,0x0F, + 0x41,0xD1,0x9F,0x1B,0x6E,0x1E,0x28,0xAD,0x75,0xA7,0x42,0xA2,0x4A,0x1F,0x29,0x91, + 0x62,0xCB,0x2F,0x6B,0x1F,0x8A,0xA6,0x3B,0x61,0x84,0x98,0x43,0x9B,0xCB,0x81,0xC3, + 0xA6,0xBC,0x66,0x8F,0x0B,0xB2,0x9D,0x41,0x4F,0x0B,0x1C,0x26,0xA1,0x05,0x6E,0x68, + 0x75,0xC3,0x4F,0x42,0xB3,0xCF,0xCD,0x0A,0xC6,0x06,0x2D,0x3D,0x14,0x4A,0x3A,0x2E, + 0x2A,0x70,0x74,0x9C,0x75,0xF3,0x73,0x8B,0xA4,0x08,0xEE,0x88,0x44,0x3B,0x0B,0xB7, + 0xD0,0x02,0x47,0x05,0x7B,0xC3,0xB4,0xD4,0x34,0x0D,0x95,0xCA,0x19,0x00,0x1C,0x0E, + 0x67,0xCD,0x1D,0xC3,0xBC,0xDD,0x73,0x34,0x6E,0xC1,0xE3,0x78,0xAD,0x9D,0x1B,0x69, + 0xF7,0x87,0xCD,0x68,0x81,0xFD,0x7D,0x38,0xA8,0xD5,0xA8,0xD2,0xBD,0x57,0xC7,0x77, + 0x4C,0x7B,0x97,0xF6,0xBB,0xB3,0x2D,0x56,0xDB,0xF5,0x26,0xCF,0xFD,0x5E,0x01,0x0A, + 0x39,0x3A,0xF8,0xC1,0x59,0x21,0x03,0x88,0xC4,0x50,0xE3,0x96,0x4E,0x11,0xA7,0x27, + 0xDB,0xFF,0x9D,0x0A,0x46,0x37,0x8C,0x4E,0x0C,0x68,0xEE,0xD0,0xB4,0xBB,0xDC,0x47, + 0x13,0x18,0xC0,0x9F,0x39,0x36,0xD4,0x6A,0x8B,0x0B,0xF7,0xE4,0x2C,0x50,0x34,0xBF, + 0x79,0x39,0x09,0xCB,0x73,0x44,0x6E,0x75,0xF8,0x43,0xDA,0xB9,0xD9,0xFE,0xF7,0xCC, + 0x49,0xE9,0xEF,0xF9,0x17,0xE6,0xC3,0xB2,0x87,0x8B,0xA0,0x7B,0x8E,0x95,0xDA,0x79, + 0x02,0xE7,0x07,0x84,0xA2,0xA8,0x55,0xF3,0xD2,0x7E,0x31,0x2F,0xC4,0xDF,0xB5,0xD9, + 0xD7,0xDE,0x3C,0xD6,0xBD,0xB9,0xE2,0xC7,0x96,0xA6,0x73,0xFA,0x7F,0x1C,0x84,0x11, + 0x38,0x23,0x21,0xC0,0x57,0xC0,0xD9,0x5F,0xD8,0xE2,0x62,0x4C,0xDB,0xD6,0xA9,0x3D, + 0x70,0xBA,0x05,0xDB,0xD1,0x73,0xD2,0xA1,0x73,0xB0,0x00,0x5C,0xA5,0x79,0x39,0x89, + 0x6F,0xFE,0x72,0xF8,0x84,0xE1,0x02,0xC8,0xC3,0xA4,0xDA,0xC0,0xE7,0x78,0x65,0xC6, + 0xF3,0x5E,0x7F,0x38,0xE1,0xBE,0xB9,0xA9,0x8E,0xE7,0x2C,0x32,0xE7,0x7C,0xBD,0x39, + 0x77,0xE5,0x46,0x22,0xA0,0xDD,0x7D,0xCA,0x4E,0x0C,0x69,0x4B,0x90,0x88,0x3F,0x6B, + 0x7C,0x28,0x36,0xB8,0xD3,0x43,0xA1,0xA5,0x7B,0x83,0xCA,0x19,0x15,0x26,0xF9,0xED, + 0x9A,0xCC,0xBF,0x3C,0x12,0x27,0xB0,0xA7,0xC6,0xD0,0xCE,0xFF,0xF8,0x60,0xF4,0x2B, + 0x8F,0x66,0x25,0xC7,0x85,0xF6,0x57,0x93,0x2D,0xDC,0xCA,0x8C,0xF9,0x13,0xC3,0x42, + 0xC4,0xFC,0xCD,0xDF,0xD6,0x7E,0x5F,0x2C,0xF5,0x60,0xDF,0x85,0xA7,0x40,0xF5,0x0E, + 0x09,0x12,0xF6,0x37,0x2E,0x14,0x19,0xE2,0xEA,0x8A,0x0F,0xEC,0x17,0x5F,0x7C,0x91, + 0xEC,0xF1,0xB9,0xD4,0xC8,0x78,0xE1,0xF1,0xF3,0xED,0x70,0x27,0xE0,0x3C,0xB6,0x75, + 0x69,0x3B,0x15,0x86,0x4E,0x85,0x5E,0xDA,0xA9,0x6D,0x95,0xD1,0xFB,0x6A,0xAD,0xB1, + 0x5B,0x69,0xC0,0x56,0xDF,0xAA,0x3E,0x5B,0x21,0x43,0x24,0x7C,0xB9,0x5E,0x71,0xB9, + 0x41,0x51,0xDB,0xAC,0xAA,0x6E,0x54,0x62,0x43,0xF5,0x13,0xFB,0x0F,0xD4,0x92,0xF4, + 0xE2,0x50,0x51,0x6B,0x5A,0xAC,0x30,0x32,0xD8,0x7A,0x34,0x50,0xA7,0xD3,0xEF,0x3A, + 0xD9,0x6C,0xDB,0x35,0x8D,0x42,0x5D,0x92,0x13,0xEC,0xEA,0xE8,0xA1,0x55,0x8C,0xD3, + 0xD6,0xA5,0xFB,0x70,0x5F,0xED,0xC9,0x0B,0xED,0x5A,0x1D,0x1D,0xFF,0x30,0xA9,0xF6, + 0xC0,0xD7,0x20,0x96,0x86,0xFB,0xFD,0x8F,0xA7,0x32,0x44,0x7E,0x83,0x9D,0xED,0xDF, + 0x1B,0xF8,0xD2,0x4B,0xA6,0x46,0x0E,0xD1,0xE8,0xA1,0xB5,0xC0,0x04,0x14,0x26,0xDA, + 0xB3,0xB4,0x53,0x07,0x17,0xD2,0xD2,0x47,0x8F,0x88,0xB9,0x5B,0x41,0x7B,0xF4,0x37, + 0xDA,0x34,0x67,0xCA,0x3B,0xD0,0xEC,0xF1,0x56,0x6F,0x3E,0xFB,0xE1,0x05,0xB1,0xEE, + 0xAE,0xC8,0xE5,0x98,0x0F,0xF6,0xD6,0x3C,0x30,0x27,0xC6,0xAE,0xC0,0x6B,0x5E,0xB3, + 0x2F,0xF0,0x27,0x1B,0x07,0x27,0xB0,0x63,0x1A,0xA5,0xEA,0xE7,0xDE,0xA1,0x17,0x2C, + 0x1D,0x3A,0x5E,0x5F,0x97,0x1E,0x61,0x33,0x8E,0x61,0x34,0x1A,0x3B,0xBB,0x15,0x76, + 0xC3,0x76,0xA1,0xBF,0x0F,0x97,0xEB,0x42,0x2D,0xF3,0xF2,0xFA,0x3F,0x2D,0xFC,0xA8, + 0x75,0xB9,0xBB,0x5E,0xB4,0x00,0x00,0x00,0x00,0x49,0x45,0x4E,0x44,0xAE,0x42,0x60, + 0x82, +}; // icon_png, 8721 bytes + +// File: index.htm +// +const char index_htm[] PROGMEM = { + "\n" + "\n" + "\n" + " Grow Controller\n" + " \n" + " \n" + " \n" + " \n" + "\n" + "\n" + "

Grow Controller

\n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
\n" + "
\n" + "
\n" + " \n" + " \n" + "
\n" + "
92°F
\n" + "
8%
\n" + "
74°F
\n" + "
ON
\n" + "
65°F
\n" + "
12.3V
\n" + "
1.2A
\n" + "
0.0V
\n" + "
OK
\n" + "
\n" + "
\n" + "
\n" + "
\n" + " \n" + " \n" + "
\n" + " \n" + "
\n" + "
\n" + " \n" + "
\n" + " \n" + "
\n" + " \n" + "
\n" + " \n" + "
\n" + " \n" + "
\n" + "
\n" + "

\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
NAV:\n" + " Home |\n" + " Config |\n" + " Scan |\n" + " RSSI |\n" + " Current |\n" + " Factory Reset |\n" + " About\n" + "
\n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
GrowController by Origin TechnologiesFirmware: v0.00.00
\n" + "\n" + "\n" +}; // index_htm, 5713 bytes + +// File: index.js +// +const char index_js[] PROGMEM = { + "//\n" + "// rssi script\n" + "//\n" + "// var mySite = 'http://192.168.1.23' from myip.js\n" + "var url = mySite + '/state';\n" + "setInterval(RefreshStatus, 250);\n" + "\n" + "getIt = function (aUrl, callback) {\n" + " var xhr = new XMLHttpRequest();\n" + " xhr.open('GET', aUrl, true);\n" + " xhr.responseType = 'text';\n" + " xhr.onload = function (e) {\n" + " if (this.status === 200) {\n" + " callback(this.response);\n" + " }\n" + " };\n" + " xhr.send();\n" + "};\n" + "\n" + "function RefreshStatus() {\n" + " getIt(url,\n" + " function(data) {\n" + " obj = JSON.parse(data);\n" + " if (obj.state === 1)\n" + " state = \"On\";\n" + " else\n" + " state = \"Off\";\n" + " document.getElementById('version').innerHTML = obj.version;\n" + " document.getElementById('name').innerHTML = obj.name;\n" + " document.getElementById('state').innerHTML = 'Output: ' + state;\n" + " document.getElementById('raw').innerHTML = 'raw: ' + obj.raw;\n" + " document.getElementById('sense').innerHTML = 'Sense: ' + obj.sense;\n" + " document.getElementById('toggle').innerHTML = 'Toggle: ' + obj.toggle;\n" + " document.getElementById('reset').innerHTML = 'Reset: ' + obj.reset;\n" + " document.getElementById('countdown').innerHTML = obj.countdown;\n" + " document.getElementById('uptime').innerHTML = 'Uptime: ' + obj.uptime;\n" + " document.getElementById('wifimode').innerHTML = 'Mode: ' + obj.wifimode;\n" + " var elms = document.querySelectorAll('.' + 'ip'), i;\n" + " for (i = 0; i < elms.length; ++i) {\n" + " elms[i].textContent = obj.ip;\n" + " }\n" + " }\n" + " );\n" + "}\n" +}; // index_js, 1408 bytes + +// File: Open.png +// +const char Open_png[] PROGMEM = { + 0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,0x0D,0x49,0x48,0x44,0x52, + 0x00,0x00,0x00,0x74,0x00,0x00,0x00,0x74,0x08,0x03,0x00,0x00,0x00,0x63,0x44,0xE6, + 0x15,0x00,0x00,0x00,0x01,0x73,0x52,0x47,0x42,0x00,0xAE,0xCE,0x1C,0xE9,0x00,0x00, + 0x00,0x04,0x67,0x41,0x4D,0x41,0x00,0x00,0xB1,0x8F,0x0B,0xFC,0x61,0x05,0x00,0x00, + 0x00,0x18,0x50,0x4C,0x54,0x45,0xF6,0xF6,0xF6,0xF8,0xF8,0xF8,0xF2,0xF2,0xF2,0xF7, + 0xF7,0xF7,0xF5,0xF5,0xF5,0xF3,0xF3,0xF3,0xF4,0xF4,0xF4,0x00,0x00,0x00,0x60,0x9A, + 0x3A,0x5D,0x00,0x00,0x00,0x08,0x74,0x52,0x4E,0x53,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0x00,0xDE,0x83,0xBD,0x59,0x00,0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00, + 0x0E,0xC3,0x00,0x00,0x0E,0xC3,0x01,0xC7,0x6F,0xA8,0x64,0x00,0x00,0x01,0xEC,0x49, + 0x44,0x41,0x54,0x68,0x43,0xED,0xDA,0xD9,0x72,0x83,0x30,0x0C,0x05,0x50,0x48,0x58, + 0xFE,0xFF,0x8F,0x2B,0x4B,0x6A,0x09,0x09,0x8B,0xAD,0xE8,0x8A,0xE9,0xA0,0xFB,0x50, + 0x96,0xCE,0x70,0x6A,0x63,0x64,0xA0,0x74,0xF3,0x05,0xB9,0x0C,0xED,0xBA,0xBE,0x44, + 0x76,0x44,0x84,0xD0,0xFE,0xA1,0xD1,0x5D,0xF8,0x10,0xFA,0x54,0x73,0x85,0x0E,0x43, + 0x87,0x6B,0xFA,0x1E,0xFA,0xB9,0xC7,0x31,0x84,0x76,0x02,0x6C,0xA0,0xA3,0x6E,0x78, + 0xE7,0x10,0xA5,0x5F,0x42,0xF2,0x77,0xDC,0xB7,0xE1,0xCB,0xA8,0xAE,0xBB,0x67,0xA7, + 0x31,0x32,0xA2,0x75,0x83,0xD3,0x3F,0x46,0xB7,0x91,0x75,0xD0,0x83,0xFD,0x53,0x57, + 0x38,0x53,0xF9,0x2B,0x26,0xDD,0xF8,0x32,0xD5,0xA7,0x8D,0x9B,0xEE,0xD4,0xE1,0xB5, + 0xA8,0x5C,0x57,0xAB,0xB6,0xDB,0x53,0x8B,0xB2,0xE9,0x35,0xB2,0xAA,0xBB,0xF7,0x39, + 0xBA,0x9D,0xD2,0x7A,0x94,0xE2,0x56,0x18,0x5B,0xD0,0x75,0x46,0xFB,0x09,0x36,0xA3, + 0x74,0x25,0x9B,0xAB,0xA4,0x19,0xE5,0x81,0x35,0xE8,0x46,0x63,0xAC,0xE8,0xC0,0xA8, + 0x71,0x38,0x5B,0x51,0x31,0x8D,0x23,0xCB,0x8A,0x72,0x71,0xB6,0x5E,0x42,0xE6,0x73, + 0x5A,0x66,0x44,0x5D,0x6B,0x8E,0x1D,0xA5,0xD6,0xEA,0xB2,0x39,0xDF,0xA0,0xE6,0xFC, + 0x6F,0xB4,0x65,0x24,0x7B,0xA1,0x34,0x1D,0xD4,0x1F,0xCA,0x09,0xE5,0x9B,0xBB,0xEA, + 0x63,0xF9,0xA0,0xFA,0x90,0x50,0x5B,0x15,0x7D,0xD0,0xC6,0xA2,0xE8,0xD4,0xBD,0xDC, + 0x54,0x5D,0x3F,0x8F,0x13,0x5A,0xD4,0xFA,0xE1,0xEB,0x85,0x36,0xD5,0x27,0x3F,0xB4, + 0x21,0x89,0x42,0x83,0x41,0x4F,0x8E,0x0A,0x41,0xA7,0x93,0x7B,0x0A,0x04,0x4A,0xC5, + 0xFF,0xB8,0x22,0x02,0xD0,0x62,0x1E,0x57,0x7F,0x00,0xCA,0xE6,0x61,0x51,0x44,0x74, + 0x2F,0x9B,0x47,0x05,0x0A,0x81,0x9E,0x3E,0x71,0x20,0x50,0x9A,0xEA,0x74,0xB9,0x13, + 0x0C,0x7A,0x92,0x44,0xA1,0x49,0x14,0x1A,0x34,0x3A,0x6C,0x95,0x43,0x2C,0x5A,0xEE, + 0x4C,0x37,0x66,0x39,0x28,0x2A,0xF3,0xCD,0x67,0x15,0x86,0xA2,0x7B,0x37,0xFE,0xD8, + 0xEE,0xBD,0x04,0xBD,0xE2,0x9C,0x96,0xB3,0xBA,0x35,0xAF,0x82,0xD1,0xED,0x24,0x0A, + 0x4D,0xA2,0xD0,0x24,0xEA,0x9C,0x7E,0x7C,0xFD,0x47,0x52,0x08,0xCA,0x2F,0x7C,0x5E, + 0xEA,0x7E,0x08,0x2A,0xF3,0xAA,0x6E,0x50,0x62,0xBA,0x97,0xD1,0x85,0x0A,0x44,0x97, + 0xA6,0xC6,0xA0,0xE5,0x16,0x22,0x7A,0x20,0xBD,0x33,0x41,0xE8,0x3A,0x89,0x42,0x93, + 0x28,0x34,0x89,0x42,0x13,0x89,0x96,0x4F,0x25,0x78,0x25,0x0E,0x95,0xCF,0x9E,0x64, + 0x95,0x7F,0x46,0x44,0x6E,0x1F,0xF8,0x79,0x2A,0xB0,0x7B,0x19,0xE5,0xB7,0x86,0xD1, + 0x28,0xBF,0x1E,0x0D,0x44,0x27,0x22,0xE5,0xF3,0x97,0x40,0x74,0x49,0xA2,0xD0,0x24, + 0x0A,0x4D,0xA2,0xD0,0xDC,0x01,0x95,0x0F,0x7A,0x43,0x51,0x9E,0x67,0x48,0x8D,0x47, + 0xE9,0x91,0xF1,0x26,0x28,0x89,0x37,0x41,0xA7,0x3B,0xA0,0xBF,0xEF,0x93,0x42,0x51, + 0xAA,0x0D,0xBC,0x88,0x45,0x35,0x77,0x41,0xE7,0xF9,0x07,0xA5,0x3C,0x68,0x95,0x14, + 0xE6,0xEB,0xBA,0x00,0x00,0x00,0x00,0x49,0x45,0x4E,0x44,0xAE,0x42,0x60,0x82, +}; // Open_png, 655 bytes + +// File: PlantModel.png +// +const char PlantModel_png[] PROGMEM = { + 0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,0x0D,0x49,0x48,0x44,0x52, + 0x00,0x00,0x00,0xF3,0x00,0x00,0x01,0xE8,0x08,0x06,0x00,0x00,0x00,0x9C,0x90,0xD9, + 0xD3,0x00,0x00,0x00,0x01,0x73,0x52,0x47,0x42,0x00,0xAE,0xCE,0x1C,0xE9,0x00,0x00, + 0x00,0x04,0x67,0x41,0x4D,0x41,0x00,0x00,0xB1,0x8F,0x0B,0xFC,0x61,0x05,0x00,0x00, + 0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00,0x0E,0xC3,0x00,0x00,0x0E,0xC3,0x01,0xC7, + 0x6F,0xA8,0x64,0x00,0x00,0x6E,0x4E,0x49,0x44,0x41,0x54,0x78,0x5E,0xED,0x9D,0x07, + 0x7C,0x14,0x65,0xFA,0xC7,0x9F,0x4D,0x27,0x05,0xD2,0x0B,0x49,0x20,0x01,0x82,0x20, + 0x4D,0x7A,0x55,0x40,0x01,0x51,0xE1,0x44,0xC5,0x82,0x7F,0xF5,0xB0,0x9C,0x82,0x77, + 0x16,0xCE,0xC2,0xE9,0x79,0x67,0x39,0xEF,0x94,0xF3,0x14,0x3D,0x3D,0xFB,0x89,0x27, + 0x16,0xCE,0x06,0x9E,0x28,0x08,0xA8,0x20,0xA1,0x08,0x48,0x2F,0x21,0xA1,0x25,0x21, + 0x8D,0x54,0x42,0x02,0x29,0x24,0xF3,0xDF,0xDF,0xEC,0xBB,0x9B,0xD9,0xDD,0x99,0xDD, + 0xD9,0x9A,0xD9,0xDD,0xF7,0xFB,0x61,0xC9,0xBC,0xB3,0xB3,0x9B,0xC9,0xEE,0xFC,0xE6, + 0x79,0xDE,0xE7,0x7D,0xDE,0xE7,0x25,0x0E,0x87,0xE3,0x1F,0xE8,0xD8,0x4F,0x8E,0x8F, + 0x51,0x59,0x59,0x29,0x34,0x34,0x34,0x88,0xDB,0xF8,0x59,0x55,0x55,0x25,0x6E,0x1B, + 0x91,0xDB,0x27,0x25,0x23,0x23,0x83,0x42,0x42,0x42,0x58,0xCB,0x80,0x74,0x5F,0x76, + 0x76,0x36,0xBF,0x36,0x7C,0x0C,0xFE,0x85,0x69,0x9C,0xE3,0xC7,0x8F,0x0B,0x75,0x75, + 0x75,0x84,0xC7,0xC9,0x93,0x27,0x45,0x91,0x96,0x97,0x97,0xB3,0x67,0x3D,0x0F,0x04, + 0x1E,0x1D,0x1D,0x4D,0xA9,0xA9,0xA9,0x94,0x98,0x98,0x28,0x6E,0x73,0xA1,0x6B,0x13, + 0xFE,0xA5,0x68,0x88,0x5D,0xBB,0x76,0x09,0x10,0x2C,0x2C,0x2A,0x04,0xDB,0xD4,0xD4, + 0xC4,0x9E,0xD1,0x1E,0x10,0x35,0xC4,0x0D,0x91,0x43,0xF0,0x83,0x06,0x0D,0xE2,0xD7, + 0x52,0x27,0xC3,0xBF,0x80,0x4E,0x04,0xE2,0x3D,0x71,0xE2,0x04,0xE1,0x01,0xCB,0xEB, + 0xEB,0x40,0xDC,0x59,0x59,0x59,0xE2,0x83,0x8B,0xDB,0xFB,0xF0,0x0F,0xDC,0x8B,0xF8, + 0x9B,0x78,0xED,0x01,0x71,0xF7,0xE9,0xD3,0x47,0x14,0x77,0xFF,0xFE,0xFD,0xF9,0xB5, + 0xE6,0x61,0xF8,0x07,0xEC,0x61,0x36,0x6E,0xDC,0x28,0xEC,0xD8,0xB1,0x23,0x20,0xC4, + 0x6B,0x0F,0xB8,0xE3,0x17,0x5D,0x74,0x11,0x8D,0x1C,0x39,0x92,0x5F,0x77,0x1E,0x80, + 0x7F,0xA8,0x1E,0x00,0x16,0x78,0xF7,0xEE,0xDD,0xA2,0x05,0xF6,0x14,0xC6,0x3E,0x6B, + 0x44,0x44,0x84,0xD8,0x6F,0x95,0x62,0x7C,0xCE,0x1E,0xE8,0x9F,0x9F,0x3F,0x7F,0x9E, + 0xB5,0x0C,0x18,0xCF,0x59,0xEE,0x39,0x77,0x32,0x70,0xE0,0x40,0xEA,0xD7,0xAF,0x1F, + 0x77,0xC7,0xDD,0x08,0xFF,0x20,0xDD,0xC4,0xA1,0x43,0x87,0x84,0xFD,0xFB,0xF7,0x53, + 0x5E,0x5E,0x9E,0x5B,0x45,0xD0,0xD9,0xD1,0x64,0x4F,0x47,0xD3,0x71,0x33,0x82,0xB0, + 0x61,0xB1,0x33,0x33,0x33,0xF9,0xF5,0xE8,0x02,0xFC,0xC3,0x73,0x81,0xB2,0xB2,0x32, + 0xD1,0x85,0x86,0x80,0x8D,0x63,0xBE,0xAE,0x60,0x0C,0x1E,0xE1,0xA1,0xF5,0xE1,0x1F, + 0x8C,0x73,0x43,0xE0,0xC6,0x18,0x00,0x84,0xEE,0x2A,0xB1,0xB1,0xB1,0xA2,0xA8,0x27, + 0x4F,0x9E,0xCC,0xAF,0x4B,0x27,0xE0,0x1F,0x9A,0x13,0xC0,0x5A,0xAD,0x5F,0xBF,0xDE, + 0x65,0x37,0x1A,0x56,0xD7,0x28,0xDE,0x9C,0x9C,0x1C,0x9F,0xFF,0x2E,0xE0,0x9D,0x18, + 0xC5,0xED,0xAA,0xF5,0x86,0xA8,0x27,0x4C,0x98,0x40,0x49,0x49,0x49,0xFC,0x1A,0x55, + 0x09,0xFF,0xA0,0x1C,0xC0,0x55,0x11,0xFB,0x9B,0x78,0xED,0xB1,0x6F,0xDF,0x3E,0x93, + 0xB8,0x6D,0x65,0xA3,0xD9,0x02,0xFD,0xEA,0x49,0x93,0x26,0x51,0x5A,0x5A,0x1A,0xBF, + 0x56,0xED,0xC0,0x3F,0x20,0x15,0xC0,0xE2,0xE4,0xE6,0xE6,0x3A,0xE5,0x4A,0xA2,0x9F, + 0x0B,0x2B,0x73,0xF1,0xC5,0x17,0x07,0xF4,0x67,0x0D,0xB7,0x1C,0x5D,0x12,0xC4,0x15, + 0x9C,0xE9,0x92,0x40,0xD4,0xB0,0xD4,0xBC,0x5F,0xAD,0x0C,0xFF,0x60,0x6C,0x00,0x11, + 0xC3,0x12,0x3B,0xEA,0x32,0xF2,0xA0,0x8E,0x6D,0x5C,0x09,0x16,0xC2,0xAB,0x81,0xA5, + 0xE6,0x29,0xA5,0xD6,0xF0,0x0F,0x44,0x86,0x82,0x82,0x02,0x61,0xDD,0xBA,0x75,0x0E, + 0x8B,0x98,0x0F,0xB7,0x38,0x8E,0xB3,0xC3,0x78,0x10,0xF5,0x94,0x29,0x53,0xF8,0xCD, + 0x52,0x02,0xFF,0x20,0x2C,0x58,0xBA,0x74,0xA9,0x70,0xE4,0xC8,0x11,0xD6,0xB2,0x0F, + 0x86,0x8A,0xE0,0xFE,0x8D,0x1D,0x3B,0x96,0x7F,0x96,0x2E,0xF2,0xE3,0x8F,0x3F,0x0A, + 0x5B,0xB7,0x6E,0x75,0x28,0x27,0x1D,0xDE,0xCF,0x35,0xD7,0x5C,0xC3,0x3F,0x7B,0x3D, + 0xFC,0x43,0x60,0x20,0x53,0x0B,0x2E,0xB5,0x5A,0xB7,0x0F,0xC3,0x28,0x10,0x31,0xCF, + 0x66,0x72,0x3F,0x8E,0x8A,0x1A,0xDD,0x9A,0xE9,0xD3,0xA7,0xD3,0xD0,0xA1,0x43,0x03, + 0xFA,0xBB,0x08,0xF8,0x0B,0x11,0x2E,0xF5,0xEA,0xD5,0xAB,0x55,0x47,0x5B,0x21,0x62, + 0xF4,0xD9,0x02,0xFD,0xC2,0xF1,0x06,0x5B,0xB6,0x6C,0x11,0x03,0x8F,0x6A,0x03,0x66, + 0x18,0x2D,0x98,0x35,0x6B,0x56,0xC0,0x0E,0x67,0x05,0xF4,0x05,0xF9,0xD9,0x67,0x9F, + 0x89,0x81,0x18,0x35,0x20,0x2A,0x0D,0x4B,0xCC,0x45,0xEC,0x7D,0x1C,0x15,0x35,0xBE, + 0xA7,0xA9,0x53,0xA7,0x06,0xDC,0xF7,0x14,0x90,0x17,0x26,0x2E,0x0E,0xB8,0xD4,0x6A, + 0xDC,0x38,0x88,0x18,0x81,0x16,0x3E,0xEB,0xA7,0xF3,0x41,0xB0,0x0C,0x81,0x49,0x35, + 0xA2,0x46,0x2C,0x63,0xC6,0x8C,0x19,0x01,0xF5,0xBD,0x05,0xDC,0x05,0xFA,0xCE,0x3B, + 0xEF,0x88,0x05,0x00,0xEC,0x81,0x7E,0x18,0xEE,0xF0,0x81,0x3E,0x3E,0xAC,0x45,0xD6, + 0xAE,0x5D,0x2B,0xF6,0xA9,0xD5,0xC4,0x37,0x30,0xC2,0x70,0xFD,0xF5,0xD7,0x07,0xC4, + 0x77,0x18,0x30,0x17,0x2A,0xC6,0x36,0x57,0xAC,0x58,0xA1,0xCA,0x1A,0x07,0xD2,0x05, + 0xE0,0xAB,0x20,0x09,0x65,0xE5,0xCA,0x95,0xAA,0x86,0xB4,0xE0,0x5D,0xCD,0x9E,0x3D, + 0xDB,0xEF,0xB3,0xC8,0x02,0xE2,0x82,0x5D,0xB5,0x6A,0x95,0x78,0x27,0xB7,0x07,0xBE, + 0x74,0xB8,0x66,0x3C,0x21,0xC1,0x77,0x40,0xCA,0x28,0x02,0x98,0xF6,0x5C,0x6F,0x14, + 0x2A,0x44,0x77,0xC9,0x9F,0x87,0x10,0xFD,0xFE,0xA2,0x55,0xE3,0x56,0xE3,0x8B,0x46, + 0x84,0x9A,0xBB,0xD4,0xBE,0x8B,0xDA,0x1B,0x36,0x92,0x7A,0xE6,0xCC,0x99,0xE3,0x97, + 0xDF,0xB3,0xDF,0x5E,0xBC,0x6A,0xDD,0x6A,0x7F,0xFE,0x72,0x03,0x8D,0xE2,0xE2,0x62, + 0xD1,0x4A,0xDB,0xBB,0x79,0x63,0x78,0x11,0x6E,0xB7,0xBF,0x65,0x8F,0xF9,0xE5,0x45, + 0xAC,0xE6,0x2E,0x0D,0x6B,0x8C,0x44,0x03,0x9E,0xF4,0xE1,0x7F,0x20,0x40,0x86,0xA1, + 0x2C,0x5B,0xF8,0xA3,0xDB,0xED,0x77,0x17,0xB2,0x1A,0xB7,0x3A,0x50,0x02,0x22,0x81, + 0x0C,0x92,0x81,0x3E,0xFF,0xFC,0xF3,0x80,0xF2,0xCC,0xFC,0xEA,0x62,0x5E,0xBC,0x78, + 0xB1,0x58,0xFD,0xC2,0x16,0x3C,0x52,0x1D,0x58,0xA8,0xB9,0xB9,0xA3,0x24,0xD3,0xFC, + 0xF9,0xF3,0x7D,0xFE,0x9A,0xF0,0x8B,0x8B,0x1A,0xE5,0x7B,0x96,0x2D,0x5B,0x66,0xB3, + 0x02,0xA6,0x2F,0xB8,0xD5,0xA5,0xA7,0x8A,0x85,0xBF,0xBF,0xFB,0x67,0x6A,0x6E,0x6D, + 0xA6,0x7B,0xE7,0x3C,0x42,0x83,0xFA,0xF2,0x6C,0x33,0x77,0xA0,0xC6,0xED,0xF6,0x07, + 0x41,0xFB,0xFC,0xC5,0x82,0xA0,0xC7,0x87,0x1F,0x7E,0x68,0xD3,0x9D,0xF2,0x15,0xB7, + 0xFA,0xD1,0x17,0xE6,0x09,0x1B,0xB6,0xAF,0x15,0xB7,0xC3,0x42,0xC3,0x69,0xE9,0xA2, + 0xFF,0x51,0x56,0x46,0x1F,0x9F,0xFF,0x8E,0xCA,0xCB,0xCB,0x85,0x13,0x95,0xB5,0xD4, + 0xDE,0xDE,0xCE,0xF6,0x18,0xE8,0x99,0x18,0x4B,0xE9,0xE9,0xE9,0x5E,0xF9,0xFB,0x50, + 0x25,0x06,0x6E,0xB7,0xAD,0x21,0x2C,0x04,0xC6,0x6E,0xB9,0xE5,0x16,0x9F,0xCD,0xED, + 0xF6,0xE9,0x0B,0x05,0xFD,0x22,0x58,0x64,0x5B,0x99,0x40,0xBE,0xE4,0x56,0x4B,0xC5, + 0x6C,0x64,0xEA,0xB8,0x19,0x74,0xE5,0xC4,0x6B,0x69,0xDC,0xD0,0x89,0x36,0xFF,0x86, + 0x35,0x9B,0xBE,0x16,0xBE,0xDD,0xF0,0xA5,0x68,0xD5,0x63,0x22,0xBB,0xD2,0xAC,0x29, + 0x73,0xEC,0xBE,0xC6,0xD3,0x6C,0x3F,0x70,0x58,0xA8,0x6B,0x68,0xA4,0xCD,0xCD,0xD1, + 0xB4,0xAA,0x21,0x92,0x5A,0x28,0x88,0x3D,0x63,0x60,0x42,0x44,0x23,0x5D,0x11,0xD5, + 0x48,0x31,0x61,0xC1,0x34,0x61,0xA8,0x77,0xE6,0x80,0x2F,0x59,0xB2,0x44,0x2C,0x65, + 0xA4,0x04,0x32,0xFF,0xE6,0xCE,0x9D,0xEB,0x93,0xF1,0x14,0x9F,0x3B,0x61,0x23,0xC8, + 0xD3,0xC5,0xD0,0x93,0x2D,0x30,0x76,0xEC,0x4B,0x95,0x1E,0xD7,0x6F,0x5B,0x23,0x2C, + 0xFC,0xC7,0x7C,0xD6,0x32,0x67,0x60,0xCE,0x45,0xF4,0xA7,0xF9,0x8B,0x64,0x2D,0xF5, + 0x3B,0x9F,0xBE,0x22,0xBC,0xFB,0xF9,0x3F,0x59,0xAB,0x83,0x07,0x7F,0xFD,0x47,0x9A, + 0x73,0xD5,0x1D,0x5E,0xFF,0xFB,0x0F,0x9D,0x28,0x16,0x4E,0x54,0x54,0xD3,0xF3,0xB5, + 0x89,0xB4,0xA1,0x29,0x9A,0xED,0x55,0x66,0x60,0xE8,0x39,0x7A,0x3C,0xBE,0x8A,0xFA, + 0x27,0x44,0xD1,0xD0,0xBE,0xBD,0x3C,0x7E,0xBE,0xCB,0x97,0x2F,0x17,0x0B,0x22,0x28, + 0x81,0x2E,0xD9,0x4D,0x37,0xDD,0xE4,0x73,0x75,0xDA,0x7C,0xEA,0x64,0x8D,0x60,0xEE, + 0x31,0x12,0xEE,0x6D,0x81,0x4C,0x2E,0x5F,0x1C,0x76,0x7A,0xE6,0xF5,0x47,0x85,0x6F, + 0xD6,0x7F,0xC1,0x5A,0xE6,0xC4,0x44,0x75,0xA5,0x0F,0xF4,0xAE,0x77,0xF7,0xE4,0x8E, + 0xF1,0xD1,0xAA,0xDA,0x53,0xC2,0x55,0xF7,0x8C,0x65,0x2D,0x73,0xE0,0xAA,0x2F,0x7F, + 0x6D,0x3D,0x25,0xC6,0x25,0x7B,0xED,0x73,0xD8,0xAA,0xB7,0xC6,0xCB,0x2A,0x43,0xE8, + 0xE5,0xBA,0x04,0xB6,0x47,0x3D,0x37,0x47,0xD7,0xD1,0xBC,0xC4,0x46,0xBA,0xE4,0xA2, + 0x01,0x1E,0x3F,0x5F,0x7B,0xFD,0x68,0x08,0x1A,0xD7,0x90,0x2F,0xCD,0x92,0x33,0xF7, + 0x7B,0x7C,0x00,0x4C,0x5C,0xB7,0x25,0x64,0x7C,0x09,0xE8,0x1F,0xFB,0xEA,0xF8,0xF1, + 0x9F,0xEF,0xFD,0xBB,0x6E,0xD1,0xC3,0x6F,0x88,0x96,0xD8,0x92,0x33,0x8D,0xF5,0xF4, + 0xA7,0x57,0x1E,0x64,0x2D,0x03,0x6B,0x37,0xAF,0x64,0x5B,0xD6,0xB4,0xE8,0x5D,0xEE, + 0xAD,0xBB,0x7F,0x62,0x2D,0xCF,0x03,0x21,0x3F,0x53,0x12,0xE9,0x94,0x90,0xC1,0xC7, + 0x0D,0xB1,0xF4,0x60,0x69,0x1C,0xFD,0xB4,0xFB,0x80,0xC0,0x76,0x79,0x0C,0x4C,0x91, + 0x44,0x40,0x54,0x09,0x74,0xDD,0xE0,0xF9,0xC1,0x03,0x64,0xBB,0x34,0x8F,0x4F,0x89, + 0x19,0x42,0xC6,0xD4,0x45,0x25,0xD0,0xDF,0x81,0x7B,0xE4,0xEB,0x35,0xB8,0x26,0x8D, + 0x9A,0xA6,0xFB,0xF7,0x5F,0xBF,0xD0,0xFD,0xF7,0xA5,0xEF,0xC4,0x3E,0xB3,0x94,0xFD, + 0x05,0xBB,0x69,0xF3,0xAE,0x0D,0xA6,0x0B,0xAC,0xA8,0xF4,0x38,0xDB,0xEA,0x5C,0xF6, + 0x1D,0x2D,0x14,0x96,0x9E,0x0A,0xA5,0x6F,0xCF,0xC6,0xB0,0x3D,0xCE,0xB1,0xB3,0x25, + 0x92,0x9E,0x39,0xD5,0x4D,0xBC,0x31,0xB0,0x5D,0x1E,0x03,0x09,0x23,0x28,0x66,0x00, + 0x03,0xA0,0x84,0x2F,0x09,0xDA,0x67,0xC4,0x8C,0x0F,0xD4,0x9E,0x90,0x11,0xB8,0xF0, + 0xA7,0x7A,0xD4,0xE8,0x1F,0x3F,0xFB,0xE0,0x2B,0x3A,0x4B,0x41,0x23,0xD0,0x65,0x24, + 0xFF,0xC4,0x41,0xB6,0x25,0x4F,0xCF,0xF4,0xDE,0x6C,0xCB,0xB3,0x1C,0xAF,0xAA,0xA3, + 0x7F,0x9D,0x8E,0x67,0x2D,0xD7,0x58,0x77,0x36,0x9A,0xF6,0x9C,0x6E,0xA3,0x9A,0x9A, + 0x1A,0x8F,0x8B,0x08,0x6E,0x34,0x0C,0x80,0x2D,0x41,0x63,0x76,0x16,0x82,0xAD,0xAC, + 0xA9,0x59,0x7C,0x42,0xCC,0xC6,0x3C,0x6B,0x25,0x30,0xA4,0xF0,0xD8,0x63,0x8F,0xE9, + 0xFC,0x35,0xA3,0xEB,0xD6,0xAB,0xEF,0x61,0x5B,0x06,0xA4,0x11,0xEF,0xC2,0xD2,0x63, + 0x6C,0x4B,0x9E,0xB4,0xA4,0x74,0xB6,0xE5,0x39,0x10,0xB5,0x7E,0xB1,0x16,0xAE,0x75, + 0x10,0x2D,0xBE,0xB4,0x1B,0xD1,0xAC,0x58,0x9D,0xD2,0x03,0xBD,0xFB,0xBB,0x47,0xB2, + 0x63,0x2C,0x90,0xEE,0xC7,0xFB,0x1D,0x3C,0x61,0x7F,0xDE,0xB9,0x3B,0x80,0x01,0xB8, + 0xEB,0xAE,0xBB,0x44,0x83,0x20,0x07,0x5C,0x6E,0x8C,0x9A,0x60,0x18,0x94,0xED,0xD2, + 0x24,0x9A,0x17,0xB3,0x71,0x7C,0x50,0x09,0x0C,0xF6,0x2F,0x58,0xB0,0xC0,0x2F,0x45, + 0x6C,0xE4,0x82,0xEC,0x0B,0x75,0x52,0x0B,0x8B,0xBE,0xF0,0x17,0x6B,0x3E,0x12,0x10, + 0xFC,0x42,0x3F,0x5A,0x09,0x04,0xCC,0xBC,0x11,0xFC,0xC2,0xF0,0x93,0x21,0x6A,0xDD, + 0x4E,0x0B,0x7E,0x38,0xAD,0xF7,0x4D,0xEB,0x04,0x3C,0xEE,0x2E,0x11,0x0C,0x17,0x3F, + 0x6B,0xE3,0xB1,0x45,0xDC,0x61,0x9F,0xFC,0xD6,0x70,0x2A,0x6A,0xF6,0xDE,0xD7,0x0A, + 0x43,0x00,0x41,0xC3,0x30,0xC8,0x01,0x41,0x23,0x9F,0x01,0xF3,0xA8,0xD9,0x2E,0xCD, + 0xA1,0x69,0x31,0x1B,0x33,0xBB,0x94,0xC6,0x91,0xF1,0xC1,0xFB,0x43,0x1A,0x9E,0x1A, + 0xAE,0xBA,0xE4,0x1A,0xB6,0x65,0xE0,0x8D,0x4F,0xFE,0x41,0x5B,0xF7,0x6C,0x64,0x2D, + 0x79,0x7A,0x76,0xEF,0xC5,0xB6,0x3C,0x07,0x12,0x42,0x30,0x8E,0xEC,0x09,0xD6,0x9D, + 0x8D,0xD2,0x77,0x23,0x8A,0xBC,0x26,0x1E,0x24,0x8B,0xC0,0x30,0x28,0x59,0x68,0x24, + 0x26,0x41,0xD0,0x5A,0x45,0xD3,0x62,0xB6,0x95,0xD9,0x85,0x1A,0x4F,0xFE,0x6E,0x91, + 0xA5,0x5C,0x35,0xE9,0x3A,0x71,0xA8,0xC9,0x08,0x2C,0x32,0x52,0x3F,0x6D,0xE1,0x8D, + 0xFE,0x72,0x49,0x6D,0x3D,0xE5,0x9E,0x95,0xBF,0xF8,0x5D,0x65,0x5B,0x53,0x17,0x3A, + 0x55,0xAB,0xB7,0xF4,0x5E,0x06,0xB1,0x17,0xA5,0x3E,0x34,0x52,0x86,0x5F,0x7D,0xF5, + 0x55,0x4D,0x5A,0x67,0xCD,0x8A,0x19,0x93,0x26,0x94,0x52,0xEF,0x70,0xE7,0x44,0xDA, + 0x5D,0x20,0x01,0x77,0xF9,0xAE,0xD9,0xF7,0xB1,0x96,0x81,0xE6,0x16,0xDB,0x33,0x82, + 0xD2,0x12,0x3D,0xDF,0x5F,0x6E,0x6E,0x69,0xA5,0xEA,0x76,0xE5,0xE0,0x91,0x4D,0x24, + 0x7D,0x69,0x3C,0xDE,0x4E,0xD7,0x99,0xDD,0x9C,0xF1,0xBE,0xC2,0xF9,0x56,0xD6,0xF2, + 0x1E,0x70,0xB9,0x6D,0x05,0xC5,0x50,0x96,0xF9,0x8D,0x37,0xDE,0xD0,0x9C,0xA0,0x35, + 0x29,0x66,0x7C,0x50,0x4A,0x93,0x26,0xF0,0x01,0xE3,0x83,0xF6,0x87,0x60,0xD7,0x2F, + 0x07,0xB6,0x0A,0x48,0xC3,0x44,0xE6,0x17,0xFA,0xBF,0x6C,0xB7,0x22,0xBF,0xBE,0x66, + 0xBE,0x0E,0x16,0x5A,0x2D,0xDE,0x08,0x7E,0xB5,0xB5,0x34,0x53,0x59,0x5B,0x28,0x6B, + 0x39,0x88,0xA4,0x2F,0x8D,0x87,0xA9,0x8F,0xCD,0xC0,0xFB,0x86,0xB6,0xB5,0xB0,0x96, + 0x77,0x41,0x50,0x0C,0xC3,0x56,0x4A,0x60,0xE9,0xA2,0x4F,0x3E,0xF9,0x44,0x53,0x82, + 0xD6,0x9C,0x98,0x91,0x6A,0x67,0x6B,0x8D,0x27,0x24,0x84,0xF8,0x7A,0x8D,0xAE,0xC5, + 0xEF,0x3F,0x2B,0x4C,0xB9,0x7D,0xA8,0x70,0xEF,0xD3,0xFF,0x27,0x26,0x81,0x20,0x85, + 0x13,0x59,0x5C,0xF3,0x9F,0xBE,0x59,0x38,0x71,0xF2,0x88,0xCD,0x0B,0x04,0x49,0x25, + 0x8F,0xDE,0xF5,0x8C,0x99,0xCB,0xAD,0x44,0x7C,0x6C,0x12,0xDB,0xF2,0x1C,0xBA,0x90, + 0x50,0x4A,0x08,0x72,0x6C,0xF1,0x37,0xB5,0xE0,0x7D,0x5B,0x83,0x9C,0xB4,0xFA,0x6E, + 0x00,0xF9,0x0A,0xB6,0x12,0x4B,0xB0,0xF0,0x1D,0xCA,0x36,0xB3,0x66,0xA7,0xA3,0x29, + 0x31,0x63,0x2C,0xD9,0x56,0xCE,0x2C,0xEE,0x94,0xBE,0x5C,0x07,0x19,0x56,0xF8,0xCA, + 0xBB,0xC7,0x08,0xCB,0xBE,0x5D,0x22,0xF6,0x79,0x2D,0xD9,0x79,0xE0,0x67,0xBA,0x75, + 0xE1,0xAF,0x68,0xE5,0x8F,0x9F,0xDB,0xBC,0x40,0xAE,0x9B,0xF6,0x7F,0xBA,0xFF,0x2E, + 0xFE,0x8E,0x92,0xE3,0x53,0xD9,0x1E,0x79,0x12,0xBC,0x20,0xE6,0xF0,0xB0,0x30,0x4A, + 0x08,0x6E,0x63,0x2D,0xF7,0x82,0xF7,0xD5,0x85,0x84,0xB1,0x56,0xE7,0x80,0xC4,0x12, + 0xE4,0xF8,0x2B,0x81,0x6C,0x44,0xAD,0x0C,0x59,0x69,0x46,0xCC,0xC6,0xD2,0xA9,0x4A, + 0xF8,0xFA,0x92,0x30,0x0F,0xFE,0xED,0x76,0x01,0x56,0xB8,0xBA,0xAE,0x92,0xED,0x91, + 0x07,0xC3,0x4E,0x7F,0x79,0x63,0xA1,0x5D,0x41,0x23,0x3F,0x3B,0x38,0xD8,0xB6,0xD5, + 0x4A,0x88,0x4D,0x64,0x5B,0x9E,0x23,0xB9,0x5B,0x34,0x0D,0x0F,0x3F,0xC7,0x5A,0xEE, + 0x65,0x40,0xC8,0x59,0x8A,0xEB,0xEA,0x5A,0x46,0x99,0x3B,0xC0,0x64,0x1D,0x2C,0x50, + 0x27,0x07,0x46,0x5A,0x6C,0x0D,0x9D,0x7A,0x13,0xCD,0x88,0xD9,0xD6,0x10,0x14,0x3E, + 0x48,0x5F,0x9A,0xFD,0x24,0x05,0x05,0x07,0x6E,0x7D,0x74,0x86,0xB0,0x45,0x26,0x47, + 0x1A,0x96,0x73,0xD8,0x80,0xD1,0xB2,0x79,0xD8,0x10,0xF4,0xBE,0x7C,0xDB,0x69,0x84, + 0x65,0x95,0x76,0xCA,0x23,0x29,0x8C,0x31,0x1F,0x3E,0x7E,0x50,0xC0,0xCD,0xE2,0x93, + 0x6F,0xDE,0x13,0x70,0x7E,0x6C,0xB7,0x53,0xF4,0xCC,0x48,0xD7,0x4D,0x8D,0x6C,0x64, + 0x2D,0xF7,0x72,0x75,0xD7,0xB3,0x34,0xA0,0x8F,0x36,0xBA,0x54,0x58,0x69,0x12,0xCB, + 0xC8,0xCA,0x81,0xF8,0x8E,0x16,0xFA,0xCF,0x9A,0xF8,0xA0,0x6C,0x4D,0x49,0x43,0x61, + 0x81,0xFB,0xEE,0xBB,0xCF,0x27,0x85,0x0C,0xD1,0xA0,0x3F,0x6C,0x29,0x3A,0xF4,0x77, + 0x11,0x99,0x46,0x40,0x8B,0xED,0x12,0xA7,0x3F,0xC2,0x72,0xC3,0x32,0x1B,0xC1,0xD0, + 0xD2,0xA7,0x8B,0xD7,0x28,0xFE,0xED,0xA3,0x6F,0xE8,0xAD,0x78,0x01,0xA5,0x25,0x65, + 0xD0,0x8A,0x7F,0x6D,0x30,0x7B,0x2D,0x6E,0x0E,0xAF,0x7F,0xF2,0x82,0xE8,0xCE,0x4B, + 0xC1,0x0D,0x05,0xD3,0x2B,0xA5,0xB3,0xB1,0x1C,0x21,0x77,0xE7,0x5E,0xE1,0x8E,0xB2, + 0x14,0x31,0xD1,0xC3,0x5D,0xA0,0xBF,0xFC,0x65,0x5A,0x11,0x4D,0x1C,0x39,0x4C,0x53, + 0xDF,0xFD,0x0B,0x2F,0xBC,0xA0,0x38,0xCA,0x82,0xFE,0x75,0x67,0x16,0x08,0x74,0x9B, + 0x65,0xDE,0x73,0xA4,0x4E,0xC0,0xE3,0x83,0xD5,0x85,0xA6,0xC7,0xF6,0x43,0x35,0xE2, + 0x3E,0x3C,0xD8,0x61,0x56,0xD8,0xEA,0x27,0x1B,0x23,0xD7,0xBE,0x08,0xA2,0xD3,0xBF, + 0x7D,0xE6,0xFF,0xAC,0x84,0x0C,0x2B,0x8C,0x0A,0x22,0x52,0x21,0x03,0x4C,0xAE,0xC0, + 0x6C,0x29,0x29,0x85,0x25,0x47,0x09,0xD6,0x93,0x35,0x5D,0xE2,0x5F,0x1F,0xBF,0x20, + 0xDC,0xF5,0xC4,0x6C,0x2B,0x21,0x03,0xEC,0xBB,0xEB,0x89,0xEB,0xC5,0x9B,0x0F,0xDB, + 0xE5,0x10,0x13,0x86,0x0D,0xD6,0xFD,0x2D,0xA1,0x82,0xB5,0xDC,0xC3,0xFC,0xD8,0x5A, + 0xEA,0x95,0x9E,0xC6,0x5A,0xDA,0x01,0x01,0x58,0x25,0x3A,0xBB,0xFF,0xEC,0xF4,0x5D, + 0xE4,0xC8,0xC9,0x06,0xE1,0xDB,0xAD,0xE5,0xB4,0x69,0x5F,0x0D,0xD5,0x9E,0x51,0x3F, + 0x7C,0xD0,0xBF,0x67,0x8C,0xDE,0x32,0x05,0x51,0xAF,0xEE,0x51,0xA4,0x6B,0x6F,0xA6, + 0xDD,0xBF,0x6C,0xA5,0x2E,0x3A,0xF9,0xC4,0x00,0xAC,0xF5,0xD4,0xA7,0x4F,0x1F,0xD6, + 0x32,0x70,0xE8,0xC4,0x19,0x6A,0x39,0x6F,0x5E,0x7E,0x46,0x8E,0xE8,0x2E,0x21,0xD4, + 0x3B,0x3D,0x8A,0x86,0xF4,0xB1,0xCE,0x01,0xF6,0x06,0xFF,0x59,0xFE,0x86,0xDE,0x0A, + 0xFE,0x83,0xB5,0x0C,0x60,0x58,0x09,0xD1,0x68,0xD6,0x94,0x05,0x91,0x6E,0x04,0xC8, + 0x8C,0xC8,0x59,0x58,0x00,0xF7,0xF8,0x9A,0xDF,0x29,0x07,0x66,0x8C,0xAF,0xC3,0x0C, + 0xAB,0x97,0x3F,0xF8,0xAB,0x78,0x63,0xB0,0x07,0xD2,0x3F,0xFF,0xF5,0xE7,0x8F,0xC4, + 0xF4,0x51,0xB6,0x4B,0x35,0xBB,0xF2,0x8F,0x09,0x2F,0x14,0x05,0x89,0xD3,0x18,0x5D, + 0x65,0x58,0xD8,0x59,0xFA,0x67,0xC6,0x69,0x9A,0x30,0x58,0x9B,0xC1,0x4E,0x5B,0xB3, + 0xF7,0x90,0x95,0xD8,0x59,0xC9,0x4C,0x0E,0xFF,0xD2,0xA2,0x8A,0xB3,0xC2,0x7B,0xDF, + 0x14,0xD2,0xE6,0xFD,0xD5,0x6C,0x8F,0xB6,0x09,0x0B,0x09,0xA2,0x11,0xFD,0xE2,0x68, + 0xF8,0x05,0xB1,0x34,0x73,0xBC,0xF7,0xC6,0xA6,0xD1,0x27,0x45,0xBF,0xD7,0xC8,0x5D, + 0xB3,0xEF,0xA7,0xDF,0xDC,0xF0,0x80,0xDD,0xDF,0x0F,0x8B,0x0E,0x91,0x4A,0xDD,0x6D, + 0x58,0x6C,0x58,0x6E,0xD6,0x14,0xB1,0x27,0xE6,0xAE,0xD1,0xDD,0x28,0x35,0xB1,0x3B, + 0xE5,0x9F,0x38,0xC4,0xF6,0x98,0x33,0x71,0xE4,0x54,0xD1,0x6B,0xB0,0x7C,0x1E,0x37, + 0x81,0x77,0x9F,0xFD,0xCC,0xA9,0x9C,0xEE,0xDC,0xBD,0x87,0x84,0xFB,0x4F,0x76,0x13, + 0xA7,0x31,0x3A,0x4B,0xCF,0xE0,0x66,0x5A,0x92,0x56,0x41,0x97,0x8E,0x18,0xEC,0xB5, + 0xEF,0xCA,0x19,0x6C,0x95,0x1F,0xEA,0xAC,0xF2,0xBD,0x0E,0xFD,0xC2,0x4D,0xFB,0xAA, + 0x84,0xE7,0x96,0xE6,0xAB,0xB2,0x8C,0x5A,0x04,0xD6,0xFA,0x9E,0xAB,0xB3,0xE9,0xF2, + 0x51,0x29,0x5E,0xF9,0xA0,0x61,0x9D,0x77,0x1D,0xDA,0x26,0xD6,0xF0,0x9A,0x36,0x7E, + 0xA6,0xEA,0xDF,0xF9,0xC4,0xCB,0x0F,0x08,0xD2,0xA2,0x03,0x10,0xDE,0xDF,0x1F,0x79, + 0xD3,0xEC,0xF5,0xF6,0xC4,0xAC,0x04,0xFA,0xE1,0xE8,0x1F,0x1B,0x2B,0x7F,0xC2,0xFD, + 0xFE,0x60,0xC5,0x9B,0xE2,0x73,0x46,0xD0,0x87,0x7E,0xE3,0xC9,0x8F,0x9D,0xFA,0x8C, + 0x36,0xEC,0xDC,0x27,0xFC,0xA5,0x2A,0x4E,0x9C,0xC6,0xE8,0x28,0xB0,0xC8,0x2F,0xA4, + 0x54,0xD3,0x65,0xC3,0x7D,0x63,0x3E,0xBA,0xAD,0xFE,0x33,0x86,0x51,0xBD,0x3D,0xFA, + 0xA2,0xFA,0x97,0x7D,0xBD,0xA9,0x4C,0x78,0xF5,0x0B,0xFB,0xAE,0x9A,0x2F,0x30,0x6D, + 0x64,0x0A,0x3D,0x3C,0x47,0xBB,0xF3,0x9E,0x11,0xA8,0x42,0xFF,0xD6,0x08,0x02,0x66, + 0x1B,0x3F,0x3A,0x68,0x76,0xBE,0x48,0x2E,0xB9,0xF1,0xF7,0x97,0xB3,0x96,0x7D,0xF0, + 0x1E,0x37,0x5D,0x75,0x3B,0xFD,0xF6,0xE6,0x47,0xAC,0xFE,0x6E,0x39,0x41,0x23,0x31, + 0x05,0xE3,0xD9,0xAC,0xE9,0x10,0x28,0x2C,0x80,0xF9,0xC8,0x98,0xC6,0xA8,0x26,0x28, + 0x86,0x60,0xD7,0x82,0xB8,0x1A,0xBA,0xB4,0x6B,0x2B,0x8D,0x1B,0xE2,0xF9,0x92,0x41, + 0xEE,0x02,0x33,0xFA,0xDE,0x7F,0xFF,0x7D,0xD6,0x32,0x07,0x73,0x07,0x1E,0x79,0xC4, + 0xFA,0xB3,0xF6,0x24,0xAA,0x7E,0x19,0x2C,0xF2,0xD3,0x4B,0xF2,0x58,0xCB,0x1A,0xB8, + 0xB2,0xFD,0xB3,0x0C,0xE3,0x81,0x83,0x7A,0x75,0x15,0x7F,0x82,0x93,0x95,0x4D,0xA6, + 0xFE,0xB4,0xDA,0xBE,0xAE,0xB7,0x98,0x31,0x2E,0x95,0xEE,0x9F,0xAD,0xDD,0x32,0xB6, + 0xB3,0x7E,0x3B,0x51,0x90,0x06,0xCF,0x60,0x4D,0x67,0x4C,0x9E,0x6D,0x3A,0x5F,0xA4, + 0x82,0x22,0x83,0x4C,0x0D,0xB0,0xEC,0x28,0xEE,0x67,0x2B,0x5A,0x6D,0x59,0x19,0x54, + 0xCE,0x1B,0x70,0x04,0x14,0x16,0xC0,0x7C,0xE4,0x72,0xFD,0xD7,0xFF,0xF9,0x99,0x18, + 0x51,0xD4,0x85,0xE7,0xC3,0xC4,0x7C,0xEB,0x98,0xA0,0x76,0xCA,0x09,0x69,0x12,0x5D, + 0xEA,0xE9,0x31,0xE7,0xE8,0xC2,0x90,0xB3,0x94,0x95,0x99,0x41,0x99,0x69,0xA9,0x9A, + 0xFD,0x3E,0x94,0xB0,0xD5,0x7F,0x1E,0x31,0x62,0x04,0xCD,0x9C,0xA9,0xDE,0x23,0x73, + 0x15,0xBB,0xBF,0x08,0x81,0xAE,0x07,0xFF,0xB9,0x57,0x56,0x88,0x71,0x31,0x61,0x74, + 0xC7,0x55,0x3D,0x1D,0x72,0x5B,0x57,0xFE,0xB0,0x5B,0xF8,0xFE,0x87,0xF5,0x74,0xE6, + 0x7C,0x37,0x6A,0x67,0xC1,0xF4,0x33,0xED,0x86,0x0A,0x15,0x31,0x31,0x31,0x94,0x90, + 0xA0,0x5C,0x3F,0x4A,0x7A,0xA3,0x30,0x22,0xBD,0x91,0x94,0xD7,0x34,0x53,0x45,0x8D, + 0x61,0xF2,0x01,0x6E,0x24,0x3B,0xF2,0x6A,0xA9,0xE1,0x9C,0x72,0xAA,0xE1,0x93,0xB7, + 0xF7,0xA3,0xF1,0x83,0x12,0x35,0x79,0x01,0x59,0x56,0xDC,0x1C,0x7B,0xD1,0x25,0xF4, + 0xF2,0xE3,0x4B,0x4C,0xE7,0x6A,0x4B,0xCC,0x38,0x28,0x55,0xDF,0xF7,0xBD,0xF1,0xCA, + 0x5F,0x8B,0xA2,0x54,0x33,0xE4,0x84,0xBE,0x3A,0x22,0xDA,0xC6,0x1B,0x88,0x3B,0x2B, + 0x7B,0xE6,0x1F,0x2F,0x14,0xAA,0xEA,0x1B,0xA8,0xAD,0xF9,0x1C,0x85,0xB6,0x9F,0xA7, + 0xB6,0xA0,0x10,0xD2,0x85,0x77,0xA1,0x6E,0x51,0x91,0x94,0x16,0xDF,0x8D,0xE2,0xE3, + 0xE3,0x35,0xF9,0x1D,0xA8,0x65,0xE9,0xD2,0xA5,0xC2,0x91,0x23,0x47,0x58,0xCB,0x1C, + 0xCC,0x91,0xF6,0xD6,0x02,0x75,0x76,0x7F,0xC9,0xFC,0x17,0x77,0x09,0x47,0x4B,0xAC, + 0x93,0x02,0x26,0x0D,0x4D,0xA2,0xC7,0x6F,0xBD,0xC0,0xE1,0x93,0x54,0xEA,0x67,0x78, + 0xCA,0x2D,0xC1,0xB0,0xD8,0x7F,0x7F,0x28,0x11,0x85,0x6D,0x09,0xA2,0xDD,0x6F,0x3C, + 0xA4,0xCD,0xAC,0x32,0x39,0x37,0xFA,0x83,0x45,0x5F,0x9B,0x22,0xCD,0xF6,0x2C,0xB3, + 0x9A,0xC8,0xB9,0x1C,0x18,0x0A,0x43,0x10,0xCC,0x32,0xE0,0xC6,0x51,0x06,0xD9,0x8B, + 0x6F,0xBE,0xF9,0xA6,0x6C,0xD2,0x93,0x37,0x57,0xCA,0xB0,0x39,0xCE,0xFC,0xDD,0xB6, + 0x0A,0xB7,0x0A,0x19,0xAB,0x33,0x2A,0x05,0x0C,0x6C,0xE5,0xBF,0xBA,0x02,0x86,0xA6, + 0xFE,0x76,0xF7,0x00,0xDD,0x7D,0xD7,0x59,0xCF,0xED,0xC5,0xDF,0x86,0x2E,0x04,0x6B, + 0x6A,0x0A,0xD4,0xFF,0xB2,0xCC,0x0C,0xFB,0xEF,0xAA,0x8E,0xFE,0x59,0x73,0x4B,0x47, + 0xB4,0xDB,0x9D,0xC0,0x1A,0x73,0x21,0x3B,0x06,0x8A,0x1A,0x8C,0x19,0x33,0x86,0xB5, + 0xCC,0xC1,0xA4,0x21,0x6F,0x4D,0xC6,0xB0,0x29,0x66,0x0C,0x41,0x59,0x02,0x6B,0xE6, + 0x8C,0x90,0x51,0x35,0x64,0xC7,0x8E,0x1D,0xAC,0x65,0x0E,0xEE,0x5E,0x9E,0x2E,0x8D, + 0x8B,0x61,0xA9,0x71,0x03,0xAD,0x5D,0xF8,0x2D,0xFB,0xAD,0x2D,0xB6,0x56,0xB0,0xAC, + 0xFD,0x85,0x7A,0xDA,0xB0,0xC8,0xD8,0xAE,0xB1,0x93,0xE3,0xCD,0xF1,0x2E,0x28,0xDD, + 0x0B,0xEF,0x52,0x0E,0x5B,0x85,0x28,0xDD,0x89,0xA2,0x98,0x61,0x95,0xE5,0x92,0x41, + 0xE4,0x2C,0x9C,0x1A,0x30,0x89,0x42,0x29,0xF7,0xDA,0xD6,0xBC,0x51,0x77,0x32,0x75, + 0xA4,0xF5,0x2C,0x22,0x2D,0x8F,0x97,0xC3,0x42,0xF6,0xCD,0xEA,0xCF,0x5A,0x06,0x90, + 0x1E,0xAA,0x26,0x53,0x2B,0x5C,0xC5,0x14,0x49,0x8E,0x7B,0x41,0xD1,0x7C,0x39,0x50, + 0x2D,0xE7,0xB3,0xCF,0x3E,0xF3,0xB8,0x75,0x56,0x14,0xF3,0x8A,0x8D,0xA5,0x6C,0xAB, + 0x03,0x44,0x80,0x2F,0xCC,0xEA,0xEA,0xB0,0x05,0x45,0xCA,0xA6,0xD2,0xB2,0x9A,0x70, + 0x4F,0xBC,0x55,0x68,0x00,0xC1,0x2E,0x04,0xCC,0xA4,0xD8,0x0A,0x90,0x69,0x81,0x27, + 0xE6,0xFF,0x9D,0x6D,0x19,0xC0,0xD4,0x49,0xA4,0x89,0xEE,0xC9,0x93,0xF7,0x72,0x8C, + 0xC4,0x77,0xF3,0xFC,0x8C,0x29,0x8E,0x39,0x98,0x9E,0x8B,0x84,0x11,0x39,0xF6,0xEF, + 0xDF,0x2F,0x0E,0x65,0xB1,0xA6,0x47,0x90,0x15,0xF3,0xC1,0x13,0xF5,0xB2,0x7D,0xE5, + 0x2B,0xC7,0xD8,0x9E,0x3F,0xAB,0x84,0xD2,0x0A,0x14,0x70,0x4B,0xAE,0xB8,0xE2,0x0A, + 0xAF,0xF6,0xCF,0x32,0x53,0xBA,0xB0,0xAD,0x0E,0x10,0xB1,0x67,0x9B,0x9A,0x03,0x01, + 0xAF,0x7B,0xE7,0x3C,0xCC,0x5A,0x06,0x20,0xE8,0xFF,0xFD,0xF8,0x99,0xFA,0x24,0x01, + 0x8E,0xD7,0x40,0xE6,0x97,0x52,0xB9,0xA1,0xD5,0xAB,0x57,0xB3,0x2D,0xCF,0x20,0x2B, + 0xE6,0x2D,0x07,0x6A,0xD8,0x56,0x07,0xE8,0x6F,0xF6,0xC9,0x88,0x76,0xF8,0xFA,0x41, + 0xE7,0x5F,0x29,0xE8,0x35,0x65,0xCA,0x14,0xB6,0xE5,0x3D,0x52,0xE2,0xAC,0x8B,0xCF, + 0x35,0x36,0x69,0xDB,0x3A,0x63,0x52,0x06,0xD2,0x41,0x2D,0xD1,0xEC,0x1D,0x28,0xC0, + 0xC1,0x9C,0x02,0x39,0x10,0x0C,0x43,0x0D,0x78,0xD6,0x74,0x3B,0xB2,0x62,0x5E,0xBF, + 0xAB,0x8A,0x6D,0x75,0x20,0xD7,0xDF,0x54,0x83,0xD2,0xE2,0x5C,0x19,0x19,0x19,0x9D, + 0x52,0x6C,0x00,0x29,0x9D,0xBE,0x08,0xF2,0xBA,0x91,0x95,0x85,0xC9,0x10,0x1C,0x6D, + 0x83,0xB9,0xF7,0x9D,0x11,0x0C,0xB3,0x12,0x33,0x26,0x52,0x18,0x13,0x2F,0x8C,0xA0, + 0x9F,0xE9,0x4C,0x72,0x85,0x2D,0xAB,0xAC,0x14,0x2C,0xF0,0x34,0x35,0x0E,0xCC,0xF0, + 0xD2,0x1A,0x48,0xAF,0x5C,0xF6,0xD2,0x77,0x62,0x02,0x89,0x3B,0x40,0x7E,0x37,0xA2, + 0xE3,0xC6,0x08,0x39,0xC7,0x7D,0xD8,0xB2,0xCE,0x9E,0x9A,0x26,0x69,0x25,0xE6,0xF5, + 0xBB,0xAC,0x87,0x3C,0xC6,0x0D,0x72,0x6E,0x55,0x3F,0x25,0xAB,0x8C,0x20,0x41,0x67, + 0x55,0xD7,0x6C,0xF5,0xD1,0x49,0x22,0x46,0x30,0x9B,0x09,0x99,0x60,0x53,0x2C,0xD6, + 0x9F,0xB2,0x24,0x2C,0x54,0xB9,0x76,0x16,0xC4,0x8B,0x32,0x46,0x98,0xA8,0x81,0xC4, + 0x13,0x3C,0x50,0x60,0x10,0xD3,0x2F,0xD5,0x54,0x09,0xE5,0xD8,0x07,0x45,0x0A,0x94, + 0xAC,0xB3,0xAD,0xA5,0x64,0x5D,0xC1,0x4A,0xCC,0xC7,0x4A,0xCF,0xB2,0xAD,0x0E,0x30, + 0x7D,0xD0,0x51,0xD0,0x37,0x50,0xB2,0xCA,0x4A,0xF5,0x94,0xBC,0x81,0x65,0x9F,0x19, + 0x5E,0x47,0x67,0xCD,0x79,0x76,0x85,0x2C,0x3B,0xAB,0x55,0x28,0x15,0xF3,0xC3,0xD4, + 0x4C,0x88,0xD7,0xB2,0x8C,0x11,0x82,0x6A,0x98,0x47,0x0D,0x81,0x43,0xD4,0xCE,0x16, + 0x2A,0xE0,0x74,0xA0,0x64,0x9D,0x51,0xD5,0x13,0x79,0x17,0xAC,0xE9,0x36,0xAC,0xC4, + 0xBC,0xF7,0xA8,0x75,0xA1,0x80,0x21,0xBD,0xBB,0xB1,0x2D,0xF5,0x28,0xF5,0x0D,0x90, + 0x20,0xD2,0x99,0x15,0x36,0x6F,0xB8,0x34,0x5D,0xCC,0x29,0x37,0x72,0xCB,0xB4,0x4C, + 0xB6,0xE5,0xDB,0xA8,0xF9,0x40,0x91,0xEF,0x2D,0x9D,0x63,0x2D,0x07,0xE6,0x51,0x43, + 0xD4,0xB7,0x2D,0x9C,0x29,0x96,0x25,0x92,0x3E,0x60,0xBD,0xA5,0xCB,0xC9,0x72,0x6C, + 0x63,0xCB,0x3A,0x7B,0xA2,0xEF,0x6C,0x26,0x66,0x0C,0xD1,0x58,0x8E,0xBB,0x22,0x60, + 0x94,0x9A,0x10,0xE1,0x90,0xF8,0x60,0x95,0x95,0x6A,0x5F,0x7B,0x2A,0x6D,0x53,0x2D, + 0x3D,0x52,0x22,0x75,0xFF,0x7D,0x7A,0x94,0xEE,0x85,0x7B,0x07,0xD2,0xEB,0xBF,0xBF, + 0x88,0x6E,0x9A,0xE2,0x9D,0x24,0x78,0x77,0x53,0x73,0xDA,0x3C,0x48,0x69,0x4F,0x61, + 0xB0,0xC8,0xD2,0x89,0x1B,0x46,0x90,0x32,0xAA,0xB6,0x24,0x2F,0xAC,0x37,0xAA,0x96, + 0x70,0xD4,0xA3,0xE4,0x85,0x7A,0xC2,0x3A,0x9B,0x89,0x59,0xCE,0x2A,0x0F,0xF6,0x23, + 0xAB,0x2C,0x05,0xAE,0xB5,0x33,0x43,0x6D,0x5A,0xA1,0x59,0x52,0x89,0xC4,0x1E,0x98, + 0xB4,0xB1,0xC8,0x62,0x5D,0x2A,0xCC,0x6F,0x5E,0xFC,0xD8,0x7B,0x84,0x45,0xDD,0xBF, + 0x7D,0x7B,0xAB,0x0E,0xB3,0xA4,0xD4,0x88,0xBA,0xBB,0x17,0x56,0xC9,0xF0,0x27,0x90, + 0xE6,0xA9,0x34,0xEE,0xEC,0x6E,0xEB,0x6C,0x26,0xE6,0x8A,0x5A,0xEB,0x0B,0xA4,0x57, + 0x77,0xC7,0x4A,0xC0,0x68,0xD9,0x2A,0x07,0x2A,0x8F,0xBE,0x78,0xAF,0x59,0x19,0x22, + 0x08,0xF9,0xF5,0x27,0x3F,0xA2,0x71,0x43,0x27,0x9A,0x6E,0x66,0x98,0x60,0x01,0x51, + 0x63,0xDE,0x34,0x16,0x77,0x97,0x1B,0x02,0xC3,0x74,0xCA,0x27,0xF4,0xCF,0x73,0x1C, + 0x03,0xF3,0x9A,0xE5,0x80,0x75,0x76,0x27,0x66,0x62,0x2E,0x3E,0x65,0x5D,0xCC,0x1C, + 0x13,0x2B,0x1C,0x41,0xA9,0xD2,0xA6,0x96,0xAC,0xB2,0x16,0x41,0x14,0xD9,0x38,0x4C, + 0xE4,0x8E,0xE0,0x53,0x34,0x13,0x23,0xAA,0x88,0x58,0x16,0xF3,0x5B,0x78,0xD7,0x33, + 0xA6,0xB2,0x41,0x96,0xA0,0x00,0xC2,0xB3,0x0F,0xBE,0xA2,0x5B,0xB7,0x64,0x97,0xEE, + 0xE7,0x4F,0x8F,0x9A,0x3D,0x50,0xAC,0xC0,0x1B,0xEB,0x3D,0xFB,0x1B,0xC8,0x72,0x54, + 0xB2,0xCE,0x28,0x6E,0xC0,0x36,0x5D,0xC6,0x4C,0xCC,0x72,0x29,0x9C,0x99,0xC9,0x8E, + 0x59,0x66,0xA5,0x49,0xDA,0xDC,0x2A,0x1B,0x40,0x49,0x20,0x08,0x16,0xC1,0xA8,0x67, + 0x5E,0x7F,0x54,0xB8,0xF3,0x8F,0xD7,0x89,0xC1,0x25,0xAC,0x35,0x65,0x1C,0x26,0x32, + 0x06,0x9F,0x50,0x3C,0x5F,0x69,0x65,0x0B,0xCB,0x12,0xBE,0x96,0xC0,0xB2,0xE2,0x77, + 0x59,0x96,0x03,0xBA,0xE9,0xCA,0xDB,0xCD,0x2A,0x96,0x70,0xBC,0x83,0x92,0x75,0xB6, + 0xB5,0x1C,0x93,0xA3,0x98,0x89,0xD9,0x72,0x96,0x14,0x86,0x6D,0x10,0x30,0x62,0x4D, + 0xBB,0x6C,0xDF,0xBE,0x5D,0x90,0x9B,0x19,0x85,0x88,0x5E,0xA0,0x5B,0x65,0x58,0x5E, + 0x2C,0x0C,0x87,0xDA,0x5E,0x10,0x2C,0x82,0x51,0x98,0xD2,0xB8,0xBF,0x40,0xF9,0xCB, + 0x44,0xE5,0x4C,0x44,0x9F,0x51,0x42,0xC8,0x32,0x8A,0xDC,0x62,0x67,0x3E,0x73,0x78, + 0x58,0x04,0xFD,0xFD,0xDD,0x3F,0xB1,0x96,0x01,0x14,0xF3,0x5B,0x30,0xF7,0x09,0x2E, + 0xE4,0x4E,0x40,0x69,0x0E,0x02,0x56,0xC3,0x70,0xD7,0x04,0x0C,0x93,0x98,0xE5,0x26, + 0x1B,0xC8,0x4D,0x4A,0xB0,0x85,0xD2,0x5D,0x66,0xE0,0xC0,0x81,0x6C,0x2B,0x70,0xD9, + 0xBA,0xFB,0x27,0xD9,0x02,0xF4,0x6A,0x80,0x15,0x5E,0xF0,0xDC,0x1D,0xB4,0xE8,0x9D, + 0x3F,0x99,0xBE,0xA3,0xEA,0x3A,0xEB,0x94,0x5B,0x29,0xEB,0x7F,0x5E,0x6D,0x55,0x46, + 0x17,0xFD,0x61,0x4E,0xE7,0xA1,0xB4,0xBC,0x0D,0x66,0x54,0xB9,0x03,0x93,0x98,0x2B, + 0x6A,0xAD,0x17,0xEE,0x76,0xC4,0xC5,0x46,0xE9,0x14,0xA5,0x69,0x8E,0x5A,0x14,0xF3, + 0xD6,0xED,0xBB,0x04,0x4F,0x0C,0xDC,0x2B,0x61,0xEC,0xC3,0x2A,0x81,0x52,0x3D,0x28, + 0x71,0x8B,0x07,0xB6,0xE5,0xF8,0x72,0xED,0xC7,0x62,0x42,0x07,0xB6,0x1B,0xCE,0x5A, + 0xAF,0x22,0x29,0xE5,0xBF,0xAB,0x3E,0x60,0x5B,0x06,0xE0,0x5E,0x2B,0xF5,0x93,0x39, + 0xDE,0x41,0x69,0x98,0xCA,0x5D,0x62,0x36,0x7D,0xB9,0x5F,0x6E,0x28,0x11,0xDE,0xFC, + 0xEA,0x38,0x6B,0x19,0xB8,0xE6,0x92,0xEE,0x34,0x7F,0x56,0x2F,0x55,0x17,0x80,0x52, + 0x95,0x42,0x2D,0xAE,0x15,0x55,0x55,0x55,0x25,0x1C,0xCE,0x3F,0x42,0x09,0x89,0x49, + 0xD4,0xAF,0x6F,0x6F,0xAF,0x9D,0xDB,0x17,0x6B,0x3E,0x12,0xD6,0x6D,0xF9,0x46,0xDC, + 0xEE,0xDB,0xF3,0x42,0x8A,0x8E,0x8C,0x11,0xC5,0x3B,0x7C,0xC0,0x18,0xAB,0x73,0x40, + 0xDE,0xF4,0xBB,0x9F,0xBF,0x2A,0xBA,0xE2,0x96,0xC0,0xC2,0xDA,0x4B,0xFE,0x90,0x82, + 0x21,0x27,0x44,0xAA,0x59,0x93,0xD3,0x89,0xFC,0xE5,0x2F,0x7F,0x91,0xED,0x8A,0x62, + 0xD9,0x1B,0xAC,0x07,0xCD,0x9A,0x4E,0x61,0xB2,0xCC,0xB5,0x0D,0xAD,0x6C,0xAB,0x83, + 0x94,0x38,0xF5,0xD5,0x2A,0x94,0x5C,0xEC,0xCE,0x4C,0xDD,0x54,0xA2,0xB8,0xB4,0x92, + 0x76,0xE9,0xBB,0x29,0x0D,0x8D,0x9E,0x59,0x8A,0x54,0x09,0x4C,0x94,0x40,0x71,0x79, + 0x3C,0xD0,0x77,0xC5,0x4C,0x28,0x39,0x21,0x03,0x54,0xD4,0x44,0x41,0x3E,0x0C,0x21, + 0x59,0x8E,0xFF,0x3E,0xFF,0x8E,0x79,0x5F,0xD8,0x1E,0x18,0x43,0xE6,0x68,0x03,0x5B, + 0xC5,0x0B,0x5C,0xA5,0xC3,0xCD,0xAE,0xB1,0x0E,0xA8,0xC4,0xC5,0x84,0xB2,0x2D,0xDB, + 0xA0,0x03,0x8F,0x8E,0xBC,0x1C,0x17,0x5F,0x7C,0xB1,0xE6,0x2C,0xC2,0xB9,0xB3,0x67, + 0x68,0xED,0xBE,0x76,0x6A,0x69,0xB6,0xCE,0x43,0xD7,0x1A,0x10,0x3B,0x96,0xA7,0xC1, + 0xD8,0xB0,0x91,0xD6,0xF3,0xEA,0x67,0x7E,0xC1,0xF2,0x3B,0xB2,0x9A,0x06,0xC7,0xB3, + 0x28,0x19,0x37,0xA5,0x51,0x20,0x47,0xE8,0xB0,0xCC,0x32,0x53,0x03,0x53,0xE2,0xAD, + 0x27,0xF2,0xCB,0xA1,0x74,0x57,0xB1,0x5C,0xF4,0x4D,0x2B,0x54,0x37,0xE8,0xE8,0x5C, + 0x8B,0x40,0x7B,0x0A,0x89,0x4E,0x96,0x94,0x7A,0xAD,0xDF,0xEC,0x2C,0xE8,0xEB,0xCA, + 0x59,0x57,0x7B,0x27,0x8E,0x1B,0xC0,0x83,0xB7,0x3D,0xC1,0x5A,0x1C,0x2D,0x90,0x93, + 0x93,0x23,0x9B,0xAF,0x0D,0xD7,0x1B,0xA3,0x41,0xAC,0xE9,0x14,0x26,0x31,0xA3,0x80, + 0xBC,0x25,0xF1,0x92,0x09,0x09,0xB6,0x50,0x12,0xB3,0x16,0x03,0x5F,0x79,0xF9,0x47, + 0x85,0x2D,0x87,0x0D,0x37,0xAE,0xB5,0x7B,0x5A,0xA9,0xB0,0xC8,0xBA,0xD6,0x99,0x16, + 0x81,0x8B,0x8E,0x0C,0x2C,0x29,0x52,0x73,0x2B,0x67,0x7A,0xAF,0x9D,0x7A,0xB3,0x53, + 0x2B,0x3A,0x72,0x3C,0x8B,0x92,0x2E,0x5C,0x1D,0x73,0xEE,0xB0,0xCC,0xF5,0xD6,0x96, + 0x59,0xCD,0x04,0x0B,0xB8,0xD8,0xA8,0x3E,0x68,0x09,0x32,0x5E,0x3A,0xA3,0x92,0x88, + 0x3D,0xAA,0xAB,0x6B,0x29,0xAF,0xC4,0xB0,0xDD,0xD0,0x24,0xD0,0xDE,0xA2,0x76,0x9F, + 0xB0,0xCE,0x60,0xD6,0x94,0x39,0x6C,0xCB,0x1A,0xCB,0x3F,0x80,0x8F,0x29,0x6B,0x17, + 0x25,0x57,0x5B,0x69,0x34,0x48,0x2D,0x26,0x31,0x5B,0x2E,0x3F,0xA3,0xB6,0xBC,0x8E, + 0xD2,0xB2,0x96,0x5A,0xB4,0xCA,0x10,0x2D,0xC4,0x0B,0x11,0x1B,0xF1,0x25,0xEB,0x8C, + 0x5C,0x6A,0x35,0x93,0x21,0xBA,0x44,0x44,0xD2,0xCB,0x8F,0xFD,0x9B,0xB5,0x38,0x5A, + 0x03,0x85,0x39,0x30,0xCA,0x23,0x87,0x2B,0x35,0xC2,0x44,0x31,0x97,0x57,0x4B,0xAE, + 0x6E,0x86,0xDA,0xE0,0x97,0x92,0x98,0x95,0x06,0xC8,0x3B,0x13,0x88,0x16,0xE2,0x95, + 0xE2,0x6B,0xD6,0x59,0x2F,0x68,0xB6,0x65,0x8E,0xD4,0x04,0xFF,0xEB,0xCF,0x1F,0xAA, + 0x5A,0x5F,0x8A,0xD3,0x79,0x28,0xC5,0x93,0x94,0xF4,0xA4,0x06,0x51,0xCC,0x72,0x75, + 0xB1,0xE2,0xBB,0xAA,0xEB,0x2F,0x2B,0xB9,0x06,0x5A,0x73,0xB1,0xF3,0x8F,0x1C,0x17, + 0x72,0xF3,0xCE,0x9B,0x59,0x65,0x23,0xBE,0x64,0x9D,0xA3,0x23,0xE5,0x93,0x4F,0x8C, + 0x7F,0x15,0x2C,0xF7,0x80,0x3E,0x43,0xB8,0x90,0x35,0x8E,0x92,0xB1,0x73,0x59,0xCC, + 0x72,0x91,0x6C,0x69,0x35,0x0E,0x25,0xD0,0x5F,0x96,0x1B,0x00,0x8F,0x8D,0x75,0xBC, + 0xCC,0x90,0xA7,0x29,0xAF,0xA8,0xA2,0x0D,0x07,0xE4,0x4B,0xEA,0xFA,0x92,0x75,0xAE, + 0x6F,0xB0,0x9E,0x73,0x2E,0xC5,0x72,0x7D,0x2A,0x8E,0x36,0x51,0x9A,0xAB,0xA0,0x34, + 0x7D,0x58,0x0D,0xA2,0x98,0x1B,0xCE,0xB5,0x89,0x0D,0x29,0x6A,0xDC,0x6C,0x5F,0x71, + 0xB1,0xF3,0x0B,0x8E,0x09,0x10,0xB2,0xAD,0x5A,0x7E,0xBE,0x62,0x9D,0xCB,0xAB,0x58, + 0xF4,0xCE,0x88,0xC5,0x25,0x31,0xF4,0xC2,0x51,0x6C,0x8B,0xA3,0x75,0x30,0x2D,0x58, + 0x0E,0x67,0xFB,0xCD,0xA2,0x98,0x2D,0x4B,0xEB,0x82,0xA8,0x88,0x60,0xB6,0xA5,0x8C, + 0xAF,0x88,0xB9,0xB2,0xAA,0x86,0x76,0x9D,0xB0,0x5D,0x95,0x13,0xD6,0xF9,0x54,0xBD, + 0xF6,0xBB,0xCD,0x79,0xC7,0x2D,0x86,0x01,0x2D,0x4E,0xB9,0x6F,0xD6,0x85,0x6C,0x8B, + 0xA3,0x75,0xDC,0xED,0x6A,0x8B,0x62,0x96,0x43,0x4D,0x34,0xDB,0x17,0xFA,0xCB,0x58, + 0xC1,0xBF,0xB4,0x56,0x90,0xED,0x2B,0x5B,0xB2,0xF5,0x70,0x0B,0xED,0x3F,0x98,0xAF, + 0x59,0x45,0x23,0x5F,0xBB,0xF1,0xAC,0x7C,0xC5,0x53,0x23,0x4A,0xE9,0xA1,0x1C,0xED, + 0xE1,0x11,0x31,0xD7,0xC9,0xE4,0x65,0x47,0xD9,0x11,0xB3,0xAF,0xF4,0x97,0x6B,0x6A, + 0x4F,0xD3,0xFE,0x22,0xEB,0xBF,0x4F,0x8E,0x72,0x7D,0x77,0xB4,0xA1,0xD1,0xBA,0x40, + 0x83,0x56,0xB0,0x9C,0xD2,0x28,0x22,0x91,0xAE,0xE5,0x8A,0x91,0x1C,0x6D,0xE3,0xEE, + 0x7E,0xB3,0x28,0xE6,0x96,0x56,0x6B,0x63,0x14,0x16,0x62,0xFB,0x06,0xEF,0x2B,0x2E, + 0x76,0x4D,0xDD,0x19,0x2A,0xD3,0x5B,0x66,0x35,0x54,0x9E,0x16,0x48,0x68,0xB3,0x0E, + 0x06,0x6A,0x85,0x03,0x47,0xF6,0xB0,0x2D,0x09,0x92,0x3F,0x6D,0x60,0xCE,0x50,0xB6, + 0xC5,0xF1,0x15,0xDC,0xD9,0x6F,0x66,0x01,0x30,0x6B,0x0B,0x6B,0x6F,0x68,0xCA,0x57, + 0xC4,0xDC,0xD6,0x7A,0x8E,0x4E,0x56,0xAB,0xFB,0x5C,0x10,0x20,0x6B,0x39,0xAF,0x5D, + 0x2F,0xB5,0xE0,0xC4,0x41,0xB6,0x25,0x4F,0x9F,0x9E,0xF2,0x33,0x72,0x38,0xDA,0xC5, + 0x9D,0xAE,0xB6,0x28,0x66,0x67,0x56,0x41,0x54,0x72,0x05,0xB4,0x36,0xBE,0xAC,0xD3, + 0x9B,0x2E,0x1F,0x5F,0x91,0xC6,0x84,0xAD,0x12,0x43,0x80,0x5B,0x66,0xDF,0x43,0x49, + 0xCC,0x55,0x55,0xB6,0x2B,0xC9,0xC8,0xA1,0x18,0x00,0x93,0x5B,0xFA,0x54,0x8A,0x52, + 0x3E,0x36,0xC7,0x33,0xA0,0xF6,0x35,0x8A,0xD0,0x2B,0x81,0x19,0x52,0x7C,0x52,0x85, + 0xEF,0xA1,0x94,0xD6,0xE9,0x4C,0xBF,0x59,0x14,0xB3,0xDC,0x8C,0x29,0x5B,0x28,0xAD, + 0x62,0xA7,0x74,0x62,0x9D,0x89,0xA0,0xB7,0xCD,0x21,0x8A,0xB7,0x2C,0x6B,0x42,0xEC, + 0x8F,0xC8,0x75,0x0A,0xF9,0x85,0x32,0xC1,0x2F,0x09,0x59,0xE9,0xB6,0xD7,0x9E,0xE2, + 0x68,0x93,0xA4,0xA4,0x24,0xD9,0x1B,0xB0,0xD2,0x3A,0x6D,0xB6,0x70,0xE0,0x32,0xEF, + 0x40,0xE9,0xAE,0xA1,0x45,0x31,0x07,0x87,0x76,0xA1,0x8C,0x04,0x75,0x06,0x2B,0x36, + 0x4A,0xEF,0x96,0xEB,0x9C,0xFA,0x48,0x3C,0xCE,0x81,0x02,0x99,0xE0,0x97,0x04,0xEE, + 0x62,0xFB,0x2E,0x4A,0xBA,0x71,0xB4,0x46,0x9D,0xE2,0x95,0x6B,0x6B,0xFA,0xA3,0x52, + 0x55,0x11,0x2D,0x8A,0x39,0x39,0x31,0x96,0xFA,0xA4,0xAA,0x13,0x68,0x5A,0x6C,0x10, + 0x75,0x89,0x74,0xAC,0xE8,0xBF,0xB7,0xB0,0x57,0x27,0x9B,0x07,0xBF,0x7C,0x17,0x25, + 0xDD,0x38,0xDA,0x6F,0x16,0xAF,0xF2,0x96,0x56,0xC7,0x22,0x44,0x4A,0xBF,0x44,0x8B, + 0x62,0xCE,0xEA,0xD9,0x43,0x37,0xB4,0x97,0xBA,0xBE,0xFC,0x80,0x1E,0xC1,0x94,0x96, + 0x1C,0xC7,0x5A,0xDA,0xC2,0x9E,0x98,0x79,0xE6,0x97,0xEF,0xA2,0xA4,0x1B,0x47,0xFB, + 0xCD,0xA2,0x98,0xE5,0x26,0x5A,0xD8,0xC2,0x97,0xC4,0x0C,0x12,0xE3,0xA2,0xA9,0x7F, + 0xBA,0x6D,0xEB,0x1C,0xAD,0x77,0x44,0x06,0x64,0x04,0x63,0xDC,0x4F,0x93,0x41,0xA4, + 0xB2,0x4A,0x8B,0x9C,0x6C,0x0B,0xD2,0xF8,0x82,0x6E,0x3E,0x8B,0x52,0xA2,0x95,0x92, + 0x07,0xAC,0x84,0xEC,0x15,0x6E,0x2F,0x95,0x53,0x49,0xCC,0x98,0x74,0xCD,0x36,0x35, + 0xC5,0xD0,0xC1,0xFD,0x75,0x33,0x47,0x86,0x89,0x7D,0x62,0x25,0xA6,0x0F,0x0D,0xA1, + 0x9E,0x3D,0xBA,0xB3,0x96,0xF6,0xB0,0x15,0xC9,0xC6,0x52,0x34,0x7C,0x0D,0x28,0xDF, + 0x45,0x29,0x71,0xC4,0x29,0x37,0xDB,0x12,0x5B,0xA9,0x9C,0x28,0x76,0xCF,0x36,0xCD, + 0x50,0x5A,0x54,0x5A,0x2B,0x4C,0xB9,0x64,0x84,0x6E,0xFE,0xE5,0x91,0x34,0xA2,0xB7, + 0xCE,0x4C,0xD4,0x89,0x31,0x44,0xF7,0x4C,0x8D,0xA0,0x8B,0x07,0x27,0x51,0x46,0x7A, + 0x77,0x4D,0x0A,0x02,0x39,0xD9,0x6C,0x53,0x96,0x9E,0xDD,0x79,0x24,0xDB,0x97,0xC9, + 0xCC,0x94,0x2F,0x24,0xE1,0xA8,0x98,0xC5,0x37,0x99,0xF6,0xFB,0x5C,0xB3,0x8B,0x05, + 0x55,0x39,0x97,0x3E,0x31,0x42,0xF6,0x17,0x20,0xCD,0x6C,0xD9,0xB2,0x65,0xAC,0xD5, + 0x01,0x2A,0x27,0xDC,0x7A,0xEB,0xAD,0x9A,0xB7,0x0E,0x28,0xE8,0x57,0x53,0x53,0xAB, + 0xBF,0x8B,0x19,0x12,0x65,0x04,0x5D,0x18,0xF5,0xEE,0xD5,0x93,0x92,0x93,0x54,0x86, + 0xBC,0x3B,0x01,0xAC,0x0A,0x89,0xC5,0xE4,0x94,0x40,0x39,0x5D,0xD4,0xE2,0x66,0x4D, + 0x55,0x94,0x95,0x1D,0x13,0x0A,0x0B,0x4F,0xB1,0x96,0xF3,0x84,0x84,0xB4,0xD3,0x88, + 0x11,0xE3,0x34,0xFF,0xBD,0x6B,0x9D,0xE7,0x9E,0x7B,0x4E,0xB6,0x96,0xDE,0xD3,0x4F, + 0x3F,0xAD,0xFA,0xB3,0xD5,0xA1,0x64,0xD0,0x6D,0x7F,0xDD,0xC1,0x9A,0x06,0x6C,0x89, + 0x79,0xE3,0xC6,0x8D,0xC2,0xBA,0x75,0xEB,0x58,0xAB,0x03,0xAC,0x72,0x37,0x73,0x26, + 0xAF,0xCF,0xEC,0x09,0xB0,0x6A,0x24,0x16,0x9B,0x53,0xC2,0x19,0x31,0x1F,0x3D,0xBA, + 0x47,0x88,0x89,0x79,0x9C,0x92,0x92,0x0C,0x2B,0x6C,0x38,0xCB,0xA1,0x43,0x1F,0xD3, + 0x85,0x17,0xDE,0xCC,0xBF,0x77,0x17,0x59,0xB2,0x64,0x89,0x20,0x97,0xC2,0x39,0x77, + 0xEE,0x5C,0xCA,0xCE,0xCE,0x56,0xF5,0xF9,0xDA,0x8E,0x0A,0xC9,0x20,0x37,0x53,0x0A, + 0x38,0xE2,0x66,0x63,0x5A,0xE2,0x9E,0xC3,0x47,0x84,0xCD,0x7B,0x0E,0x98,0x3D,0x0E, + 0x1C,0x39,0xAE,0xB7,0x9A,0x35,0x0E,0x8D,0xAD,0x71,0x0C,0xEB,0x54,0x71,0x3A,0x87, + 0x53,0xA7,0x4E,0x09,0xBF,0x1C,0xCA,0xB7,0xBA,0x96,0x8F,0x15,0x16,0x39,0x74,0x1D, + 0x2B,0x05,0xC1,0xE4,0xAC,0xB5,0x12,0x6E,0x13,0xB3,0x9A,0xA9,0x8F,0x05,0x85,0xC5, + 0xC2,0x4F,0xDB,0x76,0x08,0x9F,0xE5,0x95,0xD3,0xE3,0x27,0x42,0xE9,0x77,0x25,0x71, + 0x66,0x8F,0x27,0x8E,0x12,0xE1,0xB9,0x4D,0xFA,0x63,0x8A,0x4B,0xBD,0xB7,0xA8,0x9B, + 0xD6,0x69,0xB6,0xB3,0x7C,0x2B,0xC7,0xFB,0x1C,0x3C,0x56,0x28,0x6C,0xFC,0x79,0xBB, + 0xB0,0xE4,0x70,0x0D,0xFD,0xA1,0x30,0xC2,0xEA,0x5A,0x7E,0x2A,0xBF,0x95,0x3E,0xDF, + 0xBA,0x57,0xD8,0xB8,0x7D,0xA7,0xA0,0xEF,0xFB,0x3A,0x7D,0x2D,0xBB,0x2C,0xE6,0x78, + 0x1B,0x25,0x83,0x9C,0x49,0x33,0x03,0x1B,0xF4,0x7F,0xD4,0x2B,0x47,0x9B,0xE9,0xAA, + 0xF2,0x5E,0x74,0xCF,0xA9,0xEE,0xF4,0xCD,0xB9,0x6E,0xB4,0xB3,0x25,0xD2,0xEC,0xB1, + 0xFC,0x5C,0x9C,0xF8,0xDC,0x74,0xFD,0x31,0x6F,0x1D,0x69,0xA0,0x0D,0xBF,0xEC,0xE5, + 0x82,0xD6,0x13,0x1E,0xA6,0x7E,0xCD,0x2F,0x8E,0x67,0xA9,0xA8,0xAE,0x11,0xD6,0x6D, + 0xDF,0x2D,0xFC,0xED,0x58,0x3B,0x5D,0x5C,0x96,0x43,0x0B,0xAB,0x53,0x69,0x6D,0x53, + 0x57,0xAB,0x6B,0xF9,0x83,0xC6,0x04,0x9A,0x5D,0xDE,0x83,0x6E,0x28,0xCF,0xA4,0x8F, + 0xF2,0x2A,0x29,0x77,0xD7,0x3E,0x9B,0xD7,0xB2,0x3B,0x02,0xC8,0xB2,0x62,0x0E,0x0B, + 0x75,0xD8,0x60,0x53,0x44,0x84,0xFC,0xC4,0x8C,0x13,0x65,0x15,0xC2,0xA7,0x5B,0xF7, + 0x09,0xD7,0x96,0xF5,0xA0,0xD7,0xEA,0x13,0xE9,0x4C,0xBB,0xFD,0xF7,0xC6,0x31,0xCF, + 0xD6,0x24,0xD1,0x6D,0xA5,0x29,0xF4,0xF5,0xB6,0xBD,0x42,0x45,0x8D,0xCA,0x09,0xC9, + 0x01,0x4A,0x4D,0x5D,0x25,0xDB,0xE2,0x78,0x92,0xBC,0xC2,0x93,0xC2,0xD7,0xF9,0x15, + 0x74,0x8D,0xFE,0x5A,0xFE,0xB0,0x41,0x5D,0x72,0x51,0x59,0x5B,0x28,0x3D,0x50,0x95, + 0x46,0xF3,0x4A,0x13,0x69,0xED,0xF6,0x3D,0x8A,0xD7,0xB1,0xD2,0x24,0x25,0x47,0xC6, + 0x9A,0x1D,0x56,0xAD,0x92,0x65,0x96,0x13,0xB3,0x78,0x17,0x3B,0x51,0x43,0xB7,0x94, + 0xA7,0x53,0x75,0xBB,0xE3,0x33,0xAA,0x0A,0xDB,0xC2,0xE9,0xE6,0xF2,0x0C,0xDA,0x90, + 0xEF,0x5A,0xA5,0x7F,0x7F,0xA7,0xB9,0x95,0xBB,0xE1,0x9E,0xE6,0xD8,0xC9,0x52,0xE1, + 0xF3,0xA2,0xB3,0x74,0x57,0x45,0x9A,0x2A,0x83,0x64,0xC9,0xFE,0xD6,0x2E,0x74,0x53, + 0x59,0x3A,0xAD,0x56,0x10,0xB4,0x3B,0x66,0x1C,0x3A,0x7C,0x56,0x4A,0x7D,0x66,0xB9, + 0x93,0xD9,0x7C,0xE4,0x24,0xDD,0x5B,0x91,0x42,0x2D,0x8E,0xFF,0x1A,0x13,0xF8,0xE0, + 0xEE,0x3C,0xA5,0xFC,0x21,0x70,0x88,0x5A,0xDC,0xD8,0xA7,0x2E,0x2F,0xBF,0x5D,0x8C, + 0x50,0x5B,0x3E,0x0E,0x1F,0x7E,0x8F,0x5A,0x5B,0x13,0xD8,0x51,0x81,0x05,0x8C,0xD2, + 0x0F,0xC5,0xA7,0xE9,0x89,0xEA,0x64,0xB6,0xC7,0x39,0x60,0xD0,0xEE,0x29,0x4F,0x95, + 0xED,0x3E,0x2A,0xB9,0xD9,0x0E,0xF5,0x99,0x2B,0x6A,0xD5,0x1F,0x0C,0x94,0xC4,0x6C, + 0x39,0xF0,0x9D,0xBB,0x73,0xAF,0xB0,0xB0,0xCA,0x35,0x21,0x1B,0x81,0xA0,0x9F,0xAB, + 0x4E,0xA0,0xED,0x07,0x0E,0x07,0xA4,0xA0,0x13,0xBA,0xD9,0x4E,0x93,0x2D,0x2C,0x3D, + 0xC6,0xB6,0x5C,0xA7,0xB6,0x76,0x2A,0xC5,0xC5,0x4D,0x16,0x87,0x9B,0xA4,0x8F,0xD6, + 0xD6,0xFE,0x74,0xEE,0x5C,0x4F,0x76,0x54,0x60,0x91,0x77,0xEC,0x04,0x2D,0xAC,0xB4, + 0xBF,0x2C,0x90,0x1A,0xE0,0x6D,0xBE,0x53,0x1B,0x23,0x06,0xD0,0xD8,0x2E,0x9B,0x78, + 0x34,0x9A,0xAD,0x26,0x00,0x86,0xE1,0xA5,0x03,0x4D,0x21,0x94,0xDF,0x6A,0x3F,0x70, + 0x73,0xF7,0xC8,0x6E,0x44,0xB3,0x62,0x75,0x77,0xB3,0xB6,0x12,0x1B,0x9A,0xA2,0xA9, + 0xAC,0xC1,0xB1,0x1B,0x8F,0xBF,0x90,0x95,0xD1,0xC7,0xE6,0x38,0xA3,0xAD,0x54,0x4F, + 0x67,0x90,0x4B,0xCB,0x0D,0x0E,0x0E,0x4C,0xC7,0x08,0xA3,0x2A,0x6B,0xCF,0xC5,0xD8, + 0xEE,0x26,0xC6,0x84,0x53,0xC1,0xD5,0x86,0xEB,0xD8,0xF4,0xB0,0xC1,0xA7,0x0D,0xDD, + 0xA8,0xAC,0xB2,0x9A,0xB5,0x0C,0xB8,0xA3,0x10,0xA6,0xEB,0x66,0x53,0x86,0xBC,0xE2, + 0x32,0x7A,0xAB,0xCE,0xDE,0xC9,0x85,0xD2,0x37,0xFA,0x0F,0xE0,0xED,0x74,0x9D,0xAA, + 0x01,0x71,0x80,0xF7,0xC4,0xF8,0x34,0x6B,0x06,0x14,0xF6,0xC6,0x92,0xF7,0xE5,0xEF, + 0x0A,0x4C,0xB5,0x79,0x98,0x13,0x25,0x65,0xF4,0xEF,0xD3,0xB6,0xAE,0x65,0xFD,0x75, + 0x7C,0x69,0x30,0xBD,0xF0,0xD5,0x69,0xA2,0x15,0x75,0x02,0x7D,0x7F,0x4E,0x28,0x10, + 0x04,0xA1,0xA0,0x9F,0xB2,0xB4,0xE0,0xAD,0x7E,0xD6,0xD0,0x95,0x8E,0x17,0xD9,0x4E, + 0xD3,0x05,0x9D,0x12,0x00,0x93,0xD2,0xD2,0x74,0x8E,0xF6,0xB7,0xD8,0x2E,0x3B,0x74, + 0xF7,0xC8,0x48,0xBA,0x4A,0xA7,0xD3,0x8D,0xDD,0xDE,0xA2,0xFA,0x22,0xDC,0xDA,0x1C, + 0x45,0xF5,0xA7,0x1D,0x9B,0x49,0xE2,0x2F,0xD8,0xAB,0x24,0x62,0x6F,0x8A,0x24,0xC7, + 0x39,0x1A,0xF4,0x5D,0x3C,0x44,0xA4,0x95,0x69,0xA5,0xAB,0xBE,0x3A,0x4B,0x6F,0xB3, + 0x16,0x9D,0x69,0xA6,0x17,0x4A,0x89,0x72,0xFA,0x75,0xB5,0x69,0xA4,0x72,0x9B,0xA2, + 0xA8,0xA4,0xBA,0xE3,0x5A,0x56,0x1A,0x0D,0x72,0x04,0xDD,0x9E,0x23,0x75,0xC2,0x23, + 0xAF,0x9B,0xAF,0x92,0x30,0xA4,0x4F,0x37,0x7A,0xE1,0xDE,0x41,0xB2,0x27,0xF3,0xE4, + 0x93,0x4F,0xCA,0x8A,0xCF,0x98,0x43,0x7A,0xF2,0x64,0x99,0xB0,0xA6,0xA8,0x9A,0xEE, + 0x38,0xA5,0x32,0x2B,0x29,0x3D,0x92,0x68,0x64,0x98,0xEE,0x6E,0xFD,0x5D,0xCD,0xF4, + 0x81,0xD8,0xE0,0xDB,0xD4,0xE3,0x34,0x28,0xB3,0x27,0x85,0xF1,0xB1,0x57,0x97,0xA8, + 0xAE,0x3A,0x4C,0x89,0x09,0x7F,0xB2,0x4A,0xE7,0x3C,0x70,0xF0,0x23,0x8A,0x89,0x99, + 0x4A,0x11,0x5D,0xCC,0xA7,0x98,0x55,0x94,0xED,0xA2,0x9E,0x3D,0xEF,0xA7,0xAE,0x5D, + 0x77,0xB2,0x3D,0x06,0x94,0x8E,0xF7,0x07,0xEA,0x4F,0x57,0xD3,0x47,0x25,0xE7,0xE8, + 0xA9,0xDA,0x14,0xB6,0x47,0x1D,0xE8,0x3A,0x8A,0x1E,0x27,0x2C,0xB5,0x0D,0x36,0xA5, + 0xE6,0xD3,0xF8,0x31,0xA3,0x4C,0x3A,0x93,0xD3,0x16,0x0A,0xFE,0xDD,0x7E,0xFB,0xED, + 0xAA,0xBC,0x57,0x87,0xC5,0xFC,0x97,0xBF,0xFC,0x45,0xB6,0xF8,0xBD,0x51,0xCC,0xC7, + 0x8F,0x17,0x0A,0x1F,0x1F,0x3F,0x4D,0x7F,0xAC,0xEF,0x21,0xEE,0xB7,0x8B,0x83,0x62, + 0x7E,0x2F,0xE6,0x20,0x35,0x7E,0xF3,0x0F,0xAA,0x3D,0x79,0x98,0xED,0xE1,0x38,0xC3, + 0xB0,0xAB,0xE7,0xD2,0xA8,0xA9,0xEB,0xAD,0xC4,0xBC,0x6B,0xC7,0x5B,0xB4,0xE9,0x93, + 0xEF,0xAC,0x3E,0xDF,0x09,0x73,0x1F,0xA2,0xE1,0xE3,0x5F,0xB3,0x12,0xB3,0xD2,0xF1, + 0xFE,0x40,0xEF,0xB1,0xBF,0xA2,0x1F,0x07,0xDD,0x49,0xEF,0x36,0x38,0x30,0x4F,0x1F, + 0xFD,0xE7,0x4B,0x23,0x28,0x7F,0xC7,0x69,0xBA,0xCA,0xF6,0x14,0x74,0xFA,0x2E,0xB9, + 0x80,0x2E,0x1F,0x37,0x52,0xD4,0x0D,0x66,0x23,0xBE,0xF6,0xDA,0x6B,0xE2,0x7E,0x29, + 0x8E,0x88,0xD9,0x61,0x37,0xDB,0x5E,0xA6,0x8A,0xA0,0xBF,0xB7,0x1C,0x6F,0xD7,0x0B, + 0xD4,0x43,0x94,0xB4,0x47,0x50,0x17,0x3B,0xD1,0x5D,0x0E,0xC7,0x1D,0x04,0x27,0xF4, + 0xB0,0xE3,0x62,0x5B,0x12,0x44,0x8B,0x47,0x46,0x50,0x8E,0xBE,0xFB,0x68,0x4F,0xC8, + 0xA0,0xB2,0x3D,0x94,0xAA,0xAB,0x0D,0x09,0x51,0xCE,0x66,0x56,0x4A,0x71,0x7B,0x00, + 0x2C,0x38,0x24,0x84,0xBA,0x07,0x79,0x6E,0x55,0x88,0x24,0x5D,0x0B,0x35,0x37,0xDA, + 0x5E,0xD6,0x94,0xC3,0x71,0x07,0x6D,0xF5,0x95,0x94,0x10,0x24,0x3F,0x14,0x2B,0xC7, + 0xDD,0x23,0x63,0x68,0x41,0x57,0x9D,0x6E,0xAC,0x1D,0xF7,0xDA,0x48,0x5C,0x50,0x1B, + 0x25,0x24,0xC4,0xD9,0xB4,0xBA,0x8E,0x44,0xB9,0xDD,0x6E,0x99,0xC3,0xC2,0xC2,0x28, + 0x25,0x58,0xDD,0xDA,0x4E,0xCE,0x90,0x10,0xDC,0x46,0xAD,0x67,0xDD,0x3B,0x14,0xC3, + 0xE1,0xC8,0x71,0xBE,0xA1,0x86,0x52,0x74,0xEA,0x86,0x43,0x8D,0xFD,0x64,0x74,0x17, + 0xB7,0xB0,0x7D,0xF6,0x88,0x09,0xEA,0xA8,0xBD,0xE7,0x68,0x89,0x20,0x39,0x1C,0x16, + 0xB3,0x52,0xDA,0x99,0xB1,0x96,0x76,0x5A,0x6A,0x92,0xAE,0x5F,0xA8,0x67,0xC6,0x83, + 0xF1,0xC7,0xC7,0xEA,0xEF,0x66,0x0D,0xD5,0x65,0x6C,0x0F,0x87,0xE3,0x39,0xEA,0xCA, + 0x8E,0xD1,0x10,0x9D,0x7D,0x91,0x49,0x85,0xAC,0x26,0xEE,0x03,0x7A,0x06,0x37,0x53, + 0x7B,0x90,0xFD,0x22,0xED,0x8E,0x44,0xB9,0xDD,0x26,0x66,0x69,0x50,0x4C,0x68,0x6F, + 0xA7,0x81,0xA1,0xE7,0x58,0x4B,0x1E,0x63,0xB2,0x08,0x82,0x5F,0x68,0xBF,0xCD,0x06, + 0xDB,0x17,0xC7,0x88,0x4F,0xCB,0x32,0x26,0xAC,0x81,0x6A,0x4A,0x0A,0xA8,0xBD,0xCD, + 0x73,0x96,0x9F,0xC3,0x31,0x72,0xBA,0xEC,0x28,0xA5,0x86,0x9C,0xB7,0xED,0x6A,0xC7, + 0x84,0xD3,0x23,0xAC,0x74,0x9C,0xF1,0x1A,0x36,0x3E,0x6C,0x5D,0xCB,0x93,0xC3,0x4F, + 0x53,0x57,0x89,0x50,0x95,0x32,0xBD,0x3C,0x2A,0x66,0x25,0x37,0x5B,0x2A,0xE6,0xB8, + 0x88,0x30,0xBA,0x32,0xCC,0x76,0xFD,0xA2,0xB7,0xB7,0xB3,0x41,0x76,0x8B,0xC7,0x82, + 0x33,0xEC,0x00,0x19,0x66,0x86,0x94,0x53,0xED,0xFE,0xF5,0xAC,0xC5,0xE1,0x78,0x9E, + 0x8A,0xFC,0xED,0x74,0x79,0x44,0x2D,0x6B,0xC9,0x70,0xA6,0x99,0x72,0x8C,0x09,0x23, + 0x0E,0x5C,0xCB,0x57,0x85,0x56,0x52,0x52,0x42,0xC7,0x90,0x97,0x23,0x69,0x9B,0x4A, + 0xB8,0x2D,0x00,0x26,0x8D,0xC6,0x45,0x06,0x07,0xD1,0xD8,0xD6,0x42,0xEA,0x1B,0xEA, + 0xBE,0x09,0x00,0x78,0xAF,0x5E,0xE7,0xAB,0xE9,0xD4,0x11,0xF3,0xA1,0x11,0x0E,0xC7, + 0x93,0x9C,0xDC,0xFC,0x25,0xDD,0x12,0x56,0x46,0x61,0xE4,0xBE,0xD5,0x07,0xAF,0x8B, + 0xA8,0xA2,0x96,0x13,0x3B,0x29,0x2C,0xCC,0xBE,0xD5,0xED,0xD4,0x00,0x18,0x08,0x0E, + 0x0B,0xA7,0x93,0xEB,0xDE,0xA3,0x87,0xC3,0x0A,0xDC,0xF2,0x21,0xE0,0x3D,0x9E,0x0A, + 0x3F,0x4C,0x47,0x56,0xFE,0x93,0xED,0xE1,0x70,0xBC,0x03,0x46,0x4E,0x8A,0xB7,0xAC, + 0xA0,0xC7,0xBA,0x1C,0x67,0x7B,0x5C,0x23,0x2D,0xB8,0x95,0x6E,0xA2,0x63,0x54,0xBA, + 0xF9,0x0B,0x7D,0x77,0xB4,0x8D,0xED,0xD5,0x58,0x00,0x4C,0x6A,0x99,0x23,0xA2,0xBB, + 0x89,0x49,0x04,0xC2,0x8E,0x2F,0x5D,0xFE,0x10,0x20,0xE4,0x17,0xA3,0xF2,0xA9,0x76, + 0xFD,0x12,0xAA,0x3F,0x55,0xC4,0xF6,0x72,0x38,0xDE,0xA3,0x62,0xD7,0x77,0xD4,0xA7, + 0xF8,0x27,0xBA,0x25,0xDC,0xF1,0x95,0x19,0xA5,0x20,0x80,0xFB,0x62,0x97,0x43,0x54, + 0xB2,0x72,0x31,0x85,0x04,0x87,0x52,0xBB,0x8A,0x85,0xFD,0x3D,0xDA,0x67,0x56,0x42, + 0x2A,0xE6,0xB0,0x08,0x83,0xF5,0xC6,0x87,0xD0,0xA3,0xE0,0x3B,0xFA,0x5B,0x97,0xC3, + 0x4E,0x59,0x68,0xFC,0xF1,0xAF,0x45,0x1D,0xA4,0x90,0x9F,0x3F,0xA2,0xEA,0xFC,0x6D, + 0x6C,0x2F,0x87,0xE3,0x7D,0x8E,0xAF,0x79,0x97,0xAE,0xA8,0xDE,0x48,0xBF,0x8F,0x70, + 0xCE,0x38,0xC1,0x22,0xFF,0x2B,0x62,0x2F,0x55,0xAD,0x7B,0x5B,0x34,0x4A,0x5D,0xBA, + 0x26,0x20,0x52,0xCC,0x9E,0xED,0xA4,0x00,0x98,0x9A,0x45,0xAE,0xDA,0xF5,0xEE,0x43, + 0x24,0x4E,0x56,0x4F,0xC9,0x4F,0x1F,0x51,0xDC,0xF6,0x0F,0xE9,0xB3,0x6E,0xFB,0xE9, + 0xAA,0x2E,0xEA,0x93,0x3D,0xD0,0xAF,0xF8,0x38,0x7A,0x2F,0x35,0xAF,0x7A,0x89,0x2A, + 0xF7,0xFE,0xC0,0xF6,0x72,0x38,0x9D,0xC7,0xD1,0xFF,0xBD,0x4C,0x17,0xE6,0xAD,0xD0, + 0x5F,0xCB,0x07,0x68,0x58,0xD8,0x59,0xB6,0xD7,0x36,0x30,0x48,0xF3,0xBA,0x94,0xD2, + 0x9B,0x11,0xBB,0xA9,0xE6,0x7F,0x8B,0xA8,0xEE,0xD8,0x2E,0xC3,0xFE,0x84,0x54,0x33, + 0x2F,0xF7,0xE4,0x49,0xF9,0x89,0x32,0x6A,0xBA,0xB5,0x46,0xDC,0x26,0x66,0xA9,0xCF, + 0xAF,0xA3,0x36,0x4A,0xC8,0xE8,0xCB,0x5A,0x24,0x8A,0x31,0xFF,0xA3,0x3F,0xD1,0xAD, + 0x15,0xDF,0xD2,0x37,0x71,0xFB,0xE9,0x89,0xE8,0x22,0x71,0x98,0x49,0x1A,0x20,0xC3, + 0x50,0xD6,0xC4,0x88,0x06,0xF1,0xB9,0x35,0xF1,0xFB,0xE9,0xDA,0xB2,0x55,0x74,0x70, + 0xE9,0xE3,0x3C,0x07,0x9B,0xA3,0x29,0x4A,0x37,0x7F,0x4E,0x25,0x5F,0x3C,0x4B,0x4F, + 0xB4,0x6E,0xA1,0x15,0xB1,0xFB,0xE9,0x77,0xD1,0xE5,0xA2,0xB0,0x31,0x6E,0x6C,0x04, + 0xED,0xA9,0x11,0xF5,0xF4,0xF7,0xA8,0x02,0xFA,0x34,0x66,0x1F,0x8D,0x3D,0xFC,0x5F, + 0xF1,0x5A,0x96,0x76,0x13,0x93,0x7B,0x5E,0x48,0xC9,0x29,0xF1,0xA6,0xEC,0x2F,0xA5, + 0x74,0x4E,0xA5,0xF5,0x9B,0xE5,0x70,0x58,0xCC,0x4A,0xEB,0x49,0x49,0x2D,0x73,0x5A, + 0x5A,0x92,0x2E,0x36,0xC5,0xBC,0x2A,0xC5,0xB9,0xFA,0x2A,0xCA,0x5F,0xF9,0x9A,0xFE, + 0x8F,0xFA,0x23,0xF5,0xDA,0xFA,0x26,0x3D,0xD2,0xB4,0x89,0x5E,0x0A,0xDE,0x49,0x5B, + 0x53,0xF3,0xC4,0xC7,0xB3,0xB4,0x9D,0x7E,0x57,0xFF,0xA3,0xF8,0xDC,0xAE,0x25,0x8F, + 0xD2,0xD1,0x55,0x6F,0xF2,0xB4,0x4D,0x8E,0x26,0x81,0x28,0xF7,0x7F,0xF4,0x67,0x3A, + 0xBA,0xEC,0x49,0x1A,0xBD,0xFB,0xDF,0xA2,0xB0,0xDF,0x88,0xD8,0x63,0xBA,0x96,0xD1, + 0xBE,0xAB,0x66,0x2D,0xC5,0xFE,0xF4,0x3A,0xED,0x5E,0xF2,0x30,0x15,0xE6,0x7E,0x4E, + 0xAD,0x4D,0xE6,0x96,0x3C,0x49,0xB2,0x04,0xAF,0xD2,0x3A,0xCC,0x8E,0x2E,0xC4,0xE8, + 0x54,0x9F,0x59,0xC9,0xF4,0x4B,0xD7,0xA1,0x92,0x9E,0xAC,0x14,0x88,0xFA,0xE4,0xDE, + 0x0D,0x74,0x60,0xD9,0x33,0xB4,0xF3,0xBD,0x87,0x69,0xCD,0x4B,0x77,0x8A,0x8F,0xBD, + 0xFF,0x79,0x8C,0x0E,0x7D,0xFE,0xBC,0xF8,0x1C,0x17,0x31,0xC7,0x17,0x68,0xAC,0x29, + 0xA7,0xE3,0xDB,0xBE,0x15,0x85,0xBD,0xE3,0x9D,0x05,0xA6,0x6B,0x19,0xED,0xC3,0x2B, + 0x5E,0xA2,0xF2,0xC3,0xDB,0xAC,0x44,0x6C,0x24,0x36,0xB9,0xC3,0xD8,0x29,0xAD,0x29, + 0xE5,0xB0,0x98,0x43,0x43,0x1C,0xD7,0xB3,0x9A,0x55,0xEB,0x62,0x93,0x55,0x4E,0x81, + 0xE4,0x70,0x02,0x90,0x88,0xE8,0x8E,0xF1,0x63,0xB7,0x89,0x39,0x3E,0x26,0x8C,0x6D, + 0xAA,0x47,0x4D,0x10,0x2C,0x36,0x35,0x9B,0x6D,0x71,0x38,0x1C,0x29,0xB1,0xA9,0x3D, + 0xA9,0xFD,0x7C,0x47,0x4A,0xB2,0x92,0x98,0x1D,0xAD,0x0B,0xE6,0x94,0x9B,0xAD,0xF4, + 0x4B,0xA4,0x27,0x15,0x1C,0x1C,0x46,0xE1,0x91,0xEA,0x23,0x71,0x1C,0x4E,0xA0,0x10, + 0x9B,0x9C,0x4D,0x41,0x92,0x02,0x89,0x4A,0x62,0x56,0xF2,0x80,0x95,0x70,0x4A,0xCC, + 0x6A,0x2C,0xB3,0xD0,0xDE,0x42,0x31,0xF1,0xDA,0x5D,0xBC,0x9C,0xC3,0x91,0xD2,0x2D, + 0xAD,0x37,0x25,0xF7,0x19,0x26,0x56,0x17,0xC1,0x23,0x21,0x6B,0x20,0x75,0xF5,0x50, + 0x57,0x11,0xC3,0x52,0xA9,0xA9,0x1D,0x51,0x6A,0x25,0x31,0x2B,0xAD,0xDB,0xAC,0x84, + 0x53,0x62,0xCE,0xC9,0xC9,0xB1,0x1B,0xD1,0xC6,0x18,0x5A,0x37,0x8B,0x88,0x36,0x87, + 0xA3,0x25,0xBA,0x74,0x4D,0xA4,0xBE,0x33,0x7E,0x47,0xE3,0x7E,0xFB,0x3A,0x25,0xFC, + 0x6A,0x21,0xB5,0x5C,0x7A,0x9F,0x58,0x26,0x08,0x8F,0xE0,0x69,0x0B,0x28,0xFD,0xBA, + 0x27,0xC4,0xE7,0x72,0xA6,0xFF,0x46,0x3C,0xD6,0x5D,0x58,0x06,0x87,0xE5,0xCA,0x70, + 0x39,0x53,0xE0,0x4F,0x56,0xCC,0xE5,0x35,0xF6,0x27,0x48,0xC8,0xA5,0x75,0x4A,0xB3, + 0x58,0x30,0x86,0x96,0xDE,0x77,0x38,0x6B,0x71,0x38,0xDA,0x21,0x28,0x38,0x94,0x7A, + 0x5F,0x31,0x8F,0x2E,0xBC,0xF5,0xAF,0xB4,0x34,0xE5,0x4A,0xBA,0xF1,0xF4,0x00,0xBA, + 0xE5,0xCC,0x00,0xBA,0xBF,0xA1,0xAF,0x58,0xEF,0x0B,0x8F,0x79,0x0D,0xFD,0xE8,0x7A, + 0xFD,0x7E,0x3C,0xF7,0x69,0xFA,0xD5,0xE2,0xB1,0x78,0x0D,0x5E,0xEB,0x2A,0x69,0xBD, + 0x87,0xB2,0x2D,0xA2,0x82,0x82,0x02,0xB7,0x0C,0x4B,0x01,0xA7,0x2C,0x33,0x50,0xFA, + 0x65,0x87,0x0E,0x1D,0x32,0x9D,0x5C,0xE6,0x85,0x63,0xD9,0x16,0x87,0xA3,0x0D,0x42, + 0x23,0x22,0xA9,0xDF,0xCD,0x4F,0xD1,0x97,0x69,0x57,0xD0,0x55,0xB5,0x03,0xC5,0xD5, + 0x48,0x6D,0x15,0xB8,0xC7,0x73,0x58,0x9D,0x14,0xC7,0xE2,0x35,0x78,0x2D,0xDE,0xC3, + 0x59,0x10,0x47,0x8A,0x94,0x58,0x79,0xA5,0xCC,0x2F,0x47,0xFB,0xCB,0xC0,0x69,0x31, + 0xA3,0x6A,0xA0,0x1C,0xD2,0xD5,0xDF,0x71,0xD2,0x3C,0x08,0xC6,0xD1,0x0A,0x10,0xE1, + 0x80,0x5B,0x9E,0xA5,0xA7,0x82,0x46,0xD3,0x17,0x4D,0x8E,0x5B,0x3E,0xBC,0x06,0xAF, + 0xED,0x7D,0xC3,0x9F,0x9D,0x16,0x74,0x5A,0x9F,0x11,0xA4,0xD3,0x75,0x44,0xB2,0xA5, + 0x7A,0x91,0x92,0x91,0xE1,0xF8,0x02,0xFA,0x1E,0x15,0x33,0x4E,0x1A,0x27,0xCF,0xE1, + 0x74,0x36,0x70,0x8F,0x73,0xAE,0xFF,0x23,0x3D,0xDE,0x3A,0x58,0x5C,0x91,0xD1,0x59, + 0xF0,0xDA,0xE7,0x83,0x86,0x53,0xEF,0x6B,0x17,0x3A,0xE5,0x72,0xF7,0x18,0x30,0xC6, + 0x2C,0xF8,0xA5,0x64,0x99,0x87,0x0E,0x1D,0xEA,0x50,0xF0,0x0B,0x04,0xA5,0x26,0x44, + 0x38,0xFC,0x22,0xD0,0xBF,0x7F,0x7F,0xD9,0xD7,0x95,0x97,0x77,0x4C,0x13,0xC3,0x49, + 0xE3,0xE4,0x39,0x9C,0xCE,0x26,0xFB,0xD2,0x5B,0xE8,0xCB,0xF0,0x01,0x2E,0x09,0xD9, + 0x08,0x16,0x53,0x5F,0x1D,0x31,0x80,0x7A,0x5C,0x72,0x23,0xDB,0xA3,0x9E,0xAC,0xC1, + 0x97,0xB0,0x2D,0xD4,0x98,0x3F,0x2E,0x5B,0x83,0xDE,0xD9,0x75,0xA7,0x9C,0xB6,0xCC, + 0x40,0xC9,0xAF,0x97,0xF6,0x9B,0x7B,0x0D,0xBB,0x94,0x6D,0x71,0x38,0x9D,0x43,0x78, + 0x54,0x37,0x8A,0xCB,0x19,0x45,0x9F,0x9F,0x75,0xDF,0x92,0xB4,0x1F,0x36,0xA5,0x50, + 0x62,0xFF,0xF1,0xE2,0x7B,0xAB,0x05,0x43,0xB5,0x61,0x92,0x95,0x3F,0x94,0x5C,0x6C, + 0x25,0xAF,0xD7,0x1E,0x2E,0x89,0x59,0x8D,0xAB,0x1D,0x12,0x1A,0xCE,0xC7,0x9B,0x35, + 0x48,0x7B,0xBB,0x8E,0x8A,0x4E,0xCC,0x15,0x57,0xA4,0x90,0x3E,0x5A,0xCF,0xF7,0x61, + 0x47,0x98,0xD3,0xD6,0x7A,0x9E,0x8E,0xE4,0x3F,0x24,0x7B,0x7C,0x7B,0x9B,0x8D,0x82, + 0x77,0x1A,0x20,0x63,0xDC,0xB5,0xF4,0x61,0x4B,0x9A,0xC2,0xF2,0xC2,0x41,0xB4,0xF8, + 0x52,0x8B,0x15,0x1C,0x2D,0x1E,0x72,0x61,0x5C,0xBC,0x17,0xDE,0x13,0xEF,0xAD,0x96, + 0xB4,0xBE,0xC3,0x28,0x2C,0xB4,0xA3,0x22,0xA7,0xBB,0xC5,0x2C,0xBA,0xCA,0xD3,0x7E, + 0x9F,0x6B,0x16,0x1E,0x4F,0x89,0x8F,0xA0,0xA5,0x4F,0x8C,0xB0,0xEB,0x7E,0xC3,0x02, + 0x2F,0x5B,0xB6,0x8C,0xB5,0x3A,0x80,0xC5,0x9E,0x3F,0x7F,0xBE,0xF8,0xFA,0xAA,0xCA, + 0x5A,0x61,0xDD,0xD2,0xE7,0x29,0x7F,0xEB,0x4A,0xF1,0x39,0x8E,0x36,0x80,0x45,0x89, + 0x8C,0x93,0xF7,0xAC,0xE4,0xA6,0x9D,0x2A,0x1D,0x0F,0x21,0xA3,0x8A,0xA5,0x96,0x19, + 0x3D,0xEF,0x55,0x9A,0xDB,0x38,0x48,0xD5,0xEA,0x14,0x6A,0xD7,0x89,0x02,0x28,0x38, + 0xF0,0x7E,0xD4,0x3E,0xFA,0xF9,0xCD,0xFB,0xD8,0x1E,0xDB,0x5C,0xFE,0x9B,0xE7,0x69, + 0xF4,0xD4,0x99,0x26,0x5D,0xD9,0x5B,0xEA,0xC9,0x51,0x64,0x2D,0x73,0xE3,0x39,0x75, + 0x77,0x5A,0x35,0xFD,0xE6,0xC4,0xA4,0x38,0x5D,0xF6,0xA0,0x09,0xAC,0xC5,0xD1,0x0A, + 0x98,0x99,0x06,0xD1,0xCA,0x3D,0xE4,0x50,0x3A,0x5E,0xEB,0x42,0x46,0x16,0x57,0xBD, + 0x2E,0xDC,0xC1,0x65,0x66,0xD4,0x81,0xF7,0xC4,0x7B,0xAB,0xCD,0x14,0x83,0x65,0x36, + 0xE2,0xEE,0xFE,0x32,0x90,0x15,0x73,0x83,0x4A,0x31,0x03,0xA5,0x7E,0xF3,0xAE,0x5D, + 0x1D,0xEB,0x05,0x4B,0xFF,0x08,0x0E,0xC7,0x9B,0x84,0x46,0x76,0xA5,0xEA,0x36,0xFB, + 0xC5,0xE6,0x9D,0x05,0xEF,0x8D,0xDF,0x61,0x0F,0x74,0x35,0xD1,0xE5,0x34,0xE2,0x6E, + 0x17,0x1B,0xB8,0xD4,0x67,0x06,0xAA,0xFA,0xCD,0x21,0xA1,0x94,0x9C,0x35,0x88,0xB5, + 0x38,0x1C,0xEF,0x81,0xEE,0x41,0xA5,0xE0,0xF8,0xCC,0x40,0xB5,0xE0,0xBD,0xD5,0x04, + 0xC1,0x72,0x46,0x4D,0xA7,0xEE,0xDD,0x13,0x4D,0x9E,0xAC,0xC7,0xC4,0x1C,0xDD,0x45, + 0x39,0x03,0xC6,0x1E,0x4A,0xBF,0xFC,0xC8,0x91,0x23,0x6C,0x8B,0xA8,0x7B,0x7A,0xB2, + 0x6E,0xE0,0xA4,0xEB,0x58,0x8B,0xC3,0x09,0x3C,0x06,0x4E,0x9C,0xCD,0xB6,0x0C,0x28, + 0x89,0xD9,0x99,0xF1,0x65,0x23,0xA2,0x98,0xA3,0x5C,0x10,0x33,0xFA,0xCD,0x72,0x79, + 0xDA,0xA8,0x69,0x24,0xCD,0x3B,0xCD,0x1E,0x32,0x89,0x82,0x43,0xF8,0x02,0xE9,0x1C, + 0xEF,0x82,0xBE,0x3E,0x56,0x0E,0xF5,0x14,0xE9,0x41,0x4D,0x74,0xEE,0xB4,0xFC,0xAC, + 0x27,0x23,0xF0,0x4A,0xC3,0x22,0x3A,0xC6,0xB7,0x37,0x6E,0xDC,0x28,0x1B,0x5C,0x73, + 0xA5,0xBF,0x0C,0x5C,0x76,0xB3,0x41,0x9F,0x3E,0xF2,0xC3,0x19,0xBB,0x77,0xEF,0x66, + 0x5B,0x98,0xDF,0xCC,0x73,0xB5,0x39,0xDE,0xE7,0x6C,0x4D,0x39,0x65,0x86,0x7A,0x6E, + 0xE8,0x2C,0x25,0xA4,0x9D,0x9A,0xEA,0xAB,0x59,0x4B,0x9E,0xFE,0xE3,0x7F,0x25,0x7A, + 0xA7,0xAC,0x69,0xA6,0x0B,0x29,0x17,0x5D,0x74,0x11,0xDB,0x72,0x0E,0xB7,0x88,0x59, + 0xE9,0x24,0xF2,0xF2,0xF2,0xD8,0x96,0x21,0x1B,0x6C,0xF0,0x65,0x8E,0x67,0xCC,0x70, + 0x38,0xAE,0x80,0x9A,0x73,0xBA,0x16,0xF3,0xEA,0x99,0xEE,0x02,0xEF,0x89,0xF7,0xC6, + 0xEF,0x50,0x02,0xDE,0x68,0xAF,0xA1,0x93,0x59,0xCB,0x50,0xBC,0x4F,0x69,0xFE,0xF2, + 0xC0,0x81,0x03,0xD9,0x96,0x73,0x28,0x8A,0xB9,0xBC,0xBA,0xC9,0xEE,0x38,0x9B,0x11, + 0xB8,0xDA,0x72,0xF3,0x2F,0x11,0x7A,0x97,0x46,0xB5,0x93,0x7A,0xF4,0x33,0xD5,0xD3, + 0xE6,0x70,0xBC,0x45,0xF5,0x81,0x8D,0x74,0x79,0x84,0xEB,0xCB,0xBF,0x58,0x82,0xF7, + 0xC4,0x7B,0xDB,0x02,0xDE,0x68,0x68,0x58,0x47,0x37,0x54,0xC9,0x2A,0x63,0x62,0x85, + 0x23,0x65,0x75,0xE5,0x70,0x8B,0x65,0x06,0x4A,0x77,0x15,0xE9,0xC9,0xA7,0xEB,0x5D, + 0x8D,0x9C,0x51,0x57,0xB0,0x16,0x87,0xE3,0x1D,0x4A,0xF7,0x7C,0x4F,0xB3,0x42,0x2B, + 0x54,0xAD,0xAA,0x62,0x5A,0x9D,0xD4,0x0E,0x58,0xE6,0xF5,0x57,0x41,0x25,0x74,0x72, + 0xE7,0x6A,0xB6,0x47,0x1E,0x78,0xA3,0xD2,0x89,0x15,0xFB,0xF7,0xEF,0x67,0x5B,0xE6, + 0xB8,0xEA,0x62,0x03,0x51,0xCC,0xF1,0x31,0xAE,0x0F,0xA8,0x2B,0x9D,0x8C,0x65,0xD4, + 0xAE,0xFF,0xF8,0xAB,0xD9,0x16,0x87,0xE3,0x1D,0x10,0x04,0xAB,0x3A,0xB4,0x89,0x6E, + 0x89,0xA8,0x60,0x7B,0x5C,0xE7,0xB7,0x11,0xC5,0x54,0xFE,0xF3,0x57,0x8A,0xA5,0x74, + 0x01,0xA6,0xFF,0x26,0xF5,0x18,0xC0,0x5A,0x86,0x42,0x04,0x72,0xC5,0xEE,0x11,0x40, + 0x1E,0x39,0x72,0xA4,0x4B,0x56,0x19,0x88,0x62,0x0E,0x0B,0x75,0xDD,0x40,0xA3,0x5E, + 0x91,0x52,0x34,0x4E,0x1A,0xBD,0x8B,0x8E,0x4D,0x16,0xAB,0x13,0x72,0x38,0xDE,0xE4, + 0xC4,0x8F,0x1F,0xD2,0xF4,0x33,0x3B,0xE9,0xD2,0x30,0xD7,0xDD,0xED,0xE9,0xE1,0x35, + 0x74,0x61,0xF5,0x6E,0x2A,0xDD,0xBD,0x8E,0xED,0x91,0xA7,0xF7,0xB0,0x69,0x14,0x11, + 0x61,0xDF,0xC5,0x56,0x0A,0x20,0x3B,0x8A,0xDB,0xDC,0x6C,0xA0,0x64,0x9D,0xA5,0x7F, + 0x44,0xF7,0xF4,0x44,0xDD,0x90,0xCB,0x6E,0x61,0x2D,0x0E,0xC7,0x7B,0xE4,0x7F,0xF9, + 0x02,0xDD,0x2F,0xEC,0x13,0xC5,0xE8,0x2C,0x78,0xED,0xAF,0xCF,0x6E,0xA7,0x23,0xFF, + 0x7B,0x85,0xED,0x51,0x66,0xE8,0xE5,0xBF,0xA6,0x84,0x84,0x6E,0x26,0x8B,0x2B,0x0D, + 0x08,0x83,0x2F,0xBE,0xF8,0x42,0x9C,0xCF,0xEC,0x6A,0xE0,0xCB,0x88,0xA2,0x98,0x2B, + 0x6A,0x1D,0x5F,0xC9,0x5D,0xE9,0xA4,0x10,0xBD,0x2B,0x2E,0x2E,0x36,0x59,0xE7,0x3E, + 0x23,0xA6,0xF0,0x40,0x18,0xC7,0xEB,0xB4,0xB7,0xB5,0xD2,0xFE,0x0F,0xFF,0x44,0x73, + 0xEB,0x36,0xD0,0x9F,0x23,0x8F,0x8B,0x8B,0xBA,0xA9,0x05,0x7D,0x64,0xBC,0x06,0xAF, + 0x3D,0xFA,0xF9,0x73,0xE2,0x7B,0xD9,0x22,0x6B,0xF0,0x24,0x8A,0xEA,0xD6,0x91,0x19, + 0xB6,0x65,0xCB,0x16,0xB3,0x5C,0x6C,0xB8,0xDB,0xE8,0x82,0xC2,0x2A,0x0F,0x1A,0x34, + 0xC8,0x65,0x17,0x1B,0xB8,0xD5,0x32,0x23,0x1A,0xA7,0x54,0xEE,0x24,0x37,0x37,0x97, + 0x6D,0x19,0x02,0x61,0x23,0x67,0xCE,0x63,0x2D,0x0E,0xC7,0x7B,0x40,0x84,0xF9,0xCB, + 0xFF,0x41,0x3D,0x76,0xBC,0x2F,0x2E,0xEA,0x76,0x7F,0x64,0x89,0xD9,0x02,0x86,0x96, + 0xE0,0xB9,0x47,0xA2,0x4B,0xE8,0x3F,0x51,0x7B,0xC5,0xD7,0xE0,0xB5,0xF6,0x84,0x0C, + 0xC6,0x5F,0xBF,0xC0,0x2C,0xF0,0x25,0xBD,0xFE,0xC1,0xCF,0x3F,0xFF,0x4C,0xA3,0x47, + 0x8F,0x76,0x9B,0x55,0x06,0x6E,0x15,0x33,0xB0,0x35,0xE6,0x2C,0x5D,0x20,0x8B,0x5B, + 0x67,0x4E,0x67,0x82,0xFE,0x2E,0x16,0x75,0x1B,0xBE,0x6F,0xA9,0xB8,0x80,0x21,0x56, + 0x27,0x7D,0x2F,0xE6,0xA0,0xD9,0x03,0xAB,0x91,0xE2,0xB9,0x81,0x3B,0xDE,0xA1,0x7D, + 0xFF,0x59,0x68,0xB7,0x8F,0x6C,0x44,0xCE,0x2A,0x4B,0x03,0x5F,0xB0,0xD0,0x88,0x6A, + 0x43,0x2B,0xEE,0x88,0x62,0x1B,0x11,0xC5,0x9C,0x12,0xE7,0x78,0x8D,0x5E,0x25,0x10, + 0x95,0x53,0x5A,0x58,0x6E,0xFD,0xFA,0xF5,0x6C,0xCB,0x60,0x9D,0x07,0x4E,0xBC,0x81, + 0xB5,0x38,0x1C,0xEF,0x83,0x48,0x74,0xE1,0xCF,0x5F,0x8B,0x0B,0x18,0x62,0x75,0xD2, + 0xC6,0x6F,0xFE,0x61,0xF6,0xC0,0x6A,0xA4,0x78,0xAE,0x70,0xE7,0x5A,0x9B,0x51,0x6B, + 0x4B,0x46,0xCD,0xF8,0x8D,0x4D,0xAB,0x0C,0x21,0x63,0x4E,0x03,0x5C,0x6C,0x47,0x0B, + 0xDD,0xDB,0xC2,0xED,0x96,0x19,0x7C,0xFD,0xF5,0xD7,0x66,0x73,0x9A,0x8D,0x58,0x5A, + 0xE7,0x01,0x13,0xAF,0xE3,0xF9,0xDA,0x1C,0x4D,0x80,0x2C,0x2E,0xCB,0xB9,0xDA,0xCE, + 0xAC,0x46,0x9A,0x98,0xD1,0x97,0xBA,0x26,0x75,0x54,0xD6,0xB1,0xB4,0xCA,0xC0,0xE8, + 0x62,0x4F,0x9A,0x34,0x89,0xED,0x71,0x0F,0x8A,0x62,0x76,0x64,0x4E,0xB3,0x25,0xBF, + 0xFE,0xF5,0xAF,0xE9,0x97,0x5F,0x7E,0x61,0x2D,0x73,0xA4,0xD6,0x39,0xB3,0x47,0x9A, + 0x6E,0xE0,0xA4,0xEB,0x59,0x8B,0xC3,0xF1,0x7D,0xC6,0xE9,0xFB,0xCA,0xB6,0xF2,0xB0, + 0x11,0xBD,0xC6,0xB8,0x32,0xDC,0x6B,0xA5,0xE2,0x1E,0xCE,0x62,0x43,0xCC,0x6D,0x6C, + 0xCB,0x71,0xEE,0xBC,0xF3,0x4E,0x5D,0x49,0x49,0x89,0xEC,0x6A,0xF0,0x96,0xD6,0x79, + 0xD8,0xF4,0xB9,0xDC,0x3A,0x73,0xFC,0x02,0x58,0xE5,0xE4,0x1E,0x1D,0x4B,0xCF,0xA0, + 0xAC,0x96,0xA5,0x87,0xEA,0x29,0xAB,0x0C,0x44,0x31,0x87,0x85,0xBA,0xF5,0x06,0x21, + 0xF2,0xF0,0xC3,0x0F,0xC3,0xC5,0x60,0x2D,0x73,0x76,0xEC,0xD8,0xC1,0xB6,0xB8,0x75, + 0xE6,0xF8,0x0F,0x96,0x56,0x59,0xEA,0x85,0x02,0x18,0x37,0x58,0xE6,0x89,0x13,0x27, + 0xBA,0xDD,0x2A,0x03,0x51,0xCC,0xB1,0xD1,0xEE,0xAF,0x8F,0x74,0xF3,0xCD,0x37,0xD3, + 0xD1,0xA3,0x47,0x65,0x17,0xC5,0xB2,0x74,0x3D,0x86,0x4D,0xBB,0x8D,0xAF,0x7C,0xC1, + 0xF1,0x69,0x30,0x67,0xD9,0x9E,0x55,0x86,0x11,0x1B,0x32,0x64,0x08,0x4D,0x9D,0x3A, + 0x95,0xED,0x71,0x2F,0x8A,0x6E,0x76,0x4B,0xAB,0xFA,0x01,0x75,0x39,0xD2,0xD2,0xD2, + 0x74,0xB3,0x67,0xCF,0xA6,0x9D,0x3B,0x77,0xB2,0x3D,0x1D,0x40,0xE0,0xCB,0x97,0x2F, + 0x37,0xB9,0xDA,0x99,0x59,0xE9,0xBA,0x31,0xD7,0x3C,0xC0,0x5A,0x1C,0x8E,0xEF,0x31, + 0xF5,0xCE,0x67,0x6D,0x5A,0x65,0x5C,0xF3,0x7B,0xF6,0xEC,0xF1,0x98,0x55,0x06,0x8A, + 0x62,0xAE,0x3D,0xE3,0x7A,0x75,0x86,0xDF,0xFD,0xEE,0x77,0x8A,0xB3,0x44,0x60,0x9D, + 0xA5,0x59,0x61,0x39,0x23,0xA6,0x88,0x7D,0x0E,0x0E,0xC7,0xD7,0x18,0x32,0xE5,0x16, + 0xEA,0x7D,0x41,0x1F,0x93,0x40,0xF7,0xED,0xDB,0x67,0x65,0x95,0x51,0x46,0x0B,0xC5, + 0x2F,0xAF,0xB8,0xC2,0x73,0xB3,0x06,0x15,0xC5,0xEC,0x0E,0x70,0x07,0x82,0x5B,0x51, + 0x50,0x50,0xC0,0xF6,0x98,0xB3,0x72,0x65,0x47,0x2D,0x6D,0xDC,0xD5,0xA6,0xDC,0xF9, + 0x57,0xD6,0xE2,0x70,0x7C,0x03,0x24,0x3E,0x0D,0xBF,0x7C,0x2E,0x6B,0x19,0x58,0xBD, + 0xDA,0x7A,0x5A,0xE4,0xA6,0x4D,0x9B,0x68,0xCA,0x94,0x29,0x34,0x76,0xEC,0x58,0x8F, + 0x58,0x65,0x20,0x8A,0x19,0x45,0xEF,0x3D,0xC5,0x43,0x0F,0x3D,0x44,0x07,0x0E,0x1C, + 0x60,0x2D,0x73,0x70,0xF7,0xC2,0x38,0x1C,0x6B,0x52,0x6C,0x62,0x0A,0xF5,0x1F,0x3F, + 0x8B,0xB5,0x38,0x1C,0xED,0x73,0xC9,0xCD,0x7F,0xA0,0x8C,0x9E,0x69,0x26,0x81,0xAE, + 0x5A,0xB5,0xCA,0x6A,0x5C,0x19,0xD7,0x39,0xDC,0x6C,0x0C,0xD9,0x7A,0x12,0x45,0xCB, + 0xDC,0xDA,0x66,0xD2,0x98,0x4B,0x4C,0x9E,0x3C,0x59,0xFC,0x43,0xEB,0xEB,0xEB,0xC5, + 0xB6,0x25,0xD2,0xBE,0x45,0x72,0x4A,0x82,0x6E,0xD4,0xAF,0xE6,0xF1,0x34,0x4F,0x8E, + 0x4F,0x90,0x96,0x33,0x8C,0x32,0x2F,0x18,0xC9,0x5A,0x86,0x92,0x40,0xD2,0x91,0x1A, + 0x23,0x18,0x8E,0x9A,0x36,0x6D,0x9A,0x5B,0xE6,0x2C,0xDB,0x42,0xB9,0xCF,0x5C,0x6F, + 0x3F,0x99,0x5C,0x2D,0x4F,0x3D,0xF5,0x14,0xED,0xDD,0xBB,0x97,0xB5,0xCC,0x69,0x6A, + 0x6A,0xA2,0xCF,0x3E,0xFB,0xCC,0x74,0xE7,0xE8,0x99,0x9D,0xA9,0x1B,0x37,0xFB,0x41, + 0xD6,0xE2,0x70,0xB4,0x09,0x72,0x23,0x26,0xDF,0xFA,0x47,0x4A,0x4B,0xEF,0x48,0xDB, + 0x44,0xB7,0xD1,0x72,0xF4,0x06,0x56,0x1A,0xB3,0xA3,0x9E,0x79,0xE6,0x19,0xB6,0xC7, + 0x73,0x78,0xB4,0xCF,0x6C,0xE4,0x9A,0x6B,0xAE,0xD1,0x61,0x98,0x4A,0x69,0xF5,0x0B, + 0x04,0xC9,0xB0,0x5C,0x07,0x6B,0x52,0xD6,0xA0,0x09,0x3C,0x18,0xC6,0xD1,0x34,0xC8, + 0x8D,0xE8,0xD3,0xAF,0x9F,0x49,0xC8,0xA8,0x75,0x27,0xB7,0xD6,0x32,0xAE,0x6D,0x24, + 0x88,0x64,0x65,0x65,0x79,0xD4,0x2A,0x03,0x51,0xCC,0xA9,0xF1,0x9E,0xCF,0xC0,0x7A, + 0xE0,0x81,0x07,0x44,0xEB,0x2C,0x57,0x63,0x1B,0x48,0x83,0x06,0x08,0x86,0x4D,0xBB, + 0xFB,0x39,0x9E,0x19,0xC6,0xD1,0x24,0x58,0x6A,0x66,0xC4,0x15,0x77,0xB0,0x96,0x81, + 0x75,0xEB,0xE4,0x67,0x54,0x6D,0xDE,0xBC,0x99,0x5E,0x7E,0xF9,0x65,0xD6,0xF2,0x2C, + 0x5E,0xB1,0xCC,0x60,0xC1,0x82,0x05,0xBA,0xE5,0xCB,0x97,0xD3,0xA8,0x51,0xA3,0xD8, + 0x1E,0x73,0x2C,0x83,0x61,0xB8,0xEB,0x5D,0x32,0x67,0x21,0x6B,0x71,0x38,0xDA,0x00, + 0x06,0xE6,0xCA,0xDF,0x2E,0xA6,0xF4,0xCC,0x14,0x93,0xA5,0x95,0x0B,0x7A,0x01,0xA4, + 0x2E,0x8F,0x18,0x31,0xC2,0x2B,0x56,0x19,0x28,0x8A,0xD9,0x99,0x4A,0x23,0xF6,0xB8, + 0xE9,0xA6,0x9B,0x44,0xB7,0x23,0x31,0x31,0x91,0xED,0x31,0x07,0x77,0x37,0xB3,0x8A, + 0x24,0xC3,0x27,0x51,0xEF,0xA1,0x53,0x58,0x8B,0xC3,0xE9,0x7C,0x60,0x60,0x2E,0x18, + 0x34,0xD0,0x24,0x4E,0x64,0x7A,0x6D,0xDD,0xBA,0x95,0xB5,0xCC,0x39,0x78,0xF0,0x20, + 0x3D,0xFA,0xE8,0xA3,0xAC,0xE5,0x79,0xBC,0x66,0x99,0x01,0x5C,0xED,0x57,0x5F,0x7D, + 0x95,0xA6,0x4F,0x9F,0xCE,0xF6,0x98,0x83,0xE0,0xC1,0xE7,0x9F,0x7F,0xCE,0x5A,0x44, + 0x69,0xDD,0x53,0x74,0x97,0xDC,0xFC,0x28,0x5F,0xAC,0x9D,0xA3,0x09,0x60,0x58,0x60, + 0x60,0xA4,0xAC,0x58,0xB1,0x82,0x6D,0x99,0x53,0x59,0x59,0x49,0xED,0xED,0xED,0x48, + 0x12,0xF1,0x8A,0x55,0x06,0xA2,0x98,0xE3,0x62,0x3C,0xB7,0x4A,0x9E,0x94,0xEC,0xEC, + 0x6C,0x1D,0xA6,0x7E,0xC1,0x3A,0x2B,0x95,0x4B,0xA9,0xAB,0xAB,0xA3,0x4F,0x3E,0xF9, + 0xC4,0x64,0x9D,0x33,0x7B,0xA6,0xEB,0xE0,0xD6,0xF0,0xFE,0x33,0xA7,0x33,0x81,0x41, + 0x81,0x61,0x81,0x81,0x61,0xBB,0xE8,0x9D,0x77,0xDE,0x11,0x30,0x1A,0x23,0x07,0xBA, + 0x8D,0x77,0xDD,0x75,0x17,0x6B,0x79,0x07,0x51,0xCC,0x61,0x21,0xDE,0x33,0xD0,0x4F, + 0x3E,0xF9,0x24,0x56,0x86,0xA7,0xEB,0xAF,0xBF,0x5E,0x76,0x15,0x0C,0x80,0xBE,0x86, + 0xB4,0xFF,0x0C,0xB7,0x86,0xF7,0x9F,0x39,0x9D,0x85,0xB1,0x9F,0x0C,0xC3,0xC2,0x76, + 0x89,0xFD,0x64,0xB9,0xE8,0x35,0x88,0x8A,0x8A,0x12,0x03,0x5F,0x88,0x13,0xB1,0x5D, + 0x5E,0x41,0x51,0xC5,0x35,0xF5,0x9E,0x59,0x39,0xCF,0xB8,0x64,0x25,0x42,0xF9,0xB3, + 0x66,0x29,0x67,0x7B,0xF1,0xFE,0x33,0x47,0x2B,0x38,0xD2,0x4F,0xC6,0x68,0x4D,0x4B, + 0x4B,0x8B,0x18,0x1F,0xF2,0x36,0x8A,0x62,0x6E,0x39,0x6F,0xD2,0x91,0xDB,0x31,0x5A, + 0x67,0xE4,0x6E,0x8F,0x19,0x33,0x86,0xED,0x35,0x87,0xF7,0x9F,0x39,0x5A,0xC0,0x91, + 0x7E,0x32,0x98,0x31,0x63,0x06,0x7D,0xF8,0xE1,0x87,0x74,0xCF,0x3D,0xF7,0xB0,0x3D, + 0xDE,0x43,0x14,0x73,0x6A,0x42,0x84,0x57,0xDD,0x01,0x24,0x91,0xE0,0xCE,0x86,0xF4, + 0x37,0x04,0x08,0x94,0xCA,0xF3,0xCA,0xF5,0x9F,0x67,0xDC,0xFF,0x4F,0x3E,0xF7,0xD9, + 0x87,0x39,0x7E,0xAA,0x91,0x7E,0x3C,0x70,0x8A,0xBE,0xFE,0xA5,0x8C,0x96,0xAC,0x3F, + 0x41,0x9F,0x6C,0x2A,0x12,0xDB,0xDB,0x8F,0xD6,0x50,0x43,0x93,0xE7,0x96,0x5E,0x75, + 0x06,0x24,0x2E,0x4D,0xBA,0xE5,0x0F,0xAA,0xFB,0xC9,0x88,0x07,0x21,0xDB,0xAB,0x5F, + 0xBF,0x7E,0x1E,0x9B,0xE6,0x68,0x0B,0xD3,0x2F,0x9C,0xF6,0xFB,0x5C,0x33,0x53,0x8C, + 0xC9,0x17,0x4B,0x9F,0x18,0xE1,0xB1,0x13,0x5A,0xBC,0x78,0xB1,0x50,0x58,0x58,0x88, + 0x01,0x75,0xF1,0x77,0x3C,0xF7,0xDC,0x73,0x8A,0x1F,0x12,0xA2,0xDF,0xD2,0xD9,0x26, + 0x87,0xF7,0xED,0x17,0x3E,0x7F,0xEE,0x36,0x6A,0x3B,0xEF,0xFE,0x65,0x3A,0x39,0xEE, + 0x07,0x22,0xDD,0x98,0x57,0x45,0xBB,0x8E,0xD7,0x51,0x53,0xAB,0xED,0x72,0x54,0x99, + 0x09,0x5D,0x68,0x42,0xBF,0x24,0xEA,0x9F,0x1E,0xC3,0xF6,0x74,0x0E,0xF0,0x00,0x67, + 0x3F,0xF6,0xBE,0x55,0x3F,0x59,0xC9,0xBD,0xC6,0x70,0xEB,0x7D,0xF7,0xDD,0xA7,0xD3, + 0x77,0x1D,0x05,0x4C,0xA8,0x80,0xC1,0x62,0x4F,0x79,0x0D,0xD3,0x2F,0xB4,0x14,0x33, + 0x58,0xF3,0xD2,0x04,0x8F,0x9E,0x50,0x6C,0x6C,0xAC,0xA0,0xB7,0xBE,0xE2,0xEF,0x40, + 0x3F,0x64,0xD9,0xB2,0x65,0xE2,0x7E,0x4B,0xD0,0x0F,0x41,0x1F,0x24,0x27,0x27,0xC7, + 0x74,0x3E,0xFB,0x77,0x6C,0x15,0xBE,0x7A,0xE9,0x5E,0x2E,0x68,0x8D,0xB3,0x76,0x6F, + 0x05,0x6D,0x29,0xA8,0xA1,0xF3,0x6D,0xAC,0xD8,0x05,0xD2,0x74,0x87,0x5E,0x46,0x94, + 0x9E,0x63,0xD8,0x6E,0xD1,0xDF,0xC0,0xF3,0x77,0xE8,0x4D,0xF6,0x3E,0xA2,0x5D,0xDF, + 0x1B,0xDA,0x7A,0x52,0x63,0x23,0xE8,0x86,0xB1,0x19,0x94,0x18,0xE3,0xFD,0x51,0x0C, + 0x08,0x79,0xD6,0x43,0x6F,0x52,0x76,0x4E,0x6F,0xD3,0xF5,0x86,0x18,0x8F,0x92,0x7B, + 0x8D,0xEB,0x73,0xDE,0xBC,0x79,0x62,0x1E,0xF6,0xE4,0xC9,0x93,0x61,0x9D,0x3D,0xAA, + 0x1B,0x25,0x4C,0xBF,0xB4,0x33,0xC4,0xFC,0xE0,0x83,0x0F,0x0A,0x3D,0x7B,0xF6,0x34, + 0x45,0xFD,0x6C,0xDD,0xF9,0xF0,0x81,0x21,0xD4,0x8F,0x0A,0x26,0x6C,0x17,0xED,0xF8, + 0x71,0xB5,0xF0,0xED,0x1B,0x0F,0xB1,0x16,0x47,0x4B,0xC0,0x02,0x7F,0xB6,0xE5,0x24, + 0x15,0x94,0xB3,0xCC,0xA8,0xD1,0x57,0x11,0xDD,0xF4,0x07,0xA2,0xEC,0x41,0x86,0xB6, + 0x1C,0x10,0xF2,0x77,0x4B,0x88,0xBE,0x7C,0x99,0xA8,0xB6,0x82,0x22,0xC2,0x82,0x69, + 0xCE,0xB8,0x4C,0xCA,0x4E,0x8E,0x62,0x07,0x78,0x1E,0x74,0xE1,0xAE,0x7D,0xF4,0x7D, + 0xCA,0xB9,0xB0,0xC3,0x4D,0xC6,0xEA,0x8D,0xE8,0x07,0x2B,0x81,0x40,0x2E,0x02,0xBB, + 0x96,0xD7,0xB3,0xB7,0x31,0xFD,0xD2,0x1B,0x9F,0xDC,0x26,0x58,0x56,0x17,0xF1,0xB4, + 0x98,0xD1,0x67,0xD6,0xBB,0xCF,0x66,0x77,0x32,0xF4,0x49,0x94,0x42,0xFE,0x18,0xCA, + 0x82,0xA0,0xA5,0x8B,0x52,0x6F,0xFC,0xFA,0xBF,0xC2,0x8F,0x4B,0x3D,0x3F,0x23,0x85, + 0xA3,0x9E,0xF3,0x6D,0x82,0xBE,0x3F,0x7C,0x9C,0x8A,0xAB,0xCF,0x11,0x45,0x75,0x23, + 0x7A,0xEC,0x23,0xA2,0x81,0x13,0xD8,0xB3,0x2A,0x80,0xA8,0x5F,0xBC,0x93,0xE8,0xE7, + 0x6F,0x28,0x24,0x38,0x88,0xE6,0x8C,0xCF,0xA4,0x9C,0x54,0xCF,0xC7,0x49,0x30,0x04, + 0x35,0xFB,0xB1,0x0F,0xCC,0x22,0xD7,0x98,0x00,0x04,0x21,0x5B,0xCE,0x86,0x32,0x82, + 0x7E,0xB2,0xD1,0xA5,0x4E,0x4D,0x4D,0x45,0x85,0x11,0x8F,0x6A,0xC6,0x16,0xA6,0x68, + 0xB6,0x3B,0x96,0x75,0x75,0x14,0x58,0x59,0x7C,0x18,0xD2,0x7A,0x60,0xBF,0xF9,0xCD, + 0x6F,0x14,0xC7,0x9F,0xD1,0xA7,0xB6,0xBC,0x43,0xF6,0x1F,0x33,0x85,0x46,0xFD,0x6A, + 0x3E,0x6B,0x71,0xB4,0xC0,0xF2,0xED,0x25,0x06,0x21,0xC7,0xA5,0x10,0x2D,0x5A,0xEB, + 0x98,0x90,0x41,0x98,0xFE,0xFB,0xC7,0x0D,0xE0,0xD2,0x9B,0x45,0xF7,0xFC,0xB3,0xAD, + 0x27,0xA9,0xBC,0x4E,0x3E,0x9E,0xE2,0x2E,0x20,0xE4,0xAB,0x7F,0xFF,0xBA,0x99,0x90, + 0x61,0x6C,0xD0,0xF5,0x53,0x12,0x32,0xFA,0xC9,0x46,0x21,0x23,0x06,0xD4,0x19,0xC3, + 0x51,0x52,0x6C,0x2A,0xB8,0xBC,0xBA,0xC9,0xCA,0xF5,0x76,0x37,0xC6,0x61,0x2A,0x29, + 0xB7,0xDC,0x72,0x8B,0xE2,0xEC,0x2A,0x44,0xB8,0xDF,0x78,0xE3,0x0D,0xD3,0x79,0x25, + 0x26,0x25,0xE8,0x86,0x5E,0x76,0x03,0x0D,0xB8,0x64,0x36,0xDB,0xA3,0x0D,0x9A,0xB2, + 0x27,0x50,0xFD,0xF8,0x7B,0xC5,0x47,0x7B,0x94,0x7C,0x2E,0xBA,0x94,0xB3,0xFD,0xAE, + 0x70,0xFA,0x78,0x21,0xD8,0x7E,0xBF,0xB2,0xE1,0xA2,0x1B,0x9C,0x3A,0xFE,0xCC,0x18, + 0xC7,0xB2,0x98,0x0E,0x95,0x9C,0xA1,0x7D,0x45,0xA7,0x89,0x42,0xF5,0xBF,0xE3,0x0F, + 0xFA,0x1B,0x2F,0xFA,0xC5,0xCE,0x72,0xFF,0xEB,0x44,0xC3,0xA6,0x50,0x53,0x4B,0x1B, + 0x7D,0xB9,0xAD,0x84,0xED,0xF4,0x0C,0x97,0xFF,0xE6,0x6F,0x34,0x70,0xC4,0x18,0x33, + 0xAB,0x0A,0x21,0x2B,0x05,0x65,0x61,0x70,0x10,0xF0,0x62,0x4D,0xFA,0xCF,0x7F,0xFE, + 0xE3,0xF1,0x4A,0x22,0xF6,0xF0,0xBE,0x39,0xB6,0x00,0x7D,0x0D,0x7C,0x30,0xD2,0x8C, + 0x2F,0xAC,0xBF,0x83,0xBB,0x9C,0x92,0xA0,0x91,0x2A,0x07,0x77,0x9C,0x35,0x29,0x25, + 0x2D,0x59,0x37,0x7E,0xF6,0xEF,0x34,0x23,0x68,0x88,0xA5,0xE6,0xCA,0x67,0x4D,0xE2, + 0xA9,0x1F,0xA3,0x77,0x19,0x6D,0x00,0xF1,0xD6,0x5E,0xE5,0xFC,0xF1,0x8D,0x7A,0xE1, + 0xD9,0xA2,0x35,0xB9,0x1F,0xD5,0x4D,0xFB,0xB3,0x53,0xC7,0x9F,0xBE,0xE4,0x41,0x3A, + 0x97,0x73,0x19,0x7B,0xC6,0x3E,0x18,0x66,0x12,0xB9,0xED,0x29,0x22,0x49,0x15,0x0E, + 0xA7,0xC1,0x0D,0x41,0x6F,0xE1,0x61,0x99,0x71,0xA3,0xF0,0x04,0x57,0xCE,0x7F,0x91, + 0x46,0x4C,0x9E,0x6E,0x26,0x64,0x58,0x5A,0x18,0x0E,0x39,0x70,0xBD,0xCE,0x9D,0xDB, + 0x51,0xF7,0xEB,0xC7,0x1F,0x7F,0x14,0x62,0x63,0x63,0x4D,0x09,0x51,0x9D,0x85,0x49, + 0xCC,0xDE,0x98,0xD3,0xAC,0xC4,0xC2,0x85,0x0B,0x69,0xD1,0xA2,0x45,0xAC,0x65,0x00, + 0x91,0x6B,0x0C,0xC0,0x2B,0x81,0x7E,0xF5,0xD2,0xA5,0x4B,0x4D,0x82,0xC6,0x42,0x5D, + 0x13,0xAE,0xFB,0xAD,0x26,0x5C,0x6E,0x88,0x45,0x6A,0x5D,0x2D,0xDB,0x96,0x40,0xBC, + 0x52,0x6B,0xE9,0xE8,0xF1,0x96,0x6D,0x4B,0xEA,0xC7,0x9B,0x7F,0x26,0x0E,0x1F,0x6F, + 0xD1,0x56,0x02,0x62,0x13,0xDD,0x61,0x04,0xB9,0x66,0x5A,0xBF,0xE6,0xEE,0x91,0xFA, + 0xFE,0xF3,0xAC,0x58,0xDD,0x58,0xD6,0x96,0x62,0x7C,0x8E,0x35,0x3B,0x80,0xCB,0x7D, + 0xAD,0xA1,0xF2,0xCC,0xD6,0x82,0x6A,0xF1,0xA7,0xBB,0x80,0x6B,0x7D,0xDD,0xC2,0xF7, + 0xAD,0x84,0x0C,0xCF,0x4F,0x49,0xC8,0x30,0x30,0x28,0x21,0x2D,0x0D,0xC4,0xBE,0xF2, + 0xCA,0x2B,0xE2,0x24,0xA2,0xCE,0xC6,0xA6,0x65,0x6E,0x39,0xEF,0x5A,0xED,0x6C,0xB5, + 0xA0,0xDF,0x81,0xD2,0xBB,0xD2,0x6A,0x23,0x00,0x77,0x3A,0xA5,0x19,0x56,0x00,0xE5, + 0x4B,0xA5,0xFD,0x6D,0x58,0xE8,0x11,0x97,0xCF,0xA1,0xC9,0xB7,0xFE,0x99,0xED,0xF1, + 0x3E,0x10,0x89,0xA5,0x65,0x95,0xDB,0x67,0x04,0xA2,0xB5,0xB4,0x94,0x8E,0x1E,0x2F, + 0xB7,0xCF,0x08,0xAC,0xAC,0xA5,0x65,0x75,0xF4,0x78,0xB9,0x7D,0x72,0xE4,0x95,0xB0, + 0x3A,0x6F,0x88,0x5C,0xCB,0xF0,0x76,0xA9,0xA1,0x14,0xD5,0x0D,0x56,0x43,0xC8,0xA1, + 0x74,0x75,0x77,0xA2,0x6F,0xB6,0xD7,0x99,0x7D,0xFF,0x26,0xF4,0x7D,0x67,0xB8,0xED, + 0xE8,0x87,0xDB,0x1B,0xA7,0x56,0x0B,0xA2,0xD6,0xD7,0x3C,0xF2,0x0E,0x0D,0x18,0x6E, + 0x5E,0x97,0x0B,0x06,0x02,0x9E,0x9F,0x12,0x10,0xB2,0x74,0x88,0x14,0xFD,0x6A,0x8C, + 0xC0,0x74,0xC6,0xB8,0xB2,0x25,0x36,0xC5,0xEC,0x8E,0xDA,0xD9,0x6A,0xC1,0x9D,0x0D, + 0x77,0x38,0x4B,0x90,0x2C,0x32,0x61,0x82,0x72,0x00,0x05,0x37,0x01,0xA9,0x85,0x46, + 0x1F,0xFA,0xE2,0x99,0x37,0xEA,0xE0,0x3A,0x75,0xC6,0x4C,0x2B,0xA9,0x55,0x0D,0xAE, + 0xEF,0xE8,0xE7,0x49,0xF7,0x4B,0x91,0x5A,0xC9,0xA0,0xA6,0x0E,0x37,0x52,0xCD,0xF1, + 0xD2,0xF7,0x97,0xEE,0x97,0x22,0xB5,0xAA,0xD2,0xF7,0x57,0x73,0xBC,0xD9,0xFB,0xAB, + 0xB0,0xCE,0xA6,0x61,0xA8,0x09,0xD7,0x1A,0x7E,0x5A,0x52,0xD2,0x4A,0xDF,0x08,0x82, + 0x30,0x23,0xDD,0xE2,0xB2,0x4B,0x0F,0xA5,0xAB,0x74,0x3A,0xDD,0x57,0x4A,0xDD,0x62, + 0x44,0xC4,0xF5,0x2E,0x3B,0x82,0x61,0x05,0x65,0xD6,0x45,0x00,0x1C,0x05,0x05,0x23, + 0x31,0xFC,0x74,0xE1,0xD0,0xE1,0x56,0x16,0x19,0x06,0x42,0x09,0x78,0x8A,0x96,0x99, + 0x5D,0xF0,0x28,0xE1,0x59,0x6A,0x01,0xD3,0xA7,0x1A,0xEA,0xC5,0x99,0x53,0x72,0x60, + 0x6C,0x0E,0x83,0xF2,0xB8,0xD3,0xB1,0x5D,0x26,0xA6,0x4E,0x9D,0x2A,0x46,0xBD,0x95, + 0xC0,0x17,0x20,0xED,0x43,0x03,0xB8,0x4E,0x88,0x4E,0x7A,0x5A,0xD0,0x10,0x5C,0x73, + 0xE6,0x48,0xD3,0x43,0x6A,0x51,0x63,0xBF,0xFF,0x3B,0x75,0x29,0xF8,0x5E,0xDC,0x96, + 0xB3,0xB6,0x96,0x16,0x32,0x6E,0xD5,0x13,0x14,0x7A,0x2A,0x4F,0xDC,0x56,0x73,0x7C, + 0xE2,0x97,0x0F,0x98,0x8E,0xB7,0x7C,0x0E,0x58,0x5A,0xD4,0x84,0xCF,0xE7,0x51,0x50, + 0x63,0x95,0xB8,0x6D,0xEF,0x78,0x5D,0x5B,0x33,0x25,0x7F,0x72,0x87,0xE9,0x78,0x3C, + 0xD7,0x30,0xFC,0x56,0xB3,0xBF,0x55,0xFA,0x38,0x9D,0x3C,0xC4,0x90,0x8E,0x09,0xE1, + 0x29,0x06,0xBD,0x5A,0xE9,0xAB,0x52,0x7D,0x17,0xAA,0x5F,0x57,0x33,0x57,0xFB,0xEE, + 0xEE,0x86,0xE5,0x91,0xDE,0x16,0xFF,0x57,0x80,0x45,0xC4,0xEB,0xCE,0xBA,0x56,0x68, + 0x52,0xCC,0xEC,0xFA,0x83,0xF9,0x38,0x32,0x78,0xF5,0xD5,0x57,0x6D,0x5A,0x64,0xD4, + 0xF1,0x92,0xAB,0xAE,0x89,0x6B,0xB6,0xB3,0xA3,0xD8,0x46,0x4C,0x0A,0x8E,0xF7,0xD2, + 0x9C,0x66,0x5B,0x60,0xF0,0x5D,0x29,0x0B,0x0C,0x6E,0x0C,0x16,0xA7,0x56,0x02,0x7D, + 0x68,0x69,0x94,0x1B,0x20,0x3A,0x79,0xE3,0x9F,0x3F,0xF6,0x68,0x2E,0xF7,0xB9,0x5E, + 0x13,0xA8,0x72,0xCE,0x12,0xD3,0x03,0x22,0x01,0x10,0x19,0x84,0xDC,0x75,0xD3,0x1B, + 0x62,0x1B,0x58,0x5A,0x5B,0xA9,0x75,0x74,0xF4,0x78,0x1C,0x8B,0xD7,0x48,0x8F,0x97, + 0x3E,0x0F,0xA4,0xD6,0x14,0xC7,0x87,0x97,0xEE,0xA1,0xAE,0x5B,0xFF,0xCD,0xF6,0xD8, + 0x3E,0x3E,0x6A,0xF7,0xA7,0x14,0x7C,0xBA,0xC4,0xEC,0xF8,0xBA,0xCB,0x16,0x9A,0xFD, + 0xAD,0xD2,0x47,0xF1,0xA4,0x3F,0x19,0x0E,0xC2,0x70,0x94,0x0D,0xDE,0xCE,0x6B,0xA2, + 0x02,0xE1,0xBC,0xD0,0xE1,0x6A,0xDB,0x71,0xB1,0x8D,0x24,0xF7,0x10,0x7F,0xB8,0x92, + 0xBF,0x8D,0x5C,0x6B,0xA4,0x68,0x66,0xF5,0xE9,0x65,0x12,0x25,0x8C,0x07,0x82,0x5D, + 0x55,0x55,0x86,0x9B,0x96,0x1C,0x28,0xFD,0x63,0x2C,0x19,0x2D,0x65,0xC9,0x92,0x25, + 0x02,0x44,0x2E,0xED,0x3F,0x77,0x26,0x36,0xCD,0xB1,0x2B,0x6B,0x34,0x3B,0x03,0xDC, + 0x15,0x39,0x57,0xDB,0xC8,0xAD,0xB7,0xDE,0x6A,0x53,0xD0,0xB8,0xB3,0xE2,0x8B,0xA9, + 0xAC,0xAC,0x34,0x5D,0x18,0xA8,0x25,0x06,0x97,0x2A,0x36,0xB5,0x27,0xDB,0xE3,0x1D, + 0x8C,0x22,0x33,0x8A,0x14,0x48,0xAD,0xAD,0xA5,0x65,0x34,0x1E,0x6F,0x14,0x29,0x70, + 0xF4,0x78,0xE9,0x31,0x96,0x56,0xD9,0x78,0x3C,0x44,0x2A,0x67,0x9D,0x2D,0xAD,0xB2, + 0x51,0xC4,0xD2,0xE3,0x6D,0xD1,0x72,0x86,0x05,0x8C,0x60,0x99,0x6D,0x71,0xA6,0x95, + 0x56,0x9E,0x09,0x26,0x93,0xAB,0x6D,0xCF,0xC5,0xB6,0x00,0x09,0x29,0xCE,0x80,0xD9, + 0x4F,0x33,0xEF,0x7F,0xD5,0x2C,0xD7,0x1A,0x53,0x6C,0xDF,0x7F,0xFF,0x7D,0x71,0xB8, + 0x53,0x09,0x78,0x84,0x33,0x67,0xCE,0x94,0x15,0xAB,0x56,0x02,0x5F,0x46,0xEC,0x88, + 0xD9,0x3D,0xC1,0x06,0xB5,0xE0,0x0E,0x87,0x29,0x91,0xD2,0x99,0x52,0x96,0xD8,0x13, + 0x34,0xBE,0x98,0x77,0xDF,0x7D,0xD7,0xCC,0x5D,0x87,0x4B,0x75,0xCD,0x43,0x6F,0x53, + 0xDF,0xD1,0x57,0xB2,0x3D,0xEE,0x23,0xB8,0xA1,0x8A,0x22,0x8A,0xB7,0x9B,0x3D,0x22, + 0xF3,0x56,0x99,0x04,0x0C,0xA4,0xD6,0xD3,0x68,0x6D,0xA5,0x56,0x51,0x2A,0x78,0x60, + 0xEF,0x78,0xA9,0x80,0x81,0xF4,0x78,0xE3,0x71,0x96,0x56,0xD9,0x78,0xBC,0x54,0xA8, + 0x40,0xEE,0x78,0xA9,0x80,0x71,0x7C,0xB7,0x9F,0x5E,0xB6,0xFA,0x1B,0x2D,0x1F,0x89, + 0xC4,0x04,0x51,0x5B,0x61,0xF8,0xA9,0x48,0x3B,0x7D,0x5A,0xDA,0x66,0x72,0xB5,0xE1, + 0x62,0x17,0xE4,0xD5,0x0B,0x36,0x5D,0x6C,0xC0,0xDE,0x37,0x3A,0x22,0x58,0xFC,0xE9, + 0x08,0x17,0xDF,0xF8,0x08,0x5D,0xFA,0xEB,0xC7,0x29,0x33,0x2B,0xC3,0x24,0x4A,0xA4, + 0x68,0x42,0xC8,0x4A,0xE3,0xC8,0x40,0x9A,0xDD,0x65,0x09,0x86,0x52,0x31,0x44,0xD5, + 0xD9,0xC3,0x51,0x52,0x4C,0x27,0xF2,0x8F,0x4F,0x0A,0x84,0x35,0xDB,0xCD,0xBF,0x88, + 0x87,0x6E,0xCA,0xA1,0xCB,0x47,0x75,0x4C,0xFF,0xF2,0x06,0x48,0x68,0xBF,0xFD,0xF6, + 0xDB,0x11,0xD8,0xB2,0xF9,0x7B,0x11,0xC5,0xB6,0x5C,0x1A,0x56,0x0A,0x86,0x10,0x2C, + 0x27,0x67,0x54,0x94,0x55,0x0A,0xC7,0xF6,0x6D,0xA2,0x1F,0xDE,0x7F,0xC6,0xEB,0x13, + 0x34,0xAA,0xAF,0x79,0xC5,0x64,0xF9,0x20,0xF6,0x73,0x39,0x97,0x9A,0xC4,0x99,0xB0, + 0xFC,0x01,0x33,0x31,0x83,0x8A,0xB9,0x9F,0x8B,0xD6,0x12,0x58,0x1E,0x9F,0xF2,0xFE, + 0x6C,0x33,0x31,0x03,0xE9,0xF1,0x51,0xFB,0x57,0x50,0xE3,0xC0,0x8E,0xC2,0x0F,0x96, + 0xC7,0xE3,0x7D,0xCA,0xE6,0x7D,0x27,0xDE,0x24,0x80,0xF4,0x78,0x88,0x37,0xED,0xCD, + 0xCB,0x55,0x59,0x63,0x4B,0x9E,0xF9,0xE2,0xA0,0xC1,0x72,0x7E,0x54,0x68,0xDB,0x42, + 0xC7,0x84,0x53,0xC1,0xA5,0xA1,0xB4,0xF2,0x87,0x66,0xEA,0x7B,0x69,0x38,0xE5,0xFF, + 0xD0,0x40,0x0B,0xEC,0x0D,0x21,0xBF,0xF9,0x7B,0xA2,0xD5,0xEF,0xD1,0xCC,0xE1,0x69, + 0x34,0xB2,0x77,0x3C,0xDB,0x69,0x1B,0x04,0xBA,0x7E,0xB5,0xE0,0x4D,0xEA,0x3B,0xE0, + 0x42,0xB3,0x6B,0xC9,0xD6,0xA4,0x09,0x23,0x70,0x9F,0xE5,0x5C,0x6B,0x23,0xFA,0x6B, + 0x4B,0xB8,0xFA,0xEA,0xAB,0x69,0xCE,0x9C,0x39,0x5E,0xD5,0x87,0x2D,0x4C,0x96,0x39, + 0x39,0xAE,0xF3,0xFB,0xCC,0x00,0x77,0x3A,0x0C,0xC0,0x63,0x20,0x9E,0xED,0x92,0x05, + 0x77,0x4C,0x5B,0x51,0x6E,0xA4,0xE0,0xA1,0xFF,0xBD,0x7D,0xFB,0x76,0xD3,0xFB,0xA4, + 0xA4,0x25,0xE9,0xC6,0x4E,0x9B,0x25,0xF6,0xA3,0x3B,0xCB,0xED,0x06,0xC8,0xDE,0x32, + 0x0A,0xD3,0xD2,0x2A,0x1B,0x51,0x3A,0xDE,0xD2,0x2A,0x1B,0x31,0xB3,0xE6,0x12,0x21, + 0xCB,0x1D,0x6F,0x69,0x9D,0xA5,0xC7,0xAB,0x75,0xAB,0xE5,0xC8,0x4C,0x88,0x34,0x6C, + 0xFC,0xFC,0x8D,0xE1,0xA7,0x12,0x46,0x57,0x7B,0x64,0xB8,0xDE,0xC5,0x0E,0xD1,0x7D, + 0xAA,0x26,0x17,0x84,0xBD,0xA7,0xDA,0x49,0x17,0x99,0x17,0x8E,0xA5,0x9B,0xFE,0xF4, + 0x5F,0x2B,0x21,0xE3,0xBA,0xB2,0x27,0x64,0x44,0xAD,0x6D,0x09,0xD9,0x38,0x1C,0xA5, + 0x25,0x21,0x03,0x9B,0x6E,0x76,0x67,0xA1,0x34,0x4C,0x65,0x09,0xA2,0xDC,0xB6,0xC6, + 0xA1,0x21,0x68,0x2C,0x19,0x22,0x5D,0xFE,0x06,0xA0,0x1F,0xED,0x29,0xB7,0x5B,0x09, + 0x35,0xA2,0x95,0xA2,0x46,0xB4,0x52,0x1C,0x3D,0x5E,0x4E,0xB4,0x96,0x22,0x77,0x94, + 0x81,0x99,0x5D,0x0D,0x1B,0xF6,0xC4,0x6C,0x74,0xB5,0xBB,0x86,0xE8,0xE0,0x62,0x6F, + 0x61,0x7B,0x15,0xC1,0xFB,0xE9,0xDD,0x6C,0x4C,0x87,0x54,0x33,0x25,0x12,0x6E,0xF5, + 0xF4,0x7B,0x9E,0x33,0x5B,0xD0,0x0D,0x20,0x60,0x65,0xB9,0x6E,0xB2,0x14,0x63,0x42, + 0x88,0xBD,0x35,0xA1,0xDE,0x7C,0xF3,0xCD,0x4E,0x4F,0xDD,0x94,0xC3,0xA6,0x98,0x6B, + 0x3D,0x54,0x07,0xCC,0x1E,0xB0,0xBA,0xA8,0xD8,0x00,0x77,0x88,0xED,0x52,0x04,0xE3, + 0xD0,0x88,0x82,0x2B,0xA5,0x7E,0x02,0x54,0x03,0xC5,0xD0,0x83,0xB4,0x1F,0x9D,0xD9, + 0x33,0x43,0x37,0xF9,0xE6,0x47,0x69,0xEA,0x5D,0x7F,0xF5,0xDA,0x78,0xB4,0xA5,0xB0, + 0x94,0x04,0x6E,0xC4,0xF2,0x78,0x25,0xC1,0x1A,0x71,0xE4,0x78,0x39,0xE1,0xBA,0x62, + 0x95,0x41,0xFF,0xF4,0xAE,0xE2,0x2C,0x27,0x51,0x7C,0x98,0x9F,0x6C,0x83,0x2D,0x79, + 0x0D,0x44,0x2B,0xEA,0x84,0x9C,0x3C,0x15,0x89,0x49,0xCB,0x9E,0x17,0x7F,0x8C,0xEC, + 0x1D,0x27,0xFE,0x54,0x02,0x6E,0xF5,0x4D,0x4F,0x7E,0x46,0x93,0xAF,0x9B,0xAB,0x4B, + 0xD3,0x7B,0x61,0x6C,0xB7,0xD8,0x3F,0x7E,0xE1,0x85,0x17,0x04,0x5C,0x53,0x4A,0xA0, + 0xFF,0x8B,0x6E,0xD9,0xA0,0x41,0x83,0xEC,0x5A,0x5B,0xE4,0x61,0x63,0xFE,0xB2,0xD6, + 0xB0,0x29,0x66,0x6F,0x65,0x80,0xC9,0x81,0x3B,0x1F,0x3E,0x34,0x35,0xC0,0x35,0xB7, + 0x95,0xCB,0x0D,0x30,0xF4,0x80,0xC0,0x98,0x9C,0xDB,0x3D,0xE7,0xE9,0xCF,0x29,0x39, + 0xCB,0xC6,0x3C,0x5B,0x37,0x01,0x61,0x45,0xFF,0xB2,0xD4,0x14,0x34,0xEA,0xB6,0xC1, + 0xF6,0xB2,0x25,0x10,0x23,0xFA,0xCB,0xC6,0xE3,0x95,0xAC,0xAC,0x11,0x47,0x8F,0x87, + 0x78,0x23,0x8E,0xE7,0x76,0x1C,0xEF,0x82,0x55,0x06,0xD1,0x11,0x21,0x34,0x36,0x87, + 0xF5,0x67,0xD1,0xC7,0x65,0x85,0x06,0x5C,0xE2,0x87,0x8F,0xC5,0x1B,0x03,0xDE,0xDB, + 0x56,0x5F,0x19,0x4B,0x01,0xCB,0xB9,0xD5,0x6B,0xD7,0xAE,0x15,0xA7,0x30,0xCA,0xAD, + 0x38,0x61,0xC4,0x98,0x6B,0x2D,0x8D,0xAF,0x28,0x81,0xE0,0x2C,0x82,0xB4,0x5A,0x19, + 0x8E,0x92,0x62,0x3A,0xA1,0x0F,0x56,0x17,0x0A,0x1F,0xAE,0x29,0x66,0x2D,0x03,0xB7, + 0x4C,0xCB,0xA4,0xDB,0xA6,0xF7,0xEC,0xB4,0x93,0xCE,0xCA,0xCA,0x12,0xB6,0x6C,0xD9, + 0xA2,0xFA,0x83,0xC3,0x50,0x03,0xBE,0x38,0x5B,0x11,0x4A,0x80,0x9A,0xDD,0x28,0xF5, + 0xCB,0x9A,0x22,0xA5,0x25,0xA7,0x84,0x93,0x87,0x77,0xD0,0x4F,0x1F,0x3F,0x4F,0x67, + 0xEB,0xDD,0x9B,0x03,0x1C,0x48,0x20,0x00,0xF6,0xCF,0xD5,0x05,0x54,0xD7,0xD8,0xAA, + 0xF7,0x77,0xAF,0x23,0x7A,0xC8,0x85,0x1B,0xC4,0xE1,0xED,0x44,0x4F,0xCC,0x20,0x6A, + 0x6D,0x56,0x0C,0x7C,0x61,0xEC,0x18,0x8B,0xF4,0x63,0x6D,0x6F,0x2C,0x09,0xCC,0x76, + 0x8B,0xD8,0x9A,0x1B,0x6F,0x04,0xF1,0x19,0xCC,0xD2,0x93,0xCE,0x91,0xB7,0x85,0x5E, + 0xC8,0x18,0x97,0xF6,0xE8,0xA2,0xE9,0xCE,0x62,0xB2,0xCC,0x9E,0x5C,0x70,0xDD,0x59, + 0x60,0x6D,0x31,0x7C,0xA0,0x16,0xCC,0xB6,0x7A,0xEC,0xB1,0xC7,0x14,0x0B,0x04,0x1A, + 0x91,0x73,0xBB,0xB1,0x58,0xDD,0xA8,0x4B,0xAF,0xD4,0xE1,0xEE,0x3E,0x70,0xE2,0x8D, + 0x6C,0x2F,0xC7,0x51,0x42,0x82,0x75,0x74,0xF3,0xF8,0x1E,0x06,0x77,0x7B,0xE3,0x17, + 0x86,0x22,0x03,0xCE,0x58,0x68,0xB8,0xEA,0xCF,0xCC,0x16,0x85,0x0C,0x11,0x5B,0x0A, + 0x19,0x89,0x40,0xE8,0x1B,0xCF,0x7A,0xE8,0x2D,0xD1,0x1A,0x4B,0x85,0x0C,0xB7,0x1A, + 0x35,0xE5,0xEC,0x09,0x19,0x85,0xF7,0x90,0x79,0xA8,0x56,0xC8,0xE8,0xF6,0xC1,0x50, + 0x68,0x51,0xC8,0xC0,0x74,0x52,0xDF,0x6D,0xAB,0x10,0x5E,0x5C,0x56,0xC0,0x5A,0x06, + 0x3A,0xDB,0x32,0x43,0x6C,0x96,0x95,0x48,0xD4,0x62,0xAB,0x04,0x91,0x11,0xB8,0xE5, + 0x53,0xA6,0x4C,0xB1,0xFA,0x72,0x2A,0x2B,0x6B,0x84,0xDA,0x53,0xE5,0xF4,0xC3,0x7F, + 0x9E,0xA1,0x53,0x27,0x6C,0xF7,0xFD,0x38,0xF2,0x60,0x06,0x15,0x8A,0x0A,0x88,0xB5, + 0xBF,0x90,0xDE,0x39,0xEF,0x25,0x75,0x45,0x0A,0x20,0x7C,0x94,0x0D,0x62,0xFD,0x64, + 0x14,0xF6,0xBB,0x7E,0x4C,0xA6,0x78,0x93,0x30,0xD2,0x7B,0xF8,0x54,0xBA,0x44,0x2F, + 0xE4,0xCC,0xAC,0x8E,0x04,0x10,0x23,0x70,0xAB,0x73,0x73,0x73,0x59,0x4B,0x1E,0xA5, + 0xEF,0xDD,0x1E,0x7A,0x57,0x5C,0x98,0x38,0x71,0x22,0xDD,0x7E,0xFB,0xED,0x0E,0x5F, + 0x8F,0xDE,0xC0,0x74,0x52,0x72,0x62,0x9E,0x31,0x2E,0x95,0xEE,0x9F,0xDD,0xA7,0x53, + 0x4F,0x7C,0xDE,0xBC,0x79,0xC2,0x90,0x21,0x43,0x68,0xFE,0xFC,0xF9,0x0E,0x9F,0x07, + 0x8A,0x04,0x62,0x18,0xC2,0x9E,0xDB,0x8D,0x75,0xA3,0x31,0x1C,0x01,0xCB,0xCE,0x76, + 0x89,0xC0,0xF5,0x3E,0xB1,0x2F,0x97,0x36,0x2E,0x5B,0x44,0xCD,0x67,0x5D,0x4F,0xF0, + 0x0F,0x34,0x30,0x1D,0xF2,0xE3,0x4D,0x45,0x06,0x97,0x1B,0x40,0xCC,0x98,0x84,0x81, + 0x59,0x55,0x96,0x69,0x9F,0xFB,0xF5,0x02,0x84,0x35,0x86,0x35,0xAF,0x33,0xCC,0x89, + 0x9E,0x3C,0x20,0x49,0xFF,0x48,0x16,0xB7,0x01,0x86,0x13,0xA7,0xDD,0xF1,0x37,0x8A, + 0x4F,0xEB,0xA1,0x77,0xA9,0xE3,0xCD,0xBE,0x2B,0x7C,0xD7,0x18,0xB9,0xB0,0xD5,0x37, + 0x06,0x70,0xAB,0x11,0xB1,0xB6,0xFC,0xAE,0xED,0xE1,0x8A,0x61,0xF1,0x16,0xA6,0x13, + 0x93,0x13,0xF3,0xB4,0x91,0x29,0xF4,0xF0,0x1C,0xFB,0x41,0x01,0x4F,0xA2,0x36,0x89, + 0xC4,0x16,0x6A,0xFA,0x4E,0x40,0x29,0xE3,0xE7,0x64,0x71,0x85,0xF0,0xCB,0xAA,0xF7, + 0x68,0xFF,0xFA,0xCF,0x78,0x35,0x50,0x07,0x41,0x1F,0x7A,0x63,0x5E,0x25,0x6D,0xC9, + 0xAF,0xB1,0x9E,0xBE,0x88,0x79,0xCF,0xA7,0x8A,0x88,0x1A,0x4F,0xB3,0x1D,0x06,0x30, + 0x96,0x7C,0xC5,0x45,0xA9,0x62,0x85,0x4E,0x80,0x28,0xF5,0xC8,0x99,0xF3,0x28,0x67, + 0xC4,0x34,0x7D,0x77,0x28,0xD1,0xEA,0xFB,0xC1,0xAC,0x39,0x5B,0xB3,0x9D,0x8C,0xC0, + 0xAD,0x76,0x76,0x6C,0x18,0x69,0xC2,0xD2,0xD2,0xD0,0x5A,0xC4,0x74,0x62,0x9B,0xF6, + 0x55,0x09,0x4F,0x2F,0x31,0x1F,0xC6,0xD0,0x82,0x98,0x81,0x3B,0x6A,0x11,0xAB,0x71, + 0xBB,0x01,0x22,0x9B,0x70,0xC1,0xE4,0xC6,0x1A,0x4B,0x4A,0x2A,0x85,0x03,0x1B,0x3E, + 0xA7,0x5D,0x6B,0xDE,0xE7,0x96,0xDA,0x41,0x30,0x41,0x02,0x53,0x24,0x31,0xE7,0x19, + 0x3F,0x2D,0x73,0xAC,0x31,0x7E,0x0C,0x97,0x7A,0x50,0x8F,0x6E,0x26,0x11,0x63,0x86, + 0xD3,0xB8,0xEB,0xEE,0xA7,0xCC,0x81,0xE3,0xA9,0x7B,0x9A,0xB9,0x25,0x06,0x48,0x00, + 0x81,0x4B,0xAD,0x54,0xA3,0xCB,0x08,0xDC,0x6A,0xE4,0x23,0xD8,0x1B,0x3F,0xB6,0x05, + 0x8A,0xF5,0xE9,0x0D,0x8B,0x26,0xA3,0xD8,0x46,0x4C,0x27,0xB6,0xE7,0x48,0x9D,0xF0, + 0xC8,0xEB,0xFB,0x59,0xCB,0x80,0x56,0xC4,0x8C,0xD4,0x4D,0x0C,0x53,0xE9,0x5D,0x66, + 0x97,0xCE,0x45,0xAD,0xDB,0x0D,0x10,0x44,0xC3,0x05,0x20,0xE7,0x8E,0xC1,0x52,0x1F, + 0xDE,0xFA,0x35,0xED,0xFA,0xEE,0x03,0x1E,0xF9,0xF6,0x00,0x88,0x50,0x0F,0xBF,0xE2, + 0x0E,0xCA,0x1C,0x30,0x96,0xBA,0x77,0xB7,0xB6,0xC4,0x08,0x70,0xAD,0x5E,0xBD,0x5A, + 0x1C,0x6E,0xB4,0x07,0x8A,0xEE,0x59,0x56,0x06,0x71,0x14,0x77,0x5D,0x7F,0x9E,0xC6, + 0x74,0x72,0x72,0x62,0x1E,0x37,0x30,0x81,0x9E,0xBA,0xC3,0xFB,0xCB,0x6C,0xC8,0xA1, + 0x77,0x81,0x85,0x25,0x4B,0x96,0xB8,0x25,0xB1,0x1D,0x63,0x85,0x58,0x69,0x52,0x0D, + 0x98,0xFE,0xA6,0x34,0x6B,0xA6,0x44,0xDF,0xA7,0x3E,0xB2,0x63,0x1D,0xED,0x5C,0xB5, + 0x84,0xCE,0xD4,0x94,0xB2,0xBD,0x1C,0x67,0xC1,0x58,0xFF,0x98,0x6B,0xEE,0xA5,0xE4, + 0x1E,0xFD,0xC4,0xD1,0x05,0xB6,0xDB,0x04,0xFA,0xAD,0xC8,0xE0,0x52,0xFB,0xDD,0x61, + 0x3C,0xD8,0x1D,0xEB,0x23,0x4F,0x9A,0x34,0x49,0x40,0xE1,0x49,0x5B,0x29,0x9E,0x5A, + 0xC0,0x74,0x72,0x72,0x62,0x1E,0xD2,0xA7,0x1B,0xBD,0x70,0xAF,0xFD,0x8C,0x18,0x6F, + 0x80,0xB9,0xCA,0x7B,0xF6,0xEC,0x41,0x2A,0x9D,0x5B,0xCE,0xC7,0x91,0xBB,0x3B,0xDC, + 0x34,0x5B,0x53,0xE1,0x4A,0x4B,0xAB,0x84,0xE2,0x03,0x5B,0x08,0xFD,0xEA,0xAA,0x93, + 0xF9,0x6C,0x2F,0x47,0x2D,0x59,0x83,0x27,0xD1,0xA8,0x19,0xBF,0xA1,0xAE,0x49,0xDD, + 0x65,0x45,0x8C,0x72,0x52,0x70,0xA7,0xD5,0xF4,0x8B,0x01,0xBC,0x2A,0x04,0x34,0xDD, + 0xE1,0x12,0xBB,0x23,0x66,0xE3,0x2D,0x4C,0x27,0xA8,0x75,0x31,0x03,0x47,0x93,0x48, + 0xD4,0xB0,0x71,0xE3,0x46,0xF1,0x6E,0x6F,0xAF,0xDF,0x65,0xC4,0xD6,0xB4,0x38,0x44, + 0xBF,0x5B,0x9A,0xCE,0xD1,0x7E,0x7D,0xBF,0x3A,0x6F,0xF3,0x57,0xDC,0x05,0xB7,0x01, + 0x22,0xD3,0xC3,0xA6,0xDF,0xAE,0x17,0xF2,0x44,0xFD,0xCD,0x52,0x27,0x16,0x64,0x64, + 0x4F,0x99,0x80,0x88,0xF1,0xDD,0xD8,0x4A,0xC3,0x94,0x82,0x78,0x07,0xBA,0x46,0xEE, + 0x9C,0x96,0xD8,0xD9,0xAB,0x54,0x38,0x82,0xE9,0x04,0x51,0x23,0xFB,0xB6,0xBF,0xEE, + 0x60,0x2D,0x03,0x5A,0x13,0x33,0x12,0x01,0x4E,0x9F,0x3E,0x4D,0xCF,0x3F,0xFF,0xBC, + 0xDB,0xCF,0x49,0x6D,0x44,0xD4,0x08,0x44,0x8D,0x59,0x5B,0x4A,0x09,0x07,0xA5,0x65, + 0x35,0x42,0x4D,0x49,0x01,0xED,0xFF,0xE9,0x4B,0x3A,0xBA,0x63,0x2D,0x8F,0x82,0xEB, + 0x41,0x54,0x1A,0x63,0xC4,0x43,0xA7,0xDD,0x46,0x61,0x11,0x51,0xB2,0x91,0x69,0x80, + 0xD8,0x06,0x44,0x6C,0xAB,0x8C,0x8F,0x25,0xB6,0xBA,0x43,0xAE,0xD0,0xD9,0xAB,0x54, + 0x38,0x82,0xE9,0x24,0x7D,0x41,0xCC,0x9E,0x1E,0xEB,0x83,0xEB,0x8D,0xB1,0x4A,0x5B, + 0x95,0x27,0x2C,0xC1,0x70,0x87,0xAD,0xD2,0x31,0x55,0x95,0xB5,0x42,0x8B,0xDE,0xE8, + 0x17,0xEF,0xCF,0xA5,0xBD,0xEB,0x3F,0xA5,0xB2,0x82,0x9D,0xEC,0x99,0xC0,0x00,0x93, + 0x58,0xB2,0x86,0x5C,0x42,0x43,0x2E,0x9B,0x43,0xF1,0xE9,0x39,0xB2,0x51,0x69,0x23, + 0xCE,0x88,0x58,0x29,0x47,0xC0,0x1D,0xF8,0xC2,0x70,0x94,0x14,0xD3,0x49,0xCA,0x89, + 0xD9,0xD3,0xCB,0xBA,0x3A,0x83,0x37,0xDC,0x1E,0x0C,0x79,0x60,0x18,0x4B,0x4D,0xD4, + 0xDB,0x08,0x2E,0x2A,0x58,0x07,0x5B,0xC3,0x1F,0x65,0x25,0x95,0x42,0x9B,0x20,0x50, + 0xC5,0xD1,0x3D,0x74,0x7C,0xCF,0x4F,0x54,0x7A,0xE4,0x17,0xAA,0x2B,0x2F,0x64,0xCF, + 0xFA,0x0F,0x08,0x64,0x75,0xEF,0x3B,0x8C,0x7A,0x5D,0x34,0x51,0x2F,0xE0,0xBE,0x14, + 0x12,0x24,0x58,0x25,0x79,0x48,0xC1,0xE7,0x8D,0x42,0x13,0x8E,0xDC,0x44,0xA3,0xA3, + 0xA3,0x45,0xCF,0xC8,0xD1,0x2C,0x2E,0x47,0xD0,0xDF,0xA8,0x85,0xE5,0xCB,0x97,0x77, + 0xCA,0x5A,0xCB,0xCE,0x60,0x3A,0x49,0x5F,0x11,0xB3,0x37,0x03,0x12,0xCE,0x88,0x1A, + 0xC0,0x5A,0x63,0x32,0x87,0xAD,0xE9,0x74,0xD5,0xD5,0xA7,0x85,0xE6,0xA6,0x56,0x6A, + 0x17,0xDA,0xA9,0xE4,0xD0,0xCF,0x74,0x7C,0x5F,0x2E,0x95,0xE5,0xEF,0xF4,0xC9,0xA8, + 0x38,0x86,0x92,0xD2,0x72,0x86,0x51,0xB6,0x5E,0xBC,0xA9,0xBD,0x86,0x50,0xBB,0xBE, + 0x4B,0x21,0x17,0xC8,0x92,0x82,0xD9,0x6B,0x10,0xB0,0x9A,0x64,0x1E,0x29,0xDE,0x10, + 0x31,0xF0,0x95,0xE1,0x28,0x29,0x66,0x27,0x6A,0xB9,0xAC,0xAB,0x16,0xC5,0x0C,0xBC, + 0xBD,0xA0,0xB5,0xB3,0xA2,0x46,0x40,0x06,0xA2,0x46,0xFF,0xDA,0x9E,0x1B,0x28,0xBA, + 0xE3,0xAD,0x6D,0x74,0xBE,0xB5,0x59,0x14,0x75,0xE9,0x91,0xDD,0x62,0x64,0xFC,0x74, + 0x45,0xA1,0xA6,0x02,0x69,0x08,0x5C,0x75,0x89,0x49,0xA0,0xF4,0xBE,0xC3,0x45,0xEB, + 0x9B,0xDC,0x73,0x10,0x91,0xD0,0x6A,0x57,0xBC,0x00,0x6E,0x34,0x26,0xB9,0xE0,0xE1, + 0x28,0x48,0xC3,0x84,0x88,0x5D,0x49,0xFC,0x70,0x04,0x6F,0x5F,0x63,0xEE,0xC0,0xEC, + 0x44,0x7D,0x45,0xCC,0xC8,0xE6,0x42,0x25,0x92,0xD5,0xAB,0x57,0x7B,0xF5,0xDC,0x50, + 0xC4,0x0D,0x43,0x24,0xF6,0xF2,0x7F,0xE5,0xC0,0xC5,0x08,0x61,0x67,0x65,0x65,0xA9, + 0x9A,0x37,0x0B,0xE0,0x96,0x0B,0x41,0xC1,0x62,0xBF,0xB3,0xB6,0xA4,0x80,0x1A,0x4F, + 0x57,0x52,0xC5,0x89,0x03,0x54,0x71,0x7C,0x3F,0x9D,0xD3,0x0B,0xDC,0x93,0xC3,0x60, + 0xB0,0xB4,0x08,0x58,0xC5,0xA5,0x66,0x51,0x8F,0x01,0x63,0x45,0x01,0x47,0xC7,0xA7, + 0x51,0x5B,0xCB,0x39,0xFD,0x45,0x23,0x50,0x5A,0xBA,0xBA,0x99,0x46,0xFB,0xF6,0xED, + 0x13,0x8B,0x02,0x60,0x6C,0xD8,0xD9,0xCF,0x0D,0x31,0x09,0x6F,0x16,0xCE,0xC3,0x4D, + 0x47,0x2F,0x62,0x9C,0xB3,0xE6,0xAE,0x7D,0x5B,0x98,0x9D,0xAC,0xAF,0x88,0x19,0xB8, + 0x33,0x89,0xC4,0x51,0x5C,0x11,0xB5,0x11,0x8C,0x85,0x42,0xD8,0x8E,0x88,0xDB,0x48, + 0x59,0x99,0x5E,0xE4,0xED,0x02,0x05,0x87,0x19,0xEA,0x61,0x35,0xD4,0x94,0x51,0xEB, + 0x39,0xF3,0x73,0x39,0x5D,0x59,0x4C,0xD5,0xA5,0x47,0x59,0xCB,0x1A,0x58,0xD5,0x88, + 0x2E,0xAC,0xCC,0x0F,0x23,0x32,0x2E,0x89,0xC2,0x23,0x63,0xC5,0xED,0xF6,0x96,0xB3, + 0xFA,0x9B,0x48,0xB0,0xCD,0xBE,0xAE,0x1C,0x10,0x02,0xC4,0x8B,0x87,0x23,0x81,0x2C, + 0x4B,0x10,0x83,0x40,0xD2,0x47,0x67,0x7C,0xBF,0xBE,0x34,0x1C,0x25,0xC5,0xEC,0x64, + 0x2D,0xC5,0x1C,0xDD,0x25,0x84,0xBE,0xFC,0xAB,0xF9,0x32,0x97,0x5A,0x01,0x59,0x5C, + 0x5F,0x7D,0xF5,0x15,0x8A,0xF6,0x75,0xDA,0xF9,0x39,0xDB,0xEF,0x93,0xC3,0x28,0x6C, + 0x3C,0xB2,0xB3,0xB3,0x7D,0xE6,0x22,0xC2,0x08,0x00,0x84,0x8B,0x61,0x3D,0x57,0xC4, + 0x6B,0x04,0xF1,0x06,0x74,0x4B,0x3A,0x33,0xE8,0xE4,0x4B,0xC3,0x51,0x52,0xCC,0x4E, + 0xD8,0x52,0xCC,0x60,0xCD,0x4B,0x13,0x34,0xFB,0x47,0xE9,0x2F,0x7C,0xB7,0x27,0x91, + 0x38,0x0B,0xE6,0xD1,0xA2,0x2F,0xE8,0x48,0x44,0xD6,0x16,0x70,0x2F,0xF1,0x80,0x05, + 0x47,0xD0,0x07,0x96,0xAA,0x33,0x45,0x8E,0x04,0x0E,0xDC,0xB4,0xE0,0x8D,0x40,0xB4, + 0xC8,0x9C,0x73,0xC5,0x33,0x91,0x82,0xFC,0x69,0x58,0x61,0x6F,0xF5,0x87,0x6D,0xE1, + 0x6B,0xC3,0x51,0x52,0xCC,0x4E,0xD8,0xD7,0xC4,0xAC,0xC5,0x0F,0x1E,0x17,0x3D,0xAC, + 0x35,0x84,0xAD,0x36,0xAB,0xCC,0x51,0x60,0xBD,0x21,0x70,0x88,0x00,0x41,0x36,0x08, + 0x5D,0x0A,0x9E,0x53,0x53,0x3D,0x03,0x65,0x96,0x2C,0xCF,0x11,0x56,0x16,0x40,0xB8, + 0x08,0xF8,0xB9,0xC3,0xEB,0x90,0x03,0xE7,0x88,0x18,0x02,0x86,0xF3,0xD4,0x56,0xFA, + 0xF0,0x06,0x9D,0xD9,0x7D,0x73,0x15,0xB3,0x13,0xBE,0xF1,0xC9,0x6D,0x82,0xE5,0xCA, + 0x8F,0x5A,0x16,0xB3,0xD6,0x27,0x8C,0x63,0x18,0x0D,0xA2,0x76,0x24,0xB3,0xCC,0x9F, + 0x41,0x8E,0xBB,0x71,0xD8,0x4E,0x8B,0x63,0xB7,0x18,0xB5,0x78,0xFA,0xE9,0xA7,0x69, + 0xFD,0xFA,0xF5,0x3E,0x27,0x64,0x60,0x76,0xD2,0xB7,0x3E,0xBB,0x43,0xA8,0xA8,0x31, + 0x1F,0x7E,0xD1,0xB2,0x98,0x81,0xAF,0x04,0x2B,0x20,0x6C,0x63,0x60,0xC8,0x5D,0xAE, + 0xB8,0x2F,0x00,0xAF,0xC1,0x18,0x0B,0xD0,0x7A,0xF2,0x85,0x2F,0x0E,0x47,0x49,0xF1, + 0x79,0x31,0xFB,0xEA,0x30,0x82,0xBF,0x8A,0x1B,0xAE,0xBF,0x51,0xBC,0x6A,0x6A,0x50, + 0x6B,0x05,0x78,0x79,0x7A,0xD7,0x1A,0xF1,0x00,0x9F,0x14,0x32,0xF0,0x79,0x31,0x03, + 0x5F,0xBF,0xA3,0x02,0xA3,0xB8,0xD1,0x47,0x55,0x33,0x2D,0x53,0x2B,0xC0,0xF2,0x1A, + 0x87,0xD9,0x7C,0x49,0xBC,0x96,0xF8,0xEA,0x70,0x94,0x14,0xBB,0x62,0xFE,0xE0,0x8F, + 0x23,0x28,0x35,0x21,0x42,0xD3,0x7F,0x20,0xC6,0x7D,0xF5,0x5F,0x02,0x6D,0xDD,0xBA, + 0xD5,0x67,0xBF,0x08,0x4B,0x60,0x29,0x10,0x2D,0x86,0xB8,0x61,0xB9,0xF1,0xC0,0xB6, + 0xA7,0x82,0x6A,0xB6,0x30,0x06,0xD9,0x60,0x75,0x11,0xB8,0x82,0x70,0xD5,0x06,0xD9, + 0x7C,0x05,0xFD,0xDF,0xA4,0x99,0x91,0x11,0x67,0xF1,0x0B,0x31,0x03,0x5F,0x8E,0x42, + 0x3A,0x0A,0x22,0xE6,0xD2,0xA1,0x21,0xFC,0xB4,0xB4,0xE6,0x72,0xFB,0xA4,0xC0,0x9A, + 0x22,0x20,0x25,0x45,0xBA,0xCF,0x38,0x34,0xE6,0x4B,0x63,0xDE,0xCE,0x82,0x35,0xA8, + 0x36,0x6C,0xD8,0x80,0x1A,0xED,0x3E,0xFD,0xB7,0xFA,0x8D,0x98,0x7D,0x31,0x31,0x9E, + 0xA3,0x0D,0xFC,0xC5,0x10,0xD8,0x5C,0x6B,0xCA,0x97,0x40,0x7F,0x19,0xE3,0xBB,0x70, + 0x4F,0xD9,0x2E,0x0E,0xC7,0x2E,0xE8,0xA2,0xA1,0x1B,0xE1,0x0F,0x1E,0x9D,0x99,0x98, + 0x53,0xE3,0xBD,0xB3,0x1A,0xA2,0xA7,0xC0,0x52,0xB0,0x8B,0x16,0x2D,0x62,0x2D,0x0E, + 0xC7,0x3E,0x98,0xB0,0x83,0xEB,0xC6,0x1F,0xF0,0x1B,0xCB,0x0C,0x10,0x89,0xC4,0x02, + 0xEB,0x1C,0x8E,0x1A,0xE0,0xC5,0x61,0x6A,0xAB,0xD6,0x16,0x4D,0x77,0x16,0xBF,0x12, + 0x33,0xC0,0x62,0x73,0x48,0xF3,0x64,0x4D,0x0E,0x47,0x11,0xAD,0x2E,0x9A,0xEE,0x2C, + 0x76,0xC5,0xDC,0x70,0xCE,0xFB,0x43,0x21,0xAE,0xB0,0x70,0xE1,0x42,0xEE,0x6A,0x73, + 0x54,0x81,0x80,0xA9,0x16,0x17,0x4D,0x77,0x16,0xBB,0x62,0x6E,0x6C,0xF2,0x2D,0x31, + 0x63,0x9C,0x10,0x33,0x70,0x10,0xDD,0x66,0xBB,0x38,0x1C,0x2B,0xB4,0xBC,0x68,0xBA, + 0xB3,0xF8,0x9D,0x9B,0x0D,0xB0,0xFA,0x00,0x12,0xE6,0x39,0x1C,0x25,0xFC,0x29,0xF0, + 0x65,0xC4,0xEC,0xAE,0xF4,0xC8,0xEB,0xFB,0x84,0x3D,0x47,0xCC,0x57,0xE4,0x7B,0xE1, + 0xDE,0x81,0x34,0xA4,0x4F,0xAC,0xCF,0xDD,0xBD,0xFC,0x35,0x89,0x04,0x41,0x1B,0x6F, + 0x66,0x81,0x79,0xA2,0x84,0x6D,0x67,0xE3,0xCE,0xA2,0x90,0xE5,0xE5,0xE5,0x42,0x50, + 0x50,0x10,0x25,0x27,0xDB,0xAF,0x81,0xE6,0x69,0xCC,0x4E,0xE0,0x6F,0x4B,0x0F,0x0B, + 0xEB,0x77,0x55,0xB2,0x96,0x01,0x5F,0x15,0xB3,0xBF,0x26,0x91,0x6C,0xDA,0xBC,0x4D, + 0xF8,0xE9,0x90,0x77,0xC4,0x1C,0x1B,0xA5,0xA3,0xE1,0x39,0x51,0x34,0x6A,0xF8,0x60, + 0xBF,0xFA,0x0C,0x5D,0x59,0x34,0x3D,0xFF,0x44,0x91,0x50,0x51,0x59,0x45,0x0D,0xED, + 0x41,0x54,0xDB,0x1E,0x4C,0x05,0xAD,0xE1,0x14,0xA1,0x6B,0xA7,0xCC,0x90,0x56,0x4A, + 0x0A,0x6A,0xA5,0x88,0x90,0x20,0xEA,0x91,0x92,0x44,0x3D,0x33,0xAC,0x17,0x82,0xF7, + 0x34,0x66,0xBF,0xF0,0x1F,0x9F,0x14,0x08,0x6B,0xB6,0x57,0xB0,0x96,0x01,0x5F,0x15, + 0x33,0x40,0xBE,0xED,0x8F,0x3F,0xFE,0xE8,0x57,0x29,0x89,0x1B,0x72,0xB7,0x09,0x7F, + 0xFD,0xD2,0x7C,0xCE,0xB9,0xA7,0xC8,0x4A,0xD2,0xD1,0x5D,0xD3,0x62,0xFC,0x4A,0xCC, + 0xF0,0x6C,0x9C,0x99,0x03,0x5F,0x50,0x58,0x2C,0x14,0x95,0x57,0xD2,0x47,0x0D,0xB1, + 0xB4,0xEA,0x6C,0x0C,0x95,0xB5,0x85,0xB2,0x67,0xCC,0xE9,0x19,0xDC,0x4C,0xD7,0x45, + 0xD7,0xD3,0xCC,0xA8,0x33,0xD4,0x27,0xB3,0x3B,0x65,0xA6,0xA5,0x7A,0xED,0xB3,0xF3, + 0xCB,0x3E,0xB3,0x11,0xF4,0x89,0xD0,0x37,0xE2,0x70,0x8C,0x20,0x0F,0x61,0xD6,0xAC, + 0x59,0xAC,0xA5,0x8E,0xCD,0x7B,0x0E,0x08,0xAF,0x1C,0x6D,0xA6,0x2B,0xCA,0xB2,0xE8, + 0xBD,0x33,0xF1,0x8A,0x42,0x06,0x85,0x6D,0xE1,0xF4,0xD2,0xE9,0x24,0xFA,0x55,0x79, + 0x16,0xFD,0xE7,0x48,0x3D,0x6D,0x3B,0x98,0xEF,0xB5,0x40,0xAC,0x5F,0x8B,0x99,0x27, + 0x91,0x70,0x2C,0xC1,0xB0,0x25,0x86,0x2F,0xD5,0xB2,0xE1,0x97,0xBD,0xC2,0xEF,0x4A, + 0xE2,0xE8,0xB5,0xFA,0x44,0x6A,0x71,0x40,0x2E,0x67,0xF4,0x6E,0xF8,0x13,0xD5,0xC9, + 0xF4,0xD4,0xC9,0x2E,0xB4,0x71,0xDF,0x61,0xAF,0x08,0xDA,0xAF,0xC5,0x0C,0x78,0x12, + 0x09,0xC7,0x08,0xE2,0x28,0x8E,0x0C,0x47,0xE5,0xEE,0x3D,0x24,0x2C,0xA8,0x48,0xA4, + 0x9D,0x2D,0x91,0x6C,0x8F,0xE3,0x7C,0xAB,0x77,0xC9,0x9F,0x2B,0x8B,0xF4,0x8A,0x85, + 0xF6,0x7B,0x31,0xE3,0x2E,0xCC,0x5D,0x6D,0x0E,0x70,0x64,0x38,0xEA,0xD0,0xF1,0x22, + 0xE1,0x83,0xAA,0x70,0x97,0x84,0x6C,0x04,0x82,0x5E,0x53,0x4D,0x54,0x5C,0x56,0xEE, + 0x51,0x41,0xFB,0xBD,0x98,0x71,0x17,0x46,0x1D,0x66,0x9E,0x44,0x12,0xD8,0x60,0x38, + 0x0A,0x05,0x1E,0x26,0x4F,0x9E,0xAC,0xCA,0x2A,0x97,0x9E,0xAA,0xA2,0xF7,0xEB,0x0D, + 0x0B,0x02,0xB8,0x83,0xC5,0xB5,0xF1,0x74,0xEC,0xA4,0x67,0xD7,0x11,0xF3,0x7B,0x31, + 0x03,0x9E,0x44,0xC2,0xC1,0x30,0xA5,0xDA,0x3C,0xEC,0xBD,0x05,0xC7,0x84,0xB7,0xEA, + 0xE3,0x15,0xFA,0xC8,0x41,0xB4,0xF8,0xD2,0x6E,0x44,0xB3,0x62,0x75,0x4A,0x8F,0xB1, + 0xEC,0x48,0x29,0xD5,0xED,0x21,0xB4,0xF6,0x5C,0x0C,0x15,0x97,0x7A,0x6E,0x8A,0x6E, + 0x40,0x88,0x19,0x89,0x23,0xA8,0x9A,0x81,0x52,0xAA,0x6C,0x17,0x27,0xC0,0x40,0x20, + 0x54,0x6D,0x7D,0xAF,0xD3,0xB5,0x35,0xF4,0xFD,0xB9,0x68,0xD6,0xB2,0xA4,0x9D,0x16, + 0xFC,0x70,0x9A,0x68,0x45,0x9D,0x80,0xC7,0xDD,0x25,0x82,0xE1,0x9A,0x62,0x6D,0x3C, + 0xB6,0x88,0x3B,0xAC,0x59,0x71,0x26,0x9A,0x0A,0x2B,0x3C,0x57,0xDF,0x2D,0x20,0xC4, + 0x0C,0xF8,0x30,0x55,0xE0,0x82,0x00,0x28,0x02,0xA1,0x6A,0xA9,0x15,0x42,0x45,0x4B, + 0xEA,0x6E,0xF6,0xB7,0x76,0x21,0xA1,0xC5,0xBC,0x92,0x8F,0x3B,0x09,0x18,0x31,0xA3, + 0x12,0x09,0x56,0x22,0x44,0x69,0x5E,0xB6,0x8B,0x13,0x20,0xBC,0xF5,0xD6,0x5B,0x74, + 0xCF,0x3D,0xF7,0xB0,0x96,0x6D,0xAA,0xAA,0xAA,0x84,0xE3,0xAD,0x61,0xAC,0xE5,0x7E, + 0x2A,0x04,0xCF,0x15,0x00,0x09,0x18,0x31,0x03,0x7C,0xA1,0xF8,0x62,0x39,0x81,0x03, + 0x02,0x9F,0x58,0x45,0x43,0x6D,0x01,0xFE,0xD6,0xD6,0x56,0x2A,0x3B,0xEF,0x7E,0xAB, + 0x6C,0x04,0x16,0xBF,0xA6,0xA6,0xC6,0x23,0x06,0x25,0xA0,0xC4,0x8C,0x3E,0xD3,0x8A, + 0x15,0x2B,0x78,0x9D,0xB0,0x00,0xC2,0x91,0xC0,0x97,0xAF,0x13,0x50,0x62,0x06,0x48, + 0xE5,0xE3,0x59,0x61,0x81,0x01,0xBA,0x54,0xE8,0x5A,0x39,0xB2,0x38,0x42,0x68,0x68, + 0x28,0xA5,0x85,0x78,0x6E,0x22,0x4B,0x42,0xD0,0x79,0x8A,0x8F,0x77,0x6C,0xCD,0x6B, + 0xB5,0x04,0x9C,0x98,0x79,0x12,0x49,0xE0,0xE0,0x48,0x5F,0xD9,0x48,0x62,0x62,0xA2, + 0x2E,0x3D,0xA4,0x95,0xB5,0xDC,0x4F,0x82,0xCE,0x73,0x93,0x64,0x02,0x4E,0xCC,0x48, + 0x22,0x99,0x34,0x69,0x92,0x58,0xF8,0x9C,0xED,0xE2,0xF8,0x29,0x8E,0x0C,0x47,0x49, + 0x49,0x09,0x6A,0x11,0x2D,0xA8,0xBB,0x19,0x18,0x7A,0x8E,0x42,0xC3,0x78,0x00,0xCC, + 0xAD,0xF8,0xE2,0x30,0x15,0xA2,0xAC,0x3F,0x6F,0xDF,0x2D,0x9C,0xAC,0x61,0x3B,0xBC, + 0x40,0xD5,0x19,0xA2,0x33,0x8D,0xCD,0xB4,0x67,0x5F,0x9E,0xCF,0xDD,0xF8,0x1C,0x1D, + 0x8E,0x92,0xD2,0xB5,0x5B,0x2C,0x8D,0x09,0x6F,0x64,0x2D,0xF7,0x31,0x21,0xA2,0x91, + 0xD2,0x13,0xDC,0x97,0x55,0x66,0x49,0x40,0x8A,0x19,0x49,0x24,0x58,0x3B,0x69,0xD5, + 0xAA,0x55,0x9A,0xBF,0x48,0x8B,0x8A,0x4F,0x0A,0x9B,0xB7,0x6E,0x17,0xBE,0xDB,0x7C, + 0x8C,0xDE,0x5E,0xD3,0x48,0xFF,0x59,0xEF,0x9D,0xB9,0xCC,0xA0,0xA1,0x49,0xA0,0x45, + 0x2B,0x9A,0xE9,0x83,0xEF,0xAB,0x69,0xD5,0x0F,0xDB,0xC5,0x9B,0xC9,0xA9,0x53,0xA7, + 0x7C,0x42,0xD8,0xAE,0x04,0xBE,0x86,0x5C,0xD0,0x47,0x77,0x7F,0x5C,0x2D,0x85,0x51, + 0x3B,0xDB,0xA3,0xCC,0xDB,0xDB,0x59,0x02,0x89,0x1D,0x60,0xE9,0x6F,0xE8,0xDA,0x40, + 0xD9,0x3D,0x3C,0x57,0xB9,0x25,0x20,0xC5,0x0C,0xB4,0x3E,0x4C,0x95,0x5F,0x70,0x4C, + 0xC8,0xDD,0xBC,0x4D,0x58,0xBE,0xE1,0x24,0xFD,0xE3,0x7F,0x2D,0xA2,0x88,0x8B,0xAB, + 0x3B,0x47,0x47,0xFB,0x8A,0x04,0x5A,0xBC,0xB2,0x59,0xBC,0x99,0x7C,0xBB,0xE9,0x04, + 0xE1,0xE6,0x72,0xB2,0xA4,0x54,0xB3,0xA2,0x46,0xA6,0x1F,0x32,0xFE,0x5C,0x29,0x19, + 0xD5,0x23,0x29,0x9E,0xE6,0x76,0x75,0xDF,0x52,0xBB,0x0B,0xE2,0x6A,0x28,0x27,0x23, + 0x95,0xB5,0x3C,0x43,0xC0,0x8A,0x19,0x11,0x4E,0x2C,0xA1,0x8A,0x04,0x7C,0xB6,0x4B, + 0x33,0x6C,0xDC,0xFC,0x8B,0xF0,0xDF,0x1F,0x2B,0xE8,0x6F,0x5F,0xB6,0xD0,0x37,0x3B, + 0xCF,0x8B,0x16,0x52,0x0B,0xE0,0x66,0xF2,0xF1,0xC6,0x16,0xF1,0xE6,0xF2,0x75,0xEE, + 0x49,0x82,0xA5,0x66,0x4F,0x69,0x0A,0x47,0x66,0x47,0x29,0xD1,0x3F,0xBB,0x87,0xEE, + 0xB6,0xC4,0x66,0x1A,0x16,0x76,0x96,0xED,0x71,0x9E,0x2B,0x23,0xCF,0xD0,0xB4,0x04, + 0xF2,0x78,0xD5,0x91,0x80,0x15,0x33,0x80,0x1B,0x06,0x77,0x4C,0x2B,0xEC,0x3D,0x90, + 0x2F,0x2C,0xFF,0x6E,0xBB,0xB0,0x78,0x65,0x13,0x6D,0xCC,0x6B,0xA3,0xF3,0xF6,0xBD, + 0xBC,0x4E,0x01,0x37,0x97,0xE5,0x3F,0xB7,0x88,0x96,0xFA,0xFB,0x9F,0x76,0x08,0xC7, + 0x4F,0x14,0x6B,0x46,0xD4,0xC6,0x55,0x2A,0xDC,0xB1,0x56,0xF7,0x84,0xC1,0xFD,0x75, + 0x8B,0x53,0xAA,0xC4,0xC0,0x95,0xB3,0x4C,0x89,0x6C,0xA0,0xC7,0xD2,0xCE,0xD2,0xA8, + 0x0B,0xFB,0x7A,0x54,0xC8,0xC0,0xEC,0x17,0xF8,0x5B,0x0D,0x30,0x35,0x68,0x61,0x5D, + 0xDE,0xD2,0xF2,0x0A,0xE1,0xE8,0xB1,0x22,0x5A,0xB5,0xAB,0x95,0x76,0x1C,0xD5,0xA8, + 0x82,0x15,0x08,0xD1,0x9B,0x83,0x2B,0x86,0x85,0xD2,0x88,0xDE,0xA1,0x34,0x76,0xF4, + 0xB0,0x4E,0xBF,0x4E,0x3C,0xB1,0x68,0xFA,0x4F,0xBB,0x0F,0x08,0x6F,0x57,0x45,0xD2, + 0xA7,0x0D,0xDD,0x54,0x57,0x1B,0x89,0x09,0x6A,0xA7,0x5F,0x47,0xD7,0xD0,0x2D,0x29, + 0x6D,0x34,0x66,0xC0,0x05,0x5E,0xF9,0x5C,0x02,0xDA,0x32,0x03,0x58,0x67,0x2C,0x53, + 0xD2,0x59,0x1C,0x3A,0x7C,0x4C,0x58,0xB7,0xB5,0x50,0x74,0x5D,0x7D,0x4D,0xC8,0x00, + 0xDE,0xC3,0xD7,0x3B,0x5A,0xE9,0xD5,0x6F,0xCF,0xD2,0xB7,0x3F,0xEC,0x10,0xCA,0x2B, + 0x2A,0x3B,0xD5,0x4A,0x23,0xC3,0xCF,0xD9,0x28,0xB6,0x12,0x97,0x5C,0x34,0x40,0xF7, + 0x78,0xAF,0x20,0x5A,0x95,0x76,0x82,0xEE,0x88,0xA9,0xA1,0xB4,0x60,0xE5,0x71,0x68, + 0x14,0xF4,0xFB,0x7D,0xB7,0x4A,0xFA,0x5F,0xEA,0x09,0x7A,0xA0,0x77,0xB8,0xD7,0x84, + 0x0C,0xCC,0x7E,0x51,0x20,0x5A,0x66,0x67,0xAB,0x35,0xBA,0x83,0x5D,0x7B,0x0F,0x09, + 0xAB,0xB6,0x9F,0xA6,0xF5,0x07,0x7C,0x6B,0xD5,0x10,0x25,0x60,0xA5,0x6F,0x9D,0x14, + 0x46,0x63,0x07,0xA7,0x53,0x56,0x0F,0xEF,0x97,0x9A,0xF5,0xC6,0xA2,0xE9,0xBC,0xD4, + 0xAE,0xC6,0x99,0x37,0x6F,0x9E,0x30,0x64,0xC8,0x10,0x9A,0x3F,0x7F,0xBE,0xD7,0xFE, + 0xCE,0x9F,0x7F,0xD9,0x27,0x7C,0xB9,0xA9,0x81,0x76,0x9D,0x68,0x63,0x7B,0xFC,0x87, + 0xD9,0x63,0xC3,0xE9,0xE2,0xC1,0x09,0xD4,0xFF,0x82,0x5E,0x5E,0xBD,0x6E,0x3A,0x63, + 0xE1,0x03,0x2D,0x15,0xC1,0x37,0x73,0xB3,0x7D,0x6D,0x91,0x38,0x77,0xE1,0xED,0x61, + 0xAA,0xDC,0x9F,0x77,0x0B,0xFF,0x5E,0x53,0xEF,0x97,0x42,0x06,0x9F,0x6F,0x69,0xA6, + 0xE5,0xB9,0xA7,0x68,0xB7,0x97,0xAA,0x52,0x82,0xCE,0x5A,0x34,0x3D,0x35,0x35,0x55, + 0xA7,0x05,0x21,0x03,0x33,0x31,0xFB,0xDA,0x22,0x71,0xEE,0x02,0x17,0x40,0x56,0x56, + 0x96,0x57,0xEA,0x84,0x6D,0xD8,0xB4,0x53,0x78,0x67,0x4D,0x23,0x9D,0xE8,0xDC,0xAE, + 0xA5,0xC7,0x41,0xD7,0xE1,0xCB,0x4D,0xB5,0xB4,0xED,0x97,0x03,0x5E,0xF9,0x43,0x1D, + 0x2D,0xA1,0xEB,0x8F,0x04,0x7C,0x00,0xCC,0x88,0x37,0x86,0xA9,0x36,0xFF,0xBC,0x4B, + 0x78,0xEF,0x87,0x73,0x54,0x56,0xEB,0xDF,0x42,0x36,0xB2,0x35,0xFF,0x3C,0xAD,0xFE, + 0xA5,0x9E,0xF6,0x1D,0x2C,0xF0,0xE8,0x1F,0x8C,0xB8,0xC7,0xEE,0xDD,0xBB,0xDD,0x32, + 0x1C,0xE5,0xCB,0x70,0x31,0x33,0x3C,0x9D,0x44,0xF2,0xCB,0xEE,0x83,0xC2,0x17,0x5B, + 0x9A,0x02,0x46,0xC8,0x46,0x72,0xF3,0xDA,0x68,0xCB,0x81,0x3A,0x3A,0x51,0x54,0xE2, + 0xB1,0x3F,0xDC,0xDF,0x16,0x4D,0x77,0x16,0x2E,0x66,0x09,0x9E,0x9A,0x80,0x71,0x28, + 0xFF,0xB8,0xF0,0xE3,0x9E,0x33,0xB4,0xAF,0xC8,0x3F,0xFB,0xC8,0xF6,0x40,0x1F,0x7A, + 0x4F,0x5E,0x19,0x55,0x56,0x79,0xA6,0xC2,0x06,0x3C,0x2A,0x7F,0x5A,0x34,0xDD,0x59, + 0xB8,0x98,0x25,0x60,0x55,0xC0,0xF5,0xEB,0xD7,0xBB,0xB5,0x12,0x09,0xC6,0x5D,0x77, + 0xE7,0x57,0xD2,0x9A,0x3D,0x9E,0x9B,0x23,0xEB,0x0B,0xBC,0xF7,0x83,0x5E,0xD0,0x07, + 0x8F,0xB1,0x96,0xFB,0xF0,0xC7,0x45,0xD3,0x9D,0xC5,0xAE,0x98,0xA3,0x22,0x3C,0x57, + 0x0F,0x49,0x8B,0x20,0xB2,0xED,0x4E,0xEB,0xBC,0xE7,0x50,0x21,0x2D,0xF5,0xE2,0x4C, + 0x27,0xAD,0x72,0xAE,0x45,0xA0,0xB7,0xD7,0x36,0xD1,0xA6,0xAD,0xBF,0xB8,0xD5,0x3A, + 0xBB,0x23,0x0F,0xDB,0x5F,0xB0,0x2B,0xE6,0xE8,0x2E,0x81,0x25,0xE6,0xB9,0x73,0xE7, + 0xBA,0xAD,0xAC,0xD0,0xD6,0xED,0xBB,0x84,0x8F,0x37,0x36,0x6B,0x36,0xC7,0xDA,0xDB, + 0xD4,0x35,0x12,0xFD,0xB0,0xB7,0x45,0x9C,0x11,0xC6,0x76,0xB9,0x04,0xE2,0x1B,0x4D, + 0x4D,0x4D,0x34,0x76,0xEC,0xD8,0x80,0xB7,0xCA,0x80,0xBB,0xD9,0x16,0xC0,0x5D,0x43, + 0x9D,0x30,0x57,0x17,0x9B,0x3B,0x59,0x5A,0x26,0x1C,0x28,0x6A,0x0D,0xB8,0x80,0x97, + 0x3D,0xB6,0xE4,0xB7,0xD1,0xF1,0x12,0xF7,0x54,0x58,0xE0,0x56,0xD9,0x1C,0x2E,0x66, + 0x19,0xDC,0x31,0x4C,0x75,0xF4,0x44,0x29,0x7D,0xF3,0x4B,0x60,0xF7,0x93,0xE5,0x80, + 0x97,0xF2,0xC5,0x96,0x66,0xDA,0xF6,0xCB,0x5E,0x97,0xEE,0x72,0x88,0x6B,0x20,0xBE, + 0x81,0x38,0x07,0xDB,0x15,0xF0,0x98,0x89,0xB9,0xA6,0x9E,0xF7,0xED,0x80,0xAB,0x49, + 0x24,0x07,0xF3,0x8E,0x08,0xDF,0xEF,0x69,0xD6,0xCC,0x3C,0x64,0xAD,0x81,0x84,0x99, + 0xA3,0x65,0x4D,0x62,0x70,0x90,0xED,0x72,0x98,0xF7,0xDF,0x7F,0xDF,0xED,0x13,0x2A, + 0x7C,0x1D,0x33,0x31,0xB7,0x9C,0xE7,0x17,0x9F,0x11,0x57,0x86,0xA9,0x4A,0x2A,0x6A, + 0x69,0x6B,0x01,0xEF,0x28,0xDB,0xE2,0xB3,0xCD,0xAD,0x74,0xF4,0x58,0x21,0x6B,0x39, + 0x0E,0x77,0xB1,0xAD,0xE1,0x6E,0xB6,0x02,0x58,0xFA,0x13,0x4B,0x80,0x3A,0x9A,0x44, + 0x82,0x99,0x50,0x2B,0x77,0x70,0xF7,0xDA,0x1E,0xF0,0x5A,0xF6,0x16,0xB5,0x93,0x33, + 0xE5,0x87,0x1C,0x5D,0x34,0x3D,0x50,0xE0,0x62,0xB6,0x01,0x72,0x7D,0x91,0xF3,0xEB, + 0x08,0x0D,0x67,0xCE,0xD0,0xA1,0x12,0x6E,0x95,0xD5,0xF0,0xE3,0xFE,0x16,0x2A,0x2A, + 0x76,0x7C,0xCD,0x62,0x6E,0x95,0xE5,0xB1,0x2B,0xE6,0xD4,0x84,0x88,0x80,0xBD,0xFB, + 0xCD,0x99,0x33,0x47,0x87,0x12,0x34,0x6A,0x93,0x48,0x4E,0x14,0x16,0x09,0x88,0xD6, + 0x72,0xD4,0x81,0xA1,0xAA,0x92,0x1A,0xC1,0xA1,0xB5,0x97,0x1C,0x5D,0x34,0x3D,0x90, + 0xE0,0x96,0xD9,0x0E,0xB0,0x00,0x6A,0xAD,0x73,0x49,0xE9,0x29,0xDE,0x57,0x76,0x90, + 0xDC,0x43,0xAD,0x54,0x78,0xD2,0x7C,0x0E,0xBD,0x2D,0x5C,0x29,0xA1,0xEB,0xEF,0x70, + 0x31,0xDB,0x01,0xB5,0xA4,0xD4,0x24,0x91,0xC0,0xBA,0x94,0xD6,0x0A,0x3C,0x82,0xED, + 0x20,0xE8,0x92,0xD4,0xD7,0x9F,0x61,0x2D,0xFB,0x38,0xBB,0x4A,0x45,0x20,0xC0,0xC5, + 0xAC,0x02,0x0C,0x81,0xD8,0x4B,0x22,0x39,0x56,0x58,0x2A,0xF6,0x01,0x39,0x8E,0xB3, + 0x29,0xAF,0x8D,0x8E,0x1C,0x3B,0x61,0xF7,0x2E,0xE8,0xCA,0x2A,0x15,0x81,0x80,0x99, + 0x98,0x6B,0xF9,0x38,0xB3,0x2C,0x6A,0x86,0xA9,0x5A,0x9A,0xCF,0xD2,0x09,0xDF,0x58, + 0xEC,0x41,0x73,0x1C,0x2E,0x6B,0xA7,0xAA,0xEA,0x5A,0xD6,0x52,0x86,0x07,0xBE,0x6C, + 0x63,0x26,0xE6,0x16,0x9E,0x44,0x2C,0x4B,0x76,0x76,0xB6,0xEE,0xA2,0x8B,0x2E,0xB2, + 0x99,0x44,0x52,0xDD,0xA0,0xE3,0x39,0xD8,0x4E,0x82,0x94,0xD7,0xB6,0xF3,0xB6,0x87, + 0xF3,0xF0,0xD9,0xE3,0x3B,0xC0,0x77,0xC1,0x76,0x71,0x2C,0xE0,0x6E,0xB6,0x4A,0x6C, + 0x0D,0x53,0x21,0x8A,0x7D,0xA8,0x38,0x30,0x4B,0x2E,0xB9,0x8B,0xD2,0x5A,0x9D,0xCD, + 0xA8,0x36,0x0F,0x7C,0xD9,0xC7,0xA6,0x98,0x03,0x6D,0xC6,0x94,0x2D,0x30,0x33,0x07, + 0x33,0x74,0xE4,0x92,0x48,0x4E,0x55,0xD5,0xD1,0x91,0x72,0x6E,0x96,0x5D,0x61,0x7F, + 0x51,0x2B,0xD5,0xD4,0x9E,0x66,0x2D,0x73,0x9C,0x59,0x34,0x3D,0x10,0xB1,0x29,0xE6, + 0x28,0x2E,0x66,0x33,0x9E,0x7C,0xF2,0x49,0x7A,0xFA,0xE9,0xA7,0x59,0xAB,0x83,0xF3, + 0xAD,0x4D,0x74,0xB2,0x93,0x16,0x75,0xF3,0x17,0x90,0xAF,0x5D,0x55,0x23,0xBF,0x50, + 0x9B,0x33,0x8B,0xA6,0x07,0x22,0xDC,0xCD,0x76,0x00,0x58,0x06,0xB9,0x24,0x92,0xC6, + 0x66,0xDE,0x5F,0x76,0x95,0xCA,0xD3,0x02,0xB5,0xB7,0xC9,0xF7,0x9B,0xF9,0x70,0x94, + 0x3A,0xB8,0x98,0x1D,0xC4,0xB2,0xEF,0x8C,0xF5,0x8A,0x91,0xC5,0xE4,0x16,0x86,0xF5, + 0xA3,0x35,0x2F,0x4D,0xD0,0xE1,0xF1,0xE4,0x30,0xB6,0x4F,0x8E,0xB4,0x1E,0xA6,0xE3, + 0xDE,0xBD,0x22,0x8A,0xED,0xF4,0x6D,0x70,0x33,0x3C,0x7D,0xD6,0x5A,0xAF,0x7C,0x38, + 0x4A,0x3D,0x26,0x31,0x97,0x57,0xF3,0x6C,0x07,0x35,0xC0,0x42,0x60,0xFA,0x9D,0x91, + 0xE6,0xE6,0x66,0x2A,0xAB,0x71,0x7F,0xF0,0x6B,0xEC,0xD4,0x1E,0xD4,0x8B,0x6D,0x5B, + 0x72,0xD9,0xE5,0x99,0x6C,0xCB,0x49,0xD8,0x4D,0xE3,0x8E,0x34,0xD6,0xD6,0x08,0x4D, + 0x32,0x86,0x99,0x07,0xBE,0xD4,0xC3,0x2D,0xB3,0x13,0xA0,0xB4,0x90,0x31,0x89,0xA4, + 0xB9,0xE5,0xBC,0xEC,0x45,0xE8,0x0A,0xCB,0xD6,0x56,0x09,0x41,0x29,0x3D,0x74,0x93, + 0x64,0xC5,0x96,0x48,0x13,0x06,0x11,0x6D,0x5A,0x5B,0xE4,0x77,0x37,0xDF,0xD3,0x67, + 0x05,0xD1,0xD3,0x61,0x4D,0x5A,0xB5,0x6A,0x95,0x90,0x9A,0x9A,0xEA,0xF5,0x55,0x2A, + 0x7C,0x15,0x2E,0x66,0x27,0x90,0xBA,0xDA,0x4D,0xCD,0xAD,0xD4,0xD4,0xE2,0x66,0x5D, + 0xED,0xAE,0xA2,0x4D,0x82,0x20,0xDC,0x70,0x79,0x22,0xDB,0xD1,0x41,0xAF,0x2B,0x32, + 0x69,0xBC,0x4E,0xA7,0xCB,0xDD,0xCD,0x76,0x58,0x22,0x71,0xC1,0x8D,0x8F,0x0E,0x97, + 0x3D,0x8A,0xEE,0x58,0x38,0x9E,0xD6,0xDC,0x92,0x28,0x8A,0xE3,0xA6,0x47,0x0C,0xCF, + 0xAF,0x9E,0x2B,0xF9,0x3D,0x36,0x5F,0x6F,0xA0,0xD7,0x15,0x43,0xC5,0x63,0x2E,0x73, + 0xB3,0xBB,0xDF,0xA8,0x77,0x0E,0xDB,0xDA,0x3A,0x26,0xAA,0x48,0x03,0x5F,0x9E,0xAA, + 0x67,0xEE,0x4F,0xD8,0x14,0x73,0x6A,0x7C,0x38,0xDB,0xE2,0x48,0xC1,0x3C,0x5A,0xCC, + 0xA7,0x45,0x22,0x43,0x53,0x73,0x0B,0x9D,0x69,0x62,0x4F,0xB8,0x8D,0x2A,0xCA,0xDD, + 0xA7,0xFF,0x72,0x06,0xF7,0xD3,0x5D,0xC6,0xF6,0x18,0x88,0xA2,0x49,0x83,0x23,0xA9, + 0x7D,0x6F,0x9E,0xF0,0x3D,0xDB,0x63,0x06,0xDC,0xE7,0x47,0x7A,0xE8,0x8A,0xD6,0xEE, + 0x12,0xA6,0xFD,0x3E,0xD7,0xF0,0xF8,0xB0,0x4A,0x18,0x7F,0x8B,0x51,0x90,0x8D,0xF4, + 0xDE,0xA2,0x4D,0x84,0x7D,0x68,0x2D,0x7B,0xC1,0x70,0xCC,0xF4,0xF7,0xAB,0xD0,0x54, + 0xF1,0x7A,0x73,0x16,0xEA,0x8F,0x35,0xBE,0xC7,0x5D,0xAB,0x1A,0xD9,0x5E,0xE7,0xA9, + 0x3F,0xDB,0x46,0xE7,0xCF,0x9F,0x17,0x85,0x7B,0xDF,0x7D,0xF7,0x09,0x2B,0x57,0xAE, + 0x44,0xD0,0x11,0x4F,0x09,0x7A,0xEB,0x2C,0xFE,0x8C,0x88,0x88,0x10,0x66,0xCD,0x9A, + 0x85,0x05,0xE2,0x04,0x77,0x96,0x44,0xF6,0x07,0xB8,0x65,0x76,0x12,0xE3,0x30,0x55, + 0x9B,0xFE,0xE2,0xD3,0x1B,0x67,0xB7,0xF3,0xFD,0x77,0xC5,0xE2,0xCF,0x09,0x52,0x11, + 0x0D,0xCB,0xA4,0x9B,0x52,0x74,0xBA,0x4F,0xBF,0x63,0xE2,0x33,0x43,0x6F,0x75,0xA7, + 0x26,0x88,0x42,0x37,0x13,0xD6,0xCE,0x3C,0x5A,0xB4,0x57,0x10,0x6C,0xF5,0xC1,0x0D, + 0x38,0xFE,0x7A,0x88,0xFE,0xBD,0x32,0xD6,0x70,0x03,0xF9,0xF9,0xF9,0x34,0x67,0xCE, + 0xFF,0xC1,0xAD,0xA6,0x57,0x5F,0x7D,0x55,0x14,0xB6,0x48,0x54,0x37,0xA2,0x6C,0x7D, + 0xDF,0x42,0x0F,0xC6,0xFA,0xB1,0x06,0xF3,0xED,0xB7,0xDF,0x8E,0x6C,0x30,0x7C,0x0F, + 0x5C,0xD0,0x0C,0x2E,0x66,0x27,0x41,0x3F,0x0E,0xAB,0x0E,0xEE,0xDD,0xB3,0x4B,0x6F, + 0x99,0x3D,0x70,0x3D,0x95,0x55,0xD3,0xB2,0x0A,0x73,0x11,0x5D,0x36,0x58,0x2F,0xB6, + 0x8A,0x22,0x61,0xBD,0x9C,0x80,0xD2,0x12,0x44,0xA1,0x9F,0xAC,0x38,0xC7,0x76,0x74, + 0x70,0xBC,0xE2,0x2C,0x29,0xF7,0xC1,0x19,0x4E,0xBC,0x7E,0xF3,0x6E,0xD7,0xAD,0xB1, + 0x91,0xA3,0x5B,0xDE,0xA3,0x25,0x8B,0xE6,0x52,0x6E,0xEE,0x4F,0x44,0x71,0x29,0x44, + 0xD3,0xEF,0x20,0xFA,0xF3,0xE7,0x44,0x2B,0xEA,0x88,0x3E,0x2A,0x24,0x5A,0xBC,0xD1, + 0xB0,0xBD,0xE4,0x30,0xD1,0xFD,0xAF,0x13,0x8D,0xBE,0x4A,0x14,0x36,0x6E,0xA8,0x59, + 0x59,0x59,0x02,0x77,0xC3,0x25,0x62,0xAE,0xA8,0x75,0xBB,0xAF,0xE8,0xF7,0xA0,0xEF, + 0xFC,0xE1,0x87,0x1F,0x50,0x97,0x30,0x4F,0xC4,0x67,0x1A,0x69,0xFD,0x5E,0xA9,0x88, + 0x0C,0x81,0xAF,0x93,0x7B,0xAB,0xC9,0xD6,0xBA,0x10,0xC5,0x15,0xD6,0x02,0x3B,0x26, + 0x23,0x50,0x25,0x5C,0x7D,0xBD,0xA3,0xB4,0x9F,0x6F,0xA1,0xDD,0xFF,0x7B,0x4C,0x14, + 0xB3,0xC8,0x4D,0x7F,0x20,0x7A,0x6D,0x1B,0xD1,0xBC,0x97,0xF4,0x9E,0xC8,0x14,0xC3, + 0x3E,0x29,0x10,0xFA,0xA5,0x37,0x13,0x3D,0xF6,0x91,0x41,0xE0,0x7A,0x8B,0x8D,0x35, + 0xC2,0xB0,0x60,0x3E,0x02,0x66,0xEC,0xA8,0x80,0x84,0x5B,0x66,0x17,0x40,0x12,0x49, + 0x4B,0x4B,0x0B,0x85,0x90,0x67,0x66,0x9B,0x1D,0x5B,0x55,0x2C,0x06,0xC2,0xC6,0x5D, + 0x14,0x65,0x0A,0x7C,0x7D,0x62,0xA7,0x6F,0x9A,0x99,0x62,0x1D,0x88,0xEA,0x95,0xD2, + 0x85,0x6D,0xD9,0xC7,0xD5,0xD7,0x3B,0x4A,0x41,0xEE,0x9B,0x74,0xEA,0x88,0x5E,0x94, + 0x70,0xA5,0x21,0x50,0x88,0x19,0xDB,0x6A,0x80,0xEB,0xBD,0x68,0x2D,0xD1,0xC5,0xD7, + 0x89,0x56,0x1A,0xFD,0x6B,0xAC,0xD3,0xCC,0x9E,0x0D,0x38,0xB8,0x98,0x5D,0xE4,0xCD, + 0xB7,0xFE,0x4D,0xB1,0x31,0x61,0xAC,0xE5,0x6E,0x0C,0x81,0xB0,0x1E,0x53,0x87,0xEA, + 0x1E,0xB7,0x15,0xF8,0x02,0xCC,0x2D,0xCF,0x90,0x11,0x5E,0x76,0x8A,0xFE,0xB5,0x4A, + 0xEE,0xB9,0x11,0x57,0x5F,0xEF,0x04,0xA5,0x07,0xBE,0xA5,0xC2,0x9D,0x9F,0x12,0x85, + 0x86,0x1B,0x84,0xAC,0x77,0x9D,0x1D,0x26,0x2C,0x82,0xE8,0xA1,0x7F,0x9B,0x09,0x3A, + 0x50,0x03,0x63,0x36,0xC5,0x1C,0x68,0xEB,0x4C,0x39,0x43,0x78,0x78,0x28,0xE9,0xFF, + 0x79,0x8C,0xEF,0xF5,0x6E,0x35,0xE8,0xA1,0x18,0xF8,0x32,0xC2,0xDC,0xF2,0xC1,0xFD, + 0xCC,0x22,0xCF,0x18,0x46,0x5A,0x38,0x58,0xA7,0xDB,0xB2,0xB6,0xA8,0xC3,0x3D,0x2F, + 0x3B,0x2B,0xFE,0x80,0xC5,0xEF,0xC0,0x81,0xD7,0xBB,0x01,0xB8,0xD7,0xF9,0xB9,0x6F, + 0x19,0x1A,0x77,0x3E,0x47,0x34,0x70,0x82,0x61,0xDB,0x59,0xEE,0xFB,0x97,0xF8,0x1E, + 0xE5,0xE5,0xE5,0x0E,0x17,0x61,0xF4,0x17,0x6C,0x8A,0x99,0xCF,0x9A,0xB2,0x4F,0x54, + 0x97,0x30,0x8A,0xF1,0x64,0xCD,0xC3,0x9D,0xC5,0xA2,0xC5,0x54,0x63,0x19,0x8F,0xAD, + 0xDA,0x25,0x0E,0x3B,0x61,0x28,0xC9,0x38,0xFE,0xFB,0xE6,0xD4,0x28,0x71,0xF8,0xE8, + 0xE9,0x9D,0xEC,0x20,0x50,0x56,0x44,0xF3,0xD6,0x36,0x0A,0xB0,0xF8,0x38,0xC6,0x38, + 0xCE,0xAC,0xFA,0xF5,0x6E,0xA0,0x78,0xEF,0x0A,0x6A,0x69,0xD4,0xDF,0xA8,0xD0,0x2F, + 0x46,0xB0,0xCB,0x82,0xBB,0x47,0xEA,0x5D,0xED,0x59,0xB1,0xBA,0xB1,0xAC,0x2D,0xC5, + 0xF8,0x1C,0x6B,0x1A,0x80,0x85,0xC6,0x4D,0x41,0x0F,0xD6,0x6B,0x0E,0x44,0xEB,0x6C, + 0xFA,0x40,0xF6,0x1C,0xA9,0x13,0x1E,0x79,0x7D,0x3F,0x6B,0x19,0x98,0x36,0x32,0x85, + 0x1E,0x9E,0x93,0xE3,0xC1,0x2B,0xD5,0xF7,0xC1,0x45,0xF3,0xE5,0xFA,0x22,0xFA,0x6A, + 0xBB,0x07,0xC6,0xA7,0xFC,0x98,0x8D,0xEF,0x5E,0x4F,0xE7,0xEA,0xF5,0x77,0xA7,0x67, + 0x57,0xCA,0x5B,0xE5,0xF4,0x48,0xA2,0x91,0x61,0xBA,0xC5,0xDF,0xD7,0x09,0x0B,0xCC, + 0x4A,0x84,0x85,0xD2,0x37,0x57,0xEB,0x9F,0xDB,0x71,0x9A,0xAE,0x2A,0x61,0xBB,0xA4, + 0x3C,0xF7,0x7F,0x44,0x3F,0x7F,0x43,0x6F,0xBC,0xF1,0x06,0xCD,0x9F,0x3F,0x3F,0xA0, + 0xAE,0x5D,0x93,0x65,0x6E,0x69,0xE5,0xD3,0x7E,0x9C,0x21,0x3C,0x3C,0x9C,0x92,0xBB, + 0xF1,0xD0,0x83,0x23,0x34,0xD6,0x14,0x1A,0x84,0x8C,0xC8,0xB4,0x92,0x7B,0x5D,0xD2, + 0x4A,0xDF,0x08,0x82,0x30,0x23,0xDD,0xE2,0xB3,0x4D,0x0F,0xA5,0xAB,0x74,0x3A,0xDD, + 0x57,0x72,0x42,0x06,0xAC,0xDF,0xFD,0xD5,0x57,0x5F,0x89,0x3F,0x03,0x09,0xD3,0x27, + 0x55,0x73,0x86,0x5B,0x16,0x67,0x88,0x8F,0x8F,0xD7,0x75,0x8F,0x0B,0xF8,0x21,0x4E, + 0x87,0xA8,0x39,0xB9,0xCB,0xB0,0x31,0xD4,0x3C,0xBF,0xCD,0x9C,0x56,0xFA,0xAA,0x94, + 0x28,0xA7,0x5F,0x57,0x33,0x57,0xFB,0xEE,0xEE,0x86,0x00,0xC5,0xDB,0xE2,0xFF,0x32, + 0x30,0x31,0x63,0x51,0xB9,0x40,0x83,0x9B,0x14,0x37,0x10,0x1C,0x12,0x4A,0x69,0x71, + 0xBC,0x37,0xA2,0x96,0xA6,0xFA,0x72,0xC3,0x46,0x7A,0x8E,0xE1,0xA7,0x02,0x6F,0xE7, + 0x35,0x51,0x81,0x70,0x5E,0xB8,0x21,0x86,0xED,0xD0,0xBB,0xD8,0x57,0x77,0x27,0xFA, + 0x66,0x7B,0x9D,0xF2,0xDD,0x13,0xC3,0x5A,0xC9,0x3D,0xC4,0xC8,0x76,0xA0,0x61,0x53, + 0xCC,0x71,0x5D,0x3D,0x18,0xA6,0xF5,0x23,0x12,0xE3,0x63,0x29,0x2B,0x89,0x8B,0x59, + 0x2D,0xCD,0x8D,0x6C,0x7D,0x66,0xB8,0xD9,0xB6,0xD0,0x7B,0x8B,0x2B,0xCF,0x04,0x93, + 0xC9,0xD5,0xB6,0xE7,0x62,0x1B,0x61,0xEF,0x7B,0xFC,0xF8,0xF1,0x80,0x72,0x99,0x6C, + 0x8A,0x39,0x34,0x98,0x5F,0xA0,0x6A,0xE8,0x1A,0x13,0x45,0xD9,0x29,0x3C,0xF2,0xAF, + 0x96,0xE0,0x60,0xB5,0xE3,0xF2,0xED,0xF4,0x69,0x69,0x9B,0xC9,0xD5,0x86,0x8B,0x5D, + 0x90,0x57,0x2F,0x28,0xBA,0xD8,0x46,0x1A,0xE5,0x6B,0x89,0xF9,0x3B,0x26,0x31,0xF3, + 0x00,0x98,0xF3,0x24,0x27,0x27,0xEB,0xB2,0x93,0x58,0x83,0x63,0x97,0xB0,0xA8,0x78, + 0xC3,0xC6,0xA9,0x22,0xC3,0x4F,0x1B,0x6C,0x29,0x69,0x65,0xAE,0x36,0x5C,0xEC,0x36, + 0x5A,0xA9,0x66,0x51,0xBE,0x5A,0xC3,0x72,0x37,0x81,0x56,0x96,0xD7,0x24,0xE6,0xDA, + 0x33,0xBC,0x00,0xBE,0x2B,0x84,0x86,0x04,0x51,0xAC,0x7F,0x54,0xF0,0xF1,0x38,0x51, + 0xF1,0x3D,0x0C,0x1B,0xFB,0x73,0x0D,0x3F,0x6D,0x61,0x74,0xB5,0x47,0x86,0xEB,0x5D, + 0xEC,0x10,0xDD,0xA7,0xF6,0x56,0xB2,0x39,0x99,0x2F,0x5A,0x66,0x14,0x35,0x08,0x34, + 0x6C,0xBA,0xD9,0x1C,0xF5,0x64,0xA4,0xA7,0xD2,0xF8,0x0B,0xB8,0xAB,0xAD,0x86,0xC4, + 0xAC,0x31,0x14,0x14,0xA2,0x77,0xB5,0x0F,0x6F,0x57,0xE1,0x12,0x33,0x57,0xBB,0x6B, + 0x88,0x0E,0x2E,0xF6,0x16,0xB6,0x57,0x91,0xDC,0x2F,0xC5,0x1F,0xD3,0xA7,0x4F,0x17, + 0x7F,0x06,0x12,0x36,0xC5,0x1C,0xE7,0xB1,0x9C,0x63,0xFF,0xA3,0x47,0x66,0x86,0x6E, + 0x68,0x76,0x30,0xE9,0x0D,0x34,0xC7,0x0E,0x21,0xE1,0xD1,0x14,0x9B,0x36,0x80,0xA8, + 0xB5,0x99,0xE8,0x87,0x8F,0xD9,0x5E,0x65,0xB6,0xE4,0x35,0x60,0xFA,0xA3,0x90,0x93, + 0x67,0xC7,0xC5,0x6E,0x69,0x22,0xFA,0x6E,0x89,0xB8,0x79,0xE3,0x8D,0x37,0x8A,0x3F, + 0x03,0x09,0x9B,0x97,0x5E,0x58,0x28,0xBF,0x32,0x1D,0x21,0x26,0x26,0x9A,0x72,0xD2, + 0xF8,0x67,0xA6,0x86,0x1E,0x43,0x6F,0x30,0x6C,0x7C,0xF9,0xB2,0x41,0x84,0xEE,0x00, + 0x42,0xD6,0xF7,0x97,0xB1,0x8C,0xCD,0x15,0x57,0x5C,0x11,0x70,0xD1,0x5B,0x7E,0xE5, + 0xB9,0x91,0xA1,0x83,0xFB,0xEB,0xA6,0x0C,0xE1,0xC3,0x79,0x6A,0x48,0xEE,0x73,0x31, + 0xA5,0xE8,0x1F,0x62,0xB0,0xEA,0x99,0xD9,0x6C,0xAF,0x0B,0x1C,0xDF,0x47,0xBA,0xA5, + 0x86,0x05,0x0A,0x50,0x05,0x26,0x10,0x31,0x89,0xF9,0x54,0x2D,0x0F,0x80,0xB9,0x83, + 0xC4,0x98,0x60,0xFD,0x83,0x35,0x38,0x36,0x99,0x7D,0xDB,0x03,0x94,0x98,0x94,0x64, + 0x08,0x84,0xFD,0xF3,0x5E,0xB6,0xD7,0x09,0x10,0xF4,0xD2,0xDF,0x10,0x04,0xBD,0x85, + 0x47,0x8D,0x6D,0xCC,0x33,0x67,0xCF,0x04,0x14,0xDC,0x32,0xBB,0x99,0xCC,0x8C,0x54, + 0xBA,0xF8,0x42,0x1E,0x6B,0x50,0xC3,0xAC,0x89,0x3D,0xE9,0xC3,0xA5,0x4B,0x29,0x3C, + 0x22,0xC2,0xD0,0x77,0xC6,0x24,0x09,0x47,0x5D,0x6E,0xFD,0x8D,0x40,0xB7,0x70,0xAA, + 0x68,0xE1,0x51,0x64,0x71,0xD9,0xB2,0x65,0x01,0x9B,0x1C,0xC1,0xC5,0xEC,0x66,0x32, + 0xD2,0xBB,0xEB,0x86,0xF6,0xE2,0xE9,0x9D,0xF6,0xB8,0xB8,0x5F,0x30,0xF5,0xEC,0x9E, + 0x80,0xA8,0xB3,0x6E,0xF5,0xAA,0x55,0xD4,0x2D,0x36,0x56,0x9C,0xED,0x44,0xF7,0x0C, + 0x21,0xFA,0xFA,0x0D,0xFB,0xA2,0xC6,0x18,0xF5,0x8B,0x77,0x12,0x3D,0x31,0x83,0x84, + 0xC6,0xD3,0x62,0xF4,0x7A,0xEB,0xD6,0xAD,0x01,0xFD,0xA1,0x9B,0xFE,0xF8,0x7F,0x7C, + 0x52,0x20,0xAC,0xD9,0x6E,0x18,0x6C,0x37,0xF2,0xD7,0xDF,0x5C,0x48,0x23,0xFB,0xC7, + 0xF3,0xAB,0xD2,0x09,0x56,0xFD,0xB0,0x5D,0x58,0xBC,0xB2,0x99,0xB5,0x38,0x52,0xA2, + 0x23,0x74,0xB4,0x60,0x46,0x04,0x5D,0x3C,0x6E,0xB8,0xE9,0xDA,0xC2,0x4A,0x8F,0x73, + 0xE6,0xCC,0xA1,0xDD,0xBB,0x25,0x05,0xC1,0x31,0x69,0x02,0xA5,0x81,0xFA,0x8E,0x30, + 0xCC,0x57,0x86,0x3B,0x5D,0x59,0x6C,0x10,0x3D,0xB6,0xF5,0xA0,0xA8,0xE2,0x83,0x0F, + 0x3E,0x48,0xCF,0x3F,0xFF,0x7C,0xC0,0x5F,0xA7,0x36,0xC5,0xFC,0xC2,0xBD,0x03,0x69, + 0x48,0x1F,0x8B,0x49,0xE0,0x1C,0x55,0xEC,0x3D,0x90,0x2F,0x2C,0x5B,0x5F,0x45,0x3B, + 0x8E,0xF2,0xCC,0x3A,0x4B,0x6E,0xB9,0x24,0x8C,0xA6,0x8C,0xE9,0x49,0xDD,0x53,0x53, + 0xAC,0xAE,0x2D,0xD4,0x22,0x7F,0xE5,0x95,0x57,0xEC,0xCE,0x7A,0x8A,0xD5,0x5B,0xF2, + 0x59,0xB3,0x66,0xD1,0x73,0xCF,0x3D,0x27,0xD6,0x31,0x67,0xBB,0x03,0x1A,0x2E,0x66, + 0x0F,0xF2,0xD3,0xA6,0x1D,0xC2,0x8B,0x5F,0x37,0xD3,0x39,0x77,0xAF,0x78,0xE1,0xC3, + 0x64,0x26,0xE8,0xE8,0xEE,0x69,0x51,0x34,0x7A,0xE4,0x45,0x36,0xAF,0x2B,0x14,0x7D, + 0x58,0xBD,0x7A,0xB5,0x58,0x79,0xB3,0xA2,0xA2,0x42,0xFC,0x39,0x7A,0xF4,0x68,0xF1, + 0x39,0xF4,0x8D,0x03,0x71,0xE8,0xC9,0x1E,0xA6,0x0F,0xE4,0x91,0xD7,0xF7,0x09,0x7B, + 0x8E,0x98,0x67,0xE3,0x70,0x31,0xBB,0xC6,0xC9,0x92,0x52,0xE1,0xEB,0xDC,0x93,0xB4, + 0xFC,0x67,0x3E,0x52,0x60,0xE4,0x91,0xAB,0xC3,0x69,0xEA,0xC4,0x91,0xFC,0x9A,0xF2, + 0x00,0x3C,0x00,0xE6,0x41,0x10,0x0C,0x1B,0x75,0x41,0x34,0x0D,0xEA,0x11,0xCC,0xF6, + 0x04,0x36,0xB3,0xC7,0x86,0x53,0x4E,0x76,0x77,0xD6,0xE2,0xB8,0x1B,0x6E,0x99,0xBD, + 0xC0,0xE6,0x9F,0x77,0x09,0x6F,0xAD,0x39,0x4B,0x65,0xB5,0xFE,0xED,0x6E,0x23,0xB0, + 0x95,0x93,0x4A,0x94,0x95,0x11,0x42,0x3D,0xE2,0x75,0x94,0x10,0xD1,0x11,0x2F,0x28, + 0x3F,0x17,0x44,0x49,0x5D,0xC3,0x69,0xFC,0xF0,0x21,0xFC,0x7A,0xF2,0x10,0x36,0xC5, + 0xFC,0xEE,0xC2,0x61,0xD4,0x23,0x25,0x92,0x7F,0xF8,0x6E,0xE0,0x87,0xDC,0x5F,0x84, + 0xD7,0xBE,0x6D,0xA2,0x06,0x3F,0x5C,0x06,0x1B,0x2B,0x7A,0x8C,0xBA,0x20,0x88,0xFA, + 0x67,0x87,0xD2,0xDE,0xF3,0x5D,0x68,0xD3,0xF9,0x18,0xDA,0xDF,0xDA,0x85,0xCA,0xDA, + 0x3A,0xB2,0xE1,0x06,0x86,0x9E,0xA3,0x9C,0x90,0x26,0xBA,0xBA,0xEB,0x59,0xEA,0x1D, + 0xD2,0x4C,0x17,0xF4,0xCC,0x10,0xA7,0x8E,0xB2,0xA7,0x39,0x6E,0xC0,0xA6,0x9B,0x1D, + 0xC6,0x67,0x0D,0xB8,0x8D,0x4B,0x27,0x0C,0xD7,0xDD,0x35,0x25,0xDC,0xEF,0x26,0x62, + 0x60,0xDA,0xE7,0x0D,0x97,0x85,0x51,0x61,0x7A,0x02,0xFD,0xBA,0xBE,0x17,0x3D,0xD5, + 0x90,0x4E,0x6B,0x9B,0xBA,0x9A,0x09,0x19,0x40,0xDC,0xCB,0xCF,0xC5,0xD1,0xDC,0x8A, + 0x74,0xBA,0xA1,0x3C,0x93,0x96,0x1C,0xAE,0xA1,0xAD,0x07,0x0E,0xF3,0xC8,0xA0,0x1B, + 0xE1,0x6A,0xF5,0x22,0xC3,0x06,0xF4,0xA4,0x5B,0x27,0x85,0xF9,0x8D,0xA0,0x91,0x18, + 0x73,0xDD,0xA5,0x5D,0xE8,0xF1,0xA6,0x1E,0xF4,0xF6,0xD9,0x64,0x3A,0xD3,0xAE,0xEE, + 0x0F,0x83,0xD0,0x17,0x56,0xA7,0xD2,0x13,0x25,0x51,0xB4,0x61,0xE7,0x3E,0x2E,0x68, + 0x37,0x61,0xFA,0xF4,0x1B,0xCE,0xB1,0xE5,0x33,0x39,0x1E,0x23,0x35,0x25,0x49,0x37, + 0xE1,0xA2,0x1E,0x74,0xF7,0xB4,0x2E,0x1E,0x5A,0x6C,0xCE,0x7B,0xC0,0x22,0x5F,0x39, + 0x21,0x82,0xEE,0x3A,0x93,0x4D,0x85,0x6D,0xCE,0xAD,0xE3,0xBD,0xEE,0x6C,0x34,0x2D, + 0x28,0x4F,0xA0,0xDC,0xBD,0x87,0xB8,0xA0,0xDD,0x80,0x44,0xCC,0x1D,0x2B,0xD6,0x73, + 0x3C,0x47,0x66,0x46,0xAA,0x6E,0xFC,0xB0,0x6C,0xBA,0x77,0x7A,0x84,0x18,0x30,0xF2, + 0x45,0xE0,0x59,0x5C,0x3F,0x29,0x9C,0x1E,0x6D,0xC8,0x50,0x6D,0x8D,0x95,0xD8,0xD9, + 0x12,0x49,0xAF,0x9F,0xEA,0x42,0xBB,0xF2,0x8F,0x71,0x41,0xBB,0x88,0x6B,0xDF,0x04, + 0xC7,0x29,0x92,0x12,0xE3,0x75,0x97,0x4F,0x1A,0xAE,0xFB,0xDD,0x95,0x11,0x3E,0x59, + 0x6A,0x68,0x74,0xBF,0x60,0xFA,0xA9,0xAD,0xAB,0xD3,0x16,0xD9,0x92,0x8F,0x1B,0x62, + 0xA9,0xB8,0xD6,0x5E,0x3D,0x20,0x8E,0x3D,0x6C,0x8A,0x39,0x35,0xC1,0x47,0x4D,0x87, + 0x8F,0x80,0xA0,0xD8,0xFD,0x57,0x46,0x52,0x9F,0x54,0xDF,0xF9,0x98,0xD1,0x3D,0x18, + 0x7D,0x41,0x30,0xBD,0x75,0xD6,0x7E,0x05,0x43,0xD9,0x35,0xA1,0x14,0x78,0xAA,0x3A, + 0x89,0x36,0xEF,0x39,0xC0,0xAD,0xB3,0x0B,0x70,0xCB,0xDC,0xC9,0x4C,0x18,0x3B,0x4C, + 0x77,0xC7,0xD4,0x6E,0x62,0xBE,0xB2,0x2F,0xF4,0xA3,0xFB,0x75,0x27,0xDA,0xDA,0x1C, + 0x45,0x2D,0x6E,0xBE,0x74,0xE0,0x6E,0x37,0x36,0xF1,0x89,0x29,0xAE,0xC0,0xC5,0xAC, + 0x01,0x46,0x0C,0x1D,0xA8,0xC3,0xC4,0x83,0x87,0x66,0x86,0x6B,0xDE,0x4A,0xE7,0x64, + 0x85,0xD2,0x8F,0xE7,0x55,0x2E,0x86,0xEE,0x20,0xDF,0x9F,0x8B,0x09,0xD8,0xB5,0x95, + 0xDD,0x01,0x17,0xB3,0x46,0xC0,0x0C,0xA2,0x4B,0xC6,0x8F,0x10,0xAD,0xF4,0xFC,0xCB, + 0xC3,0x35,0x1B,0x1C,0x4B,0xEB,0x4A,0x94,0xDF,0xEA,0x9E,0xBE,0xB2,0x25,0xFB,0x9A, + 0xC3,0xE8,0x54,0x7D,0x23,0x6B,0x71,0x1C,0xC5,0x24,0xE6,0x8A,0x9A,0xC0,0x5B,0x9B, + 0x47,0x8B,0xC0,0x4A,0x5F,0x73,0xF9,0x48,0x1D,0xAC,0xF4,0xEC,0xB1,0xA1,0x9A,0x2B, + 0x41,0xD4,0x2D,0x5C,0xA0,0xEA,0x36,0xCF,0xE4,0x9A,0xE3,0x7D,0xCF,0xB5,0xF0,0x05, + 0x0C,0x9D,0x85,0x5B,0x66,0x8D,0x32,0x7E,0xEC,0x08,0xDD,0xAF,0x2E,0xEE,0x49,0xF7, + 0x5D,0x19,0x29,0x5A,0xEA,0xCE,0x74,0xBF,0x31,0x14,0x35,0x34,0x4B,0x47,0x7F,0xB8, + 0x26,0x9C,0x74,0xFA,0xD3,0x70,0x77,0x7F,0xD9,0x08,0xDE,0xB7,0xBD,0x9D,0xCF,0xFF, + 0x76,0x16,0x2E,0x66,0x0D,0x93,0x9A,0x9A,0xAA,0x1B,0x3B,0x7A,0x98,0x68,0xA9,0xE1, + 0x7E,0x43,0x4C,0xFD,0x2D,0xD7,0x2B,0xF6,0x30,0x97,0x0F,0x09,0xA1,0xC7,0xAF,0x0D, + 0xA3,0x5B,0xA7,0x24,0xD1,0xA5,0x17,0x8F,0xD4,0x51,0x50,0x30,0xC5,0x04,0x79,0x46, + 0x70,0x78,0xDF,0xD0,0x10,0xBE,0x90,0x80,0xB3,0x28,0x5E,0x19,0xBC,0x00,0xBE,0xB6, + 0x80,0xFB,0x0D,0x31,0x5D,0x3B,0xDA,0x7B,0x17,0x3B,0x56,0xB6,0xBC,0x78,0x40,0x04, + 0x4D,0x18,0x37,0x4A,0x37,0xF0,0xC2,0xBE,0xA2,0x6B,0xD0,0x1E,0x1C,0x42,0xF1,0x3A, + 0xCF,0xB8,0xC2,0x78,0xDF,0xC8,0x70,0x7E,0xDD,0x39,0x8B,0xA2,0x98,0x79,0x01,0x7C, + 0x8E,0x88,0xCE,0xFC,0x3A,0x88,0xEF,0xD6,0x8D,0x86,0x85,0x9D,0x65,0x2D,0xF7,0x32, + 0x29,0xAA,0x89,0x52,0x62,0x79,0x9D,0x62,0x67,0xE1,0x8A,0xE5,0x38,0xC4,0x80,0x3E, + 0xD9,0x3A,0x4C,0x63,0x74,0x37,0x61,0xD4,0x4E,0x43,0x42,0x1B,0x29,0x31,0x31,0x51, + 0xDB,0x63,0x73,0x1A,0x86,0x8B,0x99,0xE3,0x30,0x7D,0xC2,0xDB,0xA8,0x6F,0xA8,0xFD, + 0x04,0x8F,0xB7,0xB7,0x9F,0x16,0xD7,0x88,0x62,0x4D,0x9B,0xDC,0x10,0x7D,0x9A,0x92, + 0x51,0x10,0x9F,0xE3,0x34,0xA2,0x98,0xCB,0xAB,0xFD,0x70,0xC6,0x3C,0xC7,0x63,0x5C, + 0x98,0x95,0x41,0x0F,0xC5,0x55,0xB3,0x96,0xEB,0xC0,0x2A,0xDF,0x1E,0x53,0x4B,0x17, + 0xF6,0xEA,0xC9,0xAD,0xB2,0x0B,0x70,0xCB,0xCC,0x71,0x98,0xF8,0xF8,0x78,0xDD,0x90, + 0x6E,0xC1,0x34,0x25,0xB2,0x81,0xED,0x71,0x8D,0xA7,0x13,0xAB,0xA8,0x57,0x46,0x1A, + 0x6B,0x71,0x9C,0x85,0x8B,0x99,0xE3,0x14,0x63,0x06,0x5C,0xA0,0xFB,0x53,0x62,0xAD, + 0xCB,0xC1,0xB0,0xDF,0x75,0xAD,0xA2,0x19,0x69,0x61,0x94,0x9D,0xCE,0x6B,0x5F,0xBB, + 0x8A,0xA2,0x98,0x53,0xE3,0x3D,0x93,0xB2,0xC7,0xF1,0x1F,0x26,0x0E,0x1B,0xA4,0xFB, + 0x67,0xC6,0x69,0xBA,0x39,0xBA,0x8E,0xED,0x51,0x0F,0x5C,0xEB,0xE7,0x12,0x4F,0xD1, + 0x3D,0x3D,0x43,0x68,0x50,0xEF,0x2C,0x2E,0x64,0x37,0xC0,0x2D,0x33,0xC7,0x25,0x26, + 0x0C,0xEE,0xAF,0x7B,0xA4,0x47,0x3B,0x7D,0x9E,0x5A,0x24,0x16,0xED,0x53,0xC3,0x0D, + 0x51,0x75,0xB4,0x2A,0xED,0x04,0xDD,0x94,0x1D,0xC3,0x85,0xEC,0x46,0xB8,0x98,0x39, + 0x2E,0x33,0xB4,0x6F,0x2F,0xDD,0xEC,0x31,0x83,0x75,0x6F,0x76,0xAF,0xA2,0xB5,0x69, + 0xC7,0xE8,0xE9,0xF8,0x53,0x74,0x55,0x97,0xD3,0xA2,0x0B,0x6E,0x7C,0xDC,0x16,0x55, + 0x4D,0xAF,0x24,0x96,0xD1,0xE6,0xB4,0x7C,0x7A,0x22,0xAB,0x9D,0x2E,0x1B,0x3D,0x4C, + 0xC7,0x5D,0x6B,0xF7,0x22,0x8A,0x99,0xD7,0xFF,0xE2,0xB8,0x83,0x09,0x43,0x07,0xE9, + 0xA6,0xEA,0x45,0x7A,0x4F,0xDF,0xAE,0xF4,0xB7,0xAC,0x56,0x7A,0x2D,0xBD,0xD6,0xF4, + 0x78,0xAA,0x6F,0x28,0xFD,0x5F,0xBF,0x24,0x1A,0x37,0x7A,0x94,0x6E,0x70,0x4E,0x2F, + 0x2E,0x62,0x0F,0x20,0x8A,0xB9,0xB1,0x89,0x8B,0x99,0xE3,0x3E,0x90,0x53,0x3E,0xE4, + 0x82,0x3E,0xBA,0x71,0x43,0x06,0x98,0x1E,0xBD,0x7A,0xF6,0xD0,0xF1,0x84,0x10,0xCF, + 0xC2,0xDD,0x6C,0x0E,0xC7,0x4F,0xE0,0x62,0xE6,0x70,0xFC,0x04,0x45,0x31,0xA7,0xC4, + 0x45,0xB0,0x2D,0x0E,0x87,0xE3,0x0B,0x88,0x7D,0x98,0x3D,0x47,0xEA,0x84,0x47,0x5E, + 0xDF,0x2F,0xEE,0x30,0x32,0x6D,0x64,0x0A,0x3D,0x3C,0x27,0x87,0xF7,0x71,0x34,0xC6, + 0x4F,0x9B,0xB6,0x09,0x1F,0xFE,0xE4,0x9D,0x6A,0x1C,0x58,0xB1,0xE2,0xAA,0x91,0xD1, + 0x34,0x6A,0xF8,0x60,0x7E,0x1D,0xF8,0x00,0x5C,0xCC,0x3E,0xC6,0xEE,0xBD,0x07,0x84, + 0x96,0x56,0xEF,0x2D,0x58,0x90,0x10,0xDF,0x8D,0x7A,0x67,0xF3,0x9C,0x69,0x5F,0x80, + 0x8B,0x99,0xC3,0xF1,0x13,0x78,0x00,0x8C,0xC3,0xF1,0x13,0xB8,0x98,0x39,0x1C,0x3F, + 0x81,0x8B,0x99,0xC3,0xF1,0x13,0x44,0x31,0x97,0xD7,0xF0,0x65,0x41,0x38,0x1C,0x5F, + 0x87,0x5B,0x66,0x0E,0xC7,0x4F,0xE0,0x62,0xE6,0x70,0xFC,0x04,0x2E,0x66,0x0E,0xC7, + 0x4F,0xE0,0x62,0xE6,0x70,0xFC,0x04,0x2E,0x66,0x0E,0xC7,0x4F,0xE0,0x62,0xE6,0x70, + 0xFC,0x04,0x45,0x31,0xC7,0x75,0x0D,0x65,0x5B,0x1C,0x0E,0xC7,0x17,0x50,0x14,0x73, + 0x68,0x30,0x4F,0xCB,0xE6,0x70,0x7C,0x09,0xEE,0x66,0x73,0x38,0x7E,0x02,0x17,0x33, + 0x87,0xE3,0x27,0x70,0x31,0x73,0x38,0x7E,0x02,0x17,0x33,0x87,0xE3,0x27,0x70,0x31, + 0x73,0x38,0x7E,0x82,0x28,0xE6,0xDA,0xFA,0x16,0xB1,0xC1,0xE1,0x70,0x7C,0x17,0x51, + 0xCC,0x2D,0xE7,0xDB,0xC5,0x06,0x87,0xC3,0xF1,0x5D,0xB8,0x9B,0xCD,0xE1,0xF8,0x09, + 0x5C,0xCC,0x1C,0x8E,0x9F,0xC0,0xC5,0xCC,0xE1,0xF8,0x09,0x5C,0xCC,0x1C,0x8E,0x9F, + 0xC0,0xC5,0xCC,0xE1,0xF8,0x09,0x5C,0xCC,0x1C,0x8E,0x9F,0xC0,0xC5,0xCC,0xE1,0xF8, + 0x09,0x5C,0xCC,0x1C,0x8E,0x9F,0xC0,0xC5,0xCC,0xE1,0xF8,0x09,0x5C,0xCC,0x1C,0x8E, + 0x9F,0xC0,0xC5,0xCC,0xE1,0xF8,0x09,0x5C,0xCC,0x1C,0x8E,0x9F,0xC0,0xC5,0xCC,0xE1, + 0xF8,0x09,0x5C,0xCC,0x1C,0x8E,0x9F,0xC0,0xC5,0xCC,0xE1,0xF8,0x09,0x5C,0xCC,0x1C, + 0x8E,0x9F,0xC0,0xC5,0xCC,0xE1,0xF8,0x09,0x5C,0xCC,0x1C,0x8E,0x9F,0xC0,0xC5,0xCC, + 0xE1,0xF8,0x09,0x5C,0xCC,0x1C,0x8E,0x9F,0x20,0x8A,0x39,0x25,0x3E,0x42,0x6C,0x70, + 0x38,0x1C,0xDF,0x85,0x5B,0x66,0x0E,0xC7,0x4F,0xE0,0x62,0xE6,0x70,0xFC,0x04,0x2E, + 0x66,0x0E,0xC7,0x4F,0x50,0x14,0xF3,0xA9,0x5A,0xBE,0xCA,0x05,0x87,0xE3,0x4B,0x88, + 0x2B,0xAA,0x7F,0xB7,0xAD,0x42,0x78,0x71,0x59,0x81,0xB8,0xC3,0xC8,0xB4,0x91,0x29, + 0xF4,0xF0,0x9C,0x1C,0x9F,0x5B,0x71,0x7D,0xCF,0x91,0x3A,0x81,0x6D,0x72,0xBC,0x4C, + 0x4A,0x5C,0x04,0xA5,0x26,0x44,0xF0,0x55,0xFA,0x3B,0x09,0xBF,0x13,0xF3,0xB4,0xDF, + 0xE7,0x72,0x31,0x77,0x12,0xB7,0x4C,0xCB,0xA4,0xDB,0xA6,0xF7,0xF4,0xC8,0x35,0x53, + 0x5C,0x5C,0xEC,0xB1,0xEF,0x35,0x24,0x24,0x84,0xD2,0xD2,0xD2,0x7C,0xFE,0x26,0xC4, + 0xC5,0xCC,0x71,0x1B,0x9E,0x12,0xF3,0xFE,0x83,0xF9,0xC2,0x8E,0xBC,0x6A,0x2A,0xAB, + 0xF5,0xCC,0x57,0x3B,0x3A,0x27,0x98,0x2E,0xBD,0x64,0xB4,0x7F,0x88,0x79,0xFB,0xA1, + 0x1A,0xE1,0x8F,0xEF,0x1C,0x14,0x77,0x18,0xF1,0x07,0x31,0xE3,0xE2,0xE2,0x78,0x96, + 0x7D,0xC7,0xEA,0xF5,0x5D,0x9B,0xD3,0xE2,0xB6,0x27,0xC5,0xBC,0x74,0x5D,0x25,0xED, + 0x3A,0xE1,0x19,0x31,0xDF,0x77,0x65,0x38,0xCD,0x9C,0x32,0xD2,0x3F,0xC4,0x8C,0x7E, + 0xE6,0x23,0xAF,0xEF,0x17,0x77,0x18,0xF1,0x07,0x31,0xAF,0x79,0x69,0x82,0xCF,0x7F, + 0x41,0x5A,0xE7,0x83,0xD5,0x85,0xC2,0x87,0x6B,0x8A,0xC5,0x6D,0x2E,0xE6,0xCE,0x85, + 0x0F,0x4D,0x71,0x38,0x7E,0x02,0x17,0x33,0x87,0xE3,0x27,0x28,0x8A,0xB9,0xE1,0xDC, + 0x79,0xB6,0xC5,0xE1,0x70,0x7C,0x01,0x45,0x31,0x37,0x36,0xF9,0xBE,0x98,0x11,0x0B, + 0xB0,0xF7,0x60,0x87,0x72,0x38,0x3E,0x8F,0x9F,0xBA,0xD9,0x3A,0xD2,0xE9,0x88,0x10, + 0x98,0xB1,0xF7,0xF8,0x71,0xE7,0x29,0x2E,0x68,0x8E,0x5F,0xE0,0xA7,0x62,0x16,0x48, + 0xD0,0x4B,0xF4,0x85,0x7B,0x07,0xE9,0xEC,0x3D,0x26,0x0F,0x4B,0xE6,0x11,0x6F,0x8E, + 0x5F,0x20,0x8A,0x39,0x34,0xC4,0x4F,0x35,0xCD,0xE1,0x04,0x10,0xA2,0x8A,0xE3,0x63, + 0xC2,0xC4,0x06,0x87,0xC3,0xF1,0x5D,0xB8,0x49,0xE6,0x70,0xFC,0x04,0x2E,0x66,0x0E, + 0xC7,0x4F,0x50,0x14,0x73,0x4B,0x6B,0x3B,0xDB,0xE2,0x70,0x38,0xBE,0x80,0xA2,0x98, + 0x6B,0xCE,0xB4,0xB2,0x2D,0x0E,0xA7,0x73,0xA8,0xA9,0xA9,0x11,0xB6,0xFD,0xB2,0x57, + 0x28,0xAB,0x3C,0x4D,0xC7,0x2B,0x3D,0x37,0x82,0xB8,0xFD,0x48,0x1B,0xE5,0x6E,0xDE, + 0x26,0xE4,0xE5,0x1F,0xF5,0xE9,0x61,0x4A,0x71,0x58,0xA6,0xBC,0xBA,0x49,0xB8,0xED, + 0xAF,0x3B,0xC4,0x1D,0x46,0x50,0xB1,0x73,0xE9,0x13,0x23,0x7C,0x6E,0xD8,0x46,0x3A, + 0xD1,0xE2,0x85,0x7B,0x07,0xB2,0x2D,0xD7,0x89,0x8B,0x09,0xA3,0x1E,0x29,0x91,0x7C, + 0x18,0xCB,0x02,0x4F,0x4C,0xB4,0x38,0x75,0xEA,0x94,0x70,0xE4,0x58,0x11,0x95,0xD4, + 0x08,0xB4,0x76,0x4F,0x0B,0x9D,0xF0,0xA0,0x90,0x8D,0x60,0x40,0xE7,0xA2,0x6C,0x1D, + 0x5D,0x3E,0x24,0x94,0xBA,0x76,0x8D,0xA1,0xA1,0x83,0xFB,0xFB,0xDC,0x77,0x6D,0x3A, + 0x61,0xCB,0x79,0xC0,0xBE,0x2D,0x66,0x24,0x8D,0x08,0x34,0xB8,0x77,0x37,0xB6,0xD7, + 0x75,0x20,0xE6,0xC7,0x6F,0xBD,0x80,0x8B,0xD9,0x02,0x77,0x8B,0x79,0xF3,0xCF,0xBB, + 0x84,0xFC,0xD2,0x56,0xFA,0x76,0x67,0x0B,0xD5,0x35,0xB2,0x9D,0x5E,0xA6,0x7F,0x7A, + 0x10,0x4D,0x1F,0x1A,0x4A,0xE9,0x29,0xDD,0x68,0xF0,0x80,0xBE,0x3E,0xF3,0x9D,0x2B, + 0x8A,0x19,0x17,0xEF,0x7F,0x9F,0x1E,0xE5,0xA3,0x62,0x36,0xC0,0xA7,0x40,0x7A,0x1E, + 0x77,0x89,0x79,0xEF,0x81,0x7C,0xA1,0xB0,0xEC,0x34,0x7D,0xB2,0xB1,0x99,0xAA,0xCE, + 0xB0,0x9D,0x9D,0xCC,0x88,0xDE,0x7A,0x51,0x5F,0x14,0x46,0x7D,0x7A,0x67,0x52,0xF7, + 0xD4,0x14,0xCD,0x5F,0x4B,0x8A,0x7D,0xE6,0xDA,0x33,0xBC,0xA0,0x1F,0xC7,0x3B,0x6C, + 0xDC,0xFC,0x8B,0xB0,0x6C,0x7D,0x15,0xBD,0xFA,0xAD,0x76,0x84,0x0C,0x76,0x1C,0x6D, + 0xA7,0x17,0xBF,0x6E,0xA6,0x75,0x5B,0x0B,0x69,0xC7,0xAE,0xFD,0x9E,0xF7,0xF5,0x5D, + 0x84,0x0F,0x4D,0x71,0x3A,0x8D,0x43,0xF9,0xC7,0x85,0xE5,0xDF,0x6D,0x17,0x16,0xAF, + 0x6C,0x12,0x85,0xA3,0x45,0xCE,0xB5,0x08,0xF4,0xE1,0x4F,0x2D,0xF4,0xDE,0xDA,0xD3, + 0xF4,0xD3,0xA6,0x1D,0x9A,0x16,0xB4,0x49,0xCC,0x7C,0x89,0x1A,0x8E,0x37,0xD9,0xBD, + 0xEF,0xB0,0xF0,0xCD,0x96,0x53,0xF4,0xC6,0x77,0xCD,0xD4,0xD0,0xA4,0x79,0xA3,0x47, + 0x47,0xCA,0x05,0xD1,0x4A,0x7F,0xFB,0xC3,0x0E,0xE1,0x54,0x65,0xB5,0x26,0x4F,0x98, + 0x5B,0x66,0x8E,0xD7,0xD9,0xF6,0xCB,0x01,0xE1,0xCB,0x4D,0xB5,0xB4,0x66,0x8F,0x6F, + 0x0D,0x7F,0xC2,0x4A,0xBF,0xF6,0x6D,0x13,0x6D,0xDC,0x71,0x9C,0x0A,0x8B,0x4B,0x35, + 0x27,0x68,0x9B,0x62,0xC6,0x90,0x15,0xDB,0xE4,0x70,0xDC,0x42,0xEE,0xCF,0xBB,0x85, + 0x8F,0xD6,0x9F,0xA6,0xAD,0xF9,0xBE,0x39,0x5F,0xFE,0xBC,0xBE,0x37,0xF0,0xD6,0xDA, + 0x26,0xFA,0x61,0x7B,0x09,0xE5,0xE5,0x7B,0xA8,0x28,0x99,0x93,0x70,0xCB,0xCC,0xF1, + 0x1A,0x18,0x76,0x7A,0x67,0x4D,0x23,0x1D,0x2A,0xF1,0xFD,0xEC,0xC2,0x4F,0x72,0x9B, + 0xE9,0x87,0x9D,0xA7,0xE8,0xC8,0xB1,0x22,0xCD,0x08,0xDA,0x24,0xE6,0xD4,0xF8,0x70, + 0xB6,0xE5,0x3F,0xC8,0x55,0x16,0xB1,0x7C,0xB0,0x43,0x39,0x1E,0xE6,0x97,0xDD,0x07, + 0x85,0x2F,0xB6,0x34,0x79,0xAC,0xF6,0x75,0x67,0xB0,0x62,0x5B,0x0B,0xED,0x39,0x7C, + 0x8A,0xB4,0xD2,0x87,0xB6,0x69,0x99,0x2B,0x6A,0x9B,0xD8,0x96,0x6F,0x81,0x01,0x41, + 0xB5,0x95,0x46,0x36,0xED,0xAB,0xE2,0x82,0xF6,0x30,0x05,0x47,0x4F,0x08,0x3F,0xED, + 0x3B,0x43,0xFB,0x8A,0xDA,0xD8,0x1E,0xFF,0xE1,0xDF,0xDF,0x37,0xD1,0xBE,0x43,0xC7, + 0x59,0xAB,0x73,0x31,0x0D,0x84,0x3F,0xFE,0xF6,0x01,0x61,0x47,0x5E,0x2D,0x6B,0x19, + 0x40,0x3A,0xE4,0x90,0x3E,0xB1,0x9A,0x1F,0x2C,0x97,0xC2,0x93,0x46,0xBC,0x8B,0xBD, + 0xA4,0x11,0x58,0x2D,0x04,0x8C,0xD0,0xCF,0xF4,0x57,0x62,0xA3,0x88,0xEE,0xBF,0x32, + 0x92,0x26,0x8C,0x1D,0xD6,0xA9,0xD7,0x9B,0xC9,0x32,0xCB,0x15,0x28,0xE0,0x33,0xA7, + 0x38,0xAE,0x72,0xF0,0xF0,0x71,0xD1,0x7A,0xF9,0x33,0x48,0x3B,0xFD,0x78,0xE3,0xB9, + 0x4E,0x4F,0x2C,0xB1,0xE9,0x66,0xF3,0x99,0x53,0x1C,0x57,0xD8,0xB5,0xF7,0x90,0xB0, + 0xFC,0xE7,0x16,0x31,0x02,0xEC,0xEF,0x60,0x1C,0xFA,0x78,0xD9,0x39,0x71,0xA6,0x17, + 0xDB,0xE5,0x75,0x4C,0x62,0x8E,0xEA,0x12,0xCC,0xB6,0x38,0x1C,0xD7,0xC1,0x45,0x7D, + 0xE4,0x64,0x83,0x5F,0x44,0xAE,0xD5,0xF2,0x49,0x6E,0x0B,0x1D,0x3A,0x7C,0x8C,0xB5, + 0xBC,0x4F,0x87,0x98,0x23,0xAC,0xC5,0xDC,0xC8,0x0B,0xE1,0x73,0x9C,0xE4,0x50,0xFE, + 0x71,0xFA,0x6C,0x4B,0x33,0x6B,0x05,0x06,0xC8,0x64,0xCB,0xCD,0x3B,0x4F,0xF9,0x47, + 0x8E,0x77,0x8A,0x75,0xB6,0xE9,0x66,0xF3,0x55,0x2D,0x38,0xCE,0x80,0x8B,0x39,0xF7, + 0x50,0x6B,0xA7,0x4D,0x61,0xEC,0x4C,0x36,0x1C,0x38,0x4F,0xC7,0x4F,0x56,0xB3,0x96, + 0x77,0x31,0x89,0x19,0x53,0x1E,0x39,0x1C,0x77,0x50,0x55,0x55,0x29,0x5E,0xD4,0x81, + 0x08,0xE2,0x03,0x3F,0xEC,0x6D,0x16,0x57,0xAE,0x64,0xBB,0xBC,0x86,0x49,0xCC,0x61, + 0xA1,0xD6,0x46,0xBA,0xAE,0xC1,0xB7,0x03,0x60,0x72,0x49,0x22,0xCE,0x3E,0xF4,0xFD, + 0xBF,0x4E,0x8D,0x54,0xFA,0x0A,0x27,0x4B,0x4A,0x85,0x3D,0x85,0x86,0x8B,0x3A,0x50, + 0xD9,0x57,0x24,0x50,0x4D,0xAD,0x61,0xCD,0x6A,0x6F,0x62,0x1A,0x17,0xC3,0x32,0x2D, + 0xCF,0x7D,0x98,0xCF,0x5A,0x06,0x7C,0x71,0x8D,0x66,0x8C,0x33,0x8B,0x27,0xAC,0xFF, + 0xCF,0x9D,0x95,0x46,0xA2,0x22,0x42,0xE8,0xA9,0x3B,0x7C,0xAF,0x94,0x8C,0xA7,0xB1, + 0x1C,0x67,0xEE,0x9B,0x50,0x43,0x6F,0xAC,0x3E,0xEB,0x57,0x99,0x5E,0xCE,0x70,0xCD, + 0xE8,0x30,0x9A,0x39,0x21,0x83,0x32,0xD2,0xBB,0x7B,0xED,0x9A,0x31,0xFD,0x22,0x58, + 0x1F,0xCB,0x05,0xD7,0xC7,0x0D,0x4C,0xF0,0xB9,0x0B,0x98,0x27,0x8D,0x78,0x17,0xA9, + 0x98,0x6F,0x98,0x94,0x42,0xE9,0xD1,0x75,0xB4,0x78,0x65,0x60,0x05,0xBE,0xE4,0x48, + 0x8C,0xC1,0x22,0xEE,0x91,0x34,0x76,0xB4,0xF7,0x12,0x49,0x6C,0x06,0xC0,0xFC,0x61, + 0x25,0x48,0x8E,0xF7,0x38,0x5D,0xDF,0x40,0xEB,0xF7,0xF3,0x0A,0x35,0x00,0x15,0x53, + 0xAA,0xCE,0x78,0x37,0x7D,0xD5,0x24,0xE6,0x94,0x38,0xEB,0xE2,0x04,0x3C,0x03,0x8C, + 0xE3,0x08,0xCD,0xCD,0x4D,0x94,0x57,0xCA,0x1A,0x1C,0xDA,0x71,0xA4,0x95,0x8E,0x1C, + 0xF5,0xDE,0x30,0x95,0x4D,0xCB,0xCC,0x33,0xC0,0x38,0x8E,0xD0,0xA2,0x77,0xE4,0x30, + 0x81,0x9F,0x63,0x00,0x25,0x82,0xAB,0x6A,0xEA,0x58,0xCB,0xF3,0x98,0xC4,0x9C,0x9A, + 0x10,0xC1,0xFB,0x97,0x1C,0x97,0xA8,0x3E,0xC3,0x85,0x2C,0x05,0x41,0x40,0xA1,0xCD, + 0x7B,0xDD,0x0E,0x9B,0x96,0xB9,0xA2,0xC6,0xBF,0x13,0xE4,0x39,0xEE,0xE5,0xF4,0x59, + 0xDE,0x2D,0xB3,0xA4,0xAA,0xC1,0xA6,0xC4,0xDC,0x8A,0xD9,0x6F,0x8A,0xEE,0x12,0xC2, + 0xB6,0x38,0x1C,0xC7,0x71,0x3A,0xE3,0x6B,0x58,0x3F,0x71,0xE4,0xC1,0xF2,0xF1,0xEE, + 0x15,0x51,0xEC,0x00,0xDF,0xE5,0x50,0xF1,0x79,0x3A,0x51,0xE8,0x9D,0x6A,0x24,0x66, + 0x62,0x8E,0xF2,0x33,0x31,0x5B,0x26,0x7E,0xC8,0x3D,0xD8,0xA1,0x1C,0x37,0xD0,0xE4, + 0x62,0x88,0x65,0xD9,0x0B,0xB9,0x02,0x86,0x16,0xC5,0xC7,0x87,0x55,0x42,0x8F,0xA9, + 0x43,0x75,0xAB,0xE7,0x26,0xB2,0x67,0x7D,0x93,0x13,0x95,0xED,0xFA,0x7E,0x73,0x3D, + 0x6B,0x79,0x16,0x33,0x31,0xC7,0xC7,0x84,0xB2,0xAD,0x0E,0x8A,0x2A,0xCE,0xFA,0xE0, + 0x05,0x8F,0xE5,0x69,0xD4,0x55,0x1A,0x41,0xB2,0x0C,0x7B,0x11,0x47,0x4B,0xEC,0xCC, + 0xA3,0x45,0x7B,0x05,0x21,0x68,0x70,0x3F,0xDD,0x65,0x6C,0x97,0x2F,0x72,0xBE,0x8D, + 0xA8,0xBD,0xDD,0x76,0xF7,0x63,0xF9,0xF2,0xE5,0xC2,0xBC,0x79,0xF3,0x84,0x49,0x93, + 0x26,0xE1,0x5A,0x34,0x3D,0xC6,0x8C,0x19,0x23,0xDC,0x74,0xD3,0x4D,0xC2,0x92,0x25, + 0x4B,0x54,0x5D,0xA3,0x66,0x41,0x2F,0x7F,0xA8,0x36,0xC2,0x93,0x46,0xBC,0x8B,0x34, + 0x69,0xC4,0x69,0xE0,0x66,0xDF,0x92,0xA8,0x83,0x65,0x7E,0xAF,0x8C,0xED,0xD3,0xD3, + 0xEB,0x8A,0xA1,0xF4,0xE6,0xD4,0x28,0xD3,0xFE,0xCB,0xE6,0x8E,0xA7,0x85,0x83,0x75, + 0xBA,0x45,0xFA,0xEF,0xF8,0x7B,0x76,0x0C,0x51,0x22,0x3D,0xF9,0xE2,0x05,0x94,0xB9, + 0x6E,0x37,0xDD,0xB5,0xAA,0x51,0x3C,0xE6,0x91,0x94,0x62,0xBA,0xF7,0x03,0xA2,0x37, + 0x1F,0xE9,0x61,0xFA,0xFE,0x37,0x7D,0x98,0x2B,0x3C,0xBD,0xB3,0xE3,0x3D,0xB0,0xAF, + 0x68,0xED,0x2E,0x01,0xAF,0x31,0x82,0xDF,0xF7,0xFA,0xE0,0x6A,0xBA,0x77,0xD1,0x59, + 0xBA,0x55,0xFF,0x9E,0xE3,0x75,0xF2,0xC7,0x39,0x02,0xAA,0x90,0x3C,0x78,0x55,0x04, + 0x8D,0x1B,0x63,0xBD,0x6E,0xDB,0xE2,0xC5,0x8B,0x85,0xE7,0x17,0x2D,0xA2,0x8A,0xF2, + 0x72,0xB6,0x47,0x99,0xF0,0x88,0x08,0x9A,0x3F,0x6F,0x1E,0x2D,0x5C,0xB8,0x90,0xD2, + 0xD2,0xD2,0x64,0xAF,0x6B,0x0B,0xCB,0x6C,0x3D,0xD9,0xA2,0xA6,0x9E,0x27,0x01,0x70, + 0x3A,0x87,0xEC,0x94,0x48,0xF1,0x67,0xA1,0x44,0xE0,0x6A,0x08,0x4A,0xE9,0xA1,0x83, + 0x90,0x21,0x7A,0xDC,0xDC,0x61,0xE1,0xC7,0xDF,0x62,0xE8,0x87,0x4F,0xD8,0xBB,0x49, + 0xBC,0xE1,0x1B,0xDD,0xF8,0x27,0x87,0xB1,0x17,0x31,0xC4,0xD7,0xBE,0xD4,0x4F,0x57, + 0xFC,0x0F,0xF3,0xE3,0x9C,0xED,0xBF,0x37,0xB7,0xEA,0xBD,0x44,0x32,0xB7,0xCC,0xBB, + 0x76,0xED,0x12,0xB2,0xB2,0xB2,0x84,0x05,0x0B,0x16,0x18,0x84,0x9C,0xD1,0x97,0xE8, + 0xA6,0x3F,0x10,0x2D,0x5A,0x4B,0xB4,0xA2,0xAE,0xE3,0xF1,0xDA,0x36,0xA2,0x79,0x2F, + 0x11,0x0D,0x9C,0x40,0xCD,0x4D,0x4D,0xF4,0xF2,0xCB,0x2F,0x53,0xBF,0xFE,0xFD,0x45, + 0x4B,0xCE,0xDE,0xCA,0x0C,0x33,0x31,0xC7,0x75,0xB5,0x76,0xB3,0x1B,0xCE,0xF9,0x5F, + 0x11,0x36,0x8E,0xF6,0x81,0x95,0x84,0x05,0x85,0x55,0xEC,0xB0,0xC2,0xEA,0x91,0x5A, + 0xEF,0xEF,0xF7,0x1A,0xA6,0x24,0xE2,0xBD,0x60,0x9D,0x45,0x76,0x56,0xD1,0x26,0x41, + 0x10,0xC6,0x0E,0xB6,0xEE,0x93,0xC3,0x8A,0x9B,0x3C,0x04,0xE6,0xEE,0x67,0x0C,0x4E, + 0xA0,0x5E,0x6C,0x97,0x23,0x60,0xDC,0x5D,0x2A,0xE6,0x55,0xAB,0x56,0x09,0x63,0xC6, + 0x8E,0xA5,0x13,0x27,0x4E,0xE8,0xEF,0x56,0x83,0x88,0x1E,0xFB,0xC8,0x20,0x5A,0x88, + 0xF9,0x82,0x91,0xEC,0x28,0x06,0x44,0x3E,0xFD,0x0E,0xA2,0x67,0x57,0xEA,0xCD,0xF8, + 0x46,0xBD,0x07,0x33,0x85,0x4E,0xD7,0xD5,0xD1,0x35,0xD7,0x5C,0x23,0x5A,0x75,0x76, + 0x94,0x09,0x33,0x31,0x87,0x06,0x5B,0x5B,0x6F,0xBE,0x80,0x1C,0xC7,0x5B,0xDC,0xF4, + 0x48,0x47,0x24,0xDB,0xE8,0x5E,0x3B,0xEB,0xDE,0x9A,0x51,0x76,0x56,0xFC,0x51,0x5C, + 0x21,0x7D,0xAF,0x73,0x54,0x7C,0x8A,0x6D,0x5A,0x90,0x6B,0x14,0x3C,0xE3,0x78,0xC5, + 0x59,0xD1,0x62,0x4F,0x4A,0x63,0x3B,0x1C,0xA4,0xB5,0xCD,0x20,0xB3,0x2D,0x5B,0xB6, + 0x08,0xB3,0xF4,0x42,0x84,0x95,0xA5,0x8B,0xAF,0x33,0x58,0xE2,0xD1,0x57,0x89,0xCF, + 0xD9,0x05,0xC2,0xFF,0xF3,0xE7,0x44,0xD7,0x2D,0x10,0x9B,0xB0,0xEA,0x6F,0xBC,0xF1, + 0x86,0x99,0xA0,0xCD,0xC4,0x2C,0xB7,0xDE,0x94,0xAF,0x4F,0x83,0xE4,0xF8,0x0E,0x66, + 0xD1,0x6C,0xFD,0x43,0xDA,0x7F,0xF6,0x75,0x8A,0x8A,0x8A,0x04,0x58,0x54,0x93,0x90, + 0x1F,0xFA,0x37,0x51,0x98,0x13,0xEB,0xBB,0xDD,0xFA,0x24,0xD1,0x9D,0xCF,0x89,0x9B, + 0xF3,0xE7,0xCF,0xA7,0x1F,0x7F,0xFC,0xD1,0x24,0x68,0x33,0x31,0x47,0xCB,0xD4,0x01, + 0xE3,0x6E,0x36,0x87,0x63,0xC0,0xD1,0xBE,0xBB,0x91,0xD0,0xE0,0x76,0x7A,0xE9,0xA5, + 0x97,0xA8,0x1C,0xFD,0x63,0xB8,0xD2,0xF7,0xFD,0x8B,0x3D,0xE3,0x24,0x33,0xE7,0x1B, + 0x1E,0x7A,0x60,0xA1,0x8D,0x58,0x88,0xD9,0x7A,0x9C,0x99,0xBB,0xD9,0x1C,0xAD,0x00, + 0x77,0xD7,0x8A,0xB4,0x48,0x53,0xD4,0xD9,0x5D,0xF4,0xB4,0x70,0xA7,0x11,0x88,0x6B, + 0xAF,0x28,0x12,0x9C,0x29,0x75,0x1F,0x1D,0xA1,0xA3,0xC3,0xF9,0x47,0xC5,0xE0,0x95, + 0x68,0x89,0x9D,0xB5,0xC8,0x96,0xC0,0x42,0xC7,0xA5,0xD0,0xEE,0xDD,0xBB,0x4D,0x01, + 0x31,0x73,0x37,0x5B,0x66,0xE6,0x54,0x79,0x8D,0xEF,0xCE,0x4D,0xC5,0xB0,0x89,0xBB, + 0x1E,0xDF,0x6D,0xAB,0x90,0x8D,0x20,0x72,0xBC,0xC7,0xB1,0xDD,0x86,0x40,0xD6,0x1C, + 0x63,0x64,0x39,0xAD,0x07,0xAD,0x91,0x0C,0x3F,0xB9,0x0B,0xF4,0xDD,0xEF,0x30,0x0A, + 0x7A,0x58,0x3F,0x31,0x10,0xB7,0x65,0x6D,0x11,0x39,0x53,0x77,0x33,0x24,0x58,0xA0, + 0x75,0xEB,0xF4,0x7D,0x63,0x70,0xE9,0xCD,0x44,0xC9,0x3D,0x0C,0xDB,0x12,0xEE,0x1E, + 0xD9,0x8D,0x68,0x56,0xAC,0x6E,0x2C,0x6B,0x4B,0x31,0x3E,0xC7,0x9A,0x1D,0xE0,0x86, + 0x70,0xED,0x83,0xE2,0xE6,0x5B,0x6F,0xBD,0x25,0xFE,0x34,0x13,0xB3,0xDC,0x64,0x0B, + 0x9E,0x9F,0x6D,0xA0,0x96,0x0F,0xD1,0x75,0x3E,0x65,0x45,0x34,0x6F,0x6D,0xA3,0x38, + 0x54,0x24,0x06,0xCA,0xC4,0xE1,0xA7,0x5D,0xC2,0xB2,0x0A,0xC1,0xAD,0x37,0xDA,0x45, + 0x2F,0x14,0x09,0xA6,0x60,0xDC,0x2D,0x89,0x3A,0xE3,0x18,0xB5,0x33,0xC4,0x46,0xEA, + 0x68,0xE3,0x4F,0x1B,0x0C,0x8D,0x09,0xD7,0x1A,0x7E,0x5A,0xF0,0x76,0xA9,0x21,0x2E, + 0x75,0x43,0x8C,0xF8,0x43,0x42,0x28,0x5D,0xDD,0x9D,0xE8,0x9B,0xED,0x0A,0x99,0x8A, + 0xB8,0x39,0xE8,0x59,0xBF,0x7E,0xBD,0xF8,0xD3,0x4A,0xBC,0x37,0x3E,0xB9,0x4D,0xB0, + 0x74,0xAD,0xF1,0x47,0xB1,0x4D,0xCD,0x83,0xC0,0x09,0xDB,0xE4,0x49,0x23,0x5E,0x00, + 0x5E,0x8B,0xCB,0x49,0x23,0x1A,0xC1,0x98,0xA4,0x62,0x9E,0x94,0xE2,0x1A,0x3D,0xBB, + 0xD6,0xD2,0x3B,0x4F,0xCD,0x24,0x8A,0xD2,0x5B,0xD8,0x25,0x87,0x15,0x5C,0xEC,0x50, + 0xFA,0xE6,0xEA,0x48,0xEA,0x7B,0xF8,0x0C,0xE5,0xE4,0x49,0xC6,0xA4,0xD3,0x23,0x89, + 0x46,0x86,0xE9,0xEE,0x5E,0x51,0x27,0xBC,0xCD,0x76,0x59,0xF1,0xCC,0x6C,0xA2,0x9D, + 0xEB,0x10,0x08,0x33,0xB7,0xCC,0x20,0x5E,0x66,0xAC,0x99,0x17,0xB3,0xE3,0xA8,0x21, + 0xDA,0x0D,0x5D,0x41,0x7F,0xA3,0x5B,0x10,0x1B,0xFF,0xC2,0x98,0xB1,0x62,0x5F,0xB9, + 0x95,0xBE,0x2A,0x25,0xCA,0xE9,0xD7,0xD5,0xCC,0xD5,0xBE,0xBB,0xBB,0x41,0x8B,0x8A, + 0x42,0x06,0xCC,0x6D,0xC7,0xB8,0xB5,0x95,0x98,0xE5,0x4A,0xEE,0xFA,0xEA,0x6A,0x90, + 0x1C,0xEF,0xD2,0xB5,0x0B,0xDB,0xE0,0x98,0x08,0x69,0x61,0xA9,0x9A,0xB1,0xC9,0x86, + 0x9F,0x0A,0xBC,0x9D,0xD7,0x44,0x05,0xC2,0x79,0xA1,0xC3,0xD5,0xB6,0xE3,0x62,0x1B, + 0x61,0xEF,0x8B,0x48,0xB9,0x95,0x98,0xE5,0xD6,0x69,0xAE,0xA9,0xE7,0x63,0xCD,0x1C, + 0xFB,0x24,0xC4,0xF8,0xF6,0x12,0x47,0xC7,0x56,0xED,0x12,0xBB,0x69,0xEE,0x72,0xB1, + 0x43,0xF4,0xEA,0x8A,0x55,0x5B,0x8F,0xFE,0x4C,0x2B,0xAD,0x3C,0x13,0x4C,0x33,0xD2, + 0x99,0x24,0xD3,0x43,0xE9,0x2A,0x9D,0x4E,0xF7,0x55,0x89,0xA1,0x69,0x8F,0x88,0x88, + 0x08,0x6B,0x31,0xC7,0x46,0x5B,0xBB,0xD9,0x7C,0x78,0x8A,0xA3,0x06,0x4C,0x2A,0xE0, + 0x74,0x90,0x91,0xA0,0xA3,0x8C,0xCC,0x9E,0x86,0xC6,0xA9,0x22,0xC3,0x4F,0x45,0xDA, + 0xE9,0xD3,0xD2,0x36,0x93,0xAB,0x0D,0x17,0xBB,0x20,0xAF,0x5E,0xB9,0xAF,0x6C,0x84, + 0xBD,0x6F,0x6A,0x6A,0xAA,0xB5,0x98,0xE5,0xB2,0xC0,0x4E,0x56,0x72,0x37,0x9B,0x63, + 0x9F,0x60,0xFD,0xD5,0x84,0x71,0x55,0x8E,0x81,0x3E,0xA9,0x41,0x34,0x78,0xD0,0x85, + 0x86,0x46,0x49,0x01,0x51,0xA3,0xED,0xC2,0xF8,0x5B,0x4A,0x5A,0x99,0xAB,0x0D,0x17, + 0xBB,0x8D,0x56,0xAA,0x59,0x74,0xEF,0xF8,0x3E,0xF1,0x47,0x56,0x56,0x96,0x3A,0x37, + 0xBB,0xF8,0x94,0xCC,0x60,0x3D,0x87,0x63,0x41,0x64,0x97,0x48,0x1A,0x9A,0x65,0x75, + 0x49,0x05,0x2C,0x43,0x7B,0x85,0xE8,0xC5,0x3C,0x50,0x37,0x69,0xD2,0x24,0xA2,0x16, + 0xBD,0x41,0xDC,0xB9,0x8E,0x3D,0xA3,0x80,0xD1,0xD5,0x1E,0x19,0xAE,0x77,0xB1,0x43, + 0x74,0x9F,0x9E,0x61,0xFB,0x95,0x80,0x55,0xD6,0x8B,0x39,0x36,0x36,0x96,0xC6,0x8E, + 0x1D,0xAB,0xB3,0xFA,0xE4,0xE5,0xE6,0x2E,0x57,0xF8,0x68,0xE2,0x88,0x65,0xE2,0x87, + 0xDC,0x83,0x47,0xEA,0xDD,0x47,0xD7,0xAE,0xD1,0x34,0xBE,0x3F,0x2F,0x3D,0x05,0x32, + 0xF5,0x2E,0x76,0xD7,0x48,0x43,0x97,0xF5,0xF2,0xCB,0x2F,0x17,0x7F,0x52,0xEE,0x97, + 0x86,0x9F,0x8A,0x30,0x57,0xBB,0x6B,0x88,0x0E,0x2E,0xF6,0x16,0xB6,0x57,0x91,0xAF, + 0xDF,0x10,0x7F,0xCC,0x9A,0x35,0x4B,0xFC,0x29,0x7B,0x1B,0x0D,0x43,0xCF,0x5D,0x82, + 0x3F,0xAF,0x06,0xC9,0x0B,0xFD,0xBB,0x8F,0x90,0x90,0x10,0x8A,0x8E,0x0C,0xA7,0xAC, + 0x24,0xEE,0x6A,0x5F,0x7C,0x61,0x28,0x65,0xF7,0xEC,0x2E,0x6E,0xCF,0x9D,0x3B,0x97, + 0xBA,0xE9,0xAD,0x27,0xFD,0xFC,0x8D,0xC9,0x2D,0x56,0x62,0x4B,0x5E,0x03,0xE6,0x32, + 0x0B,0x66,0xE3,0xCD,0x72,0xD4,0x56,0x10,0x7D,0xB7,0x44,0xDC,0x7C,0xE0,0x81,0x07, + 0xC4,0x9F,0xB2,0x62,0xCE,0x4C,0xB1,0x1E,0x63,0x38,0x78,0xA2,0xDE,0xE7,0x2C,0xD8, + 0x6D,0xD3,0x7B,0xEA,0xEC,0x3D,0x7C,0xA9,0x8A,0x8A,0x2F,0xD0,0x27,0x3B,0x83,0xA6, + 0x0E,0x09,0xEC,0x15,0x45,0x11,0x37,0xC8,0xD1,0xF7,0x97,0x93,0x93,0x93,0xC5,0x6B, + 0x0B,0x95,0x41,0x9E,0x7A,0xF2,0x49,0xF1,0x39,0x7A,0xEE,0xFF,0x0C,0x42,0x74,0x95, + 0x57,0x7F,0x2B,0xBA,0xEE,0xB0,0xCA,0x43,0x87,0x0E,0x15,0x7F,0x8F,0xAC,0x98,0xE5, + 0x72,0xB4,0x8B,0x4F,0x9D,0x63,0x5B,0x1C,0x8E,0x32,0xF1,0xF1,0xF1,0xBA,0xEE,0x71, + 0xBA,0x80,0x0E,0x84,0x21,0x6E,0x90,0x94,0x18,0xCF,0x5A,0x06,0x16,0x2C,0x58,0xA0, + 0x1B,0x33,0x66,0x8C,0xA1,0x9F,0xFB,0xE2,0x9D,0x76,0x83,0x61,0x36,0xF9,0xE7,0xBD, + 0x62,0xFF,0x1B,0x7D,0xE5,0xC5,0x8B,0x17,0xB3,0x9D,0x4A,0x62,0x96,0x09,0x82,0x9D, + 0xAC,0xE4,0x62,0xE6,0xA8,0xA3,0x67,0xCF,0x74,0xBA,0x6A,0xB8,0xF5,0x10,0x67,0x20, + 0xD0,0x25,0x4C,0x47,0x13,0x07,0x84,0x52,0xDF,0x9C,0x5E,0x56,0x77,0xB3,0x4F,0x3E, + 0xF9,0x44,0x1C,0x42,0xA2,0xFD,0xB9,0x44,0x4F,0xCC,0x50,0x31,0x5C,0x65,0x01,0x6E, + 0x00,0xB0,0xEC,0x3F,0x7C,0x2C,0x8E,0x2B,0x2F,0x5F,0xBE,0x9C,0xB2,0xB3,0xB3,0x4D, + 0xBF,0x47,0x56,0xCC,0x19,0x49,0xD6,0x6E,0x76,0x71,0x05,0x17,0xB3,0xBF,0x50,0x5C, + 0x5C,0x2C,0x6C,0xDD,0x77,0x48,0xD8,0xBC,0xE7,0x80,0xF8,0xD8,0x7E,0xE0,0xB0,0x80, + 0x7D,0xEC,0x69,0x97,0xC9,0xE8,0x9E,0xA6,0x1B,0xD0,0x23,0x94,0xD2,0xF4,0x16,0x3A, + 0xD0,0x98,0x3E,0x34,0x94,0x7A,0x65,0x19,0xFA,0xCA,0x96,0x40,0x78,0xC8,0xA1,0xEE, + 0xD7,0xAF,0x9F,0xA1,0xEF,0xFC,0xBB,0x51,0x44,0xCB,0x9E,0x57,0x67,0xA5,0xD1,0xDF, + 0x5E,0x70,0xB1,0xF8,0x13,0x16,0x79,0xD5,0xAA,0x55,0x34,0x79,0xF2,0x64,0xB3,0x0F, + 0x58,0xF6,0xD3,0x46,0x84,0xF7,0xDE,0x97,0x76,0xB3,0x96,0x81,0xCC,0xE4,0x2E,0xF4, + 0xEF,0x3F,0x0C,0xD7,0xFC,0xB7,0xC3,0x27,0x5A,0xC8,0x53,0x5C,0x5A,0x26,0x14,0x9D, + 0x2C,0xA1,0xB2,0xF6,0x30,0x5A,0xDD,0x10,0x49,0xFB,0x5B,0x22,0xA8,0x85,0xDD,0xCB, + 0x63,0x82,0xDA,0x29,0x27,0xA4,0x89,0x7E,0x15,0xD3,0x48,0x71,0xBA,0x56,0xCA,0xCA, + 0xCC,0xA0,0xCC,0xB4,0x54,0x55,0x9F,0x1D,0x46,0x04,0x8C,0x13,0x2D,0xB0,0x3E,0x33, + 0xE2,0x10,0x62,0x43,0xCF,0xDA,0x0D,0xDB,0x85,0x17,0xBE,0x0A,0x9C,0xE5,0x5D,0x71, + 0xF3,0x9A,0x3F,0x3D,0x92,0xC6,0x8C,0x34,0xF4,0x61,0x6D,0x81,0x12,0xBA,0xCB,0x96, + 0x2D,0x33,0x34,0x90,0xB3,0x8D,0xF2,0x41,0x98,0x55,0x85,0x09,0x19,0x46,0x30,0x9C, + 0xB5,0xED,0x5B,0x83,0x90,0x59,0x3F,0x1B,0xAE,0x3A,0x2C,0xBC,0xD4,0x22,0x1B,0x51, + 0xFC,0xA5,0x33,0x1E,0xDD,0x2C,0xB4,0x58,0x2C,0x7F,0xEF,0x0B,0xE2,0xE0,0x62,0xB6, + 0x66,0xE3,0x2F,0xBB,0x85,0xEF,0x1A,0xA3,0xE8,0x95,0xBA,0x04,0x3A,0xD3,0x2E,0xEB, + 0x8C,0x99,0x48,0x08,0x3A,0x4F,0x0B,0xE2,0x6A,0x68,0x62,0xE4,0x59,0xBA,0x78,0xF8, + 0x45,0x76,0x3F,0x3F,0x5B,0x62,0xCE,0x2F,0x38,0x26,0xFC,0xF7,0xC7,0x0A,0xDA,0x98, + 0x17,0x18,0xD5,0x6A,0x1E,0xB9,0x3A,0x9C,0xA6,0x4E,0x1C,0xA9,0xFA,0x9A,0x43,0xC9, + 0x9F,0xA7,0x9F,0x7E,0xDA,0x34,0x85,0xD1,0x16,0x48,0x0A,0x79,0xEE,0xB9,0xE7,0x68, + 0xCE,0x9C,0x39,0x8A,0xEF,0xAF,0xF8,0xCD,0xCA,0x45,0xB4,0xF9,0x0A,0x10,0xBE,0xC7, + 0xD7,0xDB,0xF6,0x0A,0xB7,0x94,0xA6,0xD1,0xB3,0x35,0x49,0x76,0x85,0x0C,0xAA,0xDB, + 0x43,0xE8,0x89,0xEA,0x64,0xC2,0x6B,0xF0,0x5A,0xB6,0xDB,0x29,0xD0,0x6F,0x9C,0x3C, + 0x28,0x3C,0x20,0xD2,0x3C,0x27,0x0D,0x08,0xA1,0x8C,0xD4,0x04,0xD6,0x52,0x07,0xDC, + 0x64,0xBD,0x90,0x75,0x65,0x65,0x65,0x28,0xCE,0x47,0xF3,0xE6,0xCD,0x23,0x24,0x98, + 0x18,0x1F,0x7A,0xEB,0x2D,0x0A,0xF8,0xD0,0xA1,0x43,0x98,0x15,0xA5,0xB3,0x25,0x64, + 0xA0,0xF8,0xE4,0x3F,0x3F,0x3F,0x22,0xAC,0xDC,0x6C,0x5E,0x9C,0xFB,0x8E,0x2B,0x7B, + 0xD2,0x4D,0x53,0x32,0x55,0xDF,0x79,0x3A,0x03,0xA9,0x65,0x86,0xA5,0x70,0x17,0x48, + 0x73,0xBD,0x7C,0x54,0x8A,0xA6,0xFF,0x76,0x4B,0x96,0x6D,0xDD,0x27,0xFC,0xE6,0x54, + 0xBA,0x2A,0x11,0xCB,0x01,0xF7,0xFB,0x3F,0xC9,0x27,0xE9,0xDA,0x31,0x83,0x15,0xFF, + 0x6E,0x5B,0x96,0xD9,0xC8,0xB7,0x3F,0xEC,0x10,0x5E,0xFB,0xB6,0x89,0x2C,0x1C,0x3D, + 0xBF,0x01,0x09,0x22,0x77,0x4D,0x8B,0xA6,0xB1,0x23,0x87,0x74,0xEA,0xF5,0xA1,0xF8, + 0x2D,0x5F,0xD0,0xC3,0xAA,0xEC,0x01,0xE5,0x15,0x35,0xB0,0xAD,0xC0,0xA3,0xD1,0xC7, + 0x12,0x67,0x56,0x6F,0xDF,0xE3,0x92,0x90,0x01,0x5E,0xFB,0x9B,0x53,0xDD,0xE9,0xDB, + 0xED,0xAE,0x59,0xE8,0x61,0x03,0x7A,0xD2,0xAD,0x93,0xFC,0x73,0xEC,0x19,0x5E,0xC7, + 0x6D,0x93,0xBA,0x74,0xBA,0x90,0x81,0xE2,0x09,0x60,0x8D,0xA9,0xBB,0x16,0x99,0xD7, + 0x4A,0x41,0xC1,0xBF,0x2F,0xFF,0x3A,0xA6,0xD3,0x4F,0xDA,0x16,0xBC,0xCF,0x4C,0x84, + 0xE8,0xF4,0xC3,0xC5,0x51,0xB4,0xA1,0x29,0x9A,0xED,0x71,0x8D,0x89,0x11,0x0D,0xF4, + 0x8F,0xCC,0x46,0x1A,0x39,0xE0,0x02,0xAB,0xCF,0x53,0x8D,0x65,0x06,0x87,0xF2,0x8F, + 0x0B,0xDF,0x6C,0x39,0x45,0x6B,0xF6,0xF8,0xCF,0x74,0x5A,0x24,0x4A,0x3E,0x30,0x43, + 0xEF,0xB1,0x4D,0xB2,0x5E,0x7A,0xA6,0x33,0x50,0xBC,0x6D,0xF7,0x48,0x89,0xD4,0x59, + 0x56,0xEB,0x44,0x5A,0x27,0xCF,0x65,0xD6,0x3E,0x65,0x0D,0x4D,0x76,0x85,0x3C,0xB6, + 0x9F,0xFE,0x79,0x85,0x22,0x72,0x96,0xE0,0xBD,0xF0,0x9E,0xAE,0xD0,0xBF,0x6F,0xB6, + 0x6E,0xF2,0x90,0x18,0x1A,0x9A,0xE5,0xDB,0x73,0x9E,0x8D,0x40,0xC8,0x77,0x5E,0x16, + 0x41,0x43,0x07,0x64,0xB3,0x3D,0x9D,0x8F,0x4D,0x1F,0x6C,0x70,0x6F,0x49,0x98,0x9C, + 0xB1,0x79,0xBF,0xA1,0x42,0x22,0x47,0x9B,0xFC,0x72,0x28,0x5F,0x78,0xB5,0x36,0x8E, + 0xB5,0xDC,0x07,0xDE,0x13,0xEF,0xCD,0x9A,0x4E,0x31,0xFC,0xA2,0x0B,0x75,0x37,0x5C, + 0xD2,0x4D,0x0C,0x16,0xF9,0x32,0x48,0x0C,0x99,0x77,0x79,0x04,0x8D,0x1A,0x94,0x41, + 0xC9,0x49,0xFA,0x0E,0xB3,0x46,0xB0,0x29,0xE6,0xE1,0x17,0xC4,0xB2,0xAD,0x0E,0xF6, + 0x1D,0xF3,0xCE,0x5A,0xB3,0x1C,0xE7,0x68,0x3C,0x53,0x4F,0x5B,0x5B,0xDC,0xE3,0x5E, + 0x4B,0xC1,0x7B,0xE2,0xBD,0x5D,0x05,0x82,0xBE,0x66,0x42,0x32,0xCD,0x1E,0x6B,0x9D, + 0x65,0xE8,0x0B,0xA0,0x8F,0x7C,0xEF,0xF4,0x08,0xFA,0xD5,0xD4,0x11,0xBA,0xCC,0x0C, + 0x75,0x63,0xF1,0xDE,0xC2,0xA6,0x98,0x47,0xF6,0xB3,0xBE,0xC3,0xEF,0x39,0xE2,0x42, + 0x4E,0x29,0xC7,0xE3,0x9C,0x6A,0x0F,0x73,0x29,0xE8,0xA5,0x04,0xDE,0x13,0xEF,0xED, + 0x0E,0xFA,0x5F,0xD0,0x4B,0x37,0x6D,0x74,0x77,0xBA,0xFD,0xD2,0x30,0xD1,0x5D,0xF5, + 0x15,0xC4,0xA4,0x90,0xCB,0x23,0xF5,0x7D,0x64,0x6D,0x26,0x4F,0xD9,0xFC,0x28,0x51, + 0x47,0x1B,0x99,0x5F,0x96,0x7C,0xBD,0xA9,0x8C,0xF7,0x9B,0x35,0x48,0x4D,0x4D,0x8D, + 0x80,0x71,0x62,0x4F,0x81,0xF7,0xC6,0xEF,0x60,0x4D,0x97,0xC8,0xEA,0x91,0xAE,0x9B, + 0x3C,0x32,0x9B,0x1E,0xFA,0x55,0x84,0x38,0xB4,0xA3,0x75,0x2E,0x1B,0x14,0x42,0xF7, + 0x4C,0x8B,0xA4,0xC9,0x13,0x86,0x69,0xF6,0x64,0xED,0xDE,0x17,0xA7,0x8E,0xB0,0xAE, + 0x2A,0xF8,0xED,0x56,0xFB,0x8B,0x43,0x73,0xBC,0x4F,0x4B,0x4B,0x0B,0x95,0x9F,0xF7, + 0x9C,0x98,0xEB,0xDA,0x82,0xE8,0xFC,0x79,0xF7,0x0D,0xD1,0xA5,0xA6,0x24,0xE9,0x2E, + 0xBB,0x64,0x84,0xEE,0xEE,0x69,0x51,0x74,0xCD,0xE8,0x30,0xB1,0x2F,0xAA,0x35,0x70, + 0xA3,0x41,0x66,0xD7,0x35,0x17,0xA7,0xD0,0xB8,0xD1,0xF6,0xD3,0x34,0x3B,0x13,0xBB, + 0x62,0x96,0x4B,0x12,0x39,0x5A,0xD2,0x48,0x9B,0xF6,0x55,0x69,0xDE,0x3A,0x63,0xD8, + 0xC4,0xDE,0xC3,0x9F,0xA2,0xF3,0x28,0x0E,0x10,0x1B,0xE4,0xB9,0xD4,0xC9,0x08,0x9D, + 0x40,0x41,0x41,0xEE,0xF7,0x8B,0x47,0x8F,0xBC,0x48,0x37,0x73,0x42,0x06,0x3D,0x34, + 0x33,0x9C,0xFA,0x68,0xA4,0x1B,0x0A,0xF7,0x7F,0xE6,0x88,0x50,0xC2,0x8D,0x06,0x29, + 0x9A,0x7D,0xFB,0x58,0xE7,0x42,0x6B,0x0D,0x55,0xDF,0xCC,0xB8,0x81,0xD6,0x69,0x6A, + 0xFE,0xB2,0x8A,0x81,0x3F,0x91,0x98,0x98,0xA8,0x4B,0x0A,0xF6,0x5C,0x72,0x0B,0xDE, + 0x1B,0xBF,0x83,0x35,0xDD,0x4A,0x46,0x7A,0x77,0xDD,0x25,0xE3,0x47,0xE8,0xEE,0x98, + 0xDA,0x8D,0x16,0xCC,0x08,0xA7,0x41,0xEE,0x5F,0x42,0x4A,0x15,0x98,0x87,0x7D,0xF9, + 0x90,0x10,0xFA,0xC3,0x35,0xE1,0x34,0x63,0x5C,0x77,0xF1,0x46,0xC3,0x9E,0xD2,0x3C, + 0xAA,0x4E,0x54,0x6E,0x16,0x15,0x78,0xF2,0xF6,0x7E,0x34,0x7E,0x90,0x67,0xBE,0x5C, + 0x67,0x09,0xF4,0xA4,0x91,0x8D,0x3F,0x6F,0x17,0x2E,0x2E,0xCB,0x61,0x2D,0x65,0x30, + 0xCE,0xBC,0xA5,0x5F,0x88,0x6E,0xEC,0x8A,0x3A,0xFB,0xB5,0xA6,0x18,0x1B,0xD3,0x0A, + 0xE8,0xE2,0xD1,0xE6,0x13,0x09,0xE0,0xDD,0xA8,0x49,0x1A,0x71,0x94,0x3D,0xFB,0xF2, + 0x84,0xBA,0xD3,0xF5,0xF4,0xD3,0xC1,0x36,0xDA,0x92,0xDF,0xE6,0xF1,0x54,0x50,0x44, + 0xA9,0xAF,0x1C,0x16,0x26,0x56,0x08,0x49,0x4D,0x4D,0xA2,0xDE,0xD9,0xEE,0xF9,0x3B, + 0xBC,0x89,0x2A,0xCB,0xDC,0x27,0x23,0x5A,0xC7,0xAD,0xB3,0x6F,0x10,0x1C,0x11,0x49, + 0xC3,0xC2,0xD4,0x57,0x53,0xDD,0x82,0x15,0x06,0xA5,0x0F,0x05,0xF0,0x9E,0x78,0x6F, + 0x6F,0x31,0x64,0x50,0x3F,0xDD,0xC4,0x09,0xA3,0x74,0x37,0x4E,0x4E,0xA1,0xC7,0xAE, + 0x0D,0xA3,0x44,0xEB,0xEC,0x62,0xB7,0x01,0x77,0xFA,0xC1,0xAB,0x22,0xE8,0xCA,0xF1, + 0x59,0x34,0x7E,0xEC,0x08,0x9D,0x2F,0x0A,0x19,0xA8,0xEE,0x00,0xC9,0x4D,0x5A,0x40, + 0xDF,0xF9,0x1F,0x9F,0x14,0xF0,0xC8,0xB6,0x86,0xE8,0x95,0x92,0x40,0x57,0x47,0xDB, + 0xCF,0xA1,0x37,0x16,0x8E,0xB3,0x7A,0x28,0x70,0x63,0x4C,0x3D,0xF5,0x49,0x4B,0x62, + 0x2D,0xEF,0x81,0x99,0x57,0x71,0xB1,0xB1,0x1E,0x8D,0x78,0x67,0x25,0x07,0xD1,0xB8, + 0x31,0x23,0x74,0xC6,0x9A,0x5D,0xBE,0x8A,0x6A,0x31,0x2B,0x59,0xE7,0x35,0xDB,0x2B, + 0xE8,0xCB,0x0D,0x25,0x5C,0xD0,0x1A,0x21,0x35,0x35,0x55,0x37,0x29,0xBA,0x99,0xFA, + 0x86,0xBA,0xAF,0x28,0x00,0xDE,0x6B,0x7C,0x54,0x8B,0xA9,0x40,0x1D,0x47,0x9B,0xA8, + 0x16,0x33,0xB8,0xE3,0xAA,0x9E,0x56,0x65,0x78,0xC1,0x7B,0xDF,0x14,0xD2,0x8F,0x3B, + 0x4F,0x71,0x41,0x6B,0x84,0x89,0xC3,0x06,0xE9,0x9E,0x8A,0x67,0xAB,0x0F,0xBA,0x48, + 0x18,0xB5,0xD3,0x9F,0x13,0xAA,0x68,0xC2,0x30,0xE5,0x69,0x90,0x1C,0x6D,0xE0,0x90, + 0x98,0x31,0xF9,0xE2,0xBE,0xD9,0xBD,0x59,0xAB,0x03,0x54,0x24,0x79,0xEE,0xC3,0x7C, + 0x71,0x0E,0x34,0xDB,0xC5,0xE9,0x64,0xC6,0x64,0x26,0xD0,0x93,0x09,0x95,0xAC,0xE5, + 0x3C,0x4F,0x27,0x56,0xD1,0xF8,0x4C,0xF3,0x4A,0x93,0x1C,0x6D,0xE2,0x90,0x98,0x01, + 0x26,0xE8,0x5F,0x73,0x89,0x7C,0xC1,0x32,0x14,0x33,0x98,0xFF,0xE2,0x2E,0xE1,0xBB, + 0x6D,0x15,0x5C,0xD4,0x9D,0x4C,0xAF,0x8C,0xEE,0xBA,0xD9,0xE9,0xE1,0xB4,0x38,0xA9, + 0x5C,0xB4,0xAE,0x8E,0x82,0xD7,0xE0,0xB5,0x33,0xBA,0x47,0x50,0x76,0x7A,0x1A,0xB7, + 0xCA,0x3E,0x80,0xD3,0x5F,0xD2,0x03,0xAF,0xEC,0x11,0x0E,0x15,0x2A,0x2F,0x86,0x83, + 0x75,0x9E,0xC7,0x0F,0x8A,0x17,0x8B,0x1C,0xF4,0xEE,0x1E,0x25,0xF6,0xB9,0xD9,0x53, + 0x1E,0xC5,0x53,0x95,0x46,0x30,0x1D,0xF4,0xDA,0x89,0xE9,0x3E,0x77,0x51,0x9F,0x28, + 0xAB,0x10,0x76,0x15,0x55,0xD0,0xCB,0xB5,0xF1,0xAA,0xE7,0x37,0x63,0xFE,0xF2,0x83, + 0x71,0x35,0x34,0xB4,0x47,0x0A,0x65,0xA5,0xD9,0xAE,0xAE,0xE2,0xA9,0xA1,0x29,0x29, + 0xFB,0x0F,0xE6,0x0B,0x4B,0xD7,0x55,0xD2,0xAE,0x13,0x9E,0xB1,0x11,0xF7,0x5D,0x19, + 0x4E,0x33,0xA7,0xA8,0xAF,0xDD,0xA5,0x55,0x5C,0xFA,0x03,0xFE,0xB6,0xF4,0xB0,0xB0, + 0x7E,0x97,0x7A,0x57,0xAE,0x77,0x7A,0x94,0x28,0x0A,0x30,0xA8,0x57,0x57,0xF1,0xA7, + 0x3D,0x86,0xF4,0xB1,0x9E,0x86,0xA9,0x04,0x56,0xA7,0xE0,0x65,0x83,0xE4,0x41,0xC1, + 0x02,0xCC,0x49,0x5E,0xD7,0x18,0x49,0xB9,0x4D,0x51,0xB2,0xD5,0x39,0xA7,0x45,0x36, + 0xD2,0xC4,0x2E,0x8D,0x94,0x18,0xDD,0x45,0xB6,0x10,0x81,0x1C,0x5C,0xCC,0xDA,0xC1, + 0xE5,0x3F,0x00,0x93,0x2E,0xDE,0xFA,0xEA,0xB8,0xD8,0x6F,0xD6,0x32,0xB8,0x89,0xE0, + 0x66,0x22,0x05,0x93,0x48,0xEE,0x9F,0xDD,0xC7,0xE7,0xBF,0x44,0x47,0x28,0x29,0x29, + 0x11,0x0A,0xAB,0xEA,0x88,0x9A,0x1A,0x29,0x48,0x30,0x7C,0x67,0x6D,0x41,0x21,0xA4, + 0x0B,0xEF,0x42,0xD9,0xC9,0xF1,0xE2,0x52,0x2A,0xE2,0x4E,0x95,0x70,0x31,0x6B,0x07, + 0xB7,0xFC,0x01,0xC8,0x10,0x7B,0xEF,0xDB,0x42,0xDA,0x91,0x57,0xCB,0xF6,0xF8,0x0E, + 0xBE,0x52,0x0F,0x5C,0xAB,0x70,0x31,0x6B,0x07,0x87,0x03,0x60,0x72,0xA0,0x3F,0xFC, + 0xB7,0xBB,0x07,0xE8,0xDE,0x5D,0x38,0x8C,0x66,0x8C,0x4B,0x95,0x1D,0xBE,0xD2,0x2A, + 0x58,0x43,0xAB,0xBC,0xBA,0xC9,0x33,0x57,0x09,0x87,0xE3,0x45,0xDC,0xAA,0x3A,0x0C, + 0x5D,0xC1,0x6D,0x5D,0xF9,0xF7,0x71,0x3A,0xE4,0x6D,0xE3,0x4E,0x3D,0xA2,0x5F,0x9C, + 0xD8,0xDF,0xD4,0x2A,0xB8,0xF1,0x60,0xDE,0x36,0x6B,0x72,0x38,0x3E,0x8B,0xD7,0x2F, + 0x62,0x63,0x21,0xFD,0xF2,0x9A,0x66,0xAA,0xA8,0x71,0xAC,0x48,0x5C,0x63,0x53,0x1B, + 0x1D,0x2B,0x6D,0x64,0x2D,0x79,0x1C,0xA9,0x84,0x02,0x21,0x23,0x11,0xC6,0x17,0xA3, + 0xD4,0x5A,0x81,0xBB,0xD9,0xDA,0xC1,0xEF,0x2E,0x62,0x69,0x34,0x5B,0x2E,0x12,0x7E, + 0xBE,0xAD,0x9D,0x9A,0x5B,0x0C,0x81,0x9F,0x2E,0x11,0xC1,0x14,0xA4,0xE3,0x3A,0x76, + 0x05,0xE9,0x4D,0x99,0x8B,0xB9,0x73,0xF1,0x6B,0x31,0x73,0xBC,0x8B,0xA7,0xC4,0x9C, + 0x97,0x7F,0x54,0x28,0x2E,0xAB,0xA6,0xA6,0x56,0xCF,0x5C,0xAE,0xF1,0x51,0x02,0x8D, + 0x1F,0x3B,0x8A,0x8B,0x59,0x6B,0x70,0x31,0x77,0x1E,0x9E,0x12,0x33,0x87,0xC3,0xE1, + 0x04,0x10,0x44,0xFF,0x0F,0xF8,0xBC,0x87,0x0F,0x69,0x7B,0x06,0x45,0x00,0x00,0x00, + 0x00,0x49,0x45,0x4E,0x44,0xAE,0x42,0x60,0x82, +}; // PlantModel_png, 28345 bytes + +// File: rssi.htm +// +const char rssi_htm[] PROGMEM = { + "\n" + "\n" + "\n" + " Grow Controller RSSI\n" + " \n" + " \n" + " \n" + "\n" + "\n" + "

Grow Controller - RSSI

\n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
\n" + " \n" + "
\n" + "
x:xx:xx
\n" + "
\n" + "
-xx
\n" + "
\n" + "
\n" + " \n" + " \n" + " \n" + " \n" + " \n" + "
NAV:\n" + " Home |\n" + " Config |\n" + " Scan |\n" + " RSSI |\n" + " Current |\n" + " Factory Reset |\n" + " About\n" + "
\n" + "\n" + "\n" +}; // rssi_htm, 1194 bytes + +// File: rssi.js +// +const char rssi_js[] PROGMEM = { + "//\n" + "// rssi script\n" + "//\n" + "// var mySite = 'http://192.168.1.23' from myip.js\n" + "var url = mySite + '/state';\n" + "var rssiData = [];\n" + "var rssiIndex = 0;\n" + "var axes = {};\n" + "for (var i = 0; i<100; i++)\n" + " rssiData[i] = 0;\n" + "setInterval(RefreshStatus, 250);\n" + "\n" + "// -------------------------\n" + "\n" + "getIt = function (aUrl, callback) {\n" + " var xhr = new XMLHttpRequest();\n" + " xhr.open('GET', aUrl, true);\n" + " xhr.responseType = 'text';\n" + " xhr.onload = function (e) {\n" + " if (this.status === 200) {\n" + " callback(this.response);\n" + " }\n" + " };\n" + " xhr.send();\n" + "};\n" + "\n" + "function RefreshStatus() {\n" + " getIt(url,\n" + " function(data) {\n" + " obj = JSON.parse(data);\n" + " UpdateGraph(obj.rssi);\n" + " document.getElementById('rssi').innerHTML = 'RSSI: ' + obj.rssi;\n" + " document.getElementById('uptime').innerHTML = 'Uptime: ' + obj.uptime;\n" + " }\n" + " );\n" + "}\n" + "\n" + "function RSSIInit() {\n" + " var canvas = document.getElementById('RSSIGraph');\n" + " if (null === canvas || !canvas.getContext)\n" + " return;\n" + " ctx = canvas.getContext('2d');\n" + " axes.w = 0.9 * canvas.width;\n" + " axes.h = 0.8 * canvas.height;\n" + " axes.x0 = 0.07 * canvas.width; // x0 pixels from left to x=0\n" + " axes.y0 = 0.10 * canvas.height; // y0 pixels from top to y=0\n" + " axes.scaleX = 100; // # pixels from x=0 to x=1\n" + " axes.scaleY = 100;\n" + " axes.doNegativeX = false;\n" + " ctx.clearRect(0, 0, canvas.width, canvas.height);\n" + " ctx.rect(0, 0, canvas.width - 1, canvas.height - 1);\n" + " ctx.strokeStyle = 'black';\n" + " ctx.lineWidth = 1;\n" + " ctx.stroke();\n" + " showAxes(ctx, axes);\n" + "}\n" + "\n" + "function UpdateGraph(rssi) {\n" + " var xx, yy;\n" + " rssi = -rssi; // invert for convenience\n" + " if (rssi > axes.scaleY) // safety limit\n" + " rssi = axes.scaleY;\n" + " else if (rssi < 0)\n" + " rssi = 0;\n" + " rssiData[rssiIndex] = rssi;\n" + " console.log('UpdateGraph(-' + rssi + ')');\n" + " RSSIInit();\n" + " x0 = axes.x0;\n" + " y0 = axes.y0;\n" + " ctx.beginPath();\n" + " ctx.strokeStyle = 'rgb(250,128,128)';\n" + " ctx.lineWidth = 5;\n" + " for (var i = 0; i<100; i++) {\n" + " pi = (rssiIndex + 1 + i) % 100;\n" + " xx = x0 + i / axes.scaleX * axes.w;\n" + " yy = y0 + rssiData[pi] / axes.scaleY * axes.h;\n" + " ctx.lineTo(xx, yy);\n" + " }\n" + " ctx.stroke();\n" + " ctx.beginPath();\n" + " ctx.arc(xx, yy, 7, 0, 2 * Math.PI, false);\n" + " ctx.fillstyle = 'green';\n" + " ctx.fill();\n" + " ctx.strokeStyle = '#003300';\n" + " ctx.stroke();\n" + " rssiIndex++;\n" + " rssiIndex %= 100;\n" + "}\n" + "\n" + "function showAxes(ctx, axes) {\n" + " var x0 = axes.x0, w = axes.w;\n" + " var y0 = axes.y0, h = axes.h;\n" + " var xmin = axes.doNegativeX ? 0 : x0;\n" + " ctx.lineWidth = 1;\n" + " ctx.font = '12px Arial';\n" + " ctx.textAlign = 'end';\n" + " ctx.beginPath();\n" + " ctx.strokeStyle = 'rgb(128,128,128)';\n" + " ctx.moveTo(x0, y0); ctx.lineTo(x0, y0 + h); // Y axis\n" + " for (var y = 0; y <= axes.scaleY; y += 10) {\n" + " yy = axes.y0 + y / axes.scaleY * axes.h;\n" + " ctx.moveTo(xmin, yy); ctx.lineTo(x0 + w, yy); // X axis\n" + " ctx.fillText(-y, x0 - 3, yy + 3);\n" + " }\n" + " ctx.font = '18px Arial';\n" + " ctx.textAlign = 'start';\n" + " ctx.fillText('RSSI Graph', axes.x0, axes.y0 - 6);\n" + " ctx.stroke();\n" + "}\n" +}; // rssi_js, 2770 bytes + +// File: Water.png +// +const char Water_png[] PROGMEM = { + 0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,0x0D,0x49,0x48,0x44,0x52, + 0x00,0x00,0x00,0x61,0x00,0x00,0x00,0x43,0x08,0x03,0x00,0x00,0x00,0xBB,0xBC,0x9B, + 0xAC,0x00,0x00,0x00,0x01,0x73,0x52,0x47,0x42,0x00,0xAE,0xCE,0x1C,0xE9,0x00,0x00, + 0x00,0x04,0x67,0x41,0x4D,0x41,0x00,0x00,0xB1,0x8F,0x0B,0xFC,0x61,0x05,0x00,0x00, + 0x00,0xCC,0x50,0x4C,0x54,0x45,0xA2,0xB8,0xE1,0x46,0x72,0xC4,0x63,0x88,0xCD,0x92, + 0xAC,0xDC,0x57,0x7F,0xCA,0xAE,0xC1,0xE5,0xC5,0xD3,0xEC,0x75,0x96,0xD3,0x9D,0xB5, + 0xE0,0x7A,0x9A,0xD5,0x52,0x7B,0xC8,0x97,0xB0,0xDE,0x86,0xA3,0xD9,0x5D,0x84,0xCC, + 0x80,0x9E,0xD7,0xB3,0xC5,0xE7,0x4C,0x76,0xC6,0x5D,0x85,0xCC,0x4E,0x78,0xC7,0xCB, + 0xD7,0xEE,0x6F,0x91,0xD1,0x69,0x8D,0xCF,0x77,0x9C,0xD5,0xBD,0xD7,0xEE,0xA6,0xC4, + 0xE6,0x51,0x7B,0xC8,0xA2,0xC1,0xE5,0x98,0xB8,0xE0,0x4A,0x75,0xC6,0x7E,0xA2,0xD8, + 0xA0,0xBE,0xE3,0x6B,0x91,0xD2,0x64,0x8C,0xCF,0x55,0x7F,0xCA,0x8C,0xA7,0xDB,0x61, + 0x88,0xCD,0x94,0xB4,0xDF,0xB5,0xD1,0xEB,0xAE,0xCA,0xE9,0xB9,0xD4,0xED,0x6F,0x95, + 0xD3,0xB9,0xCA,0xE9,0x4A,0x75,0xC5,0x9C,0xBA,0xE2,0x7A,0x9E,0xD7,0xBF,0xCE,0xEA, + 0x90,0xB1,0xDE,0x8C,0xAD,0xDD,0x73,0x98,0xD5,0x92,0xAE,0xDD,0x81,0xA5,0xD9,0x81, + 0xA4,0xD9,0x85,0xA7,0xDA,0x83,0xA5,0xD9,0x59,0x82,0xCA,0xAA,0xC7,0xE8,0xC0,0xD9, + 0xEF,0xB2,0xCE,0xEA,0x89,0xAB,0xDB,0xC1,0xD9,0xEF,0xC2,0xD9,0xF0,0xBF,0xD9,0xEF, + 0xBD,0xD7,0xED,0xBD,0xD6,0xEE,0xBC,0xD7,0xEE,0xBE,0xD7,0xEF,0xC2,0xDA,0xEF,0x00, + 0x00,0x00,0x84,0x2D,0xBB,0x17,0x00,0x00,0x00,0x44,0x74,0x52,0x4E,0x53,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, + 0xFF,0x00,0x71,0xD2,0x8F,0x12,0x00,0x00,0x00,0x09,0x70,0x48,0x59,0x73,0x00,0x00, + 0x0E,0xC3,0x00,0x00,0x0E,0xC3,0x01,0xC7,0x6F,0xA8,0x64,0x00,0x00,0x01,0xD2,0x49, + 0x44,0x41,0x54,0x58,0x47,0xED,0x98,0xDB,0x52,0xC2,0x30,0x14,0x45,0x1B,0xB9,0x54, + 0xAE,0x5A,0x10,0x42,0xA9,0xD4,0xCA,0xA5,0x20,0x2A,0xA8,0x45,0x05,0xC1,0x6B,0xFF, + 0xFF,0x9F,0x3C,0x49,0x4E,0x4A,0xC7,0xE1,0x21,0x0F,0x0D,0x33,0x76,0xB2,0x1E,0x20, + 0x7B,0x27,0xED,0x4A,0x33,0x30,0xA3,0x58,0xB1,0x6E,0xB2,0x34,0x58,0x84,0x90,0x13, + 0x1C,0xEF,0x49,0x0C,0x85,0x22,0x29,0x96,0x70,0xCC,0x28,0x17,0x6C,0xFB,0x14,0xC7, + 0x87,0x29,0x55,0xAA,0xB6,0x5D,0xC3,0x00,0xD4,0x41,0x40,0x48,0x03,0x53,0x02,0x1A, + 0xCA,0xD5,0x3F,0xD3,0x4D,0x9E,0x49,0xE2,0xB0,0x1A,0x6C,0x3A,0xB5,0x85,0xB3,0x73, + 0xB1,0xA2,0x2A,0xF7,0x58,0x86,0xE0,0xB4,0xA0,0x68,0x63,0x81,0xC0,0xBC,0x65,0x59, + 0x05,0xB1,0x9A,0x90,0x0B,0xAC,0x3B,0x98,0x09,0xEE,0x51,0xE6,0x8E,0x88,0x71,0x5C, + 0xC3,0x02,0xA8,0x88,0xA6,0x48,0x48,0x97,0xF6,0x5C,0x56,0xC0,0x1D,0x25,0xDC,0x20, + 0xD6,0x39,0x7D,0xEA,0x5D,0x12,0x52,0xE7,0xAB,0x6D,0x28,0x06,0xBE,0x7F,0x05,0x6F, + 0x7C,0xDB,0xEC,0x01,0xDC,0xE0,0x1A,0x5E,0xF1,0x9C,0x87,0x30,0x1C,0x8D,0x27,0xA1, + 0x17,0xC0,0x80,0x6F,0xAB,0x02,0x2B,0xA6,0x94,0x86,0x0E,0x14,0x29,0xF6,0x86,0x19, + 0xCC,0x52,0x0F,0x06,0x76,0x3B,0xBE,0x81,0x1B,0xCE,0x6F,0x21,0xD3,0x3B,0x28,0x86, + 0xF7,0x35,0x38,0xC2,0xD6,0x18,0xE2,0x62,0x0E,0x87,0x00,0xCA,0x32,0xDB,0x41,0x97, + 0x5D,0x41,0xE9,0x12,0x86,0xD5,0xA6,0xCD,0x4E,0xD9,0x63,0x79,0xF2,0x00,0x8B,0xF6, + 0x70,0xC3,0xE3,0x53,0x14,0xF5,0xF9,0x6A,0x3A,0xC0,0x9E,0xCC,0x17,0xA2,0x60,0x4F, + 0xC1,0x70,0x7B,0x3C,0xF6,0xE1,0x9C,0x91,0x88,0x17,0xC0,0x58,0xDE,0x71,0x85,0xC5, + 0xD4,0x5F,0x45,0x82,0x67,0xF6,0x70,0x60,0x88,0x71,0x86,0x11,0x89,0xE5,0x2D,0x1F, + 0xF3,0xB4,0xCB,0xB3,0x13,0x62,0x0E,0x5F,0x78,0x26,0xEE,0x12,0x0B,0xE0,0x75,0xC4, + 0x1A,0x47,0x5E,0x92,0x62,0x7D,0xC0,0x40,0x37,0xAB,0x59,0x30,0x5B,0x6C,0x30,0x01, + 0x21,0xEC,0x05,0x9F,0x90,0xE3,0x75,0x83,0x20,0x78,0x13,0x27,0x24,0x99,0xF8,0x7E, + 0xEA,0x8A,0x3D,0x07,0x0D,0x99,0x62,0x0C,0x2A,0x24,0x86,0x35,0x16,0x99,0x63,0x0C, + 0x2A,0x18,0x83,0x0A,0x89,0x61,0x8B,0x45,0xE6,0x24,0x86,0x1D,0x16,0x99,0xA3,0xDF, + 0xB0,0x33,0x06,0x05,0xB6,0xDA,0x0D,0x47,0xFC,0x2C,0x69,0xFB,0xC6,0xBD,0x6B,0x37, + 0x50,0x63,0x50,0xE0,0xC3,0x18,0x14,0xF8,0x94,0x06,0xCC,0x1A,0xC8,0x81,0xE1,0x4B, + 0xBB,0x21,0x0F,0xA7,0x64,0x0C,0x4A,0x18,0x83,0x0A,0xC6,0xA0,0x82,0x31,0xA8,0x70, + 0x3C,0xC3,0x37,0xE6,0xEC,0x91,0x86,0x7F,0xFC,0x17,0x59,0xAE,0x0C,0x3F,0x98,0xB3, + 0x47,0x1A,0xB4,0xFD,0x0F,0x94,0x2B,0x83,0xB6,0xDF,0x35,0x12,0x83,0x4E,0xE2,0xF8, + 0x17,0x10,0x4C,0xD8,0xAF,0xAD,0x7C,0x4D,0x0E,0x00,0x00,0x00,0x00,0x49,0x45,0x4E, + 0x44,0xAE,0x42,0x60,0x82, +}; // Water_png, 869 bytes + +// Prototypes: +// const char about_htm[] PROGMEM +// const char about_js[] PROGMEM +// const char Button_css[] PROGMEM +// const char curr_htm[] PROGMEM +// const char curr_js[] PROGMEM +// const char favicon_ico[] PROGMEM +// const char Green1x1_png[] PROGMEM +// const char Heater_png[] PROGMEM +// const char icon_png[] PROGMEM +// const char index_htm[] PROGMEM +// const char index_js[] PROGMEM +// const char Open_png[] PROGMEM +// const char PlantModel_png[] PROGMEM +// const char rssi_htm[] PROGMEM +// const char rssi_js[] PROGMEM +// const char Water_png[] PROGMEM + +// Directory of Files +// +// This typedef is used to iterate through the directory listing, until +// an empty "" Filename is reached. +// +typedef struct { + const char * Filename; + const char * Filedata; + const char * Filetype; + uint16_t Filesize; +} DirEntry; + +const DirEntry Directory[] PROGMEM = { + { "Button.css", Button_css, "text/css", 404 }, + { "Green1x1.png", Green1x1_png, "image/png", 119 }, + { "Heater.png", Heater_png, "image/png", 443 }, + { "Open.png", Open_png, "image/png", 655 }, + { "PlantModel.png", PlantModel_png, "image/png", 28345 }, + { "Water.png", Water_png, "image/png", 869 }, + { "about.htm", about_htm, "text/html", 1839 }, + { "about.js", about_js, "application/javascript", 605 }, + { "curr.htm", curr_htm, "text/html", 1196 }, + { "curr.js", curr_js, "application/javascript", 3615 }, + { "favicon.ico", favicon_ico, "image/x-icon", 4286 }, + { "icon.png", icon_png, "image/png", 8721 }, + { "index.htm", index_htm, "text/html", 5713 }, + { "index.js", index_js, "application/javascript", 1408 }, + { "rssi.htm", rssi_htm, "text/html", 1194 }, + { "rssi.js", rssi_js, "application/javascript", 2770 }, + { "", NULL, NULL, 0 } +}; + diff --git a/Firmware/Web_RootPage.cpp b/Firmware/Web_RootPage.cpp new file mode 100644 index 0000000..c7a62cd --- /dev/null +++ b/Firmware/Web_RootPage.cpp @@ -0,0 +1,33 @@ + +#include + +#include "ProjGlobals.h" +#include "Web_RootPage.h" +#include "GrowController.h" +#include "Web_Resources.h" + +void HandleRootPage() { + if (server.hasArg("SW")) { + String newState = server.arg("SW"); + if (newState == "1") { + SetCircuit(CMD_On); + Serial.printf("SW 1\n"); + } else if (newState == "0") { + SetCircuit(CMD_Off); + Serial.printf("SW 0\n"); + } else if (newState == "2") { + SetCircuit(CMD_Toggle); + Serial.printf("SW 2\n"); + } else { + Serial.printf("SW %s ???\n", newState.c_str()); + ; // no action + } + } + String modeText = (isStationMode) ? "Station mode
" : "Access Point mode
"; + String status = GetCircuitStatus() ? "On
" : "Off
"; + String myIP = String(WiFi.localIP()[0]); + myIP += "." + String(WiFi.localIP()[1]); + myIP += "." + String(WiFi.localIP()[2]); + myIP += "." + String(WiFi.localIP()[3]); + server.send_P(200, "text/html", index_htm); +} diff --git a/Firmware/Web_RootPage.h b/Firmware/Web_RootPage.h new file mode 100644 index 0000000..89c471b --- /dev/null +++ b/Firmware/Web_RootPage.h @@ -0,0 +1,7 @@ + +#ifndef WEB_ROOTPAGE_H +#define WEB_ROOTPAGE_H + +void HandleRootPage(); + +#endif // WEB_ROOTPAGE_H diff --git a/Firmware/WiFiConfiguration.h b/Firmware/WiFiConfiguration.h new file mode 100644 index 0000000..6c37ea4 --- /dev/null +++ b/Firmware/WiFiConfiguration.h @@ -0,0 +1,55 @@ +/// +/// Simple WiFi Configuration features +/// +#ifndef WIFICONFIGURATION_H +#define WIFICONFIGURATION_H + +#include + +#define CFG_NAMESIZE 32 +#define CFG_SSIDSIZE 32 +#define CFG_PASSSIZE 64 +#define CFG_UURLSIZE 64 + +/// Provides a handy interface for WiFi configuration. +/// +/// @code +/// WiFiConfiguration config; +/// ... +/// config.load(); +/// ssid = config.getSSID(); +/// pass = config.getPassword(); +/// ... +/// WiFi.begin(ssid.c_str(), pass.c_str()); +/// +/// @endcode +/// +class ConfigManager { +public: + ConfigManager(); + void load(); + void save(); + void factoryReset(); + String getName(); + void setName(String _name); + String getSSID(); + void setSSID(String _ssid); + String getPassword(); + void setPassword(String _password); + String getURL(); + void setURL(String _url); + uint16_t getOnRef(); + void setOnRef(uint16 onR); + uint16_t getOffRef(); + void setOffRef(uint16 offR); + uint16_t getAutoOff(); + void setAutoOff(uint16 autoOff); + #if 0 + String getNTPServerName(); + void setNTPServerName(String _name); + #endif +private: +}; + + +#endif // !WIFICONFIGURATION_H diff --git a/Firmware/WifiConfiguration.cpp b/Firmware/WifiConfiguration.cpp new file mode 100644 index 0000000..9e13a04 --- /dev/null +++ b/Firmware/WifiConfiguration.cpp @@ -0,0 +1,157 @@ +// +// This file hosts all the non-volatile configuration options for this node +// +#include "WiFiConfiguration.h" +#include + +#define EEROM_SIZE 512 + +// Change this when it is required to force a reinitialization +// +#define EXPECTED_FMT 0x03 + +typedef struct { + uint8_t format[2]; // Format of this data structure, and ~format + struct info { + char name[CFG_NAMESIZE]; // Name of this node + char ssid[CFG_SSIDSIZE]; // SSID of the saved network [max length defined by standard] + char pass[CFG_PASSSIZE]; // PASScode of the saved network + char updateURL[CFG_UURLSIZE]; // URL of the trusted server with code updates + uint16_t onRef; // A/D reference above which the output is considered 'On' + uint16_t offRef; // A/D reference below which the output is considered 'Off' + uint16_t autoOff; // When non-zero, this is the # minutes until auto-turn off + //char NTPIP[64]; // Name or IP of the NTP Server + char Padding[10]; + } info; +} Config_t; +#define OFS_FORMAT (0) +#define OFS_NAME (OFS_FORMAT + 2) +#define OFS_SSID (OFS_NAME + CFG_NAMESIZE) +#define OFS_PASS (OFS_SSID + CFG_SSIDSIZE) +#define OFS_URL (OFS_PASS + CFG_PASSSIZE) +#define OFS_ONREF (OFS_URL + CFG_UURLSIZE) +#define OFS_OFFREF (OFS_ONREF + sizeof(uint16_t)) +#define OFS_AUTOOFF (OFS_OFFREF + sizeof(uint16_t)) +//#define OFS_NTPIP (OFS_OFFREF + 2) + +Config_t Configuration; + +ConfigManager::ConfigManager() { + +} + +void ConfigManager::factoryReset() { + Configuration.format[0] = EXPECTED_FMT; + Configuration.format[1] = ~EXPECTED_FMT; + strcpy(Configuration.info.name, "3-Way Switch"); + Configuration.info.ssid[0] = '\0'; + Configuration.info.pass[0] = '\0'; + //Configuration.info.updateURL[0] = '\0'; + strcpy(Configuration.info.updateURL, "https://192.168.1.201/mbed/ESP.php"); + Configuration.info.onRef = 150; + Configuration.info.offRef = 100; + Configuration.info.autoOff = 0; + //Configuration.info.NTPIP[0] = '\0'; +} + +void ConfigManager::load() { + EEPROM.begin(512); + + uint8_t * ptr = (uint8_t *) &Configuration; + uint8_t i = 0; + do { + *ptr++ = EEPROM.read(OFS_FORMAT + i++); + } while (i < sizeof(Configuration)); + if ((Configuration.format[0] & 0xFF) != (~Configuration.format[1] & 0xFF)) { + // Factory default + Serial.printf("Bad Configuration - reset to factory defaults\n"); + factoryReset(); + return; + } + Serial.printf("Loading from EEROM\n"); + Serial.printf("Node Name: %s\n", Configuration.info.name); + Serial.printf("SSID: %s\n", Configuration.info.ssid); + Serial.printf("PASS: %s\n", Configuration.info.pass); + Serial.printf("URL : %s\n", Configuration.info.updateURL); + Serial.printf("On Ref: %d\n", Configuration.info.onRef); + Serial.printf("Off Ref: %d\n", Configuration.info.offRef); + Serial.printf("Auto Off: %d\n", Configuration.info.autoOff); + //Serial.printf("NTP Svr: %s\n", Configuration.info.NTPIP); + delay(500); +} + +void ConfigManager::save(void) { + EEPROM.begin(512); + uint8_t * ptr = (uint8_t *) &Configuration; + uint8_t i = 0; + do { + EEPROM.write(OFS_FORMAT + i++, *ptr++); + } while (i < sizeof(Configuration)); + EEPROM.commit(); + delay(500); +} + +#if 0 +String ConfigManager::getNTPServerName() { + return String(Configuration.info.NTPIP); +} +void ConfigManager::setNTPServerName(String _name) { + strncpy(Configuration.info.NTPIP, _name.c_str(), sizeof(Configuration.info.NTPIP)); + Serial.printf("setNTPServerName(%s)\n", Configuration.info.NTPIP); +} +#endif + +String ConfigManager::getName() { + return String(Configuration.info.name); +} + +void ConfigManager::setName(String _name) { + strncpy(Configuration.info.name, _name.c_str(), sizeof(Configuration.info.name)); + Serial.printf("setName(%s)\n", Configuration.info.name); +} + +String ConfigManager::getSSID() { + return String(Configuration.info.ssid); +} + +void ConfigManager::setSSID(String _ssid) { + strncpy(Configuration.info.ssid, _ssid.c_str(), sizeof(Configuration.info.ssid)); + Serial.printf("setSSID(%s)\n", Configuration.info.ssid); +} + +String ConfigManager::getPassword() { + return String(Configuration.info.pass); +} + +void ConfigManager::setPassword(String _password) { + strncpy(Configuration.info.pass, _password.c_str(), sizeof(Configuration.info.pass)); + Serial.printf("setPass(%s)\n", Configuration.info.pass); +} + +String ConfigManager::getURL() { + return String(Configuration.info.updateURL); +} + +void ConfigManager::setURL(String _url) { + strncpy(Configuration.info.updateURL, _url.c_str(), sizeof(Configuration.info.updateURL)); + Serial.printf("setURL (%s)\n", Configuration.info.updateURL); +} + +uint16_t ConfigManager::getOnRef() { + return Configuration.info.onRef; +} +void ConfigManager::setOnRef(uint16 onR) { + Configuration.info.onRef = onR; +} +uint16_t ConfigManager::getOffRef() { + return Configuration.info.offRef; +} +void ConfigManager::setOffRef(uint16 offR) { + Configuration.info.offRef = offR; +} +uint16_t ConfigManager::getAutoOff() { + return Configuration.info.autoOff; +} +void ConfigManager::setAutoOff(uint16 autoOff) { + Configuration.info.autoOff = autoOff; +} diff --git a/Firmware/fauxmoESP.cpp b/Firmware/fauxmoESP.cpp new file mode 100644 index 0000000..a03820b --- /dev/null +++ b/Firmware/fauxmoESP.cpp @@ -0,0 +1,479 @@ +/* + +FAUXMO ESP 2.4.2 + +Copyright (C) 2016 by Xose Pérez + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +#include + +#if defined(ESP32) + #include +#elif defined(ESP8266) + #include +#else + #error Platform not supported +#endif + +#include "fauxmoESP.h" +#include "Web_Resources.h" + +// ----------------------------------------------------------------------------- +// UDP +// ----------------------------------------------------------------------------- + +void fauxmoESP::_sendUDPResponse(unsigned int device_id) { + + fauxmoesp_device_t device = _devices[device_id]; + DEBUG_MSG_FAUXMO("[FAUXMO] UDP response for device #%d (%s)\n", _current, device.name); + + char buffer[16]; + IPAddress ip = WiFi.localIP(); + snprintf_P(buffer, sizeof(buffer), PSTR("%d.%d.%d.%d"), ip[0], ip[1], ip[2], ip[3]); + + char response[strlen(UDP_TEMPLATE) + 128]; + snprintf_P(response, sizeof(response), UDP_TEMPLATE, + buffer, + _base_port + _current, + device.uuid, + _udpPattern == 1 ? UDP_DEVICE_PATTERN_1 : _udpPattern == 2 ? UDP_DEVICE_PATTERN_2 : _udpPattern == 3 ? UDP_DEVICE_PATTERN_3 : _udpPattern == 4 ? UDP_DEVICE_PATTERN_4 : _udpPattern == 5 ? UDP_DEVICE_PATTERN_5 : UDP_ROOT_DEVICE, + device.uuid, + _udpPattern == 1 ? UDP_DEVICE_PATTERN_1 : _udpPattern == 2 ? UDP_ROOT_DEVICE : _udpPattern == 3 ? UDP_ROOT_DEVICE : _udpPattern == 4 ? UDP_ROOT_DEVICE : _udpPattern == 5 ? UDP_ROOT_DEVICE : UDP_ROOT_DEVICE + ); + + _udp.beginPacket(_remoteIP, _remotePort); + #if defined(ESP32) + _udp.printf(response); + #else + _udp.write(response); + #endif + _udp.endPacket(); + DEBUG_MSG_FAUXMO("[FAUXMO] response:\n%s\n", response); +} + +void fauxmoESP::_nextUDPResponse() { + + while (_roundsLeft) { + if (_devices[_current].hit == false) break; + if (++_current == _devices.size()) { + --_roundsLeft; + _current = 0; + } + } + + if (_roundsLeft > 0) { + _sendUDPResponse(_current); + if (++_current == _devices.size()) { + --_roundsLeft; + _current = 0; + } + } +} + +void fauxmoESP::_onUDPData(IPAddress remoteIP, unsigned int remotePort, void *data, size_t len) { + + if (!_enabled) return; + + char * p = (char *) data; + p[len] = 0; + + if (strstr(p, UDP_SEARCH_PATTERN) == (char *) data) { + Serial.printf("onUDP: %s\n", p); + _udpPattern = 0; + if (strstr(p, UDP_DEVICE_PATTERN_1) != NULL) _udpPattern = 1; + if (strstr(p, UDP_DEVICE_PATTERN_2) != NULL) _udpPattern = 2; + if (strstr(p, UDP_DEVICE_PATTERN_3) != NULL) _udpPattern = 3; + if (strstr(p, UDP_DEVICE_PATTERN_4) != NULL) _udpPattern = 4; // ssdp:all + if (strstr(p, UDP_DEVICE_PATTERN_5) != NULL) _udpPattern = 5; // ssdpsearch:all + if (strstr(p, UDP_ROOT_DEVICE) != NULL) _udpPattern = 6; // upnp:rootdevice + if (_udpPattern) { + + #ifdef DEBUG_FAUXMO + char buffer[16]; + snprintf_P(buffer, sizeof(buffer), PSTR("%d.%d.%d.%d"), remoteIP[0], remoteIP[1], remoteIP[2], remoteIP[3]); + DEBUG_MSG_FAUXMO("[FAUXMO] Search request from %s\n", buffer); + #endif + + // Set hits to false + for (unsigned int i = 0; i < _devices.size(); i++) { + _devices[i].hit = false; + } + + // Send responses + _remoteIP = remoteIP; + _remotePort = remotePort; + _current = random(0, _devices.size()); + _roundsLeft = UDP_RESPONSES_TRIES; + + } + } + +} + +// ----------------------------------------------------------------------------- +// TCP +// ----------------------------------------------------------------------------- + +void fauxmoESP::_handleSetup(AsyncClient *client, unsigned int device_id, void *data, size_t len) { + (void) data; + (void) len; + + DEBUG_MSG_FAUXMO("[FAUXMO] Device #%d /setup.xml\n", device_id); + _devices[device_id].hit = true; + fauxmoesp_device_t device = _devices[device_id]; + + IPAddress myIP; + myIP = WiFi.localIP(); + char response[80 + strlen_P(SETUP_TEMPLATE) + strlen(device.name) + strlen(device.uuid) + strlen(device.serial) + 25]; + snprintf_P(response, sizeof(response), SETUP_TEMPLATE, + device.name, device.uuid, device.serial, + myIP.toString().c_str(), 80); + + char headers[strlen_P(HEADERS) + 10]; + snprintf_P(headers, sizeof(headers), HEADERS, strlen(response)); + + client->write(headers, strlen(headers)); + client->write(response, strlen(response)); + DEBUG_MSG_FAUXMO("[FAUXMO] end /setup.xml: %d, %d\n", strlen(headers), strlen(response)); +} + +void fauxmoESP::_handleEventService(AsyncClient *client, unsigned int device_id, void *data, size_t len) { + (void) device_id; + (void) data; + (void) len; + + DEBUG_MSG_FAUXMO("[FAUXMO] Device #%d /eventservice.xml\n", device_id); + + char response[strlen_P(EVENTSERVICE_TEMPLATE)]; + snprintf_P(response, sizeof(response), EVENTSERVICE_TEMPLATE); + + char headers[strlen_P(HEADERS) + 10]; + snprintf_P(headers, sizeof(headers), HEADERS, strlen(response)); + + client->write(headers, strlen(headers)); + client->write(response, strlen(response)); + DEBUG_MSG_FAUXMO("[FAUXMO] end /eventservice.xml\n"); +} + +void fauxmoESP::_handleMetaInfoService(AsyncClient *client, unsigned int device_id, void *data, size_t len) { + (void) device_id; + (void) data; + (void) len; + + DEBUG_MSG_FAUXMO("[FAUXMO] Device #%d /metainfoservice.xml\n", device_id); + + char response[strlen_P(METAINFO_TEMPLATE)]; + snprintf_P(response, sizeof(response), METAINFO_TEMPLATE); + + char headers[strlen_P(HEADERS) + 10]; + snprintf_P(headers, sizeof(headers), HEADERS, strlen(response)); + + client->write(headers, strlen(headers)); + client->write(response, strlen(response)); + DEBUG_MSG_FAUXMO("[FAUXMO] end /metainfoservice.xml\n"); +} + +void fauxmoESP::_handleControl(AsyncClient *client, unsigned int device_id, void *data, size_t len) { + + DEBUG_MSG_FAUXMO("[FAUXMO] Device #%d /upnp/control/basicevent1\n", device_id); + + char content[len+1]; + memcpy(content, data, len); + fauxmoesp_device_t device = _devices[device_id]; + + // The default template is the one for GetBinaryState queries + const char * response_template = GETSTATE_TEMPLATE; + + if (strstr(content, "SetBinaryState") != NULL) { + + if (strstr(content, "0") != NULL) { + if (_setCallback) _setCallback(device_id, device.name, false); + } + + if (strstr(content, "1") != NULL) { + if (_setCallback) _setCallback(device_id, device.name, true); + } + + // Use a specific response template for SetBinaryState action + response_template = SETSTATE_TEMPLATE; + + } + + // Update current state + if (_getCallback) device.state = _getCallback(device_id, device.name); + + // Send response + char response[strlen_P(response_template) + 10]; + snprintf_P(response, sizeof(response), response_template, device.state ? 1 : 0); + + char headers[strlen_P(HEADERS) + 10]; + snprintf_P(headers, sizeof(headers), HEADERS, strlen(response)); + + client->write(headers, strlen(headers)); + client->write(response, strlen(response)); + DEBUG_MSG_FAUXMO("[FAUXMO] end /upnp/control/basicevent1\n"); +} + +void fauxmoESP::_handleIcon(AsyncClient *client, unsigned int device_id, void *data, size_t len) { + (void) device_id; + (void) data; + (void) len; + + DEBUG_MSG_FAUXMO("[FAUXMO] Icon /icon.png\n"); + + char *buf = (char *) malloc(strlen(HEADERJPG) + 5); + if (buf) { + snprintf_P(buf, strlen_P(HEADERJPG) + 5, HEADERJPG, sizeof(icon_png)); + client->write(buf, strlen(buf)); + client->write(icon_png, sizeof(icon_png)); + DEBUG_MSG_FAUXMO("[FAUXMO] sent icon.png [%d bytes]\n", sizeof(icon_png)); + delay(100); + free(buf); + } + DEBUG_MSG_FAUXMO("[FAUXMO] end /icon.png\n"); +} + + + +void fauxmoESP::_onTCPData(AsyncClient *client, unsigned int device_id, void *data, size_t len) { + + if (!_enabled) return; + + #ifdef DEBUG_FAUXMO + char * p = (char *) data; + p[len] = 0; + Serial.printf("[FAUXMO] onTCPData(dev:%d,\n%s\n", device_id, p); + #endif + + { + char match[] = {"GET /setup.xml HTTP/1.1"}; + if (memcmp(data, match, strlen(match)-1) == 0) { + _handleSetup(client, device_id, data, len); + return; + } + } + + { + char match[] = {"GET /eventservice.xml HTTP/1.1"}; + if (memcmp(data, match, strlen(match)-1) == 0) { + _handleEventService(client, device_id, data, len); + return; + } + } + + { + char match[] = {"GET /metainfoservice.xml HTTP/1.1"}; + if (memcmp(data, match, strlen(match)-1) == 0) { + _handleMetaInfoService(client, device_id, data, len); + return; + } + } + + { + char match[] = {"POST /upnp/control/basicevent1 HTTP/1.1"}; + if (memcmp(data, match, strlen(match)-1) == 0) { + _handleControl(client, device_id, data, len); + return; + } + } + + { + char match[] = {"GET /icon.png HTTP/1.1"}; + if (memcmp(data, match, strlen(match)-1) == 0) { + _handleIcon(client, device_id, data, len); + return; + } + } +} + +void fauxmoESP::_onTCPClient(AsyncClient *client, unsigned int device_id) { + + for (unsigned char i = 0; i < TCP_MAX_CLIENTS; i++) { + + if (!_tcpClients[i] || !_tcpClients[i]->connected()) { + + _tcpClients[i] = client; + + client->onAck([i](void *s, AsyncClient *c, size_t len, uint32_t time) { + (void) s; + (void) c; + (void) len; + (void) time; + }, 0); + + client->onData([this, i, device_id](void *s, AsyncClient *c, void *data, size_t len) { + (void) s; + _onTCPData(c, device_id, data, len); + }, 0); + + client->onDisconnect([this, i](void *s, AsyncClient *c) { + (void) s; + _tcpClients[i]->free(); + _tcpClients[i] = NULL; + delete c; + DEBUG_MSG_FAUXMO("[FAUXMO] Client #%d disconnected\n", i); + }, 0); + + client->onError([i](void *s, AsyncClient *c, int8_t error) { + (void) s; + (void) c; + (void) error; + DEBUG_MSG_FAUXMO("[FAUXMO] Error %s (%d) on client #%d\n", c->errorToString(error), error, i); + }, 0); + + client->onTimeout([i](void *s, AsyncClient *c, uint32_t time) { + (void) s; + (void) time; + DEBUG_MSG_FAUXMO("[FAUXMO] Timeout on client #%d at %i\n", i, time); + c->close(); + }, 0); + + DEBUG_MSG_FAUXMO("[FAUXMO] Client #%d connected\n", i); + return; + + } + + } + + DEBUG_MSG_FAUXMO("[FAUXMO] Rejecting - Too many connections\n"); + client->onDisconnect([](void *s, AsyncClient *c) { + (void) s; + c->free(); + delete c; + }); + client->close(true); + +} + +// ----------------------------------------------------------------------------- +// Public API +// ----------------------------------------------------------------------------- + +unsigned char fauxmoESP::addDevice(const char * device_name) { + + fauxmoesp_device_t new_device; + unsigned int device_id = _devices.size(); + + // Copy name + new_device.name = strdup(device_name); + + // Chip ID + #if defined(ESP32) + unsigned long chip_id = (uint32_t) ESP.getEfuseMac(); + #else + unsigned long chip_id = ESP.getChipId(); + #endif + + // Create UUID + char uuid[15]; + snprintf_P(uuid, sizeof(uuid), PSTR("444556%06X%02X\0"), chip_id, device_id); // "DEV" + CHIPID + DEV_ID + new_device.uuid = strdup(uuid); + + // Create Serialnumber + char serial[15]; + sprintf(serial, "221703K0%06X", (uint32)chip_id); // "221703K0" + CHIPID + new_device.serial = strdup(serial); + + // TCP Server + new_device.server = new AsyncServer(_base_port + device_id); + new_device.server->onClient([this, device_id](void *s, AsyncClient* c) { + (void) s; + _onTCPClient(c, device_id); + }, 0); + new_device.server->begin(); + + // Attach + _devices.push_back(new_device); + + DEBUG_MSG_FAUXMO("[FAUXMO] Device '%s' added as #%d\n", device_name, device_id); + + return device_id; + +} + +bool fauxmoESP::renameDevice(unsigned char id, const char * device_name) { + if (id <= _devices.size()) { + free(_devices[id].name); + _devices[id].name = strdup(device_name); + DEBUG_MSG_FAUXMO("[FAUXMO] Device #%d renamed to '%s'\n", id, device_name); + return true; + } + return false; +} + +char * fauxmoESP::getDeviceName(unsigned char id, char * device_name, size_t len) { + if (id <= _devices.size()) { + strncpy(device_name, _devices[id].name, len); + } + return device_name; +} + +void fauxmoESP::setState(unsigned char id, bool state) { + if (id <= _devices.size()) { + _devices[id].state = state; + } +} + +void fauxmoESP::handle() { + + int len = _udp.parsePacket(); + if (len > 0) { + IPAddress remoteIP = _udp.remoteIP(); + unsigned int remotePort = _udp.remotePort(); + uint8_t data[len]; + _udp.read(data, len); + _onUDPData(remoteIP, remotePort, data, len); + } + + if (_roundsLeft > 0) { + if (millis() - _lastTick > UDP_RESPONSES_INTERVAL) { + _lastTick = millis(); + _nextUDPResponse(); + } + } + +} + +void fauxmoESP::enable(bool enable) { + DEBUG_MSG_FAUXMO("[FAUXMO] %s\n", enable ? "Enabled" : "Disabled"); + _enabled = enable; + #ifdef ESP32 + _udp.beginMulticast(UDP_MULTICAST_IP, UDP_MULTICAST_PORT); + #endif +} + +fauxmoESP::fauxmoESP(unsigned int port) { + + _base_port = port; + + #ifdef ESP8266 + // Start UDP server on STA connection + _handler = WiFi.onStationModeGotIP([this](WiFiEventStationModeGotIP ipInfo) { + (void) ipInfo; + _udp.beginMulticast(WiFi.localIP(), UDP_MULTICAST_IP, UDP_MULTICAST_PORT); + DEBUG_MSG_FAUXMO("[FAUXMO] UDP server started\n"); + }); + #endif + +} diff --git a/Firmware/fauxmoESP.h b/Firmware/fauxmoESP.h new file mode 100644 index 0000000..3d03ae9 --- /dev/null +++ b/Firmware/fauxmoESP.h @@ -0,0 +1,135 @@ +/* + +FAUXMO ESP 2.4.2 + +Copyright (C) 2016 by Xose Pérez + +The MIT License (MIT) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +#pragma once + +#define DEFAULT_TCP_BASE_PORT 49152 +#define UDP_MULTICAST_IP IPAddress(239,255,255,250) +#define UDP_MULTICAST_PORT 1900 +#define TCP_MAX_CLIENTS 10 + +#define UDP_SEARCH_PATTERN "M-SEARCH" +#define UDP_DEVICE_PATTERN_1 "urn:Belkin:device:**" +#define UDP_DEVICE_PATTERN_2 "urn:Belkin:device:controllee:1" +#define UDP_DEVICE_PATTERN_3 "urn:Belkin:service:basicevent:1" +#define UDP_DEVICE_PATTERN_4 "ssdp:all" +#define UDP_DEVICE_PATTERN_5 "ssdpsearch:all" +#define UDP_ROOT_DEVICE "upnp:rootdevice" + +#define UDP_RESPONSES_INTERVAL 250 +#define UDP_RESPONSES_TRIES 5 + +// Here, or in the compiler configuration +//#define DEBUG_FAUXMO Serial +#ifdef DEBUG_FAUXMO + #define DEBUG_MSG_FAUXMO(...) DEBUG_FAUXMO.printf( __VA_ARGS__ ) +#else + #define DEBUG_MSG_FAUXMO(...) +#endif + +#include + +#if defined(ESP32) + #include + #include +#elif defined(ESP8266) + #include + #include +#else + #error Platform not supported +#endif + +#include +#include +#include +#include "WeMo.h" + +typedef std::function TSetStateCallback; +typedef std::function TGetStateCallback; + +typedef struct { + char * name; + char * uuid; + char * serial; + bool hit; + bool state; + AsyncServer * server; +} fauxmoesp_device_t; + +class fauxmoESP { + + public: + + fauxmoESP(unsigned int port = DEFAULT_TCP_BASE_PORT); + + unsigned char addDevice(const char * device_name); + bool renameDevice(unsigned char id, const char * device_name); + char * getDeviceName(unsigned char id, char * buffer, size_t len); + void onSetState(TSetStateCallback fn) { _setCallback = fn; } + void onGetState(TGetStateCallback fn) { _getCallback = fn; } + void enable(bool enable); + void handle(); + + // backwards compatibility DEPRECATED + void onMessage(TSetStateCallback fn) { onSetState(fn); } + void setState(unsigned char id, bool state); + + private: + + bool _enabled = true; + unsigned int _base_port = DEFAULT_TCP_BASE_PORT; + std::vector _devices; + #ifdef ESP8266 + WiFiEventHandler _handler; + #endif + WiFiUDP _udp; + AsyncClient * _tcpClients[TCP_MAX_CLIENTS]; + TSetStateCallback _setCallback = NULL; + TGetStateCallback _getCallback = NULL; + + unsigned int _roundsLeft = 0; + unsigned int _current = 0; + unsigned long _lastTick; + IPAddress _remoteIP; + unsigned int _remotePort; + unsigned int _udpPattern; + + void _sendUDPResponse(unsigned int device_id); + void _nextUDPResponse(); + + void _handleSetup(AsyncClient *client, unsigned int device_id, void *data, size_t len); + void _handleMetaInfoService(AsyncClient *client, unsigned int device_id, void *data, size_t len); + void _handleEventService(AsyncClient *client, unsigned int device_id, void *data, size_t len); + void _handleControl(AsyncClient *client, unsigned int device_id, void *data, size_t len); + void _handleIcon(AsyncClient *client, unsigned int device_id, void *data, size_t len); + + void _onUDPData(const IPAddress remoteIP, unsigned int remotePort, void *data, size_t len); + void _onTCPData(AsyncClient *client, unsigned int device_id, void *data, size_t len); + void _onTCPClient(AsyncClient *client, unsigned int device_id); + +}; diff --git a/Hardware/GrowController.sch b/Hardware/GrowController.sch new file mode 100644 index 0000000..d593e1d --- /dev/null +++ b/Hardware/GrowController.sch @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<b>Parts</b> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Date: +>LAST_DATE_TIME +Sheet: +>SHEET +Rev: +Document Title: +Part Number: +>DRAWING_NAME +Sheet Function: +>PART_NUMBER +>PART_REV +>COMPANY_NAME +>COMPANY_ADDR +Drawn: +>ENGINEER +>MODULE + + + + +<b>FRAME - A Landscape</b><br/> +Smartware Computing + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tools/MakeByteArray.pl b/Tools/MakeByteArray.pl new file mode 100644 index 0000000..a5711e1 --- /dev/null +++ b/Tools/MakeByteArray.pl @@ -0,0 +1,244 @@ +# MakeByteArray +# +# +use strict; +use warnings; +use Cwd qw(cwd); + +my $maxCols = 16; +my $maxLines = 0; +my $ESP = 0; +my $DIR = 0; +my $file = ""; +my $ctrlC = 0; # User induced termination +my $lineT = 0; # Linecount induced termination + +$SIG{INT} = \&CtrlCHandler; +$SIG{QUIT} = \&CtrlCHandler; + +my %DirInfo; # Name and FileSize + +my $prg = $0; +$prg =~ s/^.*[\\\/](.*)/$1/; +$prg =~ s/(.*)\..*/$1/; + +my $VERSION = 1.0; + +# Extension in this list must be lower case. +my %FileType = ( + "htm" => "text/html", + "html" => "text/html", + "gif" => "image/gif", + "svg" => "image/svg+xml", + "css" => "text/css", + "ico" => "image/x-icon", + "png" => "image/png", + "jpg" => "image/jpeg", + "js" => "application/javascript", +); + + +if (!@ARGV) + { + print < [...]] [-n=##] [-l=##] [-ESP] [-DIR] [-o=outfile] + version $VERSION + + Dumps out the contents of the [file] as a c array. + + If the file is binary, it emits a hex char-array using + the -n and -l settings. + If the file is text, it emits as an ascii char-array + where each source line is one ascii quoted line. + + -ESP adds the PROGMEM attribte to the byte array data. + + -DIR adds a 'directory' at the end of the output, providing + a reference to each input file. Most useful for a set + of files. + + -o=outfile Writes the output to outfile. + + -n=## sets the byte count for each line, defaults 32. + -l=## sets a termination after ## lines have been printed. + + Example: MakeByteArray -ESP srcpath\\*.* -o=dstpath\\Web_Resources.h + +EOM + exit; + } + +my @files; +my $outfile = ""; + +#printf("ARGS: '%s'\n", join("|", @ARGV)); +foreach (@ARGV) + { + if (/-n=(\d+)/) + { $maxCols = $1; } + elsif (/-l=(\d+)/) + { $maxLines = $1; } + elsif (/-o=(.*)/) + { $outfile = $1; } + elsif (/-ESP/) + { $ESP = 1; } + elsif (/-DIR/) + { $DIR = 1; } + elsif (-e $_ ) + { push @files, $_; } + elsif (/[\*\?]/) + { + my @gFiles = glob($_); + foreach (@gFiles) + { + push @files, $_ if (-e $_); + } + } + else + { print "unrecognized command.\n"; exit; } + } + +if (!@files) + { + print "No files to process.\n"; + exit; + } + +my $oldHandle; +if ($outfile ne "") { + #printf("Open for write '%s'\n", $outfile); + open(FO, ">$outfile") || die("Can't write to $outfile"); + $oldHandle = select FO; +} else { + printf("No outfile, emitting to console.\n"); +} +printf("//\n"); +printf("// Command : %s %s\n", $prg, join(" ", @ARGV)); +printf("// version: %2.1f\n", $VERSION); +printf("// From cwd : %s\n", cwd); +printf("// Generated: %s\n", scalar localtime()); +printf("// Run script in command shell, not PowerShell\n"); +my @summary; +foreach my $file (@files) { + push @summary, Process($file); + last if ($ctrlC); +} +print "\n// Prototypes:\n// " . join("\n// ", @summary) . "\n"; + +if ($DIR) { + print < '%s'\n", $ext, $FileType{lc($ext)}); + printf("\t{ %-20s, %-20s, %24s, %6d },\n", $fn, $title, $ftype, $DirInfo{$file}{'size'}); + } + printf("\t{ %-20s, %-20s, %24s, %6d }\n", "\"\"", "NULL", "NULL", 0); + printf("};\n\n"); +} + +if ($outfile) { + close FO; + select($oldHandle); +} +print "\nTerminated by operator\n" if ($ctrlC == 1); +exit; + +# #################################### + +sub Process { + my $file = shift; + my $title = $file; + my $isText = 0; + my $prototype; + + $title =~ s/\./_/g; + $isText = 1 if (-T $file); + open(FH, "<$file") || die("Can't read $file.\n"); + binmode FH if ($isText); + my $cols = 0; + my $c; + my $ascii = ""; + my $address = 0; + my $lineCount = 0; + printf("\n"); + printf("// File: %s\n", $file); + printf("//\n"); + $prototype = sprintf("const char %s[]%s", $title, ($ESP) ? " PROGMEM" : ""); + printf("%s = {\n", $prototype); + + my $size = 0; + if ($isText) { + while () { + my $line = $_; + chomp $line; + $line =~ s/\t/ /g; + $line =~ s/\\"/"/g; + $line =~ s/\r//g; + $line =~ s/"/\\"/g; + printf("\t\"%s\\n\"\n", $line); + $size += length($line); + } + } else { + printf("\t"); + while (sysread(FH, $c, 1) && !$ctrlC && !$lineT) { + my $b = ord($c); + printf("0x%02X,", $b); + if ($b >= 0x20 && $b <= 0x7F) + { $ascii .= chr($b); } + else + { $ascii .= "."; } + ++$cols; + ++$address; + $cols %= $maxCols; + if ($cols == 0) { + #print " // $ascii"; + print "\n"; + $ascii = ""; + $lineCount++; + $lineT = 1 if ($maxLines && $lineCount >= $maxLines); + if (!$lineT) { + printf("\t"); + } + } + $size += 1; + } + if ($ascii ne "") { + print " " x ($maxCols - $cols); + } + printf("\n"); + } + printf("}; // %s, %d bytes\n", $title, $size); + close FH; + $DirInfo{$file}{'reference'} = $title; + $DirInfo{$file}{'size'} = $size; + return $prototype; +} + +# If the user presses Control-C, signal it. +# +sub CtrlCHandler { + $ctrlC = 1; +} + diff --git a/Tools/MakeResourceFiles.cmd b/Tools/MakeResourceFiles.cmd new file mode 100644 index 0000000..d83be73 --- /dev/null +++ b/Tools/MakeResourceFiles.cmd @@ -0,0 +1,55 @@ +@echo off +REM +REM "Compile" the web resources folder into code modules. +REM +REM Command : MakeByteArray -ESP *.* -o=..\Web_Resources.h +REM From cwd : C:/Projects/SmartSwitch/Firmware/Resources +REM Run script in command shell, not PowerShell +REM +REM External Dependency: +REM MakeByteArray - Converts 1 or more files into a .h file byte array. +REM +REM +------------------------------------------------+ +REM | MakeResourceFiles.cmd | +REM +------------------------------------------------+ +REM || +REM +----------+ +-----------+ +-----------+ +REM +----------+ | |Make | | | +REM |source | | |Byte | |Resources.h| +REM |.htm | | ==> |Array.pl | ==> | | +REM |.js | | | | | | +REM |.jpg | | | | | | +REM |etc... |-+ | | | | +REM +----------+ +-----------+ +-----------+ +setlocal + +REM ###################################################################### +REM +REM Configuration Options +REM + +set SRC=..\Firmware\Resources +set TARG=..\Web_Resources.h + +REM +REM End of Configuration +REM +REM ###################################################################### + +echo. +echo.Make Resource Files +echo.Change to %SRC% ... +pushd %SRC% + +echo.Show web resources +dir /b + +echo. +echo.Compiling the web resources into code modules... +MakeByteArray -ESP -DIR *.* -o=%TARG% + +echo. +echo.Done. %TARG% has been updated and returning to prior folder. +dir %TARG% +popd +endlocal diff --git a/Tools/MoveToServer.pl b/Tools/MoveToServer.pl new file mode 100644 index 0000000..e78e26d --- /dev/null +++ b/Tools/MoveToServer.pl @@ -0,0 +1,124 @@ +# +# Move to Server +# +# Monitor the debug and release folders for a new binary. +# If found, +# 1 Read the .ino file to find the current version string. +# 2 Rename the .bin to include the version string. +# 3 Move it to the server. +# +# Searches .ino file for: const String MyVer = "SmartSwitch v1.02.24"; +# +use strict; +use warnings; + +###################### Configuration ########################### +# +# Target Server Path +# +my $ServerPath = "\\\\server1\\web\\mbed\\ESPbin"; + +# Sleep Time between checks +# +my $SleepTime = 5; + +# Verbose mode +# 0 = off +# 1 = highlights +# 2 = detailed +# +my $Verbose = 1; + +##################### + +my $continue = 1; + +$SIG{INT} = sub { $continue = 0; }; +$SIG{TERM} = sub { $continue = 0; }; + +do { + printf("\n") if ($Verbose > 1); + printf("MoveToServer check at %s\n", scalar localtime()) if ($Verbose == 1); + chdir "../Firmware"; + Process(); + Pause($SleepTime); +} while ($continue); + +exit; + +#################################################################### + + +sub Process { + my $slnFile = ""; + + my @files = glob("*.sln"); + foreach (@files) { + $slnFile = $_; + printf(" Found: %s\n", $slnFile) if ($Verbose > 1); + } + + if ($slnFile eq "") { + printf(" *** No Solution Files found ...\n") if ($Verbose == 1); + return; + } + + my $inoFile = $slnFile; + $inoFile =~ s/(.*)\.sln/$1\.ino/; + if (!-e $inoFile) { + printf(" *** %s not found ...\n", $inoFile) if ($Verbose == 1); + return; + } + printf(" Search %s\n", $inoFile) if ($Verbose > 1); + my $verString = GetVerString($inoFile); + if ($verString eq "") { + printf(" *** No Version string in %s ...\n", $inoFile) if ($Verbose == 1); + return; + } + printf(" Version '%s'\n", $verString) if ($Verbose > 1); + + my $targBin = $slnFile; + $targBin =~ s/(.*)\.sln/$1\.bin/; + printf(" Target Bin file is %s\n", $targBin) if ($Verbose > 1); + + my @Folders = qw(Debug Release); + foreach my $f (@Folders) { + printf(" Scanning %s\n", $f) if ($Verbose > 1); + my $tF = "$f\\$targBin"; + if (-e $tF) { + printf(" Processing %s\n", $tF) if ($Verbose > 1); + my $srvrFile = "$ServerPath\\$verString.bin"; + my $cmd = sprintf("move /Y \"%s\" \"%s\"", $tF, $srvrFile); + printf(" > %s\n", $cmd); + `$cmd`; + } + } +} + + +sub Pause { + my $dly = shift; + my $count = 0; + + while ($count++ < $dly && $continue) { + sleep(1); + } +} + +sub GetVerString { + my $iF = shift; + my $ver = ""; + + open(IF, "<$iF") || return $ver; + #const String MyVer = "SmartSwitch v1.02.24"; + while () { + if (/String MyVer = \"(.*)\"/) { + $ver = $1; + last; + #close IF; + #return $ver; + } + } + close IF; + return $ver; +}