From 8d03d25ebb71b42f2aa954eb3f8ee32c12c0d4f0 Mon Sep 17 00:00:00 2001 From: Corey Drechsler Date: Sat, 10 Feb 2024 14:08:53 -0800 Subject: [PATCH 1/5] Cleanup whitespace, .gitignore --- .gitignore | 1 + examples/WeatherStationDemo/WeatherStationDemo.ino | 14 ++++---------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index be1f99a..cda6920 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ RemoteSystemsTempFiles .vscode .clang_complete .gcc-flags.json +*.bin diff --git a/examples/WeatherStationDemo/WeatherStationDemo.ino b/examples/WeatherStationDemo/WeatherStationDemo.ino index 684e318..626437c 100644 --- a/examples/WeatherStationDemo/WeatherStationDemo.ino +++ b/examples/WeatherStationDemo/WeatherStationDemo.ino @@ -105,10 +105,10 @@ const String MONTH_NAMES[] = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", " /*************************** * End Settings **************************/ - // Initialize the oled display for address 0x3c - // sda-pin=14 and sdc-pin=12 - SSD1306Wire display(I2C_DISPLAY_ADDRESS, SDA_PIN, SDC_PIN); - OLEDDisplayUi ui( &display ); +// Initialize the oled display for address 0x3c +// sda-pin=14 and sdc-pin=12 +SSD1306Wire display(I2C_DISPLAY_ADDRESS, SDA_PIN, SDC_PIN); +OLEDDisplayUi ui( &display ); OpenWeatherMapCurrentData currentWeather; OpenWeatherMapCurrent currentWeatherClient; @@ -207,7 +207,6 @@ void setup() { Serial.println(""); updateData(&display); - } void loop() { @@ -229,8 +228,6 @@ void loop() { // time budget. delay(remainingTimeBudget); } - - } void drawProgress(OLEDDisplay *display, int percentage, String label) { @@ -260,8 +257,6 @@ void updateData(OLEDDisplay *display) { delay(1000); } - - void drawDateTime(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) { now = time(nullptr); struct tm* timeInfo; @@ -297,7 +292,6 @@ void drawCurrentWeather(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t display->drawString(32 + x, 0 + y, currentWeather.iconMeteoCon); } - void drawForecast(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) { drawForecastDetails(display, x, y, 0); drawForecastDetails(display, x + 44, y, 1); From b3207c7f590e98394ca0891c363af7a0a1cb55be Mon Sep 17 00:00:00 2001 From: Corey Drechsler Date: Sat, 10 Feb 2024 14:02:55 -0800 Subject: [PATCH 2/5] Use more robust version of the configTime function --- examples/WeatherStationDemo/WeatherStationDemo.ino | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/examples/WeatherStationDemo/WeatherStationDemo.ino b/examples/WeatherStationDemo/WeatherStationDemo.ino index 626437c..28a6112 100644 --- a/examples/WeatherStationDemo/WeatherStationDemo.ino +++ b/examples/WeatherStationDemo/WeatherStationDemo.ino @@ -55,8 +55,10 @@ See more at https://thingpulse.com const char* WIFI_SSID = "yourssid"; const char* WIFI_PWD = "yourpassw0rd"; -#define TZ 2 // (utc+) TZ in hours -#define DST_MN 60 // use 60mn for summer time in some countries +// Timezone +// Enter a POSIX timezone string. A current list can be found here: +// https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv +#define TZ "CET-1CEST,M3.5.0,M10.5.0/3" // Setup const int UPDATE_INTERVAL_SECS = 20 * 60; // Update every 20 minutes @@ -116,9 +118,6 @@ OpenWeatherMapCurrent currentWeatherClient; OpenWeatherMapForecastData forecasts[MAX_FORECASTS]; OpenWeatherMapForecast forecastClient; -#define TZ_MN ((TZ)*60) -#define TZ_SEC ((TZ)*3600) -#define DST_SEC ((DST_MN)*60) time_t now; // flag changed in the ticker function every 10 minutes @@ -179,7 +178,7 @@ void setup() { counter++; } // Get time from network time service - configTime(TZ_SEC, DST_SEC, "pool.ntp.org"); + configTzTime(TZ, "pool.ntp.org"); ui.setTargetFPS(30); From 3037ab04fcfe404c9c9cec55d4896ce6f407d98d Mon Sep 17 00:00:00 2001 From: Corey Drechsler Date: Sat, 10 Feb 2024 14:05:38 -0800 Subject: [PATCH 3/5] Remove decimal for non-metric temps --- examples/WeatherStationDemo/WeatherStationDemo.ino | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/WeatherStationDemo/WeatherStationDemo.ino b/examples/WeatherStationDemo/WeatherStationDemo.ino index 28a6112..767b52b 100644 --- a/examples/WeatherStationDemo/WeatherStationDemo.ino +++ b/examples/WeatherStationDemo/WeatherStationDemo.ino @@ -283,7 +283,7 @@ void drawCurrentWeather(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t display->setFont(ArialMT_Plain_24); display->setTextAlignment(TEXT_ALIGN_LEFT); - String temp = String(currentWeather.temp, 1) + (IS_METRIC ? "°C" : "°F"); + String temp = String(currentWeather.temp, (IS_METRIC ? 1 : 0)) + (IS_METRIC ? "°C" : "°F"); display->drawString(60 + x, 5 + y, temp); display->setFont(Meteocons_Plain_36); @@ -325,7 +325,7 @@ void drawHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state) { display->setTextAlignment(TEXT_ALIGN_LEFT); display->drawString(0, 54, String(buff)); display->setTextAlignment(TEXT_ALIGN_RIGHT); - String temp = String(currentWeather.temp, 1) + (IS_METRIC ? "°C" : "°F"); + String temp = String(currentWeather.temp, (IS_METRIC ? 1 : 0)) + (IS_METRIC ? "°C" : "°F"); display->drawString(128, 54, temp); display->drawHorizontalLine(0, 52, 128); } From 201fa294ab5c2e2a91e94e5f2e61a78249c80e29 Mon Sep 17 00:00:00 2001 From: Corey Drechsler Date: Sat, 10 Feb 2024 12:17:26 -0800 Subject: [PATCH 4/5] Add options for 12 hour time display and alternate date orders --- .../WeatherStationDemo/WeatherStationDemo.ino | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/examples/WeatherStationDemo/WeatherStationDemo.ino b/examples/WeatherStationDemo/WeatherStationDemo.ino index 767b52b..1b4ac7a 100644 --- a/examples/WeatherStationDemo/WeatherStationDemo.ino +++ b/examples/WeatherStationDemo/WeatherStationDemo.ino @@ -99,6 +99,9 @@ String OPEN_WEATHER_MAP_LANGUAGE = "de"; const uint8_t MAX_FORECASTS = 4; const boolean IS_METRIC = true; +const boolean IS_24HOUR = true; +enum dateOrders {DMY, MDY, YMD}; +const dateOrders dateOrder = DMY; // Adjust according to your language const String WDAY_NAMES[] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"}; @@ -261,17 +264,24 @@ void drawDateTime(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, in struct tm* timeInfo; timeInfo = localtime(&now); char buff[16]; - - + display->setTextAlignment(TEXT_ALIGN_CENTER); display->setFont(ArialMT_Plain_10); String date = WDAY_NAMES[timeInfo->tm_wday]; - sprintf_P(buff, PSTR("%s, %02d/%02d/%04d"), WDAY_NAMES[timeInfo->tm_wday].c_str(), timeInfo->tm_mday, timeInfo->tm_mon+1, timeInfo->tm_year + 1900); + if(dateOrder == DMY) sprintf_P(buff, PSTR("%s, %02d/%02d/%04d"), WDAY_NAMES[timeInfo->tm_wday].c_str(), timeInfo->tm_mday, timeInfo->tm_mon+1, timeInfo->tm_year + 1900); + else if (dateOrder == MDY) sprintf_P(buff, PSTR("%s, %d/%d/%04d"), WDAY_NAMES[timeInfo->tm_wday].c_str(), timeInfo->tm_mon+1, timeInfo->tm_mday, timeInfo->tm_year + 1900); + else if (dateOrder == YMD) sprintf_P(buff, PSTR("%s, %04d/%02d/%02d"), WDAY_NAMES[timeInfo->tm_wday].c_str(), timeInfo->tm_year + 1900, timeInfo->tm_mday, timeInfo->tm_mon+1); display->drawString(64 + x, 5 + y, String(buff)); display->setFont(ArialMT_Plain_24); - sprintf_P(buff, PSTR("%02d:%02d:%02d"), timeInfo->tm_hour, timeInfo->tm_min, timeInfo->tm_sec); + if(IS_24HOUR) sprintf_P(buff, PSTR("%02d:%02d:%02d"), timeInfo->tm_hour, timeInfo->tm_min, timeInfo->tm_sec); + else { + uint8_t hour; + hour = timeInfo->tm_hour % 12; + if(hour == 0) hour = 12; + sprintf_P(buff, PSTR("%d:%02d:%02d"), hour, timeInfo->tm_min, timeInfo->tm_sec); + } display->drawString(64 + x, 15 + y, String(buff)); display->setTextAlignment(TEXT_ALIGN_LEFT); } @@ -318,7 +328,14 @@ void drawHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state) { struct tm* timeInfo; timeInfo = localtime(&now); char buff[14]; - sprintf_P(buff, PSTR("%02d:%02d"), timeInfo->tm_hour, timeInfo->tm_min); + + if(IS_24HOUR) sprintf_P(buff, PSTR("%02d:%02d"), timeInfo->tm_hour, timeInfo->tm_min); + else { + uint8_t hour; + hour = timeInfo->tm_hour % 12; + if(hour == 0) hour = 12; + sprintf_P(buff, PSTR("%d:%02d"), hour, timeInfo->tm_min); + } display->setColor(WHITE); display->setFont(ArialMT_Plain_10); From d18dc2e15e9ee3d16f1ee4fda6ebf2e719a97029 Mon Sep 17 00:00:00 2001 From: Corey Drechsler Date: Sat, 10 Feb 2024 14:26:16 -0800 Subject: [PATCH 5/5] Add VisualCrossing files --- .../VisualCrossingWeatherStationDemo.ino | 351 +++++++++ .../WeatherStationFonts.h | 734 ++++++++++++++++++ .../WeatherStationImages.h | 50 ++ src/VisualCrossing.cpp | 250 ++++++ src/VisualCrossing.h | 112 +++ 5 files changed, 1497 insertions(+) create mode 100644 examples/VisualCrossingWeatherStationDemo/VisualCrossingWeatherStationDemo.ino create mode 100644 examples/VisualCrossingWeatherStationDemo/WeatherStationFonts.h create mode 100644 examples/VisualCrossingWeatherStationDemo/WeatherStationImages.h create mode 100644 src/VisualCrossing.cpp create mode 100644 src/VisualCrossing.h diff --git a/examples/VisualCrossingWeatherStationDemo/VisualCrossingWeatherStationDemo.ino b/examples/VisualCrossingWeatherStationDemo/VisualCrossingWeatherStationDemo.ino new file mode 100644 index 0000000..d09b060 --- /dev/null +++ b/examples/VisualCrossingWeatherStationDemo/VisualCrossingWeatherStationDemo.ino @@ -0,0 +1,351 @@ +/**The MIT License (MIT) + +Copyright (c) 2018 by Daniel Eichhorn - ThingPulse + +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. + +See more at https://thingpulse.com +*/ + +#include + +#if defined(ESP8266) +#include +#include // settimeofday_cb() +#else +#include +#endif +#include +#include + +// time +#include // time() ctime() +#include // struct timeval + +#include "SSD1306Wire.h" +#include "OLEDDisplayUi.h" +#include "Wire.h" +#include "VisualCrossing.h" +#include "WeatherStationFonts.h" +#include "WeatherStationImages.h" + + +/*************************** + * Begin Settings + **************************/ + +// WIFI +const char* WIFI_SSID = "yourssid"; +const char* WIFI_PWD = "yourpassw0rd"; + +// Timezone +// Enter a POSIX timezone string. A current list can be found here: +// https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv +#define TZ "CET-1CEST,M3.5.0,M10.5.0/3" + +// Setup +const int UPDATE_INTERVAL_SECS = 20 * 60; // Update every 20 minutes + +// Display Settings +const int I2C_DISPLAY_ADDRESS = 0x3c; +#if defined(ESP8266) +const int SDA_PIN = D3; +const int SDC_PIN = D4; +#else +const int SDA_PIN = 5; //D3; +const int SDC_PIN = 4; //D4; +#endif + + +// VisualCrossing Settings +// Sign up here to get an API key: +// https://www.visualcrossing.com/sign-up +String VISUAL_CROSSING_KEY = "XXX"; + +// Enter a plaintext location. +// Go to https://www.visualcrossing.com/weather-data to test +String VISUAL_CROSSING_LOCATION = "Zurich,Switzerland"; + +// Pick a language code from this list: +// ar (Arabic), bg (Bulgiarian), cs (Czech), da (Danish), de (German),el (Greek Modern), +// en (English), es (Spanish), fa (Farsi), fi (Finnish), fr (French), he (Hebrew), +// hu, (Hungarian), it (Italian), ja (Japanese), ko (Korean), nl (Dutch), pl (Polish), +// pt (Portuguese), ru (Russian), sk (Slovakian), sr (Serbian), sv (Swedish), +// tr (Turkish), uk (Ukranian), vi (Vietnamese) and zh (Chinese). +String VISUAL_CROSSING_LANGUAGE = "de"; +const uint8_t MAX_FORECASTS = 4; + +const boolean IS_METRIC = true; +const boolean IS_24HOUR = true; +enum dateOrders {DMY, MDY, YMD}; +const dateOrders dateOrder = DMY; + +// Adjust according to your language +const String WDAY_NAMES[] = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"}; +const String MONTH_NAMES[] = {"JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"}; + +/*************************** + * End Settings + **************************/ +// Initialize the oled display for address 0x3c +// sda-pin=14 and sdc-pin=12 +SSD1306Wire display(I2C_DISPLAY_ADDRESS, SDA_PIN, SDC_PIN); +OLEDDisplayUi ui( &display ); + +VisualCrossingData currentWeather; +VisualCrossingData forecasts[MAX_FORECASTS]; +VisualCrossing forecastClient; + +time_t now; + +// flag changed in the ticker function every 10 minutes +bool readyForWeatherUpdate = false; + +String lastUpdate = "--"; + +long timeSinceLastWUpdate = 0; + +//declaring prototypes +void drawProgress(OLEDDisplay *display, int percentage, String label); +void updateData(OLEDDisplay *display); +void drawDateTime(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y); +void drawCurrentWeather(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y); +void drawForecast(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y); +void drawForecastDetails(OLEDDisplay *display, int x, int y, int dayIndex); +void drawHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state); +void setReadyForWeatherUpdate(); + + +// Add frames +// this array keeps function pointers to all frames +// frames are the single views that slide from right to left +FrameCallback frames[] = { drawDateTime, drawCurrentWeather, drawForecast }; +int numberOfFrames = 3; + +OverlayCallback overlays[] = { drawHeaderOverlay }; +int numberOfOverlays = 1; + +void setup() { + Serial.begin(115200); + Serial.println(); + Serial.println(); + + // initialize dispaly + display.init(); + display.clear(); + display.display(); + + //display.flipScreenVertically(); + display.setFont(ArialMT_Plain_10); + display.setTextAlignment(TEXT_ALIGN_CENTER); + display.setContrast(255); + + WiFi.begin(WIFI_SSID, WIFI_PWD); + + int counter = 0; + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + display.clear(); + display.drawString(64, 10, "Connecting to WiFi"); + display.drawXbm(46, 30, 8, 8, counter % 3 == 0 ? activeSymbole : inactiveSymbole); + display.drawXbm(60, 30, 8, 8, counter % 3 == 1 ? activeSymbole : inactiveSymbole); + display.drawXbm(74, 30, 8, 8, counter % 3 == 2 ? activeSymbole : inactiveSymbole); + display.display(); + + counter++; + } + // Get time from network time service + configTzTime(TZ, "pool.ntp.org"); + + ui.setTargetFPS(30); + + ui.setActiveSymbol(activeSymbole); + ui.setInactiveSymbol(inactiveSymbole); + + // You can change this to + // TOP, LEFT, BOTTOM, RIGHT + ui.setIndicatorPosition(BOTTOM); + + // Defines where the first frame is located in the bar. + ui.setIndicatorDirection(LEFT_RIGHT); + + // You can change the transition that is used + // SLIDE_LEFT, SLIDE_RIGHT, SLIDE_TOP, SLIDE_DOWN + ui.setFrameAnimation(SLIDE_LEFT); + + ui.setFrames(frames, numberOfFrames); + + ui.setOverlays(overlays, numberOfOverlays); + + // Inital UI takes care of initalising the display too. + ui.init(); + + Serial.println(""); + + updateData(&display); +} + +void loop() { + + if (millis() - timeSinceLastWUpdate > (1000L*UPDATE_INTERVAL_SECS)) { + setReadyForWeatherUpdate(); + timeSinceLastWUpdate = millis(); + } + + if (readyForWeatherUpdate && ui.getUiState()->frameState == FIXED) { + updateData(&display); + } + + int remainingTimeBudget = ui.update(); + + if (remainingTimeBudget > 0) { + // You can do some work here + // Don't do stuff if you are below your + // time budget. + delay(remainingTimeBudget); + } +} + +void drawProgress(OLEDDisplay *display, int percentage, String label) { + display->clear(); + display->setTextAlignment(TEXT_ALIGN_CENTER); + display->setFont(ArialMT_Plain_10); + display->drawString(64, 10, label); + display->drawProgressBar(2, 28, 124, 10, percentage); + display->display(); +} + +void updateData(OLEDDisplay *display) { + drawProgress(display, 10, "Updating time..."); + drawProgress(display, 30, "Updating weather..."); + drawProgress(display, 50, "Updating forecasts..."); + forecastClient.setMetric(IS_METRIC); + forecastClient.setLanguage(VISUAL_CROSSING_LANGUAGE); + forecastClient.updateForecasts(forecasts, currentWeather, VISUAL_CROSSING_KEY, VISUAL_CROSSING_LOCATION, MAX_FORECASTS); + + readyForWeatherUpdate = false; + drawProgress(display, 100, "Done..."); + delay(1000); +} + +void drawDateTime(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) { + now = time(nullptr); + struct tm* timeInfo; + timeInfo = localtime(&now); + char buff[16]; + + display->setTextAlignment(TEXT_ALIGN_CENTER); + display->setFont(ArialMT_Plain_10); + String date = WDAY_NAMES[timeInfo->tm_wday]; + + if(dateOrder == DMY) sprintf_P(buff, PSTR("%s, %02d/%02d/%04d"), WDAY_NAMES[timeInfo->tm_wday].c_str(), timeInfo->tm_mday, timeInfo->tm_mon+1, timeInfo->tm_year + 1900); + else if (dateOrder == MDY) sprintf_P(buff, PSTR("%s, %d/%d/%04d"), WDAY_NAMES[timeInfo->tm_wday].c_str(), timeInfo->tm_mon+1, timeInfo->tm_mday, timeInfo->tm_year + 1900); + else if (dateOrder == YMD) sprintf_P(buff, PSTR("%s, %04d/%02d/%02d"), WDAY_NAMES[timeInfo->tm_wday].c_str(), timeInfo->tm_year + 1900, timeInfo->tm_mday, timeInfo->tm_mon+1); + display->drawString(64 + x, 5 + y, String(buff)); + display->setFont(ArialMT_Plain_24); + + if(IS_24HOUR) sprintf_P(buff, PSTR("%02d:%02d:%02d"), timeInfo->tm_hour, timeInfo->tm_min, timeInfo->tm_sec); + else { + uint8_t hour; + hour = timeInfo->tm_hour % 12; + if(hour == 0) hour = 12; + sprintf_P(buff, PSTR("%d:%02d:%02d"), hour, timeInfo->tm_min, timeInfo->tm_sec); + } + display->drawString(64 + x, 15 + y, String(buff)); + display->setTextAlignment(TEXT_ALIGN_LEFT); +} + +void drawCurrentWeather(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) { + display->setFont(ArialMT_Plain_10); + display->setTextAlignment(TEXT_ALIGN_CENTER); + display->drawString(64 + x, 38 + y, currentWeather.conditions); + + display->setFont(ArialMT_Plain_24); + display->setTextAlignment(TEXT_ALIGN_LEFT); + String temp = String(currentWeather.temp, (IS_METRIC ? 1 : 0)) + (IS_METRIC ? "°C" : "°F"); + display->drawString(60 + x, 5 + y, temp); + + display->setFont(Meteocons_Plain_36); + display->setTextAlignment(TEXT_ALIGN_CENTER); + display->drawString(32 + x, 0 + y, currentWeather.iconMeteoCon); +} + +void drawForecast(OLEDDisplay *display, OLEDDisplayUiState* state, int16_t x, int16_t y) { + time_t observationTimestamp = forecasts[0].observationTime; + struct tm* obsTimeInfo; + obsTimeInfo = localtime(&observationTimestamp); + now = time(nullptr); + struct tm* curTimeInfo; + curTimeInfo = localtime(&now); + uint8_t start; + + // After 1800, stop showing todays forecast + if (curTimeInfo->tm_mday == obsTimeInfo->tm_mday && curTimeInfo->tm_hour > 18) start = 1; + else start = 0; + + drawForecastDetails(display, x, y, start); + drawForecastDetails(display, x + 44, y, start+1); + drawForecastDetails(display, x + 88, y, start+2); +} + +void drawForecastDetails(OLEDDisplay *display, int x, int y, int dayIndex) { + time_t observationTimestamp = forecasts[dayIndex].observationTime; + struct tm* timeInfo; + timeInfo = localtime(&observationTimestamp); + display->setTextAlignment(TEXT_ALIGN_CENTER); + display->setFont(ArialMT_Plain_10); + display->drawString(x + 20, y, WDAY_NAMES[timeInfo->tm_wday]); + + display->setFont(Meteocons_Plain_21); + display->drawString(x + 20, y + 12, forecasts[dayIndex].iconMeteoCon); + String temp = String(forecasts[dayIndex].tempMax, 0) + (IS_METRIC ? "°C" : "°F"); + display->setFont(ArialMT_Plain_10); + display->drawString(x + 20, y + 34, temp); + display->setTextAlignment(TEXT_ALIGN_LEFT); +} + +void drawHeaderOverlay(OLEDDisplay *display, OLEDDisplayUiState* state) { + now = time(nullptr); + struct tm* timeInfo; + timeInfo = localtime(&now); + char buff[14]; + + if(IS_24HOUR) sprintf_P(buff, PSTR("%02d:%02d"), timeInfo->tm_hour, timeInfo->tm_min); + else { + uint8_t hour; + hour = timeInfo->tm_hour % 12; + if(hour == 0) hour = 12; + sprintf_P(buff, PSTR("%d:%02d"), hour, timeInfo->tm_min); + } + + display->setColor(WHITE); + display->setFont(ArialMT_Plain_10); + display->setTextAlignment(TEXT_ALIGN_LEFT); + display->drawString(0, 54, String(buff)); + display->setTextAlignment(TEXT_ALIGN_RIGHT); + String temp = String(currentWeather.temp, (IS_METRIC ? 1 : 0)) + (IS_METRIC ? "°C" : "°F"); + display->drawString(128, 54, temp); + display->drawHorizontalLine(0, 52, 128); +} + +void setReadyForWeatherUpdate() { + Serial.println("Setting readyForUpdate to true"); + readyForWeatherUpdate = true; +} diff --git a/examples/VisualCrossingWeatherStationDemo/WeatherStationFonts.h b/examples/VisualCrossingWeatherStationDemo/WeatherStationFonts.h new file mode 100644 index 0000000..a3ffef0 --- /dev/null +++ b/examples/VisualCrossingWeatherStationDemo/WeatherStationFonts.h @@ -0,0 +1,734 @@ +/**The MIT License (MIT) + +Copyright (c) 2015 by Daniel Eichhorn + +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. + +See more at http://blog.squix.ch +*/ +// Created by http://oleddisplay.squix.ch/ Consider a donation +// In case of problems make sure that you are using the font file with the correct version! +const uint8_t Meteocons_Plain_36[] PROGMEM = { + 0x25, // Width: 37 + 0x26, // Height: 38 + 0x20, // First Char: 32 + 0xE0, // Numbers of Chars: 224 + + // Jump Table: + 0xFF, 0xFF, 0x00, 0x24, // 32:65535 + 0x00, 0x00, 0xB6, 0x25, // 33:0 + 0x00, 0xB6, 0xB1, 0x24, // 34:182 + 0x01, 0x67, 0xB1, 0x24, // 35:359 + 0x02, 0x18, 0xB1, 0x24, // 36:536 + 0x02, 0xC9, 0xB3, 0x24, // 37:713 + 0x03, 0x7C, 0xB2, 0x24, // 38:892 + 0x04, 0x2E, 0x73, 0x24, // 39:1070 + 0x04, 0xA1, 0xB2, 0x24, // 40:1185 + 0x05, 0x53, 0x9F, 0x24, // 41:1363 + 0x05, 0xF2, 0x80, 0x24, // 42:1522 + 0x06, 0x72, 0x7F, 0x24, // 43:1650 + 0xFF, 0xFF, 0x00, 0x24, // 44:65535 + 0xFF, 0xFF, 0x00, 0x24, // 45:65535 + 0xFF, 0xFF, 0x00, 0x24, // 46:65535 + 0xFF, 0xFF, 0x00, 0x24, // 47:65535 + 0x06, 0xF1, 0xB2, 0x25, // 48:1777 + 0x07, 0xA3, 0xA3, 0x24, // 49:1955 + 0x08, 0x46, 0x80, 0x24, // 50:2118 + 0x08, 0xC6, 0xB3, 0x24, // 51:2246 + 0x09, 0x79, 0xB3, 0x24, // 52:2425 + 0x0A, 0x2C, 0xB2, 0x24, // 53:2604 + 0x0A, 0xDE, 0xB1, 0x24, // 54:2782 + 0x0B, 0x8F, 0xB2, 0x24, // 55:2959 + 0x0C, 0x41, 0xB1, 0x25, // 56:3137 + 0x0C, 0xF2, 0xB2, 0x24, // 57:3314 + 0xFF, 0xFF, 0x00, 0x24, // 58:65535 + 0xFF, 0xFF, 0x00, 0x24, // 59:65535 + 0xFF, 0xFF, 0x00, 0x24, // 60:65535 + 0xFF, 0xFF, 0x00, 0x24, // 61:65535 + 0xFF, 0xFF, 0x00, 0x24, // 62:65535 + 0xFF, 0xFF, 0x00, 0x24, // 63:65535 + 0xFF, 0xFF, 0x00, 0x24, // 64:65535 + 0x0D, 0xA4, 0x8E, 0x24, // 65:3492 + 0x0E, 0x32, 0xA3, 0x24, // 66:3634 + 0x0E, 0xD5, 0x85, 0x24, // 67:3797 + 0x0F, 0x5A, 0x99, 0x24, // 68:3930 + 0x0F, 0xF3, 0xB2, 0x24, // 69:4083 + 0x10, 0xA5, 0xA8, 0x24, // 70:4261 + 0x11, 0x4D, 0x90, 0x24, // 71:4429 + 0x11, 0xDD, 0xB3, 0x24, // 72:4573 + 0x12, 0x90, 0xB3, 0x24, // 73:4752 + 0x13, 0x43, 0xA5, 0x24, // 74:4931 + 0x13, 0xE8, 0xA5, 0x24, // 75:5096 + 0x14, 0x8D, 0xB4, 0x25, // 76:5261 + 0x15, 0x41, 0x90, 0x24, // 77:5441 + 0x15, 0xD1, 0xB2, 0x24, // 78:5585 + 0x16, 0x83, 0xB1, 0x24, // 79:5763 + 0x17, 0x34, 0xB1, 0x24, // 80:5940 + 0x17, 0xE5, 0xB2, 0x24, // 81:6117 + 0x18, 0x97, 0xB2, 0x25, // 82:6295 + 0x19, 0x49, 0xB2, 0x24, // 83:6473 + 0x19, 0xFB, 0xB6, 0x25, // 84:6651 + 0x1A, 0xB1, 0xB1, 0x24, // 85:6833 + 0x1B, 0x62, 0xB1, 0x24, // 86:7010 + 0x1C, 0x13, 0xB2, 0x24, // 87:7187 + 0x1C, 0xC5, 0xB1, 0x24, // 88:7365 + 0x1D, 0x76, 0xB3, 0x25, // 89:7542 + 0x1E, 0x29, 0xB2, 0x25, // 90:7721 + 0xFF, 0xFF, 0x00, 0x24, // 91:65535 + 0xFF, 0xFF, 0x00, 0x24, // 92:65535 + 0xFF, 0xFF, 0x00, 0x24, // 93:65535 + 0xFF, 0xFF, 0x00, 0x24, // 94:65535 + 0xFF, 0xFF, 0x00, 0x24, // 95:65535 + 0xFF, 0xFF, 0x00, 0x24, // 96:65535 + 0xFF, 0xFF, 0x00, 0x24, // 97:65535 + 0xFF, 0xFF, 0x00, 0x24, // 98:65535 + 0xFF, 0xFF, 0x00, 0x24, // 99:65535 + 0xFF, 0xFF, 0x00, 0x24, // 100:65535 + 0xFF, 0xFF, 0x00, 0x24, // 101:65535 + 0xFF, 0xFF, 0x00, 0x24, // 102:65535 + 0xFF, 0xFF, 0x00, 0x24, // 103:65535 + 0xFF, 0xFF, 0x00, 0x24, // 104:65535 + 0xFF, 0xFF, 0x00, 0x24, // 105:65535 + 0xFF, 0xFF, 0x00, 0x24, // 106:65535 + 0xFF, 0xFF, 0x00, 0x24, // 107:65535 + 0xFF, 0xFF, 0x00, 0x24, // 108:65535 + 0xFF, 0xFF, 0x00, 0x24, // 109:65535 + 0xFF, 0xFF, 0x00, 0x24, // 110:65535 + 0xFF, 0xFF, 0x00, 0x24, // 111:65535 + 0xFF, 0xFF, 0x00, 0x24, // 112:65535 + 0xFF, 0xFF, 0x00, 0x24, // 113:65535 + 0xFF, 0xFF, 0x00, 0x24, // 114:65535 + 0xFF, 0xFF, 0x00, 0x24, // 115:65535 + 0xFF, 0xFF, 0x00, 0x24, // 116:65535 + 0xFF, 0xFF, 0x00, 0x24, // 117:65535 + 0xFF, 0xFF, 0x00, 0x24, // 118:65535 + 0xFF, 0xFF, 0x00, 0x24, // 119:65535 + 0xFF, 0xFF, 0x00, 0x24, // 120:65535 + 0xFF, 0xFF, 0x00, 0x24, // 121:65535 + 0xFF, 0xFF, 0x00, 0x24, // 122:65535 + 0xFF, 0xFF, 0x00, 0x24, // 123:65535 + 0xFF, 0xFF, 0x00, 0x24, // 124:65535 + 0xFF, 0xFF, 0x00, 0x24, // 125:65535 + 0xFF, 0xFF, 0x00, 0x24, // 126:65535 + 0xFF, 0xFF, 0x00, 0x24, // 127:65535 + 0xFF, 0xFF, 0x00, 0x24, // 128:65535 + 0xFF, 0xFF, 0x00, 0x24, // 129:65535 + 0xFF, 0xFF, 0x00, 0x24, // 130:65535 + 0xFF, 0xFF, 0x00, 0x24, // 131:65535 + 0xFF, 0xFF, 0x00, 0x24, // 132:65535 + 0xFF, 0xFF, 0x00, 0x24, // 133:65535 + 0xFF, 0xFF, 0x00, 0x24, // 134:65535 + 0xFF, 0xFF, 0x00, 0x24, // 135:65535 + 0xFF, 0xFF, 0x00, 0x24, // 136:65535 + 0xFF, 0xFF, 0x00, 0x24, // 137:65535 + 0xFF, 0xFF, 0x00, 0x24, // 138:65535 + 0xFF, 0xFF, 0x00, 0x24, // 139:65535 + 0xFF, 0xFF, 0x00, 0x24, // 140:65535 + 0xFF, 0xFF, 0x00, 0x24, // 141:65535 + 0xFF, 0xFF, 0x00, 0x24, // 142:65535 + 0xFF, 0xFF, 0x00, 0x24, // 143:65535 + 0xFF, 0xFF, 0x00, 0x24, // 144:65535 + 0xFF, 0xFF, 0x00, 0x24, // 145:65535 + 0xFF, 0xFF, 0x00, 0x24, // 146:65535 + 0xFF, 0xFF, 0x00, 0x24, // 147:65535 + 0xFF, 0xFF, 0x00, 0x24, // 148:65535 + 0xFF, 0xFF, 0x00, 0x24, // 149:65535 + 0xFF, 0xFF, 0x00, 0x24, // 150:65535 + 0xFF, 0xFF, 0x00, 0x24, // 151:65535 + 0xFF, 0xFF, 0x00, 0x24, // 152:65535 + 0xFF, 0xFF, 0x00, 0x24, // 153:65535 + 0xFF, 0xFF, 0x00, 0x24, // 154:65535 + 0xFF, 0xFF, 0x00, 0x24, // 155:65535 + 0xFF, 0xFF, 0x00, 0x24, // 156:65535 + 0xFF, 0xFF, 0x00, 0x24, // 157:65535 + 0xFF, 0xFF, 0x00, 0x24, // 158:65535 + 0xFF, 0xFF, 0x00, 0x24, // 159:65535 + 0xFF, 0xFF, 0x00, 0x24, // 160:65535 + 0xFF, 0xFF, 0x00, 0x24, // 161:65535 + 0xFF, 0xFF, 0x00, 0x24, // 162:65535 + 0xFF, 0xFF, 0x00, 0x24, // 163:65535 + 0xFF, 0xFF, 0x00, 0x24, // 164:65535 + 0xFF, 0xFF, 0x00, 0x24, // 165:65535 + 0xFF, 0xFF, 0x00, 0x24, // 166:65535 + 0xFF, 0xFF, 0x00, 0x24, // 167:65535 + 0xFF, 0xFF, 0x00, 0x24, // 168:65535 + 0xFF, 0xFF, 0x00, 0x24, // 169:65535 + 0xFF, 0xFF, 0x00, 0x24, // 170:65535 + 0xFF, 0xFF, 0x00, 0x24, // 171:65535 + 0xFF, 0xFF, 0x00, 0x24, // 172:65535 + 0xFF, 0xFF, 0x00, 0x24, // 173:65535 + 0xFF, 0xFF, 0x00, 0x24, // 174:65535 + 0xFF, 0xFF, 0x00, 0x24, // 175:65535 + 0xFF, 0xFF, 0x00, 0x24, // 176:65535 + 0xFF, 0xFF, 0x00, 0x24, // 177:65535 + 0xFF, 0xFF, 0x00, 0x24, // 178:65535 + 0xFF, 0xFF, 0x00, 0x24, // 179:65535 + 0xFF, 0xFF, 0x00, 0x24, // 180:65535 + 0xFF, 0xFF, 0x00, 0x24, // 181:65535 + 0xFF, 0xFF, 0x00, 0x24, // 182:65535 + 0xFF, 0xFF, 0x00, 0x24, // 183:65535 + 0xFF, 0xFF, 0x00, 0x24, // 184:65535 + 0xFF, 0xFF, 0x00, 0x24, // 185:65535 + 0xFF, 0xFF, 0x00, 0x24, // 186:65535 + 0xFF, 0xFF, 0x00, 0x24, // 187:65535 + 0xFF, 0xFF, 0x00, 0x24, // 188:65535 + 0xFF, 0xFF, 0x00, 0x24, // 189:65535 + 0xFF, 0xFF, 0x00, 0x24, // 190:65535 + 0xFF, 0xFF, 0x00, 0x24, // 191:65535 + 0xFF, 0xFF, 0x00, 0x24, // 192:65535 + 0xFF, 0xFF, 0x00, 0x24, // 193:65535 + 0xFF, 0xFF, 0x00, 0x24, // 194:65535 + 0xFF, 0xFF, 0x00, 0x24, // 195:65535 + 0xFF, 0xFF, 0x00, 0x24, // 196:65535 + 0xFF, 0xFF, 0x00, 0x24, // 197:65535 + 0xFF, 0xFF, 0x00, 0x24, // 198:65535 + 0xFF, 0xFF, 0x00, 0x24, // 199:65535 + 0xFF, 0xFF, 0x00, 0x24, // 200:65535 + 0xFF, 0xFF, 0x00, 0x24, // 201:65535 + 0xFF, 0xFF, 0x00, 0x24, // 202:65535 + 0xFF, 0xFF, 0x00, 0x24, // 203:65535 + 0xFF, 0xFF, 0x00, 0x24, // 204:65535 + 0xFF, 0xFF, 0x00, 0x24, // 205:65535 + 0xFF, 0xFF, 0x00, 0x24, // 206:65535 + 0xFF, 0xFF, 0x00, 0x24, // 207:65535 + 0xFF, 0xFF, 0x00, 0x24, // 208:65535 + 0xFF, 0xFF, 0x00, 0x24, // 209:65535 + 0xFF, 0xFF, 0x00, 0x24, // 210:65535 + 0xFF, 0xFF, 0x00, 0x24, // 211:65535 + 0xFF, 0xFF, 0x00, 0x24, // 212:65535 + 0xFF, 0xFF, 0x00, 0x24, // 213:65535 + 0xFF, 0xFF, 0x00, 0x24, // 214:65535 + 0xFF, 0xFF, 0x00, 0x24, // 215:65535 + 0xFF, 0xFF, 0x00, 0x24, // 216:65535 + 0xFF, 0xFF, 0x00, 0x24, // 217:65535 + 0xFF, 0xFF, 0x00, 0x24, // 218:65535 + 0xFF, 0xFF, 0x00, 0x24, // 219:65535 + 0xFF, 0xFF, 0x00, 0x24, // 220:65535 + 0xFF, 0xFF, 0x00, 0x24, // 221:65535 + 0xFF, 0xFF, 0x00, 0x24, // 222:65535 + 0xFF, 0xFF, 0x00, 0x24, // 223:65535 + 0xFF, 0xFF, 0x00, 0x24, // 224:65535 + 0xFF, 0xFF, 0x00, 0x24, // 225:65535 + 0xFF, 0xFF, 0x00, 0x24, // 226:65535 + 0xFF, 0xFF, 0x00, 0x24, // 227:65535 + 0xFF, 0xFF, 0x00, 0x24, // 228:65535 + 0xFF, 0xFF, 0x00, 0x24, // 229:65535 + 0xFF, 0xFF, 0x00, 0x24, // 230:65535 + 0xFF, 0xFF, 0x00, 0x24, // 231:65535 + 0xFF, 0xFF, 0x00, 0x24, // 232:65535 + 0xFF, 0xFF, 0x00, 0x24, // 233:65535 + 0xFF, 0xFF, 0x00, 0x24, // 234:65535 + 0xFF, 0xFF, 0x00, 0x24, // 235:65535 + 0xFF, 0xFF, 0x00, 0x24, // 236:65535 + 0xFF, 0xFF, 0x00, 0x24, // 237:65535 + 0xFF, 0xFF, 0x00, 0x24, // 238:65535 + 0xFF, 0xFF, 0x00, 0x24, // 239:65535 + 0xFF, 0xFF, 0x00, 0x24, // 240:65535 + 0xFF, 0xFF, 0x00, 0x24, // 241:65535 + 0xFF, 0xFF, 0x00, 0x24, // 242:65535 + 0xFF, 0xFF, 0x00, 0x24, // 243:65535 + 0xFF, 0xFF, 0x00, 0x24, // 244:65535 + 0xFF, 0xFF, 0x00, 0x24, // 245:65535 + 0xFF, 0xFF, 0x00, 0x24, // 246:65535 + 0xFF, 0xFF, 0x00, 0x24, // 247:65535 + 0xFF, 0xFF, 0x00, 0x24, // 248:65535 + 0xFF, 0xFF, 0x00, 0x24, // 249:65535 + 0xFF, 0xFF, 0x00, 0x24, // 250:65535 + 0xFF, 0xFF, 0x00, 0x24, // 251:65535 + 0xFF, 0xFF, 0x00, 0x24, // 252:65535 + 0xFF, 0xFF, 0x00, 0x24, // 253:65535 + 0xFF, 0xFF, 0x00, 0x24, // 254:65535 + 0xFF, 0xFF, 0x00, 0x24, // 255:65535 + + // Font Data: + 0x00,0x80,0x19,0x00,0x00,0x00,0x80,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x0C,0x18,0x00,0x00,0x00,0x0C,0x18,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x30,0x18,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0xC0,0xFF,0x0F,0x38,0x00,0xC0,0xFF,0x0F,0x3E,0x00,0xE0,0xFF,0x0F,0x7F,0x00,0xF0,0xFF,0x1F,0x3E,0x00,0xF0,0xFF,0x1F,0x38,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xF0,0xFF,0x1F,0x80,0x03,0xF0,0xFF,0x1F,0xC0,0x07,0xF0,0xFF,0x1F,0xF0,0x07,0xE0,0xFF,0x0F,0xC0,0x07,0xC0,0xFF,0x0F,0x80,0x03,0xC0,0xFF,0x0F,0x00,0x00,0xC0,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x07,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x70, // 33 + 0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xE0,0xFF,0x1F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0xF0,0x03,0xFE,0xFF,0xFF,0xF0,0x03,0xFE,0xFF,0xFF,0x3E,0x1F,0xFE,0xFF,0xFF,0x3E,0x1F,0xFE,0xFF,0xFF,0xF0,0x03,0xFC,0xFF,0x7F,0xF0,0x03,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0x38,0x07,0xF8,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xE0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8, // 34 + 0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xFF,0x07,0x08,0x00,0x80,0xFF,0x0F,0x0B,0x00,0x80,0xFF,0x1F,0x3E,0x00,0xC0,0xFF,0x1F,0x32,0x00,0xC0,0xFF,0x9F,0x1F,0x00,0xC0,0xFF,0x3F,0x3C,0x00,0xC0,0xFF,0x1F,0x26,0x00,0xE0,0xFF,0x1F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0xF0,0x03,0xFE,0xFF,0xFF,0xF0,0x03,0xFE,0xFF,0xFF,0x3E,0x1F,0xFE,0xFF,0xFF,0x3E,0x1F,0xFE,0xFF,0xFF,0xF0,0x03,0xFC,0xFF,0x7F,0xF0,0x03,0xFC,0xFF,0x7F,0x38,0x07,0xFC,0xFF,0x7F,0x38,0x07,0xF8,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xE0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x3F,0x90,0x00,0xC0,0xFF,0x1F,0xF0,0x00,0xC0,0xFF,0x1F,0x7E,0x00,0xC0,0xFF,0x1F,0xC8,0x01,0x80,0xFF,0x1F,0xF8,0x00,0x80,0xFF,0x0F,0x2C,0x00,0x00,0xFF,0x07,0x60,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8, // 35 + 0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x1F,0x04,0x00,0xC0,0xFF,0x1F,0x0F,0x00,0xC0,0xFF,0x1F,0x0F,0x00,0xC0,0xFF,0x3F,0x0F,0x00,0xC0,0xFF,0x1F,0x06,0x00,0xE0,0xFF,0x1F,0x00,0x0C,0xF0,0xFF,0x1F,0x00,0x1E,0xF8,0xFF,0x3F,0x00,0x1E,0xF8,0xFF,0x3F,0x00,0x1E,0xFC,0xFF,0x7F,0x00,0x08,0xFC,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0xFE,0xFF,0xFF,0x38,0x00,0xFE,0xFF,0xFF,0x7C,0x00,0xFE,0xFF,0xFF,0x3C,0x00,0xFE,0xFF,0xFF,0x38,0x00,0xFC,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x08,0xF8,0xFF,0x3F,0x00,0x1E,0xF8,0xFF,0x3F,0x00,0x1E,0xF0,0xFF,0x1F,0x00,0x1E,0xE0,0xFF,0x1F,0x00,0x0C,0xC0,0xFF,0x3F,0x06,0x00,0xC0,0xFF,0x1F,0x0F,0x00,0xC0,0xFF,0x1F,0x0F,0x00,0xC0,0xFF,0x1F,0x0F,0x00,0x80,0xFF,0x1F,0x04,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8, // 36 + 0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0xF8,0x0F,0x00,0x00,0x00,0xFC,0x1F,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0xF0,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0xFE,0xFF,0x7F,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0x01,0x00,0xFF,0xFF,0xFF,0x01,0x00,0xFF,0xFF,0xFF,0x01,0x80,0xFF,0xFF,0xFF,0x01,0x80,0xFF,0xFF,0xFF,0x03,0xC0,0xFF,0xFF,0xFF,0x01,0xE0,0xFF,0xFF,0xFF,0x01,0xE0,0xFF,0xFF,0xFF,0x01,0xE0,0xFF,0xFF,0xFF,0x01,0xE0,0xFF,0xFF,0xFF,0x01,0xE0,0xFF,0xFF,0xFF,0x00,0xE0,0xFF,0xFF,0x7F,0x00,0xE0,0xFF,0xFF,0x7F,0x00,0xC0,0xFF,0xFF,0x7F,0x00,0xC0,0xFF,0xFF,0x7F,0x00,0x80,0xFF,0xFF,0x7F,0x00,0x00,0xFF,0xFF,0x7F,0x00,0x00,0xFF,0xFF,0x7F,0x00,0x00,0xFF,0xFF,0x7F,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0xFE,0xFF,0x1F,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0xF0,0xE1,0x03, // 37 + 0x00,0x00,0x3E,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0xC0,0xFF,0x01,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xFF,0xFF,0x07,0x00,0xC0,0xFF,0xFF,0x07,0x00,0xE0,0xFF,0xFF,0x0F,0x00,0xE0,0xFF,0xFF,0x0F,0x00,0xE0,0xFF,0xFF,0x5F,0x10,0xF0,0xFF,0xFF,0x5F,0x08,0xF0,0xFF,0xFF,0xFF,0x0E,0xF8,0xFF,0xFF,0xFF,0x07,0xF8,0xFF,0xFF,0xFF,0x03,0xFC,0xFF,0xFF,0xBF,0x03,0xFC,0xFF,0xFF,0x1F,0x01,0xFE,0xFF,0xFF,0x1F,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0xFE,0xFF,0xFF,0x1F,0x00,0xFE,0xFF,0xFF,0x0F,0x00,0xFE,0xFF,0xFF,0x0F,0x00,0xFC,0xFF,0xFF,0x07,0x00,0xFC,0xFF,0xFF,0x07,0x00,0xF8,0xFF,0xFF,0x07,0x00,0xF8,0xFF,0xFF,0x07,0x00,0xF0,0xFF,0xFF,0x07,0x00,0xF0,0xFF,0xFF,0x07,0x00,0xE0,0xFF,0xFF,0x07,0x00,0xE0,0xFF,0xFF,0x03,0x00,0xC0,0xFF,0xFF,0x01,0x00,0xC0,0xFF,0xFF,0x00,0x00,0x00,0x1F,0x3E, // 38 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x00,0x00,0x00,0xF8,0x03,0xF0,0xFF,0xFF,0xFF,0x07,0xF0,0xFF,0xFF,0xFF,0x07,0xF8,0xFF,0xFF,0xFF,0x07,0xF0,0xFF,0xFF,0xFF,0x07,0xE0,0xFF,0xFF,0xFF,0x07,0x00,0x00,0x00,0xF8,0x03,0x00,0x00,0x00,0xF0,0x01, // 39 + 0x00,0x80,0xFF,0x00,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xFC,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x80,0xFF,0xFF,0x7F,0x00,0xC0,0x3F,0x00,0xFF,0x00,0xE0,0x0F,0x00,0xFC,0x01,0xE0,0x07,0x00,0xF0,0x03,0xF0,0x03,0x00,0xE0,0x07,0xF8,0x01,0x00,0xC0,0x07,0xF8,0x00,0x00,0xC0,0x0F,0x7C,0x00,0x00,0x82,0x0F,0x7C,0x00,0x80,0x01,0x0F,0x7C,0x00,0xE0,0x01,0x1F,0x3C,0x00,0xF8,0x00,0x1F,0x3E,0x00,0xFE,0x00,0x1E,0x3E,0x00,0x7E,0x00,0x1E,0x3E,0x00,0x7F,0x00,0x1E,0x3E,0x00,0x3F,0x00,0x1E,0x3E,0x80,0x3F,0x00,0x1E,0x3E,0x80,0x1F,0x00,0x1E,0x3C,0xC0,0x07,0x00,0x1F,0x7C,0xC0,0x01,0x00,0x1F,0x7C,0x60,0x00,0x00,0x0F,0x7C,0x10,0x00,0x80,0x0F,0xF8,0x00,0x00,0xC0,0x0F,0xF8,0x01,0x00,0xC0,0x07,0xF0,0x03,0x00,0xE0,0x07,0xE0,0x07,0x00,0xF0,0x03,0xE0,0x0F,0x00,0xFC,0x01,0xC0,0x3F,0x00,0xFF,0x00,0x80,0xFF,0xFF,0x7F,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0x80,0xFF, // 40 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0xF0,0x01,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0xF0,0x01,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0xE0,0x01,0x00,0x00,0x00,0xF8,0x01,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0xE0,0x6F,0x00,0x00,0x00,0xE0,0x60,0x00,0x00,0x00,0xE0,0x63,0x00,0x00,0x00,0xC0,0x7F,0x00,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0xF0,0x01,0x00,0x00,0x00,0x80,0x01, // 41 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0x60,0x03,0x00,0x00,0x00,0x60,0x03,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x7F,0x00,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0xE0,0xC0,0x01,0x00,0x00,0x60,0x80,0x01,0x00,0x00,0x60,0x80,0x01,0x00,0x00,0x60,0x80,0x01,0x00,0x00,0xE0,0xC0,0x01,0x00,0x00,0x40,0x80, // 42 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x00,0x60,0x02,0x00,0x00,0x00,0xC0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0x60,0x0C,0x00,0x00,0x00,0x60,0x0C,0x00,0x00,0x00,0x60,0x0C,0x00,0x00,0x00,0x60,0x0C,0x00,0x00,0x00,0x60,0x0C,0x00,0x00,0x00,0x60,0x0C,0x00,0x00,0x00,0x60, // 43 + 0x00,0x00,0x1C,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0xC0,0xFF,0x01,0x00,0x00,0xE0,0x80,0x03,0x00,0x00,0x60,0x00,0x03,0x00,0x00,0x70,0x00,0x07,0x00,0x00,0x30,0x00,0x06,0x00,0x00,0x30,0x00,0x06,0x00,0x00,0x30,0x00,0x06,0x00,0x00,0x3E,0x00,0x06,0x00,0x80,0x3F,0x00,0x07,0x00,0xC0,0x0F,0x00,0x03,0x00,0xC0,0x07,0x00,0x02,0x00,0x60,0x07,0x00,0x10,0x10,0x60,0x03,0x00,0x18,0x0C,0xE0,0x01,0x00,0xB8,0x07,0xF0,0x01,0x00,0xFC,0x03,0xF0,0x01,0x00,0xFE,0x01,0x98,0x01,0x00,0xF6,0x00,0x9C,0x01,0x80,0x61,0x00,0x8C,0x01,0x00,0x00,0x00,0x0C,0x03,0x00,0x0C,0x00,0x0C,0x03,0x00,0x0C,0x00,0x0C,0x07,0x00,0x0E,0x00,0x0C,0x0E,0x00,0x06,0x00,0x0C,0x1C,0x00,0x07,0x00,0x18,0x38,0x00,0x06,0x00,0x38,0x30,0x00,0x06,0x00,0x70,0x30,0x00,0x06,0x00,0x60,0x30,0x00,0x06,0x00,0x60,0x30,0x00,0x06,0x00,0x60,0x60,0x00,0x03,0x00,0xC0,0xE0,0x80,0x03,0x00,0xC0,0xE1,0xC1,0x01,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0x1E,0x3E, // 48 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x0C,0x10,0x00,0x00,0x06,0x00,0x38,0x00,0x00,0x0E,0x00,0x1C,0x00,0x00,0x0C,0x3E,0x0C,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0xC0,0xFF,0x01,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xF0,0xFF,0x03,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xF0,0xFF,0x07,0x00,0xE0,0xF9,0xFF,0xE7,0x03,0xE0,0xF9,0xFF,0xC7,0x03,0x00,0xF0,0xFF,0x07,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xF0,0xFF,0x03,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xC0,0xFF,0x01,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x0C,0x3E,0x0C,0x00,0x00,0x0E,0x00,0x1C,0x00,0x00,0x06,0x00,0x38,0x00,0x00,0x02,0x0C,0x10,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x08, // 49 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0xC0,0xFF,0x01,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xF0,0xFF,0x03,0x00,0x00,0x10,0xFE,0x07,0x00,0x00,0x00,0xF8,0x07,0x00,0x00,0x00,0xF0,0x07,0x00,0x00,0x00,0xE0,0x07,0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0xC0,0x07,0x00,0x00,0x00,0x80,0x03,0x00,0x00,0x00,0x80,0x01,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x40, // 50 + 0x00,0x80,0x01,0x1E,0x00,0x00,0x80,0x81,0x7F,0x00,0x00,0x80,0xC1,0xFF,0x01,0x00,0x80,0xE1,0xFF,0x03,0x60,0x00,0xF1,0xFF,0x03,0xE0,0x00,0xF0,0xFF,0x07,0xC0,0x01,0xF8,0xFF,0x07,0x80,0xE1,0xFF,0xFF,0x07,0x00,0xF8,0xFF,0xFF,0x07,0x00,0x3C,0xFC,0xFF,0x07,0x00,0x0E,0xFC,0xFF,0x07,0x00,0x06,0xFE,0xFF,0x07,0x00,0x07,0xFE,0xFF,0x0F,0x00,0x03,0xFF,0xFF,0x0F,0x3E,0x03,0xFF,0xFF,0x1F,0x3E,0x83,0xFF,0xFF,0x1F,0x00,0x83,0xFF,0xFF,0x1F,0x00,0x87,0xFF,0xFF,0x1F,0x00,0x86,0xFF,0xFF,0x1F,0x00,0x9C,0xFF,0xFF,0x1F,0x00,0xFC,0xFF,0xFF,0x1F,0x00,0xF1,0xFF,0xFF,0x1F,0xC0,0xC1,0xFF,0xFF,0x0F,0xE0,0x01,0xFF,0xFF,0x0F,0xE0,0x00,0xFE,0xFF,0x07,0x00,0x80,0xFD,0xFF,0x07,0x00,0x80,0xF9,0xFF,0x07,0x00,0x80,0xF9,0xFF,0x07,0x00,0x80,0xF9,0xFF,0x07,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xF0,0xFF,0x03,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xE0,0xFF,0x01,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0x00,0x3F, // 51 + 0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0xE0,0xFF,0x01,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xF0,0xFF,0x03,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0xFC,0xFF,0x07,0x00,0x00,0xFE,0xFF,0x07,0x00,0x00,0xFF,0xFF,0x0F,0x00,0x00,0xFF,0xFF,0x0F,0x00,0x80,0xFF,0xFF,0x1F,0x00,0x80,0xFF,0xFF,0x1F,0x00,0xBC,0xFF,0xFF,0x1F,0x00,0xFF,0xFF,0xFF,0x1F,0x80,0xEF,0xFF,0xFF,0x1F,0xC0,0x81,0xFF,0xFF,0x1F,0xE0,0x80,0xFF,0xFF,0x1F,0xF0,0x87,0xFF,0xFF,0x1F,0xF0,0x1F,0xFF,0xFF,0x0F,0x30,0x3C,0xFF,0xFF,0x0F,0x00,0x70,0xFE,0xFF,0x07,0x00,0xE0,0xFC,0xFF,0x07,0x00,0xC0,0xF8,0xFF,0x07,0x00,0xC0,0xF8,0xFF,0x07,0x00,0xC0,0xFD,0xFF,0x07,0x00,0xC0,0xFD,0xFF,0x07,0x00,0xC0,0xFF,0xFF,0x07,0x00,0xC0,0xF7,0xFF,0x03,0x00,0xC0,0xE3,0xFF,0x03,0x00,0xC0,0xE0,0xFF,0x01,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0x3F, // 52 + 0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0x0F,0x00,0x00,0xF8,0xFF,0x0F,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0xFE,0xFF,0x1F,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0x3F,0x00,0x00,0xFF,0xFF,0x3F,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0xFE,0xFF,0x1F,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0xF8,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0x80,0xFF,0x03,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0x00,0x7C, // 53 + 0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xE0,0xFF,0x1F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xFC,0xFF,0x7F,0x04,0x04,0xFC,0xFF,0x7F,0x06,0x03,0xFC,0xFF,0x7F,0xEF,0x01,0xFE,0xFF,0xFF,0xFF,0x00,0xFE,0xFF,0xFF,0x7F,0x00,0xFE,0xFF,0xFF,0x3D,0x00,0xFE,0xFF,0xFF,0x18,0x00,0xFC,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF0,0xFF,0x1F,0x00,0x00,0xE0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x3F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8, // 54 + 0x00,0xE0,0x07,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0xC0,0xFF,0xFF,0x00,0x00,0xE0,0xFF,0xFF,0x01,0x00,0xF0,0xFF,0xFF,0x01,0x00,0xF0,0xFF,0xFF,0x01,0x00,0xF0,0xFF,0xFF,0x03,0x00,0xF0,0xFF,0xFF,0x83,0x03,0xF8,0xFF,0xFF,0xC3,0x07,0xF0,0xFF,0xFF,0xF3,0x07,0xF0,0xFF,0xFF,0xC3,0x07,0xF0,0xFF,0xFF,0x83,0x03,0xF0,0xFF,0xFF,0x01,0x00,0xF0,0xFF,0xFF,0x01,0x00,0xE0,0xFF,0xFF,0x01,0x00,0xC0,0xFF,0xFF,0x00,0x00,0xC0,0xFF,0x7F,0x00,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0xFF,0x7F,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,0xFE,0x3F,0x00,0x00,0x00,0xFC,0x3F,0x00,0x00,0x00,0xF8,0x0F,0x00,0x00,0x00,0xE0,0x07, // 55 + 0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x1F,0x00,0x00,0xC0,0xFF,0x3F,0x38,0x00,0xC0,0xFF,0x1F,0x3E,0x00,0xE0,0xFF,0x1F,0x7F,0x00,0xF0,0xFF,0x1F,0x3E,0x00,0xF8,0xFF,0x3F,0x38,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0xFE,0xFF,0xFF,0x00,0x0E,0xFE,0xFF,0xFF,0x00,0x1F,0xFE,0xFF,0xFF,0xC0,0x1F,0xFE,0xFF,0xFF,0x00,0x1F,0xFC,0xFF,0x7F,0x00,0x0C,0xFC,0xFF,0x7F,0x00,0x00,0xFC,0xFF,0x7F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF8,0xFF,0x3F,0x00,0x00,0xF0,0xFF,0x1F,0x80,0x03,0xE0,0xFF,0x1F,0xC0,0x07,0xC0,0xFF,0x3F,0xF0,0x07,0xC0,0xFF,0x1F,0xC0,0x07,0xC0,0xFF,0x1F,0x80,0x03,0xC0,0xFF,0x1F,0x00,0x00,0x80,0xFF,0x1F,0x00,0x00,0x80,0xFF,0x0F,0x00,0x00,0x00,0xFF,0x07,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8, // 56 + 0x00,0x00,0xC0,0x0C,0x00,0x00,0x00,0xC0,0x0C,0x00,0x00,0x00,0xC6,0x0C,0x00,0x00,0x00,0xC6,0x0C,0x00,0x00,0x00,0xC6,0x0C,0x00,0x00,0x00,0xC6,0x0C,0x00,0x00,0x00,0xC6,0x0C,0x00,0x00,0x00,0x06,0x0C,0x00,0x00,0x00,0x06,0x0C,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x7E,0x0C,0x00,0x00,0x80,0xFF,0x01,0x00,0x00,0xC0,0xFF,0x03,0x00,0x00,0xC0,0xFF,0x03,0x00,0x00,0xE0,0xFF,0x07,0x00,0x00,0xE0,0xFF,0x07,0x00,0x00,0xE0,0xFF,0x07,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0xF8,0xFF,0x0F,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0xFC,0xFF,0x0F,0x00,0x00,0xF8,0xFF,0x0F,0x00,0x00,0xF8,0xFF,0x0F,0x00,0x00,0xF8,0xFF,0x07,0x00,0x00,0xF0,0xFF,0x07,0x00,0x00,0xE0,0xFF,0x07,0x00,0x00,0xE0,0xFF,0x07,0x00,0x00,0xE0,0xFF,0x03,0x00,0x00,0xC0,0xFF,0x03,0x00,0x00,0x80,0xFF,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x7E, // 57 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0xC0,0x30,0x03,0x00,0x00,0x00,0x3C,0x03,0x00,0x00,0x00,0x3E,0x23,0x00,0x00,0x00,0x07,0x33,0x00,0x00,0x00,0x03,0x33,0x00,0x00,0x80,0x03,0x33,0x00,0x00,0x80,0x01,0x33,0x00,0x00,0x9F,0x01,0x33,0x00,0x00,0x8F,0x01,0x33,0x00,0x00,0x80,0x01,0x33,0x00,0x00,0x80,0x03,0x33,0x00,0x00,0x00,0x03,0x33,0x00,0x00,0x00,0x07,0x33,0x00,0x00,0x00,0x3E,0x23,0x00,0x00,0x00,0x3C,0x03,0x00,0x00,0xC0,0x30,0x03,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x20, // 65 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x02,0x0C,0x10,0x00,0x00,0x06,0x00,0x38,0x00,0x00,0x0E,0x00,0x1C,0x00,0x00,0x0C,0x3E,0x0C,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0xC0,0xE3,0x01,0x00,0x00,0xE0,0x80,0x03,0x00,0x00,0x70,0x00,0x03,0x00,0x00,0x30,0x00,0x07,0x00,0x00,0x30,0x00,0x06,0x00,0xE0,0x39,0x00,0xE6,0x03,0xE0,0x39,0x00,0xC6,0x03,0x00,0x30,0x00,0x06,0x00,0x00,0x30,0x00,0x07,0x00,0x00,0x70,0x00,0x03,0x00,0x00,0xE0,0x80,0x03,0x00,0x00,0xC0,0xF3,0x01,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x0C,0x3E,0x0C,0x00,0x00,0x0E,0x00,0x1C,0x00,0x00,0x06,0x00,0x38,0x00,0x00,0x02,0x0C,0x10,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x08, // 66 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0xE0,0xF3,0x01,0x00,0x00,0x70,0x80,0x03,0x00,0x00,0x38,0x00,0x07,0x00,0x00,0xF8,0x01,0x06,0x00,0x00,0xFC,0x07,0x0E,0x00,0x00,0x18,0x1F,0x0C,0x00,0x00,0x00,0x1C,0x0C,0x00,0x00,0x00,0x38,0x0C,0x00,0x00,0x00,0x70,0x0C,0x00,0x00,0x00,0x60,0x0E,0x00,0x00,0x00,0x60,0x06,0x00,0x00,0x00,0x60,0x07,0x00,0x00,0x00,0xE0,0x03,0x00,0x00,0x00,0xE0,0x01,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x60, // 67 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x04,0x18,0x20,0x00,0x00,0x0C,0x00,0x70,0x00,0x00,0x3C,0x00,0x38,0x00,0x00,0x18,0x7C,0x18,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0x80,0xEF,0x03,0x00,0x00,0xC0,0x01,0x07,0x00,0x00,0xE0,0x00,0x06,0x00,0x00,0x60,0xFE,0x0E,0x00,0x00,0xE0,0xFF,0x0D,0x00,0xC0,0xF3,0xFF,0xCF,0x07,0xC0,0xF3,0xFF,0x8F,0x07,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xF0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xE0,0xFF,0x0F,0x00,0x00,0xC0,0xFF,0x07,0x00,0x00,0xC0,0xFF,0x03,0x00,0x00,0x80,0xFF,0x01,0x00,0x00,0x00,0xFE, // 68 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x00,0x00,0x00,0x60,0xC0,0x00,0x00,0x00,0x60,0xC4,0x00,0x00,0x00,0x60,0xC6,0x00,0x00,0x00,0x60,0xC6,0x00,0x00,0x00,0x60,0xC6,0x00,0x00,0x00,0x60,0xC6,0x00,0x00,0x00,0xE0,0xFF,0x00,0x00,0x00,0xE0,0xFF,0x00,0x00,0x00,0xF0,0xF6,0x01,0x00,0x00,0x78,0xC6,0x03,0x00,0x00,0x7C,0xC6,0x07,0x00,0x00,0x6E,0xC6,0x06,0x00,0x00,0x66,0xC6,0x0E,0x00,0x00,0x67,0xC6,0x0C,0x00,0x00,0x63,0xC6,0x0C,0x00,0x00,0x63,0xC6,0x0C,0x00,0x00,0x63,0xC6,0x0C,0x00,0x00,0x03,0xC6,0x0C,0x00,0x00,0x03,0xC6,0x0C,0x00,0x00,0x06,0xC6,0x0E,0x00,0x00,0x06,0xC6,0x06,0x00,0x00,0x0C,0xC6,0x07,0x00,0x00,0x3C,0xC6,0x03,0x00,0x00,0xF8,0xE6,0x01,0x00,0x00,0xE0,0xFF,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0x00,0xC6,0x00,0x00,0x00,0x00,0xC6,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x06, // 69 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x03,0x00,0x00,0x80,0x19,0x03,0x00,0x00,0x80,0x19,0x03,0x00,0x00,0x80,0x19,0x03,0x00,0x00,0x80,0x19,0x03,0x00,0x00,0x80,0x19,0x03,0x00,0x00,0x80,0x19,0x03,0x00,0x00,0x80,0x19,0x03,0x00,0x00,0x80,0x19,0x03,0x00,0x00,0x80,0x19,0x03,0x00,0x00,0x80,0x19,0x03,0x00,0x00,0x80,0x19,0x03,0x00,0x00,0xF0,0x19,0x03,0x00,0x00,0xF8,0x19,0x03,0x00,0x00,0xFC,0x19,0x03,0x00,0x00,0xF8,0x19,0x03,0x00,0x00,0xF8,0x19,0x1F,0x00,0x00,0xF0,0x18,0x3F,0x00,0x00,0x00,0x18,0x3F,0x00,0x00,0x00,0x18,0x3F,0x00,0x00,0x00,0x18,0x3F,0x00,0x00,0x00,0x18,0x3E,0x00,0x00,0x00,0x18,0x1C,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0xC0,0x1F,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x80,0x1F,0x00,0x00,0x00,0x80,0x0F,0x00,0x00,0x00,0x00,0x06, // 70 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x80,0x01,0x00,0x00,0xE0,0xC1,0x03,0x00,0x00,0xE0,0xE1,0x03,0x00,0x00,0xE0,0xEB,0x03,0x00,0x00,0xE0,0xFF,0x01,0x00,0x00,0xC0,0xFF,0x01,0x00,0x00,0xC0,0xFF,0x01,0x00,0x00,0xE0,0xFF,0x01,0x00,0x00,0xFE,0xE3,0x3F,0x00,0x00,0xFF,0xE1,0x3F,0x00,0x00,0xFF,0xE1,0x3F,0x00,0x00,0xFF,0xE3,0x3F,0x00,0x00,0xFE,0xFF,0x3F,0x00,0x00,0xE0,0xFF,0x01,0x00,0x00,0xC0,0xFF,0x01,0x00,0x00,0xC0,0xFF,0x01,0x00,0x00,0xE0,0xFF,0x01,0x00,0x00,0xE0,0xEB,0x03,0x00,0x00,0xE0,0xE1,0x03,0x00,0x00,0xE0,0xC1,0x03,0x00,0x00,0xC0,0x80,0x01, // 71 + 0x00,0x80,0x01,0x1E,0x00,0x00,0x80,0x81,0x7F,0x00,0x00,0x80,0xE1,0xE1,0x01,0x00,0x80,0x61,0x80,0x01,0x60,0x00,0x31,0x00,0x03,0xE0,0x00,0x38,0x00,0x07,0xC0,0x01,0x18,0x00,0x06,0x80,0xE1,0x1B,0x00,0x06,0x00,0xF8,0x1F,0x00,0x06,0x00,0x3C,0x1C,0x00,0x06,0x00,0x0E,0x1C,0x00,0x07,0x00,0x06,0x0E,0x00,0x07,0x00,0x07,0x06,0x00,0x0E,0x00,0x03,0x03,0x00,0x0C,0x3E,0x03,0x03,0x00,0x18,0x3E,0x83,0x01,0x00,0x18,0x00,0x83,0x01,0x00,0x18,0x00,0x87,0x01,0x00,0x18,0x00,0x86,0x01,0x00,0x18,0x00,0x9C,0x01,0x00,0x18,0x00,0xFC,0x01,0x00,0x18,0x00,0xF1,0x03,0x00,0x18,0xC0,0xC1,0x03,0x00,0x0C,0xE0,0x01,0x07,0x00,0x0E,0xE0,0x00,0x0E,0x00,0x07,0x00,0x80,0x1F,0x00,0x07,0x00,0x80,0x1D,0x00,0x06,0x00,0x80,0x19,0x00,0x06,0x00,0x80,0x19,0x00,0x06,0x00,0x00,0x18,0x00,0x06,0x00,0x00,0x38,0x00,0x07,0x00,0x00,0x30,0x00,0x03,0x00,0x00,0x70,0x80,0x03,0x00,0x00,0xE0,0xE1,0x01,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0x00,0x3F, // 72 + 0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0xE0,0xE1,0x01,0x00,0x00,0x70,0x80,0x03,0x00,0x00,0x30,0x00,0x03,0x00,0x00,0x38,0x00,0x07,0x00,0x00,0x18,0x00,0x06,0x00,0x00,0x18,0x00,0x06,0x00,0x00,0x18,0x00,0x06,0x00,0x00,0x1C,0x00,0x06,0x00,0x00,0x1C,0x00,0x07,0x00,0x00,0x06,0x00,0x07,0x00,0x00,0x03,0x00,0x0E,0x00,0x00,0x03,0x00,0x0C,0x00,0x80,0x01,0x00,0x18,0x00,0x80,0x01,0x00,0x18,0x00,0xB8,0x01,0x00,0x18,0x00,0xFF,0x01,0x00,0x18,0x80,0xFF,0x01,0x00,0x18,0xC0,0x81,0x01,0x00,0x18,0xE0,0x80,0x01,0x00,0x18,0xE0,0x87,0x01,0x00,0x18,0xF0,0x1F,0x03,0x00,0x0C,0x60,0x3E,0x03,0x00,0x0E,0x00,0x70,0x06,0x00,0x07,0x00,0xE0,0x1C,0x00,0x07,0x00,0xC0,0x18,0x00,0x06,0x00,0xC0,0x19,0x00,0x06,0x00,0x80,0x19,0x00,0x06,0x00,0x80,0x1D,0x00,0x06,0x00,0x80,0x3F,0x00,0x07,0x00,0xC0,0x37,0x00,0x03,0x00,0xC0,0x73,0x80,0x03,0x00,0x80,0xE0,0xE1,0x01,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0x00,0x3F, // 73 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x08,0x01,0x00,0x00,0xC6,0x8C,0x01,0x00,0x00,0xC6,0x8C,0x01,0x00,0x00,0xC6,0x8C,0x01,0x00,0x01,0xC6,0x8C,0x01,0x80,0x03,0xC0,0x8C,0x01,0x00,0x07,0xC0,0x8C,0x01,0x00,0x86,0xC7,0x8C,0x01,0x00,0xE0,0xC7,0x8C,0x01,0x00,0xF0,0xC0,0x8C,0x01,0x00,0x38,0xC0,0x8C,0x01,0x00,0x18,0xC0,0x8C,0x01,0x00,0x1C,0xC0,0x8C,0x01,0x00,0x1C,0xC0,0x8C,0x01,0xF8,0x0C,0xC0,0x8C,0x01,0xF0,0x0C,0xC0,0x8C,0x01,0x00,0x1C,0xC0,0x8C,0x01,0x00,0x1C,0xC0,0x8C,0x01,0x00,0x18,0xC0,0x8C,0x01,0x00,0x38,0xC0,0x8C,0x01,0x00,0xF0,0xC0,0x8C,0x01,0x00,0xE0,0xC7,0x8C,0x01,0x00,0x86,0xC7,0x8C,0x01,0x00,0x07,0xC0,0x8C,0x01,0x80,0x03,0xC0,0x8C,0x01,0x00,0x01,0xC6,0x8C,0x01,0x00,0x00,0xC6,0x8C,0x01,0x00,0x00,0xC6,0x8C,0x01,0x00,0x00,0xC6,0x8C,0x01,0x00,0x00,0x84,0x08,0x01, // 74 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x10,0x01,0x00,0x00,0xC0,0x98,0x01,0x00,0x00,0xC0,0x98,0x01,0x00,0x00,0xC0,0x98,0x01,0x00,0x00,0xC0,0x98,0x01,0x00,0x00,0xC0,0x98,0x01,0x00,0x00,0xC0,0x98,0x01,0x00,0xF0,0xC3,0x98,0x01,0x00,0xFC,0xCF,0x98,0x01,0x00,0x3E,0xCE,0x98,0x01,0x00,0x0F,0xC8,0x98,0x01,0x80,0x07,0xC0,0x98,0x01,0x80,0x3F,0xC0,0x98,0x01,0x80,0xFF,0xC0,0x98,0x01,0x80,0xE0,0xC1,0x98,0x01,0x00,0x80,0xC3,0x99,0x01,0x00,0x00,0xC7,0x99,0x01,0x00,0x00,0xC7,0x99,0x01,0x00,0x00,0xCE,0x99,0x01,0x00,0x00,0xCE,0x99,0x01,0x00,0x00,0xCE,0x99,0x01,0x00,0x00,0xCE,0x99,0x01,0x00,0x00,0xCE,0x99,0x01,0x00,0x00,0xCE,0x99,0x01,0x00,0x00,0xC2,0x99,0x01,0x00,0x00,0xC0,0x99,0x01,0x00,0x00,0xC0,0x99,0x01,0x00,0x00,0xC0,0x99,0x01,0x00,0x00,0xC0,0x99,0x01,0x00,0x00,0x80,0x10,0x01, // 75 + 0x00,0x80,0xC7,0x8C,0x01,0x00,0xE0,0xC7,0x8C,0x01,0x00,0x70,0xC0,0x8C,0x01,0x00,0x38,0xC0,0x8C,0x01,0x00,0x18,0xC0,0x8C,0x01,0x00,0x0C,0xC0,0x8C,0x01,0x00,0x0C,0xC0,0x8C,0x01,0x00,0x0C,0xC0,0x8C,0x01,0x00,0x0C,0xC0,0x8C,0x01,0x00,0x0E,0xC0,0x8C,0x01,0x00,0x07,0xC0,0x8C,0x01,0x80,0x03,0xC0,0x8C,0x01,0x80,0x01,0xC0,0x8C,0x01,0xC0,0x01,0xC0,0x8C,0x01,0xC0,0x00,0xC0,0x8C,0x01,0xC0,0x00,0xC0,0x8C,0x01,0xC0,0x00,0xC0,0x8C,0x01,0xE0,0x00,0xC0,0x8C,0x01,0xE0,0x00,0xC0,0x8C,0x01,0xC0,0x00,0xC0,0x8C,0x01,0xC0,0x00,0xC0,0x8C,0x01,0xC0,0x00,0xC0,0x8C,0x01,0xC0,0x01,0xC0,0x8C,0x01,0x80,0x01,0xC0,0x8C,0x01,0x00,0x03,0xC0,0x8C,0x01,0x00,0x07,0xC0,0x8C,0x01,0x00,0x0E,0xC0,0x8C,0x01,0x00,0x0C,0xC0,0x8C,0x01,0x00,0x0C,0xC0,0x8C,0x01,0x00,0x0C,0xC0,0x8C,0x01,0x00,0x0C,0xC0,0x8C,0x01,0x00,0x18,0xC0,0x8C,0x01,0x00,0x38,0xC0,0x8C,0x01,0x00,0x70,0xC0,0x8C,0x01,0x00,0xE0,0xC7,0x8C,0x01,0x00,0x80,0xC7,0x8C,0x01, // 76 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03,0x00,0x00,0x8C,0x19,0x03, // 77 + 0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0x80,0xC7,0x03,0x00,0x00,0xC0,0x01,0x07,0x00,0x00,0xC0,0x00,0x06,0x00,0x00,0xE0,0x00,0x0C,0x00,0x00,0x60,0x00,0x0C,0x00,0x00,0x60,0x00,0x0C,0x00,0x00,0x60,0x00,0x0C,0x00,0x00,0x70,0x00,0x0C,0x00,0x00,0x78,0x00,0x0E,0x00,0x00,0x1C,0x00,0x0E,0x00,0x00,0x0C,0x00,0x1C,0x00,0x00,0x0E,0x00,0x18,0x00,0x00,0x06,0x00,0x30,0x00,0x00,0x06,0x00,0x30,0x00,0x00,0x06,0x00,0x30,0x00,0x00,0x07,0x00,0x30,0x00,0x00,0x07,0x00,0x30,0x00,0x00,0x06,0x00,0x30,0x00,0x00,0x06,0x00,0x30,0x00,0x00,0x06,0x00,0x30,0x00,0x00,0x0E,0x00,0x18,0x00,0x00,0x0C,0x00,0x1C,0x00,0x00,0x18,0x00,0x0E,0x00,0x00,0x78,0x00,0x0E,0x00,0x00,0x70,0x00,0x0C,0x00,0x00,0x60,0x00,0x0C,0x00,0x00,0x60,0x00,0x0C,0x00,0x00,0x60,0x00,0x0C,0x00,0x00,0xE0,0x00,0x0E,0x00,0x00,0xC0,0x00,0x06,0x00,0x00,0xC0,0x01,0x07,0x00,0x00,0x80,0xC7,0x03,0x00,0x00,0x00,0xFF,0x01,0x00,0x00,0x00,0x7C, // 78 + 0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x8F,0x07,0x00,0x00,0x80,0x03,0x0E,0x00,0x00,0x80,0x01,0x0C,0x00,0x00,0xC0,0x01,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xE0,0x00,0x18,0x00,0x00,0xF0,0x00,0x1C,0x00,0x00,0x38,0x00,0x1C,0x00,0x00,0x18,0x00,0x38,0x00,0x00,0x1C,0x00,0x30,0x04,0x04,0x0C,0x00,0x70,0x06,0x03,0x0C,0x00,0x60,0xEF,0x01,0x0C,0x00,0xE0,0xFF,0x00,0x0E,0x00,0xE0,0x7F,0x00,0x0E,0x00,0xE0,0x3C,0x00,0x0C,0x00,0x60,0x18,0x00,0x0C,0x00,0x60,0x00,0x00,0x0C,0x00,0x70,0x00,0x00,0x1C,0x00,0x30,0x00,0x00,0x18,0x00,0x38,0x00,0x00,0x30,0x00,0x1C,0x00,0x00,0xF0,0x00,0x1C,0x00,0x00,0xE0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x01,0x1C,0x00,0x00,0x80,0x01,0x0C,0x00,0x00,0x80,0x03,0x0E,0x00,0x00,0x00,0x8F,0x07,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8, // 79 + 0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x8F,0x07,0x00,0x00,0x80,0x03,0x0E,0x00,0x00,0x80,0x01,0x0C,0x00,0x00,0xC0,0x01,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xE0,0x00,0x18,0x00,0x00,0xF0,0x00,0x1C,0x00,0x00,0x38,0x00,0x1C,0x00,0x00,0x18,0x00,0x38,0x00,0x00,0x1C,0x00,0x30,0x04,0x04,0x0C,0x00,0x10,0x06,0x03,0x0C,0x00,0x00,0xEF,0x01,0x0C,0x00,0x80,0xFF,0x00,0x0E,0x00,0xC0,0x7F,0x00,0x0E,0x00,0xE0,0x3D,0x00,0x0C,0x00,0x38,0x18,0x00,0x0C,0x00,0x00,0x00,0x00,0x0C,0x00,0x40,0x00,0x00,0x1C,0x00,0x30,0x00,0x00,0x18,0x00,0x38,0x00,0x00,0x30,0x00,0x1C,0x00,0x00,0xF0,0x00,0x1C,0x00,0x00,0xE0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x01,0x1C,0x00,0x00,0x80,0x01,0x0C,0x00,0x00,0x80,0x03,0x0E,0x00,0x00,0x00,0x8F,0x07,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8, // 80 + 0x00,0xE0,0x07,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0x3C,0x3C,0x00,0x00,0x00,0x0E,0x70,0x00,0x00,0x00,0x06,0x60,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x80,0x03,0xC0,0x00,0x00,0xC0,0x03,0xE0,0x00,0x00,0xE0,0x00,0xE0,0x00,0x00,0x60,0x00,0xC0,0x01,0x00,0x70,0x00,0x80,0x01,0x00,0x30,0x00,0x00,0x03,0x00,0x30,0x00,0x00,0x03,0x00,0x30,0x00,0x00,0x83,0x03,0x38,0x00,0x00,0xC3,0x07,0x38,0x00,0x00,0xF3,0x07,0x30,0x00,0x00,0xC3,0x07,0x30,0x00,0x00,0x83,0x03,0x30,0x00,0x00,0x03,0x00,0x70,0x00,0x80,0x01,0x00,0x60,0x00,0xC0,0x01,0x00,0xC0,0x00,0xE0,0x00,0x00,0xC0,0x03,0xE0,0x00,0x00,0x80,0x03,0xC0,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x03,0xC0,0x00,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x06,0x60,0x00,0x00,0x00,0x0E,0x70,0x00,0x00,0x00,0x3C,0x3C,0x00,0x00,0x00,0xF8,0x1F,0x00,0x00,0x00,0xE0,0x07, // 81 + 0x00,0xF8,0x01,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x80,0x03,0x1C,0x00,0x00,0x80,0x01,0x18,0x00,0x00,0xC0,0x01,0x38,0x00,0x00,0xC0,0x00,0x30,0x00,0x00,0xC0,0x00,0x30,0x38,0x00,0xC0,0x00,0x30,0x7E,0x00,0xE0,0x00,0x30,0x7F,0x00,0xF0,0x00,0x38,0x7E,0x00,0x38,0x00,0x38,0x38,0x00,0x18,0x00,0x70,0x00,0x00,0x1C,0x00,0x60,0x00,0x00,0x0C,0x00,0xC0,0x00,0x00,0x0C,0x00,0xC0,0x00,0x00,0x0C,0x00,0xC0,0x00,0x0E,0x0E,0x00,0xC0,0x00,0x1F,0x0E,0x00,0xC0,0xC0,0x1F,0x0C,0x00,0xC0,0x00,0x1F,0x0C,0x00,0xC0,0x00,0x0C,0x0C,0x00,0xC0,0x00,0x00,0x1C,0x00,0x60,0x00,0x00,0x18,0x00,0x70,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0xF0,0x00,0x38,0x80,0x03,0xE0,0x00,0x30,0xC0,0x07,0xC0,0x00,0x30,0xF0,0x07,0xC0,0x00,0x30,0xC0,0x07,0xC0,0x00,0x30,0x80,0x03,0xC0,0x01,0x38,0x00,0x00,0x80,0x01,0x18,0x00,0x00,0x80,0x03,0x1C,0x00,0x00,0x00,0x0F,0x0F,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0xF8,0x01, // 82 + 0x00,0x00,0xC0,0x0C,0x00,0x00,0x00,0xC0,0x0C,0x00,0x00,0x00,0xC6,0x0C,0x00,0x00,0x00,0xC6,0x0C,0x00,0x00,0x00,0xC6,0x0C,0x00,0x00,0x00,0xC6,0x0C,0x00,0x00,0x00,0xC6,0x0C,0x00,0x00,0x00,0x06,0x0C,0x00,0x00,0x00,0x06,0x0C,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x7E,0x0C,0x00,0x00,0x80,0xFF,0x01,0x00,0x00,0xC0,0xC3,0x03,0x00,0x00,0xC0,0x00,0x03,0x00,0x00,0xE0,0x00,0x07,0x00,0x00,0x60,0x00,0x06,0x00,0x00,0x60,0x00,0x06,0x00,0x00,0x70,0x00,0x06,0x00,0x00,0x38,0x00,0x06,0x00,0x00,0x18,0x00,0x0C,0x00,0x00,0x18,0x00,0x0C,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x0C,0x00,0x0C,0x00,0x00,0x18,0x00,0x0C,0x00,0x00,0x18,0x00,0x0E,0x00,0x00,0x30,0x00,0x06,0x00,0x00,0x70,0x00,0x06,0x00,0x00,0x60,0x00,0x06,0x00,0x00,0x60,0x00,0x06,0x00,0x00,0xE0,0x00,0x07,0x00,0x00,0xC0,0x81,0x03,0x00,0x00,0x80,0xC3,0x01,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x7E, // 83 + 0x00,0x80,0x19,0x00,0x00,0x00,0x80,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x8C,0x19,0x00,0x00,0x00,0x0C,0x18,0x00,0x00,0x00,0x0C,0x18,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x30,0x18,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x87,0x03,0x00,0x00,0x80,0x01,0x06,0x00,0x00,0x80,0x01,0x06,0x00,0x00,0xC0,0x00,0x0C,0x00,0x00,0xC0,0x00,0x0C,0x38,0x00,0xC0,0x00,0x0C,0x3E,0x00,0x60,0x00,0x0C,0x7F,0x00,0x30,0x00,0x0C,0x3E,0x00,0x30,0x00,0x18,0x38,0x00,0x18,0x00,0x18,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x38,0x00,0x18,0x80,0x03,0x30,0x00,0x1C,0xC0,0x07,0x70,0x00,0x1C,0xF0,0x07,0xE0,0x00,0x0C,0xC0,0x07,0xC0,0x00,0x0C,0x80,0x03,0xC0,0x00,0x0C,0x00,0x00,0xC0,0x01,0x0E,0x00,0x00,0x80,0x03,0x07,0x00,0x00,0x80,0x87,0x07,0x00,0x00,0x00,0xFF,0x03,0x00,0x00,0x00,0xFE,0x01,0x00,0x00,0x00,0x78, // 84 + 0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x8F,0x07,0x00,0x00,0x80,0x03,0x0E,0x00,0x00,0x80,0x01,0x0C,0x00,0x00,0xC0,0x01,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xE0,0x00,0x18,0x00,0x00,0xF0,0x00,0x1C,0x00,0x00,0x38,0x00,0x1C,0x00,0x00,0x18,0x00,0x38,0x00,0x00,0x1C,0x00,0x30,0x38,0x07,0x0C,0x00,0x60,0x38,0x07,0x0C,0x00,0x60,0xF0,0x03,0x0C,0x00,0x60,0xF0,0x03,0x0E,0x00,0x60,0x3E,0x1F,0x0E,0x00,0x60,0x3E,0x1F,0x0C,0x00,0x60,0xF0,0x03,0x0C,0x00,0x60,0xF0,0x03,0x0C,0x00,0x60,0x38,0x07,0x1C,0x00,0x30,0x38,0x07,0x18,0x00,0x38,0x00,0x00,0x30,0x00,0x1C,0x00,0x00,0xF0,0x00,0x1C,0x00,0x00,0xE0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x01,0x1C,0x00,0x00,0x80,0x01,0x0C,0x00,0x00,0x80,0x03,0x0E,0x00,0x00,0x00,0x8F,0x07,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8, // 85 + 0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x8F,0x07,0x00,0x00,0x80,0x03,0x0E,0x00,0x00,0x80,0x01,0x0C,0x00,0x00,0xC0,0x01,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xE0,0x00,0x18,0x00,0x00,0xF0,0x00,0x0C,0x00,0x00,0x38,0x00,0x04,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x1C,0x00,0x60,0x0C,0x00,0x0C,0x00,0xE0,0x0E,0x00,0x0C,0x00,0xE0,0x07,0x00,0x0C,0x00,0xE0,0x0F,0x00,0x0E,0x00,0x7C,0x3E,0x00,0x0E,0x00,0x7C,0x3E,0x00,0x0C,0x00,0xE0,0x0F,0x00,0x0C,0x00,0xE0,0x07,0x00,0x0C,0x00,0xE0,0x0E,0x00,0x1C,0x00,0x60,0x0C,0x00,0x18,0x00,0x00,0x00,0x00,0x30,0x00,0x04,0x00,0x00,0xF0,0x00,0x0C,0x00,0x00,0xE0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x00,0x18,0x00,0x00,0xC0,0x01,0x1C,0x00,0x00,0x80,0x01,0x0C,0x00,0x00,0x80,0x03,0x0E,0x00,0x00,0x00,0x8F,0x07,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8, // 86 + 0x00,0xF8,0x01,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x0F,0x0F,0x18,0x00,0x80,0x03,0x1C,0x0B,0x00,0x80,0x01,0x18,0x7E,0x00,0xC0,0x01,0x38,0x32,0x00,0xC0,0x00,0xB0,0x1F,0x00,0xC0,0x00,0x30,0x3C,0x00,0xC0,0x00,0x30,0x24,0x00,0xE0,0x00,0x30,0x00,0x00,0xF0,0x00,0x38,0x00,0x00,0x38,0x00,0x38,0x00,0x00,0x18,0x00,0x70,0x00,0x00,0x1C,0x00,0x60,0x38,0x07,0x0C,0x00,0xC0,0x38,0x07,0x0C,0x00,0xC0,0xF0,0x03,0x0C,0x00,0xC0,0xF0,0x03,0x0E,0x00,0xC0,0x3E,0x1F,0x0E,0x00,0xC0,0x3E,0x1F,0x0C,0x00,0xC0,0xF0,0x03,0x0C,0x00,0xC0,0xF0,0x03,0x0C,0x00,0xC0,0x38,0x07,0x1C,0x00,0x60,0x38,0x07,0x18,0x00,0x70,0x00,0x00,0x30,0x00,0x38,0x00,0x00,0xF0,0x00,0x38,0x00,0x00,0xE0,0x00,0x30,0x00,0x00,0xC0,0x00,0x30,0x90,0x00,0xC0,0x00,0x30,0xF0,0x00,0xC0,0x00,0x30,0x7E,0x00,0xC0,0x01,0x38,0xC8,0x01,0x80,0x01,0x18,0xF8,0x00,0x80,0x03,0x1C,0x2C,0x00,0x00,0x0F,0x0F,0x60,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0xF8,0x01, // 87 + 0x00,0xF8,0x00,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0x8F,0x07,0x00,0x00,0x80,0x03,0x0E,0x00,0x00,0x80,0x01,0x0C,0x04,0x00,0xC0,0x01,0x18,0x0F,0x00,0xC0,0x00,0x18,0x0F,0x00,0xC0,0x00,0x18,0x0F,0x00,0xC0,0x00,0x18,0x06,0x00,0xE0,0x00,0x18,0x00,0x0C,0xF0,0x00,0x1C,0x00,0x1E,0x38,0x00,0x1C,0x00,0x1E,0x18,0x00,0x38,0x00,0x1E,0x1C,0x00,0x30,0x00,0x08,0x0C,0x00,0x60,0x00,0x00,0x0C,0x00,0x60,0x00,0x00,0x0C,0x00,0x60,0x38,0x00,0x0E,0x00,0x60,0x7C,0x00,0x0E,0x00,0x60,0x3C,0x00,0x0C,0x00,0x60,0x38,0x00,0x0C,0x00,0x60,0x00,0x00,0x0C,0x00,0x60,0x00,0x00,0x1C,0x00,0x30,0x00,0x08,0x18,0x00,0x38,0x00,0x1E,0x30,0x00,0x1C,0x00,0x1E,0xF0,0x00,0x1C,0x00,0x1E,0xE0,0x00,0x18,0x00,0x0C,0xC0,0x00,0x18,0x06,0x00,0xC0,0x00,0x18,0x0F,0x00,0xC0,0x00,0x18,0x0F,0x00,0xC0,0x01,0x1C,0x0F,0x00,0x80,0x01,0x0C,0x04,0x00,0x80,0x03,0x0E,0x00,0x00,0x00,0x8F,0x07,0x00,0x00,0x00,0xFE,0x03,0x00,0x00,0x00,0xF8, // 88 + 0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0xC0,0xFF,0x00,0x00,0x00,0xE0,0xFF,0x01,0x00,0x00,0xF0,0xC0,0x03,0x00,0x00,0x30,0x00,0x03,0x00,0x00,0x38,0x00,0x07,0x00,0x00,0x18,0x00,0x06,0x00,0x00,0x18,0x00,0x06,0x00,0x00,0x18,0x00,0x06,0x00,0x00,0x1F,0x00,0x06,0x00,0xC0,0x1F,0x00,0x07,0x00,0xE0,0x0F,0x00,0x07,0x00,0x60,0x07,0x00,0x0E,0x00,0x70,0x03,0x00,0x0C,0x00,0x30,0x03,0x00,0x1C,0x00,0xB0,0x01,0x00,0x18,0x00,0xB8,0x01,0x00,0x18,0x00,0xBC,0x01,0x00,0x18,0x00,0x8C,0x01,0x00,0x18,0x00,0x8E,0x01,0x00,0x18,0x00,0x86,0x01,0x00,0x18,0x00,0x86,0x03,0x00,0x18,0x00,0x06,0x03,0x00,0x0C,0x00,0x06,0x07,0x00,0x0C,0x00,0x06,0x06,0x00,0x06,0x00,0x06,0x0E,0x00,0x07,0x00,0x0C,0x1C,0x00,0x06,0x00,0x1C,0x18,0x00,0x06,0x00,0x38,0x18,0x00,0x06,0x00,0x30,0x18,0x00,0x06,0x00,0x30,0x38,0x00,0x06,0x00,0x30,0x30,0x00,0x03,0x00,0x60,0x70,0x80,0x03,0x00,0xE0,0xF0,0xE1,0x01,0x00,0xC0,0xBF,0xFF,0x00,0x00,0x00,0x1F,0x3E, // 89 + 0x00,0x00,0x3E,0x00,0x00,0x00,0x80,0xFF,0x00,0x00,0x00,0xC0,0xFF,0x01,0x00,0x00,0xE0,0x80,0x03,0x00,0x00,0x60,0x00,0x03,0x00,0x00,0x70,0x00,0x07,0x00,0x00,0x30,0x00,0x06,0x00,0x00,0x30,0x00,0x06,0x00,0x00,0x30,0x00,0x06,0x00,0x00,0x3E,0x00,0x06,0x00,0x80,0x3F,0x00,0x07,0x00,0xC0,0x0F,0x00,0x07,0x00,0xC0,0x07,0x00,0x0E,0x00,0x60,0x07,0x00,0x4C,0x10,0x60,0x03,0x00,0x7C,0x08,0xE0,0x01,0x00,0xF8,0x0E,0xF0,0x01,0x00,0xF8,0x07,0xF8,0x01,0x00,0xF8,0x03,0x98,0x01,0x00,0x98,0x03,0x9C,0x01,0x00,0x18,0x01,0x8C,0x01,0x00,0x18,0x00,0x0C,0x03,0x00,0x1C,0x00,0x0C,0x03,0x00,0x0C,0x00,0x0C,0x07,0x00,0x0E,0x00,0x0C,0x0E,0x00,0x06,0x00,0x0C,0x1C,0x00,0x07,0x00,0x18,0x38,0x00,0x06,0x00,0x38,0x30,0x00,0x06,0x00,0x70,0x30,0x00,0x06,0x00,0x60,0x30,0x00,0x06,0x00,0x60,0x30,0x00,0x06,0x00,0x60,0x60,0x00,0x03,0x00,0xC0,0xE0,0x80,0x03,0x00,0xC0,0xE1,0xC1,0x01,0x00,0x80,0xFF,0xFF,0x00,0x00,0x00,0x1E,0x3E, // 90 +}; + +#define FONT_LIB_V3 +// Created by http://oleddisplay.squix.ch/ Consider a donation +// In case of problems make sure that you are using the font file with the correct version! +const uint8_t Meteocons_Plain_21[] PROGMEM = { + 0x15, // Width: 21 + 0x16, // Height: 22 + 0x20, // First Char: 32 + 0xE0, // Numbers of Chars: 224 + + // Jump Table: + 0xFF, 0xFF, 0x00, 0x0B, // 32:65535 + 0x00, 0x00, 0x3D, 0x15, // 33:0 + 0x00, 0x3D, 0x3E, 0x15, // 34:61 + 0x00, 0x7B, 0x3E, 0x15, // 35:123 + 0x00, 0xB9, 0x3E, 0x15, // 36:185 + 0x00, 0xF7, 0x3E, 0x15, // 37:247 + 0x01, 0x35, 0x3E, 0x15, // 38:309 + 0x01, 0x73, 0x27, 0x15, // 39:371 + 0x01, 0x9A, 0x3B, 0x15, // 40:410 + 0x01, 0xD5, 0x38, 0x15, // 41:469 + 0x02, 0x0D, 0x29, 0x15, // 42:525 + 0x02, 0x36, 0x2C, 0x15, // 43:566 + 0x02, 0x62, 0x18, 0x0D, // 44:610 + 0x02, 0x7A, 0x20, 0x0D, // 45:634 + 0x02, 0x9A, 0x15, 0x0D, // 46:666 + 0x02, 0xAF, 0x1F, 0x0D, // 47:687 + 0x02, 0xCE, 0x3E, 0x15, // 48:718 + 0x03, 0x0C, 0x38, 0x15, // 49:780 + 0x03, 0x44, 0x2C, 0x15, // 50:836 + 0x03, 0x70, 0x3E, 0x15, // 51:880 + 0x03, 0xAE, 0x3F, 0x15, // 52:942 + 0x03, 0xED, 0x3E, 0x15, // 53:1005 + 0x04, 0x2B, 0x3E, 0x15, // 54:1067 + 0x04, 0x69, 0x3E, 0x15, // 55:1129 + 0x04, 0xA7, 0x3E, 0x15, // 56:1191 + 0x04, 0xE5, 0x3E, 0x15, // 57:1253 + 0x05, 0x23, 0x15, 0x0D, // 58:1315 + 0x05, 0x38, 0x18, 0x0D, // 59:1336 + 0x05, 0x50, 0x27, 0x0D, // 60:1360 + 0x05, 0x77, 0x24, 0x0D, // 61:1399 + 0x05, 0x9B, 0x26, 0x0D, // 62:1435 + 0x05, 0xC1, 0x20, 0x0D, // 63:1473 + 0x05, 0xE1, 0x26, 0x0D, // 64:1505 + 0x06, 0x07, 0x31, 0x15, // 65:1543 + 0x06, 0x38, 0x38, 0x15, // 66:1592 + 0x06, 0x70, 0x2C, 0x15, // 67:1648 + 0x06, 0x9C, 0x32, 0x15, // 68:1692 + 0x06, 0xCE, 0x3E, 0x15, // 69:1742 + 0x07, 0x0C, 0x3B, 0x15, // 70:1804 + 0x07, 0x47, 0x2F, 0x15, // 71:1863 + 0x07, 0x76, 0x3E, 0x15, // 72:1910 + 0x07, 0xB4, 0x3E, 0x15, // 73:1972 + 0x07, 0xF2, 0x39, 0x15, // 74:2034 + 0x08, 0x2B, 0x39, 0x15, // 75:2091 + 0x08, 0x64, 0x3F, 0x15, // 76:2148 + 0x08, 0xA3, 0x32, 0x15, // 77:2211 + 0x08, 0xD5, 0x3E, 0x15, // 78:2261 + 0x09, 0x13, 0x3E, 0x15, // 79:2323 + 0x09, 0x51, 0x3E, 0x15, // 80:2385 + 0x09, 0x8F, 0x3E, 0x15, // 81:2447 + 0x09, 0xCD, 0x3E, 0x15, // 82:2509 + 0x0A, 0x0B, 0x3E, 0x15, // 83:2571 + 0x0A, 0x49, 0x3D, 0x15, // 84:2633 + 0x0A, 0x86, 0x3E, 0x15, // 85:2694 + 0x0A, 0xC4, 0x3E, 0x15, // 86:2756 + 0x0B, 0x02, 0x3E, 0x15, // 87:2818 + 0x0B, 0x40, 0x3E, 0x15, // 88:2880 + 0x0B, 0x7E, 0x3E, 0x15, // 89:2942 + 0x0B, 0xBC, 0x3E, 0x15, // 90:3004 + 0x0B, 0xFA, 0x21, 0x0D, // 91:3066 + 0x0C, 0x1B, 0x24, 0x0D, // 92:3099 + 0x0C, 0x3F, 0x18, 0x0D, // 93:3135 + 0x0C, 0x57, 0x23, 0x0D, // 94:3159 + 0x0C, 0x7A, 0x24, 0x0D, // 95:3194 + 0x0C, 0x9E, 0x19, 0x0D, // 96:3230 + 0x0C, 0xB7, 0x24, 0x0D, // 97:3255 + 0x0C, 0xDB, 0x23, 0x0D, // 98:3291 + 0x0C, 0xFE, 0x21, 0x0D, // 99:3326 + 0x0D, 0x1F, 0x21, 0x0D, // 100:3359 + 0x0D, 0x40, 0x24, 0x0D, // 101:3392 + 0x0D, 0x64, 0x22, 0x0D, // 102:3428 + 0x0D, 0x86, 0x21, 0x0D, // 103:3462 + 0x0D, 0xA7, 0x21, 0x0D, // 104:3495 + 0x0D, 0xC8, 0x1E, 0x0D, // 105:3528 + 0x0D, 0xE6, 0x1E, 0x0D, // 106:3558 + 0x0E, 0x04, 0x24, 0x0D, // 107:3588 + 0x0E, 0x28, 0x1E, 0x0D, // 108:3624 + 0x0E, 0x46, 0x24, 0x0D, // 109:3654 + 0x0E, 0x6A, 0x21, 0x0D, // 110:3690 + 0x0E, 0x8B, 0x24, 0x0D, // 111:3723 + 0x0E, 0xAF, 0x23, 0x0D, // 112:3759 + 0x0E, 0xD2, 0x21, 0x0D, // 113:3794 + 0x0E, 0xF3, 0x20, 0x0D, // 114:3827 + 0x0F, 0x13, 0x21, 0x0D, // 115:3859 + 0x0F, 0x34, 0x21, 0x0D, // 116:3892 + 0x0F, 0x55, 0x21, 0x0D, // 117:3925 + 0x0F, 0x76, 0x23, 0x0D, // 118:3958 + 0x0F, 0x99, 0x23, 0x0D, // 119:3993 + 0x0F, 0xBC, 0x24, 0x0D, // 120:4028 + 0x0F, 0xE0, 0x26, 0x0D, // 121:4064 + 0x10, 0x06, 0x21, 0x0D, // 122:4102 + 0x10, 0x27, 0x24, 0x0D, // 123:4135 + 0x10, 0x4B, 0x15, 0x0D, // 124:4171 + 0x10, 0x60, 0x1D, 0x0D, // 125:4192 + 0x10, 0x7D, 0x23, 0x0D, // 126:4221 + 0xFF, 0xFF, 0x00, 0x00, // 127:65535 + 0xFF, 0xFF, 0x00, 0x15, // 128:65535 + 0xFF, 0xFF, 0x00, 0x15, // 129:65535 + 0xFF, 0xFF, 0x00, 0x15, // 130:65535 + 0xFF, 0xFF, 0x00, 0x15, // 131:65535 + 0xFF, 0xFF, 0x00, 0x15, // 132:65535 + 0xFF, 0xFF, 0x00, 0x15, // 133:65535 + 0xFF, 0xFF, 0x00, 0x15, // 134:65535 + 0xFF, 0xFF, 0x00, 0x15, // 135:65535 + 0xFF, 0xFF, 0x00, 0x15, // 136:65535 + 0xFF, 0xFF, 0x00, 0x15, // 137:65535 + 0xFF, 0xFF, 0x00, 0x15, // 138:65535 + 0xFF, 0xFF, 0x00, 0x15, // 139:65535 + 0xFF, 0xFF, 0x00, 0x15, // 140:65535 + 0xFF, 0xFF, 0x00, 0x15, // 141:65535 + 0xFF, 0xFF, 0x00, 0x15, // 142:65535 + 0xFF, 0xFF, 0x00, 0x15, // 143:65535 + 0xFF, 0xFF, 0x00, 0x15, // 144:65535 + 0xFF, 0xFF, 0x00, 0x15, // 145:65535 + 0xFF, 0xFF, 0x00, 0x15, // 146:65535 + 0xFF, 0xFF, 0x00, 0x15, // 147:65535 + 0xFF, 0xFF, 0x00, 0x15, // 148:65535 + 0xFF, 0xFF, 0x00, 0x15, // 149:65535 + 0xFF, 0xFF, 0x00, 0x15, // 150:65535 + 0xFF, 0xFF, 0x00, 0x15, // 151:65535 + 0xFF, 0xFF, 0x00, 0x15, // 152:65535 + 0xFF, 0xFF, 0x00, 0x15, // 153:65535 + 0xFF, 0xFF, 0x00, 0x15, // 154:65535 + 0xFF, 0xFF, 0x00, 0x15, // 155:65535 + 0xFF, 0xFF, 0x00, 0x15, // 156:65535 + 0xFF, 0xFF, 0x00, 0x15, // 157:65535 + 0xFF, 0xFF, 0x00, 0x15, // 158:65535 + 0xFF, 0xFF, 0x00, 0x15, // 159:65535 + 0xFF, 0xFF, 0x00, 0x0B, // 160:65535 + 0x10, 0xA0, 0x18, 0x0D, // 161:4256 + 0x10, 0xB8, 0x20, 0x0D, // 162:4280 + 0x10, 0xD8, 0x24, 0x0D, // 163:4312 + 0x10, 0xFC, 0x21, 0x0D, // 164:4348 + 0x11, 0x1D, 0x1C, 0x0D, // 165:4381 + 0x11, 0x39, 0x15, 0x0D, // 166:4409 + 0x11, 0x4E, 0x24, 0x0D, // 167:4430 + 0x11, 0x72, 0x1C, 0x0D, // 168:4466 + 0x11, 0x8E, 0x26, 0x0D, // 169:4494 + 0x11, 0xB4, 0x20, 0x0D, // 170:4532 + 0x11, 0xD4, 0x24, 0x0D, // 171:4564 + 0x11, 0xF8, 0x24, 0x0D, // 172:4600 + 0x12, 0x1C, 0x1D, 0x0D, // 173:4636 + 0x12, 0x39, 0x26, 0x0D, // 174:4665 + 0x12, 0x5F, 0x19, 0x0D, // 175:4703 + 0x12, 0x78, 0x19, 0x0D, // 176:4728 + 0x12, 0x91, 0x24, 0x0D, // 177:4753 + 0x12, 0xB5, 0x1D, 0x0D, // 178:4789 + 0x12, 0xD2, 0x1A, 0x0D, // 179:4818 + 0x12, 0xEC, 0x13, 0x0D, // 180:4844 + 0x12, 0xFF, 0x21, 0x0D, // 181:4863 + 0x13, 0x20, 0x25, 0x0D, // 182:4896 + 0x13, 0x45, 0x14, 0x0D, // 183:4933 + 0x13, 0x59, 0x18, 0x0D, // 184:4953 + 0x13, 0x71, 0x1D, 0x0D, // 185:4977 + 0x13, 0x8E, 0x1F, 0x0D, // 186:5006 + 0x13, 0xAD, 0x20, 0x0D, // 187:5037 + 0x13, 0xCD, 0x27, 0x0D, // 188:5069 + 0x13, 0xF4, 0x24, 0x0D, // 189:5108 + 0x14, 0x18, 0x27, 0x0D, // 190:5144 + 0x14, 0x3F, 0x21, 0x0D, // 191:5183 + 0x14, 0x60, 0x27, 0x0D, // 192:5216 + 0x14, 0x87, 0x27, 0x0D, // 193:5255 + 0x14, 0xAE, 0x27, 0x0D, // 194:5294 + 0x14, 0xD5, 0x27, 0x0D, // 195:5333 + 0x14, 0xFC, 0x27, 0x0D, // 196:5372 + 0x15, 0x23, 0x24, 0x0D, // 197:5411 + 0x15, 0x47, 0x24, 0x0D, // 198:5447 + 0x15, 0x6B, 0x24, 0x0D, // 199:5483 + 0x15, 0x8F, 0x21, 0x0D, // 200:5519 + 0x15, 0xB0, 0x21, 0x0D, // 201:5552 + 0x15, 0xD1, 0x21, 0x0D, // 202:5585 + 0x15, 0xF2, 0x21, 0x0D, // 203:5618 + 0x16, 0x13, 0x24, 0x0D, // 204:5651 + 0x16, 0x37, 0x24, 0x0D, // 205:5687 + 0x16, 0x5B, 0x24, 0x0D, // 206:5723 + 0x16, 0x7F, 0x24, 0x0D, // 207:5759 + 0x16, 0xA3, 0x26, 0x0D, // 208:5795 + 0x16, 0xC9, 0x24, 0x0D, // 209:5833 + 0x16, 0xED, 0x26, 0x0D, // 210:5869 + 0x17, 0x13, 0x26, 0x0D, // 211:5907 + 0x17, 0x39, 0x26, 0x0D, // 212:5945 + 0x17, 0x5F, 0x26, 0x0D, // 213:5983 + 0x17, 0x85, 0x26, 0x0D, // 214:6021 + 0x17, 0xAB, 0x21, 0x0D, // 215:6059 + 0x17, 0xCC, 0x26, 0x0D, // 216:6092 + 0x17, 0xF2, 0x24, 0x0D, // 217:6130 + 0x18, 0x16, 0x24, 0x0D, // 218:6166 + 0x18, 0x3A, 0x24, 0x0D, // 219:6202 + 0x18, 0x5E, 0x24, 0x0D, // 220:6238 + 0x18, 0x82, 0x1F, 0x0D, // 221:6274 + 0x18, 0xA1, 0x23, 0x0D, // 222:6305 + 0x18, 0xC4, 0x24, 0x0D, // 223:6340 + 0x18, 0xE8, 0x24, 0x0D, // 224:6376 + 0x19, 0x0C, 0x24, 0x0D, // 225:6412 + 0x19, 0x30, 0x24, 0x0D, // 226:6448 + 0x19, 0x54, 0x24, 0x0D, // 227:6484 + 0x19, 0x78, 0x24, 0x0D, // 228:6520 + 0x19, 0x9C, 0x24, 0x0D, // 229:6556 + 0x19, 0xC0, 0x27, 0x0D, // 230:6592 + 0x19, 0xE7, 0x24, 0x0D, // 231:6631 + 0x1A, 0x0B, 0x24, 0x0D, // 232:6667 + 0x1A, 0x2F, 0x24, 0x0D, // 233:6703 + 0x1A, 0x53, 0x24, 0x0D, // 234:6739 + 0x1A, 0x77, 0x24, 0x0D, // 235:6775 + 0x1A, 0x9B, 0x1E, 0x0D, // 236:6811 + 0x1A, 0xB9, 0x1E, 0x0D, // 237:6841 + 0x1A, 0xD7, 0x1E, 0x0D, // 238:6871 + 0x1A, 0xF5, 0x1E, 0x0D, // 239:6901 + 0x1B, 0x13, 0x23, 0x0D, // 240:6931 + 0x1B, 0x36, 0x1E, 0x0D, // 241:6966 + 0x1B, 0x54, 0x24, 0x0D, // 242:6996 + 0x1B, 0x78, 0x24, 0x0D, // 243:7032 + 0x1B, 0x9C, 0x24, 0x0D, // 244:7068 + 0x1B, 0xC0, 0x24, 0x0D, // 245:7104 + 0x1B, 0xE4, 0x24, 0x0D, // 246:7140 + 0x1C, 0x08, 0x1D, 0x0D, // 247:7176 + 0x1C, 0x25, 0x24, 0x0D, // 248:7205 + 0x1C, 0x49, 0x21, 0x0D, // 249:7241 + 0x1C, 0x6A, 0x21, 0x0D, // 250:7274 + 0x1C, 0x8B, 0x21, 0x0D, // 251:7307 + 0x1C, 0xAC, 0x21, 0x0D, // 252:7340 + 0x1C, 0xCD, 0x26, 0x0D, // 253:7373 + 0x1C, 0xF3, 0x20, 0x0D, // 254:7411 + 0x1D, 0x13, 0x26, 0x0D, // 255:7443 + + // Font Data: + 0x00,0x05,0x00,0x20,0x05,0x00,0x20,0x05,0x00,0x20,0x05,0x00,0x20,0x04,0x00,0x00,0x04,0x00,0xE0,0x05,0x00,0xF8,0x03,0x00,0xF8,0x03,0x00,0xFC,0xE3,0x00,0xFC,0xE7,0x00,0xFE,0x07,0x00,0xFE,0x07,0x00,0xFE,0x07,0x00,0xFE,0x07,0x00,0xFE,0x07,0x07,0xFC,0x03,0x07,0xF8,0x03,0x00,0xF8,0x03,0x00,0xF8,0x03,0x00,0xE0, // 33 + 0xE0,0x01,0x00,0xF0,0x07,0x00,0xF0,0x07,0x00,0xF8,0x0F,0x00,0xF8,0x0F,0x00,0xF8,0x0F,0x00,0xFC,0x0F,0x00,0xFE,0x0F,0x00,0xFF,0xDF,0x06,0xFF,0x9F,0x03,0xFF,0xFF,0x0E,0xFF,0x9F,0x03,0xFF,0xDF,0x06,0xFE,0x0F,0x00,0xFC,0x0F,0x00,0xF8,0x0F,0x00,0xF8,0x0F,0x00,0xF8,0x0F,0x00,0xF0,0x07,0x00,0xF0,0x07,0x00,0xE0,0x01, // 34 + 0xE0,0x03,0x00,0xF0,0x87,0x00,0xF8,0xCF,0x00,0xF8,0x6F,0x01,0xF8,0xCF,0x01,0xF8,0x0F,0x00,0xFC,0x0F,0x00,0xFE,0x1F,0x09,0xFE,0x1F,0x0F,0xFF,0x1F,0x0F,0xFF,0xDF,0x1D,0xFF,0x1F,0x0F,0xFE,0x1F,0x0F,0xFE,0x1F,0x09,0xFC,0x0F,0x00,0xF8,0x0F,0x00,0xF8,0x0F,0x03,0xF8,0x8F,0x02,0xF8,0x8F,0x03,0xF0,0x07,0x00,0xE0,0x03, // 35 + 0xE0,0x01,0x00,0xF0,0x03,0x00,0xF8,0x03,0x00,0xF8,0x77,0x00,0xF8,0x77,0x00,0xFC,0x07,0x0E,0xFE,0x07,0x0E,0xFE,0x0F,0x00,0xFF,0x0F,0x00,0xFF,0x0F,0x00,0xFF,0xEF,0x00,0xFF,0xEF,0x00,0xFF,0x0F,0x00,0xFE,0x0F,0x00,0xFE,0x07,0x0E,0xFC,0x07,0x0E,0xF8,0x77,0x00,0xF8,0x77,0x00,0xF8,0x03,0x00,0xF0,0x03,0x00,0xE0,0x01, // 36 + 0x00,0x78,0x00,0x00,0xFE,0x00,0x00,0xFE,0x00,0x00,0xFF,0x01,0x00,0xFF,0x01,0xC0,0xFF,0x01,0xE0,0xFF,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x03,0xF0,0xFF,0x03,0xF8,0xFF,0x03,0xFC,0xFF,0x03,0xFC,0xFF,0x03,0xFC,0xFF,0x01,0xFC,0xFF,0x01,0xF8,0xFF,0x01,0xF8,0xFF,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x00,0xE0,0xFF,0x00,0xC0,0x79, // 37 + 0x00,0x0F,0x00,0xC0,0x1F,0x00,0xC0,0x3F,0x00,0xE0,0x3F,0x00,0xE0,0x3F,0x00,0xF8,0x3F,0x00,0xFC,0x3F,0x00,0xFE,0x7F,0x00,0xFE,0x7F,0x09,0xFE,0xFF,0x07,0xFF,0xFF,0x03,0xFF,0xFF,0x02,0xFF,0x7F,0x00,0xFF,0x7F,0x00,0xFF,0x3F,0x00,0xFF,0x3F,0x00,0xFF,0x3F,0x00,0xFE,0x3F,0x00,0xFE,0x3F,0x00,0xFC,0x1F,0x00,0x38,0x0F, // 38 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0xC0,0x07,0xFE,0xFF,0x07,0xFE,0xFF,0x07,0x00,0x80,0x03, // 39 + 0x80,0x1F,0x00,0xE0,0xFF,0x00,0xF0,0xE0,0x01,0x3C,0xC0,0x03,0x1C,0x80,0x07,0x0E,0x00,0x07,0x0E,0x20,0x07,0x07,0x18,0x0E,0x07,0x1E,0x0E,0x07,0x0E,0x0E,0x07,0x0F,0x0E,0x07,0x07,0x0E,0x87,0x01,0x0E,0x8E,0x00,0x07,0x0E,0x00,0x07,0x1C,0x80,0x07,0x3C,0xC0,0x03,0xF0,0xE0,0x01,0xE0,0xFF,0x00,0x80,0x1F, // 40 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x08,0x00,0x00,0x10,0x00,0x00,0x3F,0x00,0x00,0x20,0x00,0x00,0x38,0x00,0x00,0x07,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x1E,0x00,0x00,0x11,0x00,0x00,0x1F,0x00,0x00,0x38,0x00,0x00,0x20, // 41 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x80,0x02,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x80,0x40,0x00,0x80,0x40,0x00,0x80,0x40, // 42 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x80,0x03,0x00,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x09,0x00,0x00,0x09,0x00,0x00,0x09,0x00,0x00,0x01, // 43 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4E,0x00,0x00,0x6E,0x00,0x00,0x7E,0x00,0x00,0x3C, // 44 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30, // 45 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x00,0x0E,0x00,0x00,0x0E, // 46 + 0x00,0x00,0x08,0x00,0x00,0x0C,0x00,0x00,0x07,0x00,0xC0,0x03,0x00,0xF0,0x00,0x00,0x3C,0x00,0x00,0x0F,0x00,0x80,0x03,0x00,0xE0,0x00,0x00,0x78,0x00,0x00,0x18, // 47 + 0x00,0x0F,0x00,0x80,0x10,0x00,0xC0,0x30,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0x70,0x20,0x00,0x38,0x20,0x00,0x24,0x00,0x00,0x14,0x40,0x04,0x14,0xC0,0x03,0x12,0xE0,0x01,0x11,0x10,0x00,0x11,0x40,0x00,0x21,0x60,0x00,0x21,0x20,0x00,0x42,0x20,0x00,0x46,0x20,0x00,0x44,0x20,0x00,0xC4,0x30,0x00,0x88,0x11,0x00,0x70,0x0F, // 48 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x10,0x82,0x00,0x30,0x40,0x00,0x80,0x0F,0x00,0xC0,0x1F,0x00,0xC0,0x3F,0x00,0xE0,0x3F,0x00,0xEC,0xBF,0x03,0xE0,0x3F,0x00,0xC0,0x3F,0x00,0xC0,0x1F,0x00,0x80,0x0F,0x00,0x30,0x40,0x00,0x10,0x82,0x00,0x00,0x02,0x00,0x00,0x02, // 49 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x80,0x3F,0x00,0x80,0x7F,0x00,0x00,0x7C,0x00,0x00,0x78,0x00,0x00,0x70,0x00,0x00,0x70,0x00,0x00,0x30,0x00,0x00,0x10, // 50 + 0x00,0xE1,0x00,0x00,0xF9,0x03,0x04,0xF9,0x03,0x08,0xFC,0x07,0xC0,0xFF,0x07,0x60,0xFC,0x07,0x30,0xFE,0x07,0x10,0xFE,0x07,0x13,0xFF,0x0F,0x10,0xFF,0x0F,0x30,0xFF,0x0F,0xE0,0xFF,0x0F,0xC0,0xFF,0x0F,0x18,0xFE,0x07,0x08,0xFF,0x07,0x00,0xFD,0x07,0x00,0xFD,0x07,0x00,0xFC,0x07,0x00,0xF8,0x03,0x00,0xF8,0x03,0x00,0xE0, // 51 + 0x00,0xE0,0x00,0x00,0xF8,0x03,0x00,0xF8,0x03,0x00,0xFC,0x07,0x00,0xFC,0x07,0x00,0xFC,0x07,0x00,0xFE,0x07,0x00,0xFF,0x07,0x00,0xFF,0x0F,0x80,0xFF,0x0F,0xF8,0xFF,0x0F,0x1C,0xFF,0x0F,0x3E,0xFE,0x0F,0x7E,0xFE,0x07,0xC0,0xFC,0x07,0x80,0xF9,0x07,0x80,0xFD,0x07,0x80,0xFD,0x07,0x80,0xFB,0x03,0x80,0xF8,0x03,0x00,0xF0,0x01, // 52 + 0x00,0x1E,0x00,0x00,0x3F,0x00,0x80,0x7F,0x00,0x80,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0xE0,0x7F,0x00,0xE0,0xFF,0x00,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0xF0,0xFF,0x01,0xE0,0xFF,0x00,0xE0,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0x80,0x7F,0x00,0x80,0x7F,0x00,0x00,0x3F,0x00,0x00,0x1E, // 53 + 0xE0,0x01,0x00,0xF0,0x03,0x00,0xF8,0x07,0x00,0xF8,0x07,0x00,0xF8,0x07,0x00,0xFC,0x07,0x00,0xFE,0x07,0x00,0xFE,0x0F,0x00,0xFF,0x6F,0x02,0xFF,0xFF,0x01,0xFF,0xFF,0x00,0xFF,0x9F,0x00,0xFF,0x0F,0x00,0xFE,0x0F,0x00,0xFE,0x07,0x00,0xFC,0x07,0x00,0xF8,0x07,0x00,0xF8,0x07,0x00,0xF8,0x07,0x00,0xF0,0x03,0x00,0xE0,0x01, // 54 + 0xC0,0x03,0x00,0xE0,0x07,0x00,0xE0,0x0F,0x00,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF8,0x1F,0x00,0xFC,0x1F,0x00,0xFC,0x1F,0x00,0xFE,0x3F,0x00,0xFE,0x3F,0x07,0xFE,0x3F,0x07,0xFE,0x3F,0x00,0xFC,0x1F,0x00,0xFC,0x1F,0x00,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF0,0x0F,0x00,0xE0,0x0F,0x00,0xC0,0x03, // 55 + 0xE0,0x01,0x00,0xF0,0x07,0x00,0xF8,0x07,0x00,0xF8,0x0F,0x00,0xF8,0xCF,0x00,0xF8,0xCF,0x00,0xFC,0x0F,0x00,0xFE,0x0F,0x00,0xFE,0x1F,0x00,0xFF,0x1F,0x00,0xFF,0x1F,0x0E,0xFF,0x1F,0x0E,0xFF,0x1F,0x00,0xFE,0x0F,0x00,0xFE,0x0F,0x00,0xFC,0x0F,0x03,0xF8,0x0F,0x03,0xF8,0x0F,0x00,0xF8,0x07,0x00,0xF0,0x07,0x00,0xE0,0x01, // 56 + 0x00,0x50,0x00,0x00,0x54,0x00,0x00,0x54,0x00,0x00,0x54,0x00,0x00,0x44,0x00,0x00,0x40,0x00,0x00,0x5E,0x00,0x00,0x1F,0x00,0x00,0x3F,0x00,0x80,0x3F,0x00,0x80,0x3F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0x80,0x3F,0x00,0x80,0x3F,0x00,0x00,0x3F,0x00,0x00,0x1F,0x00,0x00,0x1E, // 57 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x0E,0x00,0x07,0x0E,0x00,0x07,0x0E, // 58 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x4E,0x00,0x07,0x6E,0x00,0x07,0x7E,0x00,0x00,0x3C, // 59 + 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,0xE0,0x00,0x00,0xE0,0x00,0x00,0xB0,0x01,0x00,0xB0,0x01,0x00,0xB0,0x01,0x00,0x18,0x03,0x00,0x18,0x03,0x00,0x0C,0x06,0x00,0x0C,0x06,0x00,0x06,0x0C, // 60 + 0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01,0x00,0x98,0x01, // 61 + 0x00,0x00,0x00,0x00,0x06,0x0C,0x00,0x0C,0x06,0x00,0x0C,0x06,0x00,0x18,0x03,0x00,0x18,0x03,0x00,0xB0,0x01,0x00,0xB0,0x01,0x00,0xB0,0x01,0x00,0xE0,0x00,0x00,0xE0,0x00,0x00,0x40,0x00,0x00,0x40, // 62 + 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x30,0x00,0x00,0x30,0xC0,0x0C,0x30,0xF0,0x0C,0x30,0x38,0x00,0x30,0x1C,0x00,0x70,0x0E,0x00,0xE0,0x07,0x00,0xC0,0x01, // 63 + 0x00,0x7F,0x00,0xC0,0xFF,0x01,0xE0,0x80,0x07,0x70,0x7C,0x06,0x38,0xFF,0x0E,0x98,0xC3,0x0C,0x98,0x61,0x0C,0x98,0x7F,0x0C,0xB8,0xFF,0x04,0x30,0xC0,0x00,0xF0,0xE0,0x00,0xC0,0x7F,0x00,0x00,0x3F, // 64 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x80,0x00,0x00,0x00,0x24,0x00,0x00,0xA2,0x00,0x00,0xA1,0x00,0x00,0xA1,0x00,0x70,0xA1,0x00,0x00,0xA1,0x00,0x00,0xA1,0x00,0x00,0xA2,0x00,0x00,0x24,0x00,0x80,0x00,0x00,0xC0, // 65 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x30,0x82,0x00,0x20,0x40,0x00,0x00,0x0F,0x00,0x80,0x18,0x00,0xC0,0x30,0x00,0x40,0x20,0x00,0x4C,0xA0,0x03,0x40,0x20,0x00,0xC0,0x30,0x00,0x80,0x18,0x00,0x00,0x0F,0x00,0x20,0xC0,0x00,0x30,0x82,0x00,0x00,0x02,0x00,0x00,0x02, // 66 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0xC0,0x10,0x00,0x40,0x20,0x00,0xE0,0x41,0x00,0x20,0x46,0x00,0x00,0x44,0x00,0x00,0x48,0x00,0x00,0x28,0x00,0x00,0x38,0x00,0x00,0x1C, // 67 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x20,0x80,0x00,0x60,0xC0,0x00,0x00,0x1F,0x00,0x80,0x31,0x00,0xC0,0x7F,0x00,0xD8,0x7F,0x07,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0xC0,0x7F,0x00,0x80,0x7F,0x00,0x80,0x3F,0x00,0x00,0x0E, // 68 + 0x00,0x00,0x00,0x80,0x08,0x00,0x80,0x0A,0x00,0x80,0x0A,0x00,0x80,0x0A,0x00,0x80,0x0F,0x00,0xC0,0x1A,0x00,0xE0,0x3A,0x00,0xA0,0x2A,0x00,0x90,0x4A,0x00,0x90,0x4A,0x00,0x90,0x4A,0x00,0x10,0x4A,0x00,0x20,0x2A,0x00,0x20,0x3A,0x00,0xC0,0x1A,0x00,0x80,0x0F,0x00,0x00,0x0A,0x00,0x00,0x02,0x00,0x00,0x02,0x00,0x00,0x02, // 69 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x00,0x29,0x00,0x80,0x39,0x00,0xC0,0x39,0x00,0xC0,0x39,0x00,0xC0,0xF9,0x00,0x00,0xF8,0x00,0x00,0xF8,0x00,0x00,0x68,0x00,0x00,0x0E,0x00,0x00,0x0F,0x00,0x00,0x0F,0x00,0x00,0x06, // 70 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x39,0x00,0x80,0x39,0x00,0x80,0x1F,0x00,0x80,0x1F,0x00,0xF0,0xF9,0x00,0xF0,0xF9,0x00,0x80,0x39,0x00,0x80,0x1F,0x00,0x80,0x3F,0x00,0x80,0x39,0x00,0x80,0x39, // 71 + 0x00,0xF1,0x01,0x00,0x19,0x03,0x04,0x0C,0x06,0x0C,0x04,0x04,0xC0,0x07,0x04,0x60,0x0C,0x04,0x30,0x06,0x06,0x10,0x03,0x04,0x17,0x01,0x08,0x10,0x01,0x08,0x30,0x01,0x08,0x60,0x01,0x08,0xC0,0x01,0x08,0x08,0x02,0x04,0x04,0x03,0x06,0x00,0x05,0x04,0x00,0x05,0x04,0x00,0x04,0x04,0x00,0x0C,0x06,0x00,0x18,0x03,0x00,0xF0, // 72 + 0x00,0xF0,0x00,0x00,0x18,0x03,0x00,0x0C,0x02,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x06,0x06,0x00,0x03,0x04,0x00,0x01,0x0C,0x00,0x01,0x08,0xF0,0x01,0x08,0x08,0x01,0x08,0x3C,0x01,0x0C,0x40,0x03,0x04,0x80,0x06,0x06,0x00,0x05,0x04,0x00,0x05,0x04,0x00,0x07,0x04,0x00,0x0F,0x02,0x80,0x19,0x03,0x00,0xF0, // 73 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x01,0x00,0x49,0x01,0x10,0x49,0x01,0x10,0x48,0x01,0x80,0x49,0x01,0x40,0x48,0x01,0x60,0x48,0x01,0x20,0x48,0x01,0x26,0x48,0x01,0x20,0x48,0x01,0x60,0x48,0x01,0x40,0x48,0x01,0x80,0x49,0x01,0x10,0x48,0x01,0x08,0x49,0x01,0x00,0x49,0x01,0x00,0x49,0x01, // 74 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x01,0x00,0x48,0x01,0x00,0x48,0x01,0x00,0x48,0x01,0xE0,0x4B,0x01,0x30,0x4A,0x01,0x18,0x48,0x01,0x78,0x48,0x01,0x80,0x49,0x01,0x00,0x49,0x01,0x00,0x4A,0x01,0x00,0x4A,0x01,0x00,0x4A,0x01,0x00,0x4A,0x01,0x00,0x48,0x01,0x00,0x48,0x01,0x00,0x48,0x01, // 75 + 0x80,0x4B,0x01,0x40,0x48,0x01,0x60,0x48,0x01,0x20,0x48,0x01,0x20,0x48,0x01,0x20,0x48,0x01,0x10,0x48,0x01,0x10,0x48,0x01,0x08,0x48,0x01,0x08,0x48,0x01,0x08,0x48,0x01,0x08,0x48,0x01,0x08,0x48,0x01,0x10,0x48,0x01,0x10,0x48,0x01,0x20,0x48,0x01,0x20,0x48,0x01,0x20,0x48,0x01,0x60,0x48,0x01,0x40,0x48,0x01,0x80,0x4B,0x01, // 76 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25,0x00,0x20,0x25, // 77 + 0x00,0x1E,0x00,0x00,0x21,0x00,0x80,0x61,0x00,0x80,0x40,0x00,0x80,0x40,0x00,0x80,0x40,0x00,0x60,0x60,0x00,0x20,0x40,0x00,0x10,0x80,0x00,0x10,0x80,0x00,0x10,0x80,0x00,0x10,0x80,0x00,0x10,0x80,0x00,0x20,0x40,0x00,0x60,0x60,0x00,0x80,0x40,0x00,0x80,0x40,0x00,0x80,0x40,0x00,0x80,0x61,0x00,0x00,0x21,0x00,0x00,0x1E, // 78 + 0xE0,0x01,0x00,0x10,0x03,0x00,0x18,0x06,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x06,0x04,0x00,0x02,0x0C,0x00,0x01,0x28,0x02,0x01,0xF8,0x01,0x01,0xF8,0x00,0x01,0x08,0x00,0x01,0x08,0x00,0x02,0x0C,0x00,0x06,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x18,0x06,0x00,0x10,0x03,0x00,0xE0,0x01, // 79 + 0xE0,0x01,0x00,0x10,0x03,0x00,0x18,0x06,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x06,0x04,0x00,0x02,0x0C,0x00,0x01,0x60,0x02,0x01,0xF0,0x01,0x01,0xF8,0x00,0x01,0x04,0x00,0x01,0x00,0x00,0x02,0x0C,0x00,0x06,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x18,0x06,0x00,0x10,0x03,0x00,0xE0,0x01, // 80 + 0xC0,0x03,0x00,0x20,0x04,0x00,0x10,0x0C,0x00,0x10,0x08,0x00,0x10,0x08,0x00,0x18,0x08,0x00,0x0C,0x18,0x00,0x04,0x10,0x00,0x02,0x20,0x00,0x02,0x20,0x07,0x02,0x20,0x07,0x02,0x20,0x00,0x04,0x30,0x00,0x0C,0x18,0x00,0x18,0x18,0x00,0x10,0x08,0x00,0x10,0x08,0x00,0x10,0x08,0x00,0x30,0x0C,0x00,0x60,0x06,0x00,0xC0,0x03, // 81 + 0xE0,0x01,0x00,0x10,0x03,0x00,0x18,0x06,0x00,0x08,0x04,0x00,0x08,0xE4,0x00,0x0C,0xE4,0x00,0x06,0x04,0x00,0x02,0x0C,0x00,0x01,0x08,0x00,0x01,0x08,0x0E,0x01,0x08,0x0E,0x01,0x08,0x00,0x02,0x0C,0x00,0x06,0x04,0x00,0x0C,0x04,0x03,0x08,0x04,0x03,0x08,0x04,0x00,0x08,0x04,0x00,0x10,0x02,0x00,0x30,0x03,0x00,0xE0,0x01, // 82 + 0x00,0x48,0x00,0x00,0x4A,0x00,0x00,0x4A,0x00,0x00,0x4A,0x00,0x00,0x42,0x00,0x00,0x40,0x00,0x00,0x4E,0x00,0x00,0x11,0x00,0x80,0x20,0x00,0x80,0x20,0x00,0xC0,0x20,0x00,0x60,0x60,0x00,0x20,0x40,0x00,0x20,0x40,0x00,0x20,0x40,0x00,0x60,0x60,0x00,0xC0,0x20,0x00,0x80,0x20,0x00,0x80,0x20,0x00,0x00,0x11,0x00,0x00,0x0E, // 83 + 0x00,0x05,0x00,0x20,0x05,0x00,0x20,0x05,0x00,0x20,0x05,0x00,0x20,0x04,0x00,0x00,0x04,0x00,0xE0,0x04,0x00,0x10,0x01,0x00,0x08,0x02,0x00,0x08,0xE2,0x00,0x04,0xE2,0x00,0x02,0x04,0x00,0x02,0x04,0x00,0x02,0x04,0x00,0x06,0x04,0x07,0x0C,0x02,0x07,0x08,0x02,0x00,0x08,0x02,0x00,0x10,0x02,0x00,0x10,0x01,0x00,0xE0, // 84 + 0xE0,0x01,0x00,0x10,0x02,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x0C,0x04,0x00,0x06,0x04,0x00,0x02,0xCC,0x06,0x01,0x88,0x03,0x01,0x88,0x02,0x01,0xE8,0x0E,0x01,0x88,0x03,0x02,0xCC,0x06,0x02,0x04,0x00,0x04,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x18,0x06,0x00,0x10,0x03,0x00,0xE0,0x01, // 85 + 0xE0,0x01,0x00,0x10,0x02,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x0C,0x04,0x00,0x06,0x00,0x00,0x02,0x68,0x00,0x01,0x38,0x00,0x01,0x28,0x00,0x01,0xEE,0x00,0x01,0x38,0x00,0x02,0x68,0x00,0x02,0x00,0x00,0x0C,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x08,0x04,0x00,0x18,0x06,0x00,0x10,0x03,0x00,0xE0,0x01, // 86 + 0xE0,0x03,0x00,0x30,0x86,0x00,0x18,0xCC,0x00,0x08,0x68,0x01,0x08,0xC8,0x01,0x08,0x08,0x00,0x0C,0x0C,0x00,0x06,0x18,0x09,0x02,0x10,0x0F,0x03,0x10,0x0F,0x03,0xD0,0x1D,0x03,0x10,0x0F,0x02,0x10,0x0F,0x06,0x18,0x09,0x0C,0x0C,0x00,0x08,0x08,0x00,0x08,0x08,0x03,0x08,0x88,0x02,0x18,0x8C,0x03,0x30,0x06,0x00,0xE0,0x03, // 87 + 0xE0,0x01,0x00,0x10,0x03,0x00,0x18,0x06,0x00,0x08,0x74,0x00,0x08,0x74,0x00,0x0C,0x04,0x0E,0x02,0x04,0x0E,0x02,0x0C,0x00,0x01,0x08,0x00,0x01,0xE8,0x00,0x01,0xE8,0x00,0x01,0x08,0x00,0x02,0x0C,0x00,0x02,0x04,0x0E,0x0C,0x04,0x0E,0x08,0x04,0x00,0x08,0x74,0x00,0x08,0x74,0x00,0x10,0x02,0x00,0x30,0x03,0x00,0xE0,0x01, // 88 + 0x00,0xF0,0x00,0x00,0x18,0x03,0x00,0x0C,0x06,0x00,0x04,0x04,0x00,0x04,0x04,0x00,0x0F,0x04,0x80,0x03,0x06,0x40,0x02,0x04,0x40,0x01,0x08,0x40,0x01,0x08,0x20,0x01,0x08,0x30,0x01,0x08,0x10,0x01,0x08,0x10,0x02,0x04,0x10,0x02,0x06,0x20,0x04,0x04,0x60,0x04,0x04,0x40,0x04,0x04,0x40,0x0C,0x06,0x80,0x18,0x03,0x00,0xF7, // 89 + 0x00,0x0F,0x00,0x80,0x10,0x00,0xC0,0x30,0x00,0x40,0x20,0x00,0x40,0x20,0x00,0x70,0x20,0x00,0x38,0x20,0x00,0x24,0x60,0x00,0x14,0xC0,0x09,0x14,0xC0,0x07,0x12,0xC0,0x03,0x11,0x40,0x00,0x11,0x40,0x00,0x21,0x60,0x00,0x21,0x20,0x00,0x42,0x20,0x00,0x46,0x20,0x00,0x44,0x20,0x00,0xC4,0x30,0x00,0x88,0x11,0x00,0x70,0x0F, // 90 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x7F,0xF8,0xFF,0x7F,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40, // 91 + 0x18,0x00,0x00,0x38,0x00,0x00,0xE0,0x00,0x00,0xC0,0x01,0x00,0x00,0x07,0x00,0x00,0x0E,0x00,0x00,0x38,0x00,0x00,0x70,0x00,0x00,0xC0,0x01,0x00,0x80,0x03,0x00,0x00,0x0E,0x00,0x00,0x0C, // 92 + 0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0xF8,0xFF,0x7F,0xF8,0xFF,0x7F, // 93 + 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x70,0x00,0x00,0x3C,0x00,0x00,0x0F,0x00,0xC0,0x03,0x00,0xF0,0x00,0x00,0xC0,0x03,0x00,0x00,0x0F,0x00,0x00,0x3C,0x00,0x00,0x70,0x00,0x00,0x40, // 94 + 0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30, // 95 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x30,0x00,0x00,0x60,0x00,0x00,0x40, // 96 + 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x00,0x06,0x0C,0x00,0x07,0x0C,0x00,0x03,0x0C,0x00,0x03,0x06,0x00,0x03,0x06,0x00,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 97 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F,0x00,0x0C,0x0C,0x00,0x06,0x0C,0x00,0x02,0x0C,0x00,0x03,0x0C,0x00,0x03,0x06,0x00,0x07,0x07,0x00,0xFE,0x03,0x00,0xFC, // 98 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x00,0xFC,0x03,0x00,0x0E,0x07,0x00,0x06,0x06,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x06,0x06, // 99 + 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x0E,0x0E,0x00,0x06,0x0C,0x00,0x03,0x0C,0x00,0x03,0x04,0x00,0x03,0x06,0x00,0x03,0x03,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F, // 100 + 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xFC,0x03,0x00,0x3E,0x07,0x00,0x36,0x06,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x36,0x0C,0x00,0x3E,0x06,0x00,0x38,0x06, // 101 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0xE0,0xFF,0x0F,0xF0,0xFF,0x0F,0x38,0x06,0x00,0x18,0x06,0x00,0x18,0x06,0x00,0x18,0x06,0x00,0x18,0x06,0x00,0x18, // 102 + 0x00,0x00,0x00,0x00,0xF0,0x63,0x00,0xFC,0x47,0x00,0x0E,0x4E,0x00,0x06,0x4C,0x00,0x03,0x4C,0x00,0x03,0x44,0x00,0x03,0x46,0x00,0x03,0x63,0x00,0xFF,0x7F,0x00,0xFF,0x3F, // 103 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F,0x00,0x0C,0x00,0x00,0x06,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x07,0x00,0x00,0xFE,0x0F,0x00,0xFC,0x0F, // 104 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x18,0xFF,0x0F,0x18,0xFF,0x0F,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C, // 105 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x03,0x40,0x00,0x03,0x40,0x00,0x03,0x40,0x00,0x03,0x40,0x00,0x03,0x60,0x18,0xFF,0x7F,0x18,0xFF,0x1F, // 106 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F,0x00,0x60,0x00,0x00,0xF0,0x00,0x00,0xD8,0x01,0x00,0x8C,0x03,0x00,0x06,0x07,0x00,0x03,0x0E,0x00,0x01,0x0C,0x00,0x00,0x08, // 107 + 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C, // 108 + 0x00,0xFF,0x0F,0x00,0xFF,0x0F,0x00,0x0C,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0xFF,0x0F,0x00,0xFE,0x0F,0x00,0x0C,0x00,0x00,0x02,0x00,0x00,0x03,0x00,0x00,0xFF,0x0F,0x00,0xFE,0x0F, // 109 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x0F,0x00,0x0C,0x00,0x00,0x06,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x07,0x00,0x00,0xFE,0x0F,0x00,0xFC,0x0F, // 110 + 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x00,0x06,0x06,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 111 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0xFF,0x7F,0x00,0x0C,0x0C,0x00,0x06,0x0C,0x00,0x02,0x0C,0x00,0x03,0x0C,0x00,0x03,0x06,0x00,0x07,0x07,0x00,0xFE,0x03,0x00,0xFC, // 112 + 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x0E,0x0E,0x00,0x06,0x0C,0x00,0x03,0x0C,0x00,0x03,0x04,0x00,0x03,0x06,0x00,0x03,0x03,0x00,0xFF,0x7F,0x00,0xFF,0x7F, // 113 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x0F,0x00,0x0C,0x00,0x00,0x06,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x0F,0x00,0x00,0x0F, // 114 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x07,0x00,0x3E,0x06,0x00,0x37,0x0C,0x00,0x63,0x0C,0x00,0x63,0x0C,0x00,0x63,0x0C,0x00,0xC3,0x0E,0x00,0xC6,0x07,0x00,0x80,0x03, // 115 + 0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0x00,0x06,0x00,0xF0,0xFF,0x03,0xF0,0xFF,0x07,0x00,0x06,0x0E,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x06, // 116 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0xFF,0x07,0x00,0x00,0x0E,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x06,0x00,0x00,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 117 + 0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x1F,0x00,0x00,0x7C,0x00,0x00,0xE0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0E,0x00,0x80,0x0F,0x00,0xE0,0x03,0x00,0x7C,0x00,0x00,0x1F,0x00,0x00,0x03, // 118 + 0x00,0x07,0x00,0x00,0xFF,0x01,0x00,0xF8,0x0F,0x00,0x00,0x0E,0x00,0xF8,0x03,0x00,0x1F,0x00,0x00,0x3F,0x00,0x00,0xF8,0x03,0x00,0x00,0x0E,0x00,0xF0,0x0F,0x00,0xFF,0x01,0x00,0x07, // 119 + 0x00,0x00,0x08,0x00,0x01,0x0C,0x00,0x03,0x07,0x00,0x8E,0x03,0x00,0xDC,0x00,0x00,0x78,0x00,0x00,0x70,0x00,0x00,0xD8,0x00,0x00,0x8E,0x03,0x00,0x07,0x07,0x00,0x01,0x0C,0x00,0x00,0x08, // 120 + 0x00,0x00,0x40,0x00,0x03,0x40,0x00,0x0F,0x40,0x00,0x3C,0x40,0x00,0xF0,0x60,0x00,0xC0,0x73,0x00,0x00,0x3F,0x00,0x00,0x0F,0x00,0xE0,0x03,0x00,0xF8,0x00,0x00,0x1E,0x00,0x00,0x07,0x00,0x00,0x01, // 121 + 0x00,0x00,0x00,0x00,0x03,0x0C,0x00,0x03,0x0E,0x00,0x03,0x0F,0x00,0x83,0x0D,0x00,0xC3,0x0C,0x00,0x63,0x0C,0x00,0x33,0x0C,0x00,0x1B,0x0C,0x00,0x0F,0x0C,0x00,0x07,0x0C, // 122 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0xE0,0xF0,0x78,0xF0,0x9F,0x7F,0x38,0x0F,0x6F,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40, // 123 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xFF,0x0F,0xF8,0xFF,0x0F, // 124 + 0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x18,0x00,0x40,0x38,0x0F,0x6F,0xF0,0x9F,0x7F,0xE0,0xF0,0x78,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60, // 125 + 0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0xF0,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x30,0x00,0x00,0x60,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0x70,0x00,0x00,0x30, // 126 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF3,0x7F,0x00,0xF3,0x7F, // 161 + 0x00,0x00,0x00,0x00,0x1E,0x00,0x80,0x7F,0x00,0xC0,0xE1,0x00,0xE0,0xC0,0x01,0x60,0x80,0x01,0xFE,0xFF,0x1F,0xFE,0xFF,0x1F,0x60,0x80,0x01,0x60,0x80,0x01,0xC0,0xC0, // 162 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x0C,0x0E,0xE0,0xFF,0x0F,0xF0,0xFF,0x0D,0x38,0x0C,0x0C,0x18,0x0C,0x0C,0x18,0x0C,0x0C,0x18,0x0C,0x0C,0x30,0x00,0x0C,0x00,0x00,0x0C, // 163 + 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3D,0x03,0x80,0xFF,0x01,0x00,0xC3,0x00,0x80,0x81,0x01,0x80,0x81,0x01,0x80,0x81,0x01,0x00,0xC3,0x00,0x80,0xFF,0x01,0xC0,0x3D,0x03, // 164 + 0x30,0x00,0x00,0x70,0x98,0x01,0xC0,0x99,0x01,0x80,0x9B,0x01,0x00,0xFE,0x0F,0x00,0xFE,0x0F,0x80,0x9B,0x01,0xC0,0x99,0x01,0x70,0x98,0x01,0x30, // 165 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xF3,0x07,0xF8,0xF3,0x07, // 166 + 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x39,0x60,0xF0,0x7F,0x40,0x30,0xE3,0x40,0x18,0xC3,0x41,0x18,0x86,0x41,0x18,0x8C,0x43,0x18,0x0C,0x43,0x18,0x18,0x67,0x30,0xF0,0x7F,0x00,0xE0,0x3C, // 167 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x60, // 168 + 0x00,0x7F,0x00,0xC0,0x80,0x01,0x20,0x3E,0x02,0x90,0xFF,0x04,0x88,0xC1,0x08,0xC8,0x80,0x09,0xC8,0x80,0x09,0xC8,0x80,0x09,0xC8,0x80,0x09,0x10,0x00,0x04,0x20,0x00,0x02,0xC0,0x80,0x01,0x00,0x7F, // 169 + 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0x00,0xF0,0x03,0x00,0x30,0x03,0x00,0x18,0x03,0x00,0x18,0x03,0x00,0x18,0x01,0x00,0x98,0x01,0x00,0xF8,0x03,0x00,0xF8,0x03, // 170 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0xF8,0x00,0x00,0xDE,0x03,0x00,0x8F,0x07,0x00,0x02,0x02,0x00,0x70,0x00,0x00,0xF8,0x00,0x00,0xDE,0x03,0x00,0x8F,0x07,0x00,0x02,0x02, // 171 + 0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0xE0,0x03,0x00,0xE0,0x03, // 172 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60, // 173 + 0x00,0x7F,0x00,0xC0,0x80,0x01,0x20,0x00,0x02,0xD0,0xFF,0x05,0xC8,0xFF,0x09,0x48,0x10,0x08,0x48,0x10,0x08,0x48,0x10,0x08,0xC8,0xF8,0x08,0x90,0xEF,0x05,0xA0,0x87,0x03,0xC0,0x80,0x01,0x00,0x7F, // 174 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x60, // 175 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x98,0x01,0x00,0x08,0x01,0x00,0x08,0x01,0x00,0x98,0x01,0x00,0xF0, // 176 + 0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0xF0,0xFF,0x0C,0xF0,0xFF,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C,0x00,0x06,0x0C, // 177 + 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x18,0x00,0x10,0x1C,0x00,0x10,0x16,0x00,0x10,0x13,0x00,0x10,0x13,0x00,0x90,0x11,0x00,0xF0,0x10,0x00,0x60,0x10, // 178 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x10,0x11,0x00,0x10,0x11,0x00,0xF0,0x1E,0x00,0x60,0x0E, // 179 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x60,0x00,0x00,0x30,0x00,0x00,0x10, // 180 + 0x00,0x00,0x00,0x00,0xFF,0x7F,0x00,0xFF,0x7F,0x00,0x00,0x0E,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x06,0x00,0x80,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 181 + 0x00,0x00,0x00,0x80,0x03,0x00,0xE0,0x0F,0x00,0xE0,0x0F,0x00,0xF0,0x1F,0x00,0xF0,0x1F,0x00,0xF0,0xFF,0x7F,0xF0,0xFF,0x7F,0x30,0x00,0x00,0x30,0x00,0x00,0xF0,0xFF,0x7F,0xF0,0xFF,0x7F,0x30, // 182 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0xE0,0x00,0x00,0xE0, // 183 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x70,0x00,0x00,0x40, // 184 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x10,0x00,0x60,0x10,0x00,0x30,0x10,0x00,0xF0,0x1F,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,0x10, // 185 + 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0xF0,0x01,0x00,0xB8,0x03,0x00,0x18,0x03,0x00,0x18,0x03,0x00,0x18,0x03,0x00,0xB8,0x03,0x00,0xF0,0x01,0x00,0xE0, // 186 + 0x00,0x00,0x00,0x00,0x02,0x02,0x00,0x8F,0x07,0x00,0xDE,0x03,0x00,0xF8,0x00,0x00,0x70,0x00,0x00,0x02,0x02,0x00,0x8F,0x07,0x00,0xDE,0x03,0x00,0xF8,0x00,0x00,0x70, // 187 + 0x60,0x08,0x08,0x30,0x08,0x0C,0xF0,0x0F,0x07,0xF0,0x8F,0x03,0x00,0xE8,0x00,0x00,0x70,0x03,0x00,0x9C,0x03,0x00,0xCE,0x02,0x00,0x67,0x02,0xC0,0xF1,0x0F,0xE0,0xF0,0x0F,0x30,0x00,0x02,0x10,0x00,0x02, // 188 + 0x60,0x08,0x08,0x30,0x08,0x0C,0xF0,0x0F,0x07,0xF0,0xCF,0x03,0x00,0xE8,0x00,0x00,0x38,0x00,0x00,0x1C,0x0C,0x00,0x17,0x0E,0xC0,0x13,0x0B,0xE0,0x90,0x09,0x30,0xF0,0x09,0x10,0xE0,0x08, // 189 + 0x00,0x00,0x08,0x90,0x08,0x0C,0x90,0x08,0x07,0x90,0x88,0x03,0xF0,0xEF,0x00,0x60,0x77,0x03,0x00,0x9C,0x03,0x00,0xCE,0x02,0x00,0x67,0x02,0xC0,0xF1,0x0F,0xE0,0xF0,0x0F,0x30,0x00,0x02,0x10,0x00,0x02, // 190 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x00,0x7E,0x00,0x00,0x67,0x00,0x80,0x43,0x00,0xC0,0x41,0x00,0xF3,0x40,0x00,0x33,0x40,0x00,0x00,0x40,0x00,0x00,0x60, // 191 + 0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x80,0x0F,0x00,0xF0,0x03,0x00,0xFE,0x01,0xC1,0x8F,0x01,0xF1,0x81,0x01,0xF2,0x81,0x01,0xC4,0x8F,0x01,0x00,0xFE,0x01,0x00,0xF0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0C, // 192 + 0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x80,0x0F,0x04,0xF0,0x03,0x06,0xFE,0x01,0xC3,0x8F,0x01,0xF1,0x81,0x01,0xF0,0x81,0x01,0xC0,0x8F,0x01,0x00,0xFE,0x01,0x00,0xF0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0C, // 193 + 0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x80,0x0F,0x00,0xF0,0x03,0x03,0xFE,0x01,0xC1,0x8F,0x01,0xF0,0x81,0x01,0xF1,0x81,0x01,0xC3,0x8F,0x01,0x00,0xFE,0x01,0x00,0xF0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0C, // 194 + 0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x80,0x0F,0x06,0xF0,0x03,0x02,0xFE,0x01,0xC2,0x8F,0x01,0xF2,0x81,0x01,0xF2,0x81,0x01,0xC6,0x8F,0x01,0x02,0xFE,0x01,0x00,0xF0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0C, // 195 + 0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x80,0x0F,0x02,0xF0,0x03,0x02,0xFE,0x01,0xC0,0x8F,0x01,0xF0,0x81,0x01,0xF0,0x81,0x01,0xC2,0x8F,0x01,0x02,0xFE,0x01,0x00,0xF0,0x03,0x00,0x80,0x0F,0x00,0x00,0x0C, // 196 + 0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0xC0,0x0F,0x00,0xF8,0x01,0x00,0xBF,0x01,0xFC,0x87,0x01,0xF2,0x80,0x01,0xEC,0x87,0x01,0x00,0xBF,0x01,0x00,0xF8,0x01,0x00,0xC0,0x0F,0x00,0x00,0x0E, // 197 + 0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0xE0,0x0F,0x00,0xFC,0x01,0x80,0xDF,0x00,0xF0,0xC3,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C, // 198 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x80,0xFF,0x03,0xC0,0x81,0x07,0xE0,0x00,0x07,0x70,0x00,0x2E,0x30,0x00,0x3C,0x30,0x00,0x6C,0x30,0x00,0x4C,0x30,0x00,0x0C,0x30,0x00,0x0C, // 199 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x30,0x18,0x0C,0x31,0x18,0x0C,0x31,0x18,0x0C,0x32,0x18,0x0C,0x34,0x18,0x0C,0x30,0x18,0x0C,0x30,0x00,0x0C, // 200 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x34,0x18,0x0C,0x32,0x18,0x0C,0x31,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x00,0x0C, // 201 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x33,0x18,0x0C,0x31,0x18,0x0C,0x30,0x18,0x0C,0x31,0x18,0x0C,0x33,0x18,0x0C,0x30,0x18,0x0C,0x30,0x00,0x0C, // 202 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF2,0xFF,0x0F,0x32,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x18,0x0C,0x32,0x18,0x0C,0x32,0x18,0x0C,0x30,0x00,0x0C, // 203 + 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x31,0x00,0x0C,0xF1,0xFF,0x0F,0xF2,0xFF,0x0F,0x34,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C, // 204 + 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0C,0x34,0x00,0x0C,0x36,0x00,0x0C,0x33,0x00,0x0C,0xF1,0xFF,0x0F,0xF0,0xFF,0x0F,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C, // 205 + 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0C,0x30,0x00,0x0C,0x33,0x00,0x0C,0x31,0x00,0x0C,0xF0,0xFF,0x0F,0xF1,0xFF,0x0F,0x33,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C, // 206 + 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0C,0x32,0x00,0x0C,0x32,0x00,0x0C,0x30,0x00,0x0C,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x32,0x00,0x0C,0x32,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C, // 207 + 0x00,0x18,0x00,0x00,0x18,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0x30,0x18,0x0C,0x30,0x18,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x70,0x00,0x0E,0xE0,0x80,0x07,0xC0,0xFF,0x03,0x00,0x7F, // 208 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF6,0xFF,0x0F,0xE2,0x01,0x00,0x82,0x07,0x00,0x02,0x1E,0x00,0x02,0x78,0x00,0x06,0xE0,0x01,0x02,0x80,0x07,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F, // 209 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xC0,0xFF,0x03,0xE0,0x00,0x07,0x71,0x00,0x0E,0x31,0x00,0x0C,0x32,0x00,0x0C,0x34,0x00,0x0C,0x70,0x00,0x0E,0xE0,0x00,0x07,0xC0,0xFF,0x03,0x00,0xFF, // 210 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xC4,0xFF,0x03,0xE6,0x00,0x07,0x73,0x00,0x0E,0x31,0x00,0x0C,0x30,0x00,0x0C,0x30,0x00,0x0C,0x70,0x00,0x0E,0xE0,0x00,0x07,0xC0,0xFF,0x03,0x00,0xFF, // 211 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xC0,0xFF,0x03,0xE3,0x00,0x07,0x71,0x00,0x0E,0x30,0x00,0x0C,0x31,0x00,0x0C,0x33,0x00,0x0C,0x70,0x00,0x0E,0xE0,0x00,0x07,0xC0,0xFF,0x03,0x00,0xFF, // 212 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xC6,0xFF,0x03,0xE2,0x00,0x07,0x72,0x00,0x0E,0x32,0x00,0x0C,0x34,0x00,0x0C,0x36,0x00,0x0C,0x72,0x00,0x0E,0xE0,0x00,0x07,0xC0,0xFF,0x03,0x00,0xFF, // 213 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0xC2,0xFF,0x03,0xE2,0x00,0x07,0x70,0x00,0x0E,0x30,0x00,0x0C,0x30,0x00,0x0C,0x32,0x00,0x0C,0x72,0x00,0x0E,0xE0,0x00,0x07,0xC0,0xFF,0x03,0x00,0xFF, // 214 + 0x00,0x00,0x00,0x00,0x06,0x0C,0x00,0x0C,0x06,0x00,0x18,0x03,0x00,0xB0,0x01,0x00,0xE0,0x00,0x00,0xE0,0x00,0x00,0xB0,0x01,0x00,0x18,0x03,0x00,0x0C,0x06,0x00,0x06,0x0C, // 215 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x08,0xC0,0xFF,0x0F,0xE0,0x00,0x07,0x70,0xC0,0x0F,0x30,0xF0,0x0C,0x30,0x3C,0x0C,0x30,0x0F,0x0C,0xF0,0x03,0x0E,0xE0,0x80,0x07,0xF0,0xFF,0x03,0x10,0xFF, // 216 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x03,0xF0,0xFF,0x07,0x00,0x00,0x0E,0x01,0x00,0x0C,0x01,0x00,0x0C,0x02,0x00,0x0C,0x04,0x00,0x0C,0x00,0x00,0x06,0xF0,0xFF,0x07,0xF0,0xFF,0x01, // 217 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x03,0xF4,0xFF,0x07,0x06,0x00,0x0E,0x03,0x00,0x0C,0x01,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x06,0xF0,0xFF,0x07,0xF0,0xFF,0x01, // 218 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x03,0xF0,0xFF,0x07,0x03,0x00,0x0E,0x01,0x00,0x0C,0x00,0x00,0x0C,0x01,0x00,0x0C,0x03,0x00,0x0C,0x00,0x00,0x06,0xF0,0xFF,0x07,0xF0,0xFF,0x01, // 219 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x03,0xF2,0xFF,0x07,0x02,0x00,0x0E,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x02,0x00,0x0C,0x02,0x00,0x06,0xF0,0xFF,0x07,0xF0,0xFF,0x01, // 220 + 0x00,0x00,0x00,0x30,0x00,0x00,0xF0,0x00,0x00,0xC4,0x03,0x00,0x06,0x0F,0x00,0x03,0xFC,0x0F,0x01,0xFC,0x0F,0x00,0x0F,0x00,0xC0,0x03,0x00,0xF0,0x00,0x00,0x30, // 221 + 0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xFF,0x0F,0xF0,0xFF,0x0F,0xC0,0x80,0x01,0xC0,0x80,0x01,0xC0,0x80,0x01,0xC0,0x80,0x01,0xC0,0xC0,0x00,0x80,0xE1,0x00,0x80,0x7F,0x00,0x00,0x1E, // 222 + 0x00,0x00,0x00,0xC0,0xFF,0x0F,0xF0,0xFF,0x0F,0x30,0x00,0x00,0x18,0x0C,0x0C,0x18,0x1E,0x0C,0x18,0x1B,0x0C,0x98,0x31,0x0C,0xF8,0x60,0x0C,0x70,0x60,0x0E,0x00,0xC0,0x07,0x00,0x80,0x03, // 223 + 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x00,0x06,0x0C,0x10,0x07,0x0C,0x30,0x03,0x0C,0x20,0x03,0x06,0x40,0x03,0x06,0x00,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 224 + 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x00,0x06,0x0C,0x40,0x07,0x0C,0x60,0x03,0x0C,0x30,0x03,0x06,0x10,0x03,0x06,0x00,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 225 + 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x00,0x06,0x0C,0x20,0x07,0x0C,0x30,0x03,0x0C,0x18,0x03,0x06,0x30,0x03,0x06,0x20,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 226 + 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x60,0x06,0x0C,0x20,0x07,0x0C,0x20,0x03,0x0C,0x40,0x03,0x06,0x40,0x03,0x06,0x60,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 227 + 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x60,0x06,0x0C,0x00,0x07,0x0C,0x00,0x03,0x0C,0x00,0x03,0x06,0x00,0x03,0x06,0x60,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 228 + 0x00,0x00,0x00,0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x1E,0x0E,0x00,0x06,0x0C,0x78,0x07,0x0C,0x48,0x03,0x0C,0x78,0x03,0x06,0x00,0x03,0x06,0x00,0x03,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 229 + 0x00,0xF0,0x03,0x00,0xFC,0x07,0x00,0x0E,0x0E,0x00,0x07,0x0C,0x00,0x03,0x0E,0x00,0x03,0x07,0x00,0xFE,0x03,0x00,0xFE,0x07,0x00,0x33,0x0E,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x3E,0x0C,0x00,0x3C,0x04, // 230 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x00,0xFC,0x03,0x00,0x0E,0x07,0x00,0x06,0x0E,0x00,0x03,0x2C,0x00,0x03,0x3C,0x00,0x03,0x6C,0x00,0x03,0x4C,0x00,0x03,0x0C,0x00,0x06,0x06, // 231 + 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xFC,0x03,0x00,0x3E,0x07,0x00,0x36,0x06,0x10,0x33,0x0C,0x10,0x33,0x0C,0x20,0x33,0x0C,0x40,0x33,0x0C,0x00,0x36,0x0C,0x00,0x3E,0x06,0x00,0x38,0x06, // 232 + 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xFC,0x03,0x00,0x3E,0x07,0x00,0x36,0x06,0x40,0x33,0x0C,0x20,0x33,0x0C,0x30,0x33,0x0C,0x10,0x33,0x0C,0x00,0x36,0x0C,0x00,0x3E,0x06,0x00,0x38,0x06, // 233 + 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xFC,0x03,0x00,0x3E,0x07,0x20,0x36,0x06,0x30,0x33,0x0C,0x18,0x33,0x0C,0x18,0x33,0x0C,0x30,0x33,0x0C,0x00,0x36,0x0C,0x00,0x3E,0x06,0x00,0x38,0x06, // 234 + 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xFC,0x03,0x00,0x3E,0x07,0x60,0x36,0x06,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x33,0x0C,0x00,0x33,0x0C,0x60,0x36,0x0C,0x00,0x3E,0x06,0x00,0x38,0x06, // 235 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x00,0x03,0x00,0x10,0xFF,0x0F,0x20,0xFF,0x0F,0x40,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C, // 236 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x40,0x03,0x00,0x60,0x03,0x00,0x30,0xFF,0x0F,0x10,0xFF,0x0F,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C, // 237 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x20,0x03,0x00,0x30,0x03,0x00,0x18,0xFF,0x0F,0x18,0xFF,0x0F,0x30,0x00,0x0C,0x20,0x00,0x0C,0x00,0x00,0x0C, // 238 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x60,0x03,0x00,0x00,0x03,0x00,0x00,0xFF,0x0F,0x00,0xFF,0x0F,0x00,0x00,0x0C,0x60,0x00,0x0C,0x00,0x00,0x0C, // 239 + 0x00,0x00,0x00,0x00,0xF0,0x01,0x18,0xF8,0x03,0x58,0x1C,0x07,0xF8,0x0E,0x0E,0x78,0x06,0x0C,0x38,0x06,0x0C,0x7C,0x06,0x0C,0xEE,0x0C,0x0E,0xC4,0x1F,0x07,0x00,0xFF,0x03,0x00,0xFC, // 240 + 0x00,0x00,0x00,0x00,0xFF,0x0F,0x40,0xFF,0x0F,0x60,0x0C,0x00,0x20,0x06,0x00,0x60,0x03,0x00,0x40,0x03,0x00,0x40,0x03,0x00,0x60,0xFE,0x0F,0x00,0xFC,0x0F, // 241 + 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x00,0x06,0x06,0x00,0x03,0x0C,0x10,0x03,0x0C,0x30,0x03,0x0C,0x60,0x03,0x0C,0x40,0x03,0x0C,0x00,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 242 + 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x00,0x06,0x06,0x40,0x03,0x0C,0x20,0x03,0x0C,0x30,0x03,0x0C,0x10,0x03,0x0C,0x00,0x03,0x0C,0x00,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 243 + 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x00,0x06,0x06,0x20,0x03,0x0C,0x30,0x03,0x0C,0x08,0x03,0x0C,0x30,0x03,0x0C,0x20,0x03,0x0C,0x00,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 244 + 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x40,0x06,0x06,0x20,0x03,0x0C,0x20,0x03,0x0C,0x60,0x03,0x0C,0x40,0x03,0x0C,0x40,0x03,0x0C,0x20,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 245 + 0x00,0x00,0x00,0x00,0xF8,0x01,0x00,0xFE,0x07,0x60,0x06,0x06,0x60,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0C,0x60,0x03,0x0C,0x60,0x06,0x06,0x00,0xFE,0x07,0x00,0xF8,0x01, // 246 + 0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xCC,0x0C,0x00,0xCC,0x0C,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0,0x00,0x00,0xC0, // 247 + 0x00,0x00,0x00,0x00,0xF8,0x09,0x00,0xFC,0x0F,0x00,0x0E,0x07,0x00,0x87,0x0F,0x00,0xC3,0x0D,0x00,0x63,0x0C,0x00,0x3B,0x0C,0x00,0x1F,0x0C,0x00,0x06,0x07,0x00,0xFF,0x03,0x00,0xF9,0x01, // 248 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0xFF,0x07,0x00,0x00,0x0E,0x10,0x00,0x0C,0x30,0x00,0x0C,0x60,0x00,0x06,0x40,0x00,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 249 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0xFF,0x07,0x40,0x00,0x0E,0x60,0x00,0x0C,0x30,0x00,0x0C,0x10,0x00,0x06,0x00,0x00,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 250 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x00,0xFF,0x07,0x20,0x00,0x0E,0x30,0x00,0x0C,0x08,0x00,0x0C,0x30,0x00,0x06,0x20,0x00,0x03,0x00,0xFF,0x0F,0x00,0xFF,0x0F, // 251 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x60,0xFF,0x07,0x60,0x00,0x0E,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x06,0x60,0x00,0x03,0x60,0xFF,0x0F,0x00,0xFF,0x0F, // 252 + 0x00,0x00,0x40,0x00,0x03,0x40,0x00,0x0F,0x40,0x00,0x3C,0x40,0x00,0xF0,0x60,0x40,0xC0,0x63,0x20,0x00,0x3F,0x30,0x00,0x1F,0x10,0xC0,0x07,0x00,0xF8,0x00,0x00,0x3E,0x00,0x00,0x07,0x00,0x00,0x01, // 253 + 0x00,0x00,0x00,0xF0,0xFF,0x7F,0xF0,0xFF,0x7F,0x00,0x0C,0x0C,0x00,0x06,0x0C,0x00,0x02,0x0C,0x00,0x03,0x0C,0x00,0x03,0x0E,0x00,0x07,0x07,0x00,0xFE,0x03,0x00,0xFC, // 254 + 0x00,0x00,0x40,0x00,0x03,0x40,0x00,0x0F,0x40,0x00,0x3C,0x40,0x60,0xF0,0x60,0x00,0xC0,0x63,0x00,0x00,0x3F,0x00,0x00,0x1F,0x00,0xC0,0x07,0x60,0xF8,0x00,0x00,0x3E,0x00,0x00,0x07,0x00,0x00,0x01 // 255 +}; diff --git a/examples/VisualCrossingWeatherStationDemo/WeatherStationImages.h b/examples/VisualCrossingWeatherStationDemo/WeatherStationImages.h new file mode 100644 index 0000000..14e2f87 --- /dev/null +++ b/examples/VisualCrossingWeatherStationDemo/WeatherStationImages.h @@ -0,0 +1,50 @@ +#define WiFi_Logo_width 60 +#define WiFi_Logo_height 36 +const uint8_t WiFi_Logo_bits[] PROGMEM = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, + 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, + 0x00, 0xFF, 0xFF, 0xFF, 0x07, 0xC0, 0x83, 0x01, 0x80, 0xFF, 0xFF, 0xFF, + 0x01, 0x00, 0x07, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x0C, 0x00, + 0xC0, 0xFF, 0xFF, 0x7C, 0x00, 0x60, 0x0C, 0x00, 0xC0, 0x31, 0x46, 0x7C, + 0xFC, 0x77, 0x08, 0x00, 0xE0, 0x23, 0xC6, 0x3C, 0xFC, 0x67, 0x18, 0x00, + 0xE0, 0x23, 0xE4, 0x3F, 0x1C, 0x00, 0x18, 0x00, 0xE0, 0x23, 0x60, 0x3C, + 0x1C, 0x70, 0x18, 0x00, 0xE0, 0x03, 0x60, 0x3C, 0x1C, 0x70, 0x18, 0x00, + 0xE0, 0x07, 0x60, 0x3C, 0xFC, 0x73, 0x18, 0x00, 0xE0, 0x87, 0x70, 0x3C, + 0xFC, 0x73, 0x18, 0x00, 0xE0, 0x87, 0x70, 0x3C, 0x1C, 0x70, 0x18, 0x00, + 0xE0, 0x87, 0x70, 0x3C, 0x1C, 0x70, 0x18, 0x00, 0xE0, 0x8F, 0x71, 0x3C, + 0x1C, 0x70, 0x18, 0x00, 0xC0, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x08, 0x00, + 0xC0, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x0C, 0x00, 0x80, 0xFF, 0xFF, 0x1F, + 0x00, 0x00, 0x06, 0x00, 0x80, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x07, 0x00, + 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xF8, 0xFF, 0xFF, + 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + }; + +const uint8_t activeSymbole[] PROGMEM = { + B00000000, + B00000000, + B00011000, + B00100100, + B01000010, + B01000010, + B00100100, + B00011000 +}; + +const uint8_t inactiveSymbole[] PROGMEM = { + B00000000, + B00000000, + B00000000, + B00000000, + B00011000, + B00011000, + B00000000, + B00000000 +}; diff --git a/src/VisualCrossing.cpp b/src/VisualCrossing.cpp new file mode 100644 index 0000000..1871512 --- /dev/null +++ b/src/VisualCrossing.cpp @@ -0,0 +1,250 @@ +/**The MIT License (MIT) + + Copyright (c) 2018 by ThingPulse Ltd., https://thingpulse.com + + 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 +#include +#include "VisualCrossing.h" + +VisualCrossing::VisualCrossing() { + +} + +uint8_t VisualCrossing::updateForecasts(VisualCrossingData *forecastData, VisualCrossingData ¤tData, String key, String location, uint8_t maxForecasts) { + this->maxForecasts = maxForecasts; + return doUpdate(forecastData, currentData, buildPath(key, location)); +} + +String VisualCrossing::buildPath(String key, String locationParameter) { + String units = metric ? "metric" : "us"; + return "/VisualCrossingWebServices/rest/services/timeline/" + locationParameter + "/next" + (maxForecasts-1) + "days?" + "unitGroup=" + units + "&lang=" + language + "&include=days,fcst,current&iconset=icons2" + "&key=" + key + "&contentType=json"; +} + +uint8_t VisualCrossing::doUpdate(VisualCrossingData *forecastData, VisualCrossingData ¤tData, String path) { + unsigned long lostTest = 10000UL; + unsigned long lost_do = millis(); + this->currentForecast = 0; + this->forecastData = forecastData; + this->currentData = ¤tData; + JsonStreamingParser parser; + parser.setListener(this); + Serial.printf("[HTTPS] Requesting resource at https://%s:%u%s\n", host.c_str(), port, path.c_str()); + + WiFiClientSecure client; + client.setInsecure(); + if(client.connect(host.c_str(), port)) { + bool isBody = false; + char c; + Serial.println("[HTTPS] connected, now GETting data"); + client.print("GET " + path + " HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Connection: close\r\n\r\n"); + + while (client.connected() || client.available()) { + if (client.available()) { + if ((millis() - lost_do) > lostTest) { + Serial.println("[HTTPS] lost in client with a timeout"); + client.stop(); + ESP.restart(); + } + c = client.read(); + if (c == '{' || c == '[') { + isBody = true; + } + if (isBody) { + parser.parse(c); + } + } + // give WiFi and TCP/IP libraries a chance to handle pending events + yield(); + } + client.stop(); + } else { + Serial.println("[HTTPS] failed to connect to host"); + } + Serial.println(currentData.description); + this->forecastData = nullptr; + this->currentData = nullptr; + return currentForecast; +} + +void VisualCrossing::whitespace(char c) { + Serial.println("whitespace"); +} + +void VisualCrossing::startDocument() { + Serial.println("start document"); +} + +void VisualCrossing::key(String key) { + currentKey = String(key); +} + +void VisualCrossing::value(String value) { + if (currentParent == "") { + // "latitude": 47.37 float latitude; + if (currentKey == "latitude") { + this->currentData->latitude = value.toFloat(); + } + // "longitude": 8.54, float longitude; + if (currentKey == "longitude") { + this->currentData->longitude = value.toFloat(); + } + } + else if (currentParent == "days" || currentParent == "currentConditions") { + VisualCrossingData *inProgressData; + if (currentParent == "days") inProgressData = &forecastData[currentForecast]; + else if (currentParent == "currentConditions") inProgressData = currentData; + else return; + + // "datetime": "2018-05-23", String observationTimeText; + if (currentKey == "datetime") { + inProgressData->observationTimeText = value; + } + // {"datetimeEpoch":1527066000, uint32_t observationTime; + if (currentKey == "datetimeEpoch") { + inProgressData->observationTime = value.toInt(); + } + // "temp":17.35, float temp; + if (currentKey == "temp") { + inProgressData->temp = value.toFloat(); + } + // "tempmin":16.89, float tempMin; + if (currentKey == "tempmin") { + inProgressData->tempMin = value.toFloat(); + } + // "temp_max":17.35, float tempMax; + if (currentKey == "tempmax") { + inProgressData->tempMax = value.toFloat(); + } + // "humidity":97, float humidity; + if (currentKey == "humidity") { + inProgressData->humidity = value.toFloat(); + } + // "windspeed":1.77, float windSpeed; + if (currentKey == "windspeed") { + inProgressData->windSpeed = value.toFloat(); + } + // "deg":207.501 float windDeg; + if (currentKey == "winddir") { + inProgressData->windDeg = value.toFloat(); + } + // "pressure":970.8, float pressure; + if (currentKey == "pressure") { + inProgressData->pressure = value.toFloat(); + } + // "cloudcover": 44.4, float clouds; + if (currentKey == "cloudcover") { + inProgressData->clouds = value.toFloat(); + } + // "sunriseEpoch":1526960448, uint32_t sunrise; + if (currentKey == "sunriseEpoch") { + inProgressData->sunrise = value.toInt(); + } + // "sunsetEpoch": 1527015901, uint32_t sunset; + if (currentKey == "sunsetEpoch") { + inProgressData->sunset = value.toInt(); + } + // "conditions":"Partially cloudy", String conditions; + if (currentKey == "conditions") { + inProgressData->conditions = value; + } + // "description":"Partly cloudy throughout the day.", String description; + if (currentKey == "description") { + inProgressData->description = value; + } + // "icon":"partly-cloudy-day", String icon; + if (currentKey == "icon") { + inProgressData->icon = value; + } + } +} + +void VisualCrossing::endArray() { + +} + + +void VisualCrossing::startObject() { + if (currentKey == "days" || currentKey == "stations" || currentKey == "currentConditions") + currentParent = currentKey; +} + +void VisualCrossing::endObject() { + if (currentParent == "days") { + // Always use daytime MeteoCon for forecast + forecastData[currentForecast].iconMeteoCon = getMeteoconIcon(forecastData[currentForecast].icon); + currentForecast++; + if (currentForecast >= maxForecasts) currentParent = ""; + } + else if (currentParent == "currentConditions") { + currentParent = ""; + // Get MeteoCon after times are available + bool night = currentData->sunrise && currentData->sunset && + currentData->observationTime && + (currentData->observationTime < currentData->sunrise || + currentData->observationTime > currentData->sunset); + currentData->iconMeteoCon = getMeteoconIcon(currentData->icon, night); + } +} + +void VisualCrossing::endDocument() { + +} + +void VisualCrossing::startArray() { + +} + + +String VisualCrossing::getMeteoconIcon(String icon, bool night) { + if (icon == "clear-day") return "B"; + if (icon == "clear-night") return "C"; + if (icon == "partly-cloudy-day") return "H"; + if (icon == "partly-cloudy-night") return "4"; + if (icon == "cloudy") { + if (!night) return "N"; + else return "5"; + } + if (icon == "wind") return "F"; + if (icon == "fog") return "M"; + if (icon == "showers-day") return "Q"; + if (icon == "showers-night") return "7"; + if (icon == "rain") { + if (!night) return "R"; + else return "8"; + } + if (icon == "thunder-showers-day") return "P"; + if (icon == "thunder-showers-night") return "6"; + if (icon == "thunder-rain") { + if (!night) return "O"; + else return "&"; + } + if (icon == "snow-showers-day") return "U"; + if (icon == "snow-showers-night") return "\""; + if (icon == "snow") { + if (!night) return "W"; + else return "#"; + } + // Nothing matched: N/A + return ")"; +} diff --git a/src/VisualCrossing.h b/src/VisualCrossing.h new file mode 100644 index 0000000..781fd26 --- /dev/null +++ b/src/VisualCrossing.h @@ -0,0 +1,112 @@ +/**The MIT License (MIT) + + Copyright (c) 2018 by ThingPulse Ltd., https://thingpulse.com + + 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 +#include +#include +#include + +typedef struct VisualCrossingData { + // "latitude": 47.37 + float latitude; + // "longitude": 8.54, + float longitude; + // "datetime": "2018-05-23" + String observationTimeText; + // "datetimeEpoch":1527066000, + uint32_t observationTime; + // "temp":17.35, + float temp; + // "tempmin":16.89, (forecast only) + float tempMin; + // "tempmax":17.35, (forecast only) + float tempMax; + // "humidity":97, + float humidity; + // "windspeed":1.77, + float windSpeed; + // "winddir":207.501 + float windDeg; + // "pressure":970.8, + float pressure; + // "cloudcover": 44.4, + float clouds; + // "sunriseEpoch": 1526960448, + uint32_t sunrise; + // "sunsetEpoch": 1527015901, + uint32_t sunset; + // "conditions":"Partially cloudy", + String conditions; + // "description":"Partly cloudy throughout the day.", (forecast only) + String description; + // "icon":"partly-cloudy-day", + String icon; + String iconMeteoCon; +} VisualCrossingData; + +class VisualCrossing: public JsonListener { + private: + const String host = "weather.visualcrossing.com"; + const uint16_t port = 443; + String currentKey; + String currentParent = ""; + VisualCrossingData *forecastData; + VisualCrossingData *currentData; + uint8_t maxForecasts; + uint8_t currentForecast; + boolean metric = true; + String language = "en"; + boolean isCurrentForecastAllowed = true; + + uint8_t doUpdate(VisualCrossingData *forecastData, VisualCrossingData ¤tData, String path); + String buildPath(String key, String locationParameter); + + public: + VisualCrossing(); + uint8_t updateForecasts(VisualCrossingData *forecastData, VisualCrossingData ¤tData, String key, String location, uint8_t maxForecasts); + + void setMetric(boolean metric) { this->metric = metric; } + boolean isMetric() { return this->metric; } + void setLanguage(String language) { this->language = language; } + String getLanguage() { return this->language; } + + + String getMeteoconIcon(String icon, bool night=false); + virtual void whitespace(char c); + + virtual void startDocument(); + + virtual void key(String key); + + virtual void value(String value); + + virtual void endArray(); + + virtual void endObject(); + + virtual void endDocument(); + + virtual void startArray(); + + virtual void startObject(); +};