remove const warning, white lines, version display

This commit is contained in:
prenticedavid
2017-02-03 22:40:15 +00:00
parent a9f2b598d9
commit b9318708d8
2 changed files with 178 additions and 31 deletions

View File

@@ -88,15 +88,13 @@ void setup(void) {
// while (!Serial) ; //hangs a Leonardo until you connect a Serial
if (!Serial) delay(5000); //allow some time for Leonardo
Serial.println("Serial took " + String((millis() - when)) + "ms to start");
static uint16_t identifier;
// tft.reset(); //we can't read ID on 9341 until begin()
g_identifier = tft.readID(); //
// tft.reset(); //hardware reset
uint16_t ID = tft.readID(); //
Serial.print("ID = 0x");
Serial.println(g_identifier, HEX);
if (g_identifier == 0x00D3 || g_identifier == 0xD3D3) g_identifier = 0x9481; // write-only shield
if (g_identifier == 0xFFFF) g_identifier = 0x9341; // serial
// g_identifier = 0x9329; // force ID
tft.begin(g_identifier);
Serial.println(ID, HEX);
if (ID == 0x00D3 == 0xD3D3) ID = 0x9481; // write-only shield
// ID = 0x9329; // force ID
tft.begin(ID);
}
#if defined(MCUFRIEND_KBV_H_)
@@ -133,17 +131,23 @@ void windowScroll(int16_t x, int16_t y, int16_t wid, int16_t ht, int16_t dx, int
}
}
void printmsg(int row, const char *msg)
{
tft.setTextColor(YELLOW, BLACK);
tft.setCursor(0, row);
tft.println(msg);
}
void loop(void) {
uint8_t aspect;
uint16_t pixel;
char *aspectname[] = {
const char *aspectname[] = {
"PORTRAIT", "LANDSCAPE", "PORTRAIT_REV", "LANDSCAPE_REV"
};
char *colorname[] = { "BLUE", "GREEN", "RED", "GRAY" };
const char *colorname[] = { "BLUE", "GREEN", "RED", "GRAY" };
uint16_t colormask[] = { 0x001F, 0x07E0, 0xF800, 0xFFFF };
uint16_t dx, rgb, n, wid, ht;
uint16_t dx, rgb, n, wid, ht, msglin;
tft.setRotation(0);
// for (uint8_t i = 0; i < 2; i++) showhanzi(0, 0, i), delay(1000);
runtests();
delay(2000);
if (tft.height() > 64) {
@@ -152,13 +156,15 @@ void loop(void) {
tft.setRotation(aspect);
wid = tft.width();
ht = tft.height();
msglin = (ht > 160) ? 200 : 112;
testText();
dx = wid / 32;
for (n = 0; n < 32; n++) {
rgb = n * 8;
rgb = tft.color565(rgb, rgb, rgb);
tft.fillRect(n * dx, 48, dx, 64, rgb & colormask[aspect]);
tft.fillRect(n * dx, 48, dx, 63, rgb & colormask[aspect]);
}
tft.drawRect(0, 48 + 63, wid, 1, WHITE);
tft.setTextSize(2);
tft.setTextColor(colormask[aspect], BLACK);
tft.setCursor(0, 72);
@@ -166,17 +172,25 @@ void loop(void) {
tft.setTextColor(WHITE);
tft.println(" COLOR GRADES");
tft.setTextColor(WHITE, BLACK);
tft.setCursor(0, 184);
tft.println(aspectname[aspect]);
printmsg(184, aspectname[aspect]);
delay(1000);
tft.drawPixel(0, 0, YELLOW);
pixel = tft.readPixel(0, 0);
tft.setTextSize((ht > 160) ? 2 : 1); //for messages
#if defined(MCUFRIEND_KBV_H_)
#if 1
extern const uint8_t penguin[];
tft.setAddrWindow(wid - 40 - 40, 20 + 0, wid - 1 - 40, 20 + 39);
tft.pushColors(penguin, 1600, 1);
tft.setTextColor(WHITE, BLACK);
tft.println("VERTICAL SCROLL UP");
#else
extern const uint8_t wifi_full[];
tft.setAddrWindow(wid - 40 - 40, 20 + 0, wid - 40 - 40 + 31, 20 + 31);
tft.pushColors(wifi_full, 1024, 1, true);
#endif
tft.setAddrWindow(0, 0, wid - 1, ht - 1);
if (aspect & 1) tft.drawRect(wid - 1, 0, 1, ht, WHITE);
else tft.drawRect(0, ht - 1, wid, 1, WHITE);
printmsg(msglin, "VERTICAL SCROLL UP");
uint16_t maxscroll;
if (tft.getRotation() & 1) maxscroll = wid;
else maxscroll = ht;
@@ -184,37 +198,36 @@ void loop(void) {
tft.vertScroll(0, maxscroll, i);
delay(10);
}
tft.vertScroll(0, maxscroll, 0);
tft.setCursor(0, 200);
tft.println("VERTICAL SCROLL DN");
delay(1000);
printmsg(msglin, "VERTICAL SCROLL DN");
for (uint16_t i = 1; i <= maxscroll; i++) {
tft.vertScroll(0, maxscroll, 0 - (int16_t)i);
delay(10);
}
tft.vertScroll(0, maxscroll, 0);
printmsg(msglin, "SCROLL DISABLED ");
delay(1000);
tft.vertScroll(0, maxscroll, 0);
if ((aspect & 1) == 0) { //Portrait
tft.setCursor(0, 200);
tft.setTextColor(BLUE, BLACK);
tft.println("ONLY THE COLOR BAND");
printmsg(msglin, "ONLY THE COLOR BAND");
for (uint16_t i = 1; i <= 64; i++) {
tft.vertScroll(48, 64, i);
delay(20);
}
delay(1000);
tft.vertScroll(0, maxscroll, 0);
}
#endif
tft.setCursor(0, 200);
tft.setTextColor(YELLOW, BLACK);
if (pixel == YELLOW) {
tft.println("SOFTWARE SCROLL ");
printmsg(msglin, "SOFTWARE SCROLL ");
#if 0
// diagonal scroll of block
for (int16_t i = 45, dx = 2, dy = 1; i > 0; i -= dx) {
windowScroll(24, 8, 90, 40, dx, dy, scrollbuf);
}
#else
// scroll a whole width of the screen
// plain horizontal scroll of block
n = (wid > 320) ? 320 : wid;
for (int16_t i = n, dx = 4, dy = 0; i > 0; i -= dx) {
windowScroll(0, 200, n, 16, dx, dy, scrollbuf);
@@ -232,7 +245,7 @@ void loop(void) {
delay(5000);
}
}
tft.println("INVERT DISPLAY");
printmsg(msglin, "INVERT DISPLAY ");
tft.invertDisplay(true);
delay(2000);
tft.invertDisplay(false);
@@ -272,7 +285,7 @@ void runtests(void)
#if defined(MCUFRIEND_KBV_H_)
tft.print("MCUFRIEND ");
#if MCUFRIEND_KBV_H_ != 0
tft.print(0.01 * MCUFRIEND_KBV_H_, 1);
tft.print(0.01 * MCUFRIEND_KBV_H_, 2);
#else
tft.print("for");
#endif
@@ -304,8 +317,8 @@ void runtests(void)
g_identifier = tft.readID();
tft.print("ID: 0x");
tft.println(tft.readID(), HEX);
tft.print("Reg(00):0x");
tft.println(tft.readReg(0x00), HEX);
// tft.print("Reg(00):0x");
// tft.println(tft.readReg(0x00), HEX);
tft.print("F_CPU:");
tft.print(0.000001 * F_CPU);
#if defined(__OPTIMIZE_SIZE__)

View File

@@ -1,4 +1,8 @@
#if defined(__arm__) || defined(ESP8266)
#define PROGMEM
#else
#include <Arduino.h>
#endif
const unsigned char PROGMEM penguin[3200] = { /* 0X00,0X10,0X28,0X00,0X28,0X00,0X01,0X1B, */
0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
@@ -406,3 +410,133 @@ const unsigned char PROGMEM icon_40x40[3200] = { /* 0X00,0X10,0X28,0X00,0X28,0X
0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF, 0XFF,
};
const unsigned char PROGMEM wifi_full[2048] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x21, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2,
0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2,
0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2,
0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x71, 0xc2, 0x41, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x28, 0xa0, 0xcb, 0x23, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xc3, 0x03, 0x18, 0x60, 0x00, 0x00,
0x08, 0x20, 0xd3, 0x23, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xc3, 0x03, 0x00, 0x00,
0x59, 0x61, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x41, 0x01,
0x8a, 0x22, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xf4, 0x89, 0xfe, 0x34, 0xfe, 0xb7, 0xff, 0x19, 0xff, 0x3a, 0xff, 0x3a, 0xfe, 0xd8,
0xfe, 0x76, 0xf5, 0xd1, 0xf5, 0x0c, 0xeb, 0xe6, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xf4, 0x06, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x54,
0xf4, 0x47, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xf4, 0xec, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0xf5, 0x90, 0xec, 0x06, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xbd, 0xff, 0x7c, 0xff, 0x7c, 0xff, 0x9d,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xf6, 0x13, 0xeb, 0xe5, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xf4, 0x47, 0xeb, 0xe5, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xc4, 0xf4, 0x48, 0xf5, 0x2e, 0xfe, 0x55, 0xff, 0xbd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x7c, 0xf4, 0xaa, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xc4, 0xf5, 0x0c, 0xfe, 0xf9, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xb1, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xf4, 0x27, 0xf4, 0xcb, 0xf5, 0x0c, 0xf5, 0x0c,
0xf4, 0xab, 0xf4, 0x27, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xf4, 0xec,
0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x34, 0xeb, 0xc4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xfe, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x9d, 0xfe, 0x76, 0xf4, 0xec, 0xeb, 0xc4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xc5, 0xfe, 0x34, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x55, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xf6, 0x13, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7c, 0xf5, 0x6f, 0xeb, 0xc4,
0xeb, 0xa4, 0xeb, 0xa4, 0xf5, 0x4e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf5, 0xf2,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xf4, 0x69, 0xf5, 0x0c, 0xf4, 0xaa, 0xf4, 0x89,
0xf4, 0xcb, 0xf5, 0x6f, 0xfe, 0x55, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a,
0xf4, 0x48, 0xeb, 0xa4, 0xeb, 0xa4, 0xf5, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf5, 0x0d, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xc4, 0xf4, 0xec, 0xff, 0x19, 0xff, 0xff, 0xff, 0xff,
0xff, 0xde, 0xf5, 0x0d, 0xeb, 0xa4, 0xeb, 0xa4, 0xf5, 0x4e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xbe, 0xf4, 0x27, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xf5, 0x4e, 0xff, 0xde,
0xff, 0xff, 0xff, 0xff, 0xf5, 0x4e, 0xeb, 0xa4, 0xeb, 0xa4, 0xfe, 0x54, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfe, 0xb7, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xc4, 0xff, 0x3a, 0xff, 0x9d,
0xff, 0x9c, 0xff, 0x19, 0xf6, 0x13, 0xf4, 0xaa, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xf4, 0x48,
0xff, 0x7c, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xec, 0xeb, 0xa4, 0xeb, 0xc5, 0xff, 0x7c, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xf4, 0xec, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xfe, 0xd8, 0xff, 0x19,
0xff, 0x19, 0xff, 0x9c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1a, 0xf4, 0xaa, 0xeb, 0xa4, 0xeb, 0xa4,
0xf4, 0x47, 0xff, 0x9d, 0xff, 0xff, 0xff, 0xbe, 0xf4, 0x47, 0xeb, 0xa4, 0xf4, 0xec, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xf4, 0x27, 0xf5, 0xd1, 0xff, 0xbd, 0xff, 0xff, 0xf5, 0xd2, 0xeb, 0xa4,
0xeb, 0xa4, 0xf4, 0xaa, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xd8, 0xeb, 0xa4, 0xeb, 0xa4, 0xfe, 0xf9,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xcb, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xec, 0x06, 0xfe, 0xb7, 0xff, 0xff, 0xfe, 0x34,
0xeb, 0xa4, 0xeb, 0xa4, 0xf6, 0x13, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xec, 0xeb, 0xa4, 0xf5, 0x0c,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x55, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4,
0xf4, 0x27, 0xf5, 0x4e, 0xf5, 0x2d, 0xeb, 0xe5, 0xeb, 0xa4, 0xeb, 0xc4, 0xfe, 0x96, 0xff, 0xff,
0xf5, 0x6f, 0xeb, 0xa4, 0xeb, 0xe5, 0xff, 0xbe, 0xff, 0xff, 0xfe, 0xf9, 0xeb, 0xa4, 0xeb, 0xc4,
0xff, 0x9d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xde, 0xeb, 0xc5, 0xeb, 0xa4, 0xeb, 0xa4, 0x71, 0xc2,
0x92, 0x42, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xeb, 0xa4, 0xf4, 0xec,
0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x9d, 0xec, 0x48, 0xeb, 0x84, 0xeb, 0xc5, 0xff, 0x5b,
0xff, 0xde, 0xec, 0x07, 0xe3, 0x84, 0xf5, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xec, 0x28, 0xe3, 0x84,
0xf6, 0x14, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xec, 0xab, 0xe3, 0x64, 0xe3, 0x64, 0x79, 0xe2,
0xaa, 0x64, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0xc5, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xee, 0x98, 0xb2, 0x84, 0xb2, 0x84, 0xc4, 0x0c,
0xff, 0xff, 0xdd, 0x93, 0xb2, 0x84, 0xbb, 0x69, 0xff, 0xff, 0xff, 0xff, 0xd5, 0x11, 0xb2, 0x84,
0xcc, 0x4d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdd, 0x32, 0xb2, 0x84, 0xb2, 0x84, 0x92, 0x23,
0xaa, 0x64, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xc3, 0x8a, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xf7, 0x3b, 0xff, 0x9d, 0xb2, 0x85, 0xb2, 0x84, 0xf7, 0x5c, 0xee, 0xfa, 0xd4, 0xd0, 0xb2, 0x84,
0xb2, 0xe6, 0xdd, 0x93, 0xcc, 0x6e, 0xbb, 0x68, 0xb2, 0x85, 0xb2, 0x84, 0xb2, 0x84, 0x92, 0x23,
0xaa, 0x64, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xbb, 0x07, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0x5c, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xdd, 0x52, 0xee, 0xd9, 0xbb, 0x07, 0xb2, 0x84, 0xb2, 0x85, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0x92, 0x23,
0xa2, 0x64, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xe5, 0xd5,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcc, 0xaf, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0x92, 0x23,
0x9a, 0x43, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0xa5,
0xd4, 0xf0, 0xee, 0x99, 0xee, 0x78, 0xcc, 0x4d, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0x79, 0xc3,
0x81, 0xe3, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0x59, 0x42,
0x79, 0xc3, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84,
0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0xb2, 0x84, 0x59, 0x42,
0x51, 0x42, 0x79, 0xc3, 0x79, 0xc3, 0x9a, 0x23, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63,
0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63,
0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63,
0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0xa2, 0x63, 0x92, 0x23, 0x79, 0xc3, 0x79, 0xc3, 0x38, 0xe1,
};