diff --git a/.gitignore b/.gitignore index 89cc49c..bc06fce 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,5 @@ .vscode/c_cpp_properties.json .vscode/launch.json .vscode/ipch +desktop.ini +_desktop.ini diff --git a/doc/ER-OLEDM032-1_ESP32_Tutorial/ER-OLEDM032-1/ER-OLEDM032-1.ino b/doc/ER-OLEDM032-1_ESP32_Tutorial/ER-OLEDM032-1/ER-OLEDM032-1.ino new file mode 100644 index 0000000..2028b01 --- /dev/null +++ b/doc/ER-OLEDM032-1_ESP32_Tutorial/ER-OLEDM032-1/ER-OLEDM032-1.ino @@ -0,0 +1,76 @@ +/*************************************************** +//Web: http://www.buydisplay.com +EastRising Technology Co.,LTD +Examples for ER-OLEDM032-1 +Display is Hardward SPI 4-Wire SPI Interface +Tested and worked with: +Works with Arduino 2.3.4 IDE +NOTE: test OK:ESP32-WROOM-32 +****************************************************/ + +/* + Note:The module needs to be jumpered to an SPI interface. R19,R23 Short and R18,R20 Open + Unused signal pin Recommended to connect to GND +/* == Hardward SPI to ESP32 == + OLED => ESP32 + *1. GND -> GND + *2. VCC -> 3.3-5V + *4. SCL -> 18 + *5. SDI -> 23 + *7-13 -> GND + *14. DC -> 17 + *15. RES -> 16 + *16. CS -> 5 +*/ + + +#include +#include "er_oled.h" + +//uint8_t oled_buf[OLED_Y_MAXPIXEL * OLED_X_MAXPIXEL/2]; + +void setup() { + Serial.begin(9600); + Serial.print("OLED Example\n"); + + /* display an image of bitmap matrix */ + er_oled_begin(); + + +} + +void loop() { + er_oled_clear(); + er_oled_bitmap_gray(PIC1); + delay(3000); + + er_oled_clear(); + er_oled_bitmap_gray(PIC2); + delay(3000); + + er_oled_clear(); + er_oled_bitmap_mono(PIC3); + delay(3000); + + er_oled_clear(); + er_oled_string(0, 0, "********************************",0); + er_oled_string(32, 16, "EastRising Technology", 0); + er_oled_string(40, 32, "www.buydisplay.com", 1); + er_oled_string(0, 48, "********************************",0); + uint8_t i; + for(i=0;i<=48;i++) + { + command(0xa1); //start line + data(i); + delay(100); + } + for(i=48;i>0;i--) + { + command(0xa1); //start line + data(i); + delay(100); + } + command(0xa1); //start line + data(0); +} + diff --git a/doc/ER-OLEDM032-1_ESP32_Tutorial/ER-OLEDM032-1/er_oled.cpp b/doc/ER-OLEDM032-1_ESP32_Tutorial/ER-OLEDM032-1/er_oled.cpp new file mode 100644 index 0000000..e5e6230 --- /dev/null +++ b/doc/ER-OLEDM032-1_ESP32_Tutorial/ER-OLEDM032-1/er_oled.cpp @@ -0,0 +1,187 @@ +/*************************************************** +//Web: http://www.buydisplay.com +EastRising Technology Co.,LTD +****************************************************/ +#include +#include "er_oled.h" + + +void command(uint8_t cmd) +{ + digitalWrite(OLED_DC, LOW); + digitalWrite(OLED_CS, LOW); + SPI.transfer(cmd); + digitalWrite(OLED_CS, HIGH); +} + +void data(uint8_t dat) +{ + digitalWrite(OLED_DC, HIGH); + digitalWrite(OLED_CS, LOW ); + SPI.transfer(dat); + digitalWrite(OLED_CS, HIGH); +} + + +void er_oled_begin() +{ + pinMode(OLED_RST, OUTPUT); + pinMode(OLED_DC, OUTPUT); + pinMode(OLED_CS, OUTPUT); + SPI.begin(); + + SPI.beginTransaction(SPISettings(20000000, MSBFIRST, SPI_MODE0)); + //SPI.setClockDivider(SPI_CLOCK_DIV2); + + digitalWrite(OLED_CS, LOW); + digitalWrite(OLED_RST, HIGH); + delay(10); + digitalWrite(OLED_RST, LOW); + delay(10); + digitalWrite(OLED_RST, HIGH); + + + command(0xFD); /*SET COMMAND LOCK*/ + data(0x12); /* UNLOCK */ + command(0xAE); /*DISPLAY OFF*/ + command(0xB3);/*DISPLAYDIVIDE CLOCKRADIO/OSCILLATAR FREQUANCY*/ + data(0x91); command(0xCA); /*multiplex ratio*/ + data(0x3F); /*duty = 1/64*/ + command(0xA2); /*set offset*/ + data(0x00); + command(0xA1); /*start line*/ + data(0x00); + command(0xA0); /*set remap*/ + data(0x14); + data(0x11); + + command(0xAB); /*funtion selection*/ + data(0x01); /* selection external vdd */ + command(0xB4); /* */ + data(0xA0); + data(0xfd); + command(0xC1); /*set contrast current */ + data(0x80); + command(0xC7); /*master contrast current control*/ + data(0x0f); + + command(0xB1); /*SET PHASE LENGTH*/ + data(0xE2); + command(0xD1); /**/ + data(0x82); + data(0x20); + command(0xBB); /*SET PRE-CHANGE VOLTAGE*/ + data(0x1F); + command(0xB6); /*SET SECOND PRE-CHARGE PERIOD*/ + data(0x08); + command(0xBE); /* SET VCOMH */ + data(0x07); + command(0xA6); /*normal display*/ + command(0xAF); /*display ON*/ +} + +void er_oled_SetWindow(uint8_t Xstart, uint8_t Ystart, uint8_t Xend, uint8_t Yend) +{ + command(0x15); + data(Xstart+0x1c); + data(Xend+0x1c); + command(0x75); + data(Ystart); + data(Yend); + command(0x5c);//write ram command +} + +void er_oled_clear() +{int i,row; + command(0x15); + data(0x00); //col start + data(0x77); //col end + command(0x75); + data(0x00); //row start + data(0x7f); //row end + command(0x5c); + for (row = 0; row < 128; row++) { + for(i = 0; i< 240; i++ ) { + data(0x00);// write data + } + } +} + +void er_oled_char(uint8_t x, uint8_t y, const char *acsii, uint8_t mode) +{ uint8_t i,str;uint16_t OffSet; + x=x/4; + OffSet = (*acsii - 32)*16; + er_oled_SetWindow(x, y, x+1, y+15); + for (i=0;i<16;i++) + { str =pgm_read_byte(&AsciiLib[OffSet + i]); + if(mode) str=~str; + Data_processing (str); + } +} + +void er_oled_string(uint8_t x, uint8_t y, const char *pString, uint8_t Mode) +{ + while(1) + { + if (*pString == 0) + { + return; + } + er_oled_char(x, y, pString,Mode); + x += 8; + pString += 1; + } +} + +void Data_processing(uint8_t temp) //turns 1byte B/W data to 4 bye gray data with 8 Pixel +{uint8_t temp1,temp2; + + if(temp&0x80)temp1=0xf0; + else temp1=0x00; + if(temp&0x40)temp2=0x0f; + else temp2=0x00; + temp1=temp1|temp2; + data(temp1); //Pixel1,Pixel2 + if(temp&0x20)temp1=0xf0; + else temp1=0x00; + if(temp&0x10)temp2=0x0f; + else temp2=0x00; + temp1=temp1|temp2; + data(temp1); //Pixel3,Pixel4 + if(temp&0x08)temp1=0xf0; + else temp1=0x00; + if(temp&0x04)temp2=0x0f; + else temp2=0x00; + temp1=temp1|temp2; + data(temp1); //Pixel5,Pixel6 + if(temp&0x02)temp1=0xf0; + else temp1=0x00; + if(temp&0x01)temp2=0x0f; + else temp2=0x00; + temp1=temp1|temp2; + data(temp1); //Pixel7,Pixel8 +} + +void er_oled_bitmap_mono(const uint8_t * pBuf) +{ uint8_t row,col,dat; + er_oled_SetWindow(0, 0, 255/4, 63); + for (row = 0; row < 64; row++) { + for(col = 0;col<256/8; col++ ) { + dat=(pgm_read_byte(pBuf)); + *pBuf++; + Data_processing(dat); + } + } +} + +void er_oled_bitmap_gray(const uint8_t * pBuf) +{ uint8_t row,col; + er_oled_SetWindow(0, 0, 255/4, 63); + for (row = 0; row < 64; row++) { + for(col = 0;col<128; col++ ) { + data(pgm_read_byte(pBuf)); + * pBuf++; + } + } +} + diff --git a/doc/ER-OLEDM032-1_ESP32_Tutorial/ER-OLEDM032-1/er_oled.h b/doc/ER-OLEDM032-1_ESP32_Tutorial/ER-OLEDM032-1/er_oled.h new file mode 100644 index 0000000..3e248ed --- /dev/null +++ b/doc/ER-OLEDM032-1_ESP32_Tutorial/ER-OLEDM032-1/er_oled.h @@ -0,0 +1,1295 @@ +/*************************************************** +//Web: http://www.buydisplay.com +EastRising Technology Co.,LTD +****************************************************/ + +#ifndef _er_oled_H_ +#define _er_oled_H_ + +#include + +#define OLED_X_MAXPIXEL 256 //OLED width maximum memory +#define OLED_Y_MAXPIXEL 64 //OLED height maximum memory + +#define WIDTH 256/4 +#define HEIGHT 64 + +#define OLED_DC 17 +#define OLED_RST 16 +#define OLED_CS 5 + + +void er_oled_begin(); +void command(uint8_t cmd); +void data(uint8_t dat); +void er_oled_SetWindow(uint8_t Xstart, uint8_t Ystart, uint8_t Xend, uint8_t Yend); +void er_oled_clear(); +void er_oled_char(uint8_t x, uint8_t y, const char *acsii, uint8_t mode); +void er_oled_string(uint8_t x, uint8_t y, const char *pString, uint8_t Mode); +void Data_processing(uint8_t temp); +void er_oled_bitmap_mono(const uint8_t * pBuf); +void er_oled_bitmap_gray(const uint8_t * pBuf); + + +const uint8_t PIC1[] PROGMEM = +{/* 0X00,0X04,0X00,0X01,0X40,0X00, */ +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X47,0X89,0X9A,0XAA, +0X86,0X36,0X78,0X79,0X9C,0XDC,0X74,0X55,0X52,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X12,0X42,0X31,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X14,0X65,0X79,0XBC,0XCC,0XCB,0XBC,0XB8,0X45,0X99,0X9A,0X8A,0X9A,0XAA,0XAB,0X98, +0X97,0X55,0X53,0X10,0X00,0X10,0X11,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X36,0X76,0X64,0X35, +0X56,0X89,0XCD,0XCC,0XA9,0X66,0X75,0X42,0X01,0X47,0X63,0X00,0X00,0X00,0X01,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X99,0XAA,0XA9, +0X95,0X23,0X44,0X57,0X9C,0XB8,0X20,0X04,0X53,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X25,0X8A,0X98,0X97,0X52,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X14,0X55,0X9B,0XBC,0XCB,0XBC,0XCB,0XA1,0X00,0X27,0X98,0X88,0X99,0XAA,0XBB,0XAA, +0X88,0X75,0X54,0X10,0X26,0X9A,0XA9,0X73,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,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,0X11,0X35,0X77,0X66,0X54, +0X34,0X68,0XBC,0XCC,0XA8,0X64,0X53,0X21,0X24,0X64,0X10,0X01,0X10,0X01,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X25,0X78,0X99,0X99, +0X85,0X43,0X43,0X56,0X77,0X76,0X20,0X03,0X43,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X04,0X98,0X86,0X66,0X56,0X76,0X41,0X01,0X11,0X10,0X11,0X00,0X00, +0X13,0X57,0XAB,0XBB,0XBB,0XBC,0XBB,0XA1,0X00,0X04,0X99,0X98,0XA9,0XAA,0XB9,0X99, +0X88,0X76,0X54,0X23,0X8C,0XCC,0XBB,0XBA,0X51,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X26,0X8A,0XAA,0XA9,0X87,0X75, +0X32,0X46,0X9B,0XB9,0X75,0X43,0X45,0X22,0X24,0X43,0X36,0X88,0XA7,0X21,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X46,0X78,0X87, +0X75,0X78,0X64,0X65,0X11,0X25,0X30,0X01,0X21,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X39,0XA6,0X65,0X56,0X54,0X55,0X55,0X68,0X9A,0XB8,0X63,0X00,0X00, +0X13,0X69,0XAA,0XBA,0XAB,0XBA,0XBB,0XB6,0X10,0X01,0X7A,0X98,0X98,0X95,0X41,0X3A, +0XB7,0X67,0X63,0X4A,0XCC,0XAA,0XA9,0X9B,0X95,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X8A,0X86,0X78,0XAB,0XB9,0X76, +0X65,0X54,0X55,0X54,0X31,0X23,0X47,0X65,0X44,0X45,0X66,0X45,0X7A,0X93,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X24,0X56,0X75, +0X45,0X88,0X33,0X83,0X00,0X25,0X50,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X01,0X7C,0XA4,0X44,0X10,0X02,0X23,0X48,0XBD,0XEE,0XDC,0XBA,0X73,0X00, +0X25,0X8A,0XAA,0XCB,0XA9,0X99,0XAA,0XBB,0X54,0X45,0X89,0X89,0X99,0X93,0X00,0X06, +0XAA,0X76,0X55,0X8B,0XBA,0X98,0X75,0X54,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X39,0X82,0X00,0X01,0X48,0XCC,0XAA, +0XB9,0X52,0X22,0X11,0X00,0X00,0X27,0X95,0X56,0X63,0X10,0X00,0X05,0X97,0X10,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X23,0X33, +0X25,0X89,0X33,0X73,0X00,0X02,0X51,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X9D,0XD7,0X31,0X00,0X00,0X02,0X5A,0XDE,0XFE,0X97,0X9A,0XB8,0X21, +0X37,0X89,0XBB,0XBB,0XBA,0X98,0X89,0XAB,0XBB,0XBC,0XA9,0XA9,0X89,0X82,0X00,0X00, +0X49,0XA8,0X8A,0XA9,0X97,0X63,0X00,0X10,0X24,0X31,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X89,0X30,0X00,0X00,0X02,0X69,0XBB, +0XA6,0X22,0X43,0X20,0X00,0X00,0X05,0XB8,0X30,0X00,0X00,0X00,0X00,0X58,0X50,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X22,0X22,0X22, +0X12,0X69,0X64,0X57,0X41,0X01,0X53,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X04,0XBE,0XFC,0X72,0X10,0X00,0X00,0X5C,0XFF,0XF7,0X13,0X67,0XAC,0XA5, +0X47,0X89,0XAB,0XBB,0XBB,0X98,0X77,0X88,0XBB,0XBB,0XAB,0XA9,0XA9,0X61,0X00,0X00, +0X02,0X68,0XA9,0X67,0X42,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X12,0X10,0X00,0X00,0X00,0X00,0X00,0X04,0X7A,0X71,0X00,0X00,0X00,0X00,0X02,0X44, +0X21,0X25,0X52,0X00,0X00,0X00,0X03,0XAA,0X51,0X00,0X00,0X00,0X00,0X26,0X84,0X11, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X25,0X54,0X44,0X52, +0X00,0X35,0X75,0X45,0X30,0X00,0X34,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X04,0XAD,0XEF,0XFD,0X81,0X00,0X00,0X5C,0XFF,0XF9,0X00,0X12,0X8A,0XB8, +0X67,0X89,0XAB,0XBB,0XBA,0XA9,0X86,0X68,0X9A,0XBB,0XBB,0X44,0X54,0X00,0X00,0X00, +0X00,0X01,0X11,0X21,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X06, +0XAB,0X93,0X00,0X00,0X00,0X00,0X00,0X03,0X43,0X10,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X57,0X30,0X00,0X00,0X00,0X00,0X7B,0X96,0X43,0X33,0X20,0X00,0X02,0X69,0X97, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X47,0X32,0X76,0X30, +0X00,0X00,0X36,0X30,0X00,0X00,0X14,0X20,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X02,0X9C,0XEE,0XFE,0XB2,0X00,0X00,0X4B,0XEE,0XFD,0X20,0X00,0X28,0XBB, +0X76,0X89,0X98,0XBC,0XBA,0X99,0X87,0X66,0X79,0XAA,0XBB,0X10,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3B, +0XDC,0XDB,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X00,0X00,0X00, +0X03,0X75,0X10,0X00,0X00,0X00,0X13,0X49,0XAA,0XAB,0XAA,0XB7,0X40,0X00,0X12,0X20, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X54,0X13,0X76,0X10, +0X00,0X00,0X13,0X53,0X10,0X00,0X01,0X40,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X01,0X6B,0XCE,0XDB,0X71,0X00,0X00,0X28,0XDE,0XFD,0X40,0X00,0X03,0X9B, +0X97,0X42,0X11,0X37,0XBB,0X98,0X87,0X76,0X68,0XAA,0X86,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X00,0X00,0X00,0X00,0X00,0X5C, +0XCC,0XCD,0X82,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X26,0X63,0X00,0X00,0X00,0X01,0X35,0X54,0X54,0X67,0X78,0X89,0X74,0X10,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X51,0X02,0X66,0X10, +0X00,0X00,0X01,0X36,0X41,0X00,0X00,0X53,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X26,0X8A,0X97,0X30,0X00,0X00,0X03,0X6A,0XB9,0X60,0X00,0X00,0X7A, +0XA5,0X10,0X00,0X02,0X8A,0X98,0X87,0X76,0X56,0X89,0X40,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X6D, +0XCC,0XAD,0XC3,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X00,0X00, +0X68,0X51,0X00,0X11,0X12,0X24,0X66,0X45,0X40,0X00,0X00,0X03,0X45,0X10,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X42,0X01,0X46,0X42, +0X10,0X00,0X00,0X03,0X54,0X10,0X00,0X36,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X01,0X36,0X65,0X21,0X00,0X00,0X00,0X03,0X54,0X72,0X00,0X10,0X49, +0XA3,0X00,0X00,0X00,0X59,0X99,0X87,0X77,0X66,0X78,0X30,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X4C, +0XCD,0XAB,0XD8,0X55,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X20,0X00,0X04, +0X87,0X31,0X22,0X33,0X55,0X66,0X65,0X47,0X30,0X00,0X00,0X00,0X04,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X44,0X00,0X35,0X66, +0X10,0X00,0X00,0X00,0X26,0X41,0X00,0X28,0X52,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X15,0X8B,0XAA,0X98,0X62,0X00,0X00,0X00,0X13,0X64,0X00,0X00,0X28, +0XA4,0X00,0X00,0X00,0X3A,0X99,0X88,0X77,0X76,0X68,0X51,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X44,0X32,0X00,0X00,0X00,0X00,0X1A, +0XCC,0XBB,0XCC,0XCC,0X66,0XAA,0X85,0X00,0X00,0X00,0X00,0X00,0X05,0X20,0X00,0X38, +0X85,0X22,0X34,0X56,0X78,0X87,0X65,0X55,0X20,0X00,0X00,0X00,0X03,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X23,0X00,0X12,0X34, +0X00,0X00,0X00,0X00,0X03,0X55,0X44,0X58,0X75,0X20,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X02,0X6B,0XDC,0XAA,0X9A,0XA9,0X40,0X00,0X00,0X13,0X55,0X00,0X00,0X07, +0X94,0X00,0X00,0X00,0X2A,0X98,0X89,0X88,0X87,0X58,0X84,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X27,0XAA,0XA7,0X10,0X00,0X26,0X65,0X4A, +0XCB,0XBB,0XAC,0XDE,0XCC,0XCB,0XCB,0X50,0X00,0X00,0X00,0X00,0X16,0X20,0X14,0X88, +0X52,0X23,0X45,0X67,0X78,0X87,0X66,0X86,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X01,0X01,0X00,0X35,0X56,0X76,0X77,0X52,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X06,0XBE,0XD9,0X77,0X78,0X9B,0X94,0X00,0X00,0X13,0X45,0X10,0X00,0X16, +0X85,0X00,0X00,0X00,0X17,0X98,0X99,0X99,0X98,0X67,0X98,0X10,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7B,0X88,0X99,0X70,0X00,0X5B,0XB9,0XAD, +0XDC,0XCB,0XAC,0XCC,0XDD,0XCB,0XCB,0X92,0X00,0X00,0X00,0X00,0X47,0X53,0X57,0X85, +0X22,0X34,0X56,0X78,0X88,0X87,0X88,0X99,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X10,0X00,0X13,0X34,0X56,0X64,0X20,0X00,0X00,0X00,0X11,0X22, +0X21,0X00,0X29,0XDE,0XD7,0X78,0X77,0X77,0XA9,0X30,0X00,0X02,0X55,0X20,0X00,0X05, +0X75,0X00,0X00,0X00,0X04,0X99,0XA7,0XA9,0X99,0X86,0X8B,0X40,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X79,0X65,0X55,0X76,0X32,0X68,0X67,0XDD, +0XDB,0XCB,0XBC,0XCD,0XDC,0XBB,0XBA,0XC4,0X10,0X00,0X00,0X00,0X68,0X98,0X87,0X32, +0X23,0X44,0X56,0X67,0X88,0X89,0XAA,0X99,0X20,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X13,0X66,0X52,0X00,0X00,0X02,0X45,0X44, +0X44,0X12,0X4B,0XDF,0XE7,0X53,0X35,0X66,0X88,0X82,0X00,0X03,0X56,0X31,0X00,0X16, +0X75,0X00,0X00,0X00,0X01,0X48,0X72,0X46,0X99,0X88,0X7A,0X80,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X97,0X53,0X34,0X56,0X66,0X65,0X45,0XDD, +0XDC,0XCB,0XCC,0XCD,0XDC,0XBB,0XAB,0XB9,0X10,0X00,0X00,0X13,0X78,0X87,0X44,0X34, +0X56,0X67,0X88,0X75,0X78,0X9B,0XAB,0XAA,0X40,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X35,0X64,0X20,0X01,0X24,0X67,0X66, +0X44,0X23,0X4A,0XEE,0XE5,0X00,0X00,0X14,0X77,0X87,0X00,0X48,0XAC,0XA9,0X85,0X25, +0X64,0X00,0X00,0X00,0X00,0X01,0X00,0X00,0X5A,0X88,0X89,0X80,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X06,0X74,0X53,0X32,0X24,0X44,0X43,0X22,0X6C, +0XDD,0XCC,0XCD,0XCD,0XCC,0XBA,0XAA,0XBB,0X20,0X00,0X01,0X05,0X97,0X54,0X24,0X46, +0X78,0X89,0XAA,0XAA,0X88,0X8A,0XB9,0X88,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X46,0X52,0X23,0X68,0X76,0X43, +0X44,0X54,0X39,0XDE,0XE6,0X00,0X00,0X11,0X36,0X68,0X33,0XAC,0XBB,0XBB,0XCC,0XB9, +0X74,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X29,0X98,0X8A,0X90,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X01,0X23,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X24,0X68,0X78,0X53,0X32,0X22,0X23,0X22,0X33,0X32,0X2A, +0XCC,0XBA,0XBC,0XCB,0XBB,0XBA,0XAB,0XCD,0X40,0X00,0X00,0X48,0X74,0X33,0X36,0X77, +0X88,0X88,0X9A,0XBC,0XAA,0X99,0X84,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X24,0X54,0X43,0X57,0X9A,0X62,0X02, +0X57,0X97,0X57,0X9C,0XFA,0X00,0X00,0X00,0X04,0X57,0X7A,0XC8,0X64,0X22,0X25,0XAB, +0XA3,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X06,0XAA,0X89,0X80,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X26,0X77,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X15,0X9A,0XA9,0X86,0X43,0X21,0X11,0X11,0X15,0XAB,0X96,0X5B, +0XBB,0XA9,0X99,0X9A,0XAA,0XAA,0XAB,0XBD,0X70,0X00,0X13,0X85,0X30,0X02,0X34,0X78, +0X99,0X88,0X8A,0XCC,0XDC,0XCA,0X85,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X36,0X89,0X97,0X53,0X69,0XBA,0X40,0X27, +0XAA,0XA9,0X77,0X57,0X87,0X21,0X10,0X00,0X01,0X55,0X7B,0XB6,0X74,0X00,0X00,0X5B, +0XC6,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X7B,0XAA,0X60,0X00,0X00,0X00,0X00, +0X00,0X00,0X01,0X58,0X99,0X20,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X01,0X8B,0XB9,0X88,0X65,0X32,0X12,0X10,0X11,0X3A,0XEE,0XDB,0XAA, +0X97,0X65,0X44,0X46,0X78,0X9A,0XAB,0XBC,0X81,0X00,0X58,0X51,0X00,0X00,0X00,0X39, +0XA9,0X97,0X7A,0XBB,0XA8,0XAC,0XA8,0X53,0X22,0X11,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X14,0X79,0XAC,0XDB,0X75,0X7A,0XC9,0X00,0X7A, +0XCB,0X74,0X34,0X68,0X89,0X98,0X41,0X00,0X00,0X25,0X7C,0XA5,0X74,0X00,0X00,0X47, +0XCA,0X30,0X00,0X01,0X44,0X44,0X20,0X00,0X00,0X27,0X9A,0X20,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X87,0X99,0X20,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X08,0XCB,0XA8,0X89,0X75,0X42,0X11,0X03,0X79,0X9C,0XDC,0XCA,0X85, +0X31,0X10,0X00,0X02,0X34,0X79,0XAB,0XCD,0X90,0X14,0X86,0X00,0X00,0X00,0X00,0X08, +0XA9,0X97,0X69,0XBB,0X30,0X39,0XD9,0X89,0XAA,0X95,0X10,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X36,0X8A,0XBC,0XDB,0X76,0X9B,0XD9,0X10,0X9A, +0XC8,0X10,0X05,0X89,0XCB,0XA9,0XA8,0X40,0X00,0X04,0X7B,0XA8,0X75,0X00,0X01,0X66, +0X9B,0X70,0X00,0X4A,0XCC,0XCA,0X84,0X00,0X00,0X02,0X45,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X26,0X97,0X89,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X0A,0XDA,0XBB,0X98,0X97,0X53,0X21,0X19,0XDE,0XEE,0XCA,0X94,0X21, +0X00,0X00,0X00,0X00,0X01,0X36,0X9B,0XCD,0XA0,0X48,0X50,0X00,0X00,0X00,0X00,0X19, +0XA9,0X98,0X69,0XBB,0X50,0X07,0XCA,0XA8,0X88,0X99,0X51,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X57,0X99,0X9A,0XBB,0X85,0X9C,0XDC,0X52,0X9C, +0XB7,0X00,0X17,0XBD,0XC7,0X66,0X79,0XA4,0X00,0X04,0X59,0XB8,0X78,0X62,0X02,0X67, +0X5A,0X91,0X02,0XBD,0XDB,0XA9,0XAA,0X40,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X47,0X88,0X89,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X04,0X98,0X53,0X04,0X88,0X64,0X32,0X4D,0XED,0XCC,0XA7,0X30,0X00, +0X00,0X00,0X00,0X00,0X00,0X02,0X7A,0XBD,0XA3,0X76,0X10,0X00,0X00,0X00,0X00,0X69, +0XBA,0X98,0X69,0XAB,0XA3,0X16,0XBC,0XA8,0X87,0X89,0X62,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X67,0X95,0X10,0X39,0X64,0X9C,0XBD,0XC8,0X8A, +0XB9,0X20,0X2A,0XDD,0X95,0X55,0X67,0XAA,0X10,0X02,0X57,0X9A,0X9A,0X71,0X04,0X67, +0X45,0XA3,0X06,0XCF,0X83,0X23,0X67,0X93,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X49,0X77,0XA7,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X01,0X00,0X00,0X00,0X00,0X00,0X00,0X05,0X76,0X43,0X9D,0XEC,0XCA,0X62,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X28,0XBD,0X87,0X72,0X00,0X00,0X00,0X00,0X03,0XAA, +0XAA,0X98,0X69,0XBA,0XA5,0X59,0XAB,0XB9,0X77,0X88,0X72,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X67,0X60,0X00,0X15,0X21,0X7B,0XCD,0XC8,0X58, +0XBD,0X81,0X39,0XDF,0X94,0X01,0X47,0X8B,0X50,0X02,0X56,0X58,0X74,0X20,0X14,0X57, +0X16,0X93,0X07,0XDB,0X20,0X01,0X47,0X97,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X11,0X00,0X6A,0X77,0X98,0X20,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X88,0X56,0XCD,0XBB,0X85,0X20,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X16,0XAB,0XA7,0X30,0X00,0X00,0X00,0X00,0X04,0XAA, +0XAB,0X98,0X7A,0XA8,0X63,0X7B,0XAA,0XBA,0X87,0X88,0X61,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X01,0X00,0X00,0X00,0X00,0X14,0X56,0X30,0X13,0X46,0X53,0X59,0XCC,0XB7,0X13, +0X59,0X60,0X19,0XDE,0XA4,0X00,0X04,0X8A,0X91,0X02,0X66,0X24,0X30,0X00,0X35,0X65, +0X07,0X83,0X05,0XBC,0X20,0X00,0X16,0X8A,0X40,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X03,0X7A,0X88,0XAA,0X83,0X56,0X64,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X58,0X99,0XB9,0X65,0X31,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X8B,0XA5,0X00,0X00,0X00,0X00,0X00,0X02,0X41, +0X48,0XA8,0X88,0X30,0X01,0X68,0X78,0XCB,0X97,0X99,0X30,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X24,0X55,0X20,0X36,0X79,0X88,0X56,0X88,0X63,0X00, +0X01,0X00,0X05,0XAD,0XF9,0X00,0X01,0X57,0XA3,0X02,0X56,0X23,0X10,0X02,0X34,0X62, +0X08,0X82,0X02,0X6B,0X41,0X00,0X15,0X7B,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X01,0X59,0X99,0X89,0XAA,0XB8,0XAA,0X87,0X41,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X23,0X44,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X33,0X21,0X20,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X8B,0X61,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X07,0X97,0X98,0X10,0X00,0X00,0X04,0X9A,0X97,0X98,0X20,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X01,0X46,0X52,0X10,0X00,0X14,0X55,0X22,0X68,0XAC,0XDB,0X73,0X22,0X10,0X00, +0X00,0X00,0X00,0X38,0X82,0X00,0X00,0X56,0X94,0X03,0X55,0X32,0X00,0X12,0X45,0X40, +0X4A,0X82,0X00,0X12,0X20,0X00,0X14,0X7A,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X03, +0X57,0X9B,0XA9,0X88,0XAA,0XBA,0XA8,0X78,0X72,0X00,0X00,0X00,0X00,0X00,0X00,0X04, +0X77,0X78,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X89,0X40,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X08,0XB9,0XB6,0X00,0X00,0X00,0X00,0X19,0X97,0X86,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X49,0XCC,0XCA,0X51,0X00,0X02,0X44,0X24,0X77,0X79,0XDC,0X93,0X00,0X00,0X00, +0X00,0X00,0X02,0X7A,0X96,0X30,0X00,0X16,0X85,0X03,0X53,0X20,0X00,0X23,0X54,0X01, +0X8A,0X72,0X00,0X00,0X00,0X00,0X04,0X8A,0X90,0X00,0X00,0X00,0X00,0X00,0X00,0X28, +0X99,0X99,0X99,0X78,0XAA,0XAA,0X97,0X77,0X84,0X00,0X00,0X00,0X00,0X00,0X00,0X38, +0X97,0X78,0X60,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X02,0X86,0X10,0X00,0X00,0X00,0X10,0X00,0X00,0X00, +0X07,0XA9,0XA4,0X00,0X00,0X00,0X00,0X28,0X97,0X83,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X03,0X89,0X79,0XDE,0X93,0X00,0X24,0X66,0X34,0X41,0X01,0X4C,0X93,0X00,0X00,0X00, +0X00,0X00,0X17,0XDB,0X65,0X84,0X00,0X25,0X74,0X13,0X42,0X10,0X12,0X33,0X31,0X07, +0XBA,0X41,0X00,0X00,0X00,0X00,0X04,0X8A,0X90,0X00,0X00,0X00,0X00,0X00,0X00,0X49, +0X87,0X78,0X88,0X77,0X9A,0X9A,0X88,0X76,0X85,0X00,0X00,0X00,0X00,0X00,0X00,0X69, +0X76,0X67,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X04,0X74,0X00,0X00,0X03,0X57,0X75,0X32,0X00,0X00, +0X06,0XBA,0X71,0X00,0X00,0X00,0X00,0X49,0X96,0X82,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X15,0X65,0X35,0X8E,0XC5,0X02,0X9C,0XCB,0X64,0X10,0X00,0X19,0X73,0X00,0X00,0X00, +0X00,0X00,0X17,0XBC,0X63,0X67,0X20,0X14,0X74,0X23,0X42,0X01,0X12,0X32,0X01,0X7C, +0XB9,0X20,0X00,0X00,0X00,0X00,0X15,0X79,0X90,0X00,0X00,0X00,0X00,0X00,0X00,0X68, +0X77,0X77,0X78,0X77,0X89,0X99,0X88,0X66,0X85,0X00,0X00,0X00,0X00,0X00,0X01,0XA8, +0X56,0X77,0X81,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X05,0X71,0X00,0X01,0X59,0XAB,0XBC,0XB8,0X30,0X00, +0X00,0X54,0X00,0X00,0X00,0X00,0X00,0X49,0X86,0X81,0X10,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X26,0X44,0X22,0X6D,0XC3,0X4B,0XDD,0XED,0XA5,0X00,0X00,0X15,0X30,0X00,0X00,0X00, +0X00,0X00,0X03,0X7A,0X50,0X37,0X30,0X24,0X63,0X24,0X31,0X11,0X22,0X12,0X59,0XBB, +0X95,0X10,0X00,0X00,0X00,0X00,0X25,0X8B,0X40,0X00,0X00,0X00,0X00,0X00,0X00,0X58, +0X86,0X67,0X77,0X77,0X89,0X98,0X87,0X67,0X85,0X00,0X00,0X00,0X00,0X00,0X03,0X97, +0X56,0X67,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X17,0X50,0X00,0X04,0X9B,0XCC,0XB9,0X8A,0X94,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X3A,0X77,0X51,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X37,0X77,0X75,0X32,0X00, +0X36,0X33,0X10,0X39,0X63,0X9E,0XFF,0XDD,0XD7,0X00,0X02,0X00,0X00,0X00,0X00,0X00, +0X00,0X23,0X44,0X42,0X00,0X36,0X50,0X24,0X64,0X44,0X20,0X22,0X34,0X58,0XBB,0XB9, +0X51,0X00,0X00,0X00,0X00,0X00,0X37,0X89,0X20,0X00,0X00,0X00,0X00,0X00,0X00,0X28, +0X97,0X78,0X89,0X87,0X88,0X98,0X77,0X67,0X84,0X00,0X00,0X00,0X00,0X00,0X04,0X96, +0X46,0X77,0X50,0X00,0X00,0X00,0X00,0X00,0X11,0X22,0X20,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X30,0X00,0X16,0XAC,0XCA,0X43,0X44,0X78,0X30, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X18,0X97,0X20,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X15,0X86,0X66,0X67,0X65,0X51, +0X46,0X32,0X00,0X00,0X06,0XBB,0XCF,0XFE,0XB6,0X36,0X89,0X41,0X00,0X01,0X22,0X01, +0X00,0X58,0X87,0X62,0X00,0X25,0X60,0X35,0X64,0X43,0X23,0X46,0X89,0XAB,0XA9,0X85, +0X20,0X00,0X00,0X00,0X00,0X12,0X47,0X97,0X00,0X26,0X65,0X21,0X00,0X00,0X00,0X17, +0X99,0X88,0X89,0X98,0X88,0X88,0X76,0X77,0X82,0X00,0X00,0X00,0X00,0X00,0X68,0X96, +0X56,0X77,0X62,0X00,0X00,0X00,0X01,0X46,0X9A,0XBA,0X96,0X30,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X47,0X10,0X00,0X17,0XBC,0XB3,0X00,0X12,0X69,0X92, +0X00,0X02,0X56,0X65,0X30,0X00,0X00,0X04,0X64,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X14,0X67,0X54,0X56,0X54,0X43,0X33,0X32,0X23, +0X66,0X32,0X00,0X00,0X1A,0X95,0X8E,0XED,0X87,0XAE,0XFF,0XC6,0X01,0X47,0X89,0X40, +0X01,0X89,0X75,0X66,0X10,0X15,0X61,0X45,0X65,0X32,0X35,0X67,0X77,0X89,0X87,0X40, +0X00,0X00,0X00,0X00,0X00,0X24,0X67,0X82,0X05,0X9B,0XBB,0XA6,0X20,0X00,0X00,0X01, +0X69,0XAA,0XAA,0XA9,0X87,0X77,0X66,0X77,0X70,0X00,0X00,0X00,0X00,0X02,0XAB,0X86, +0X66,0X67,0X76,0X00,0X00,0X00,0X26,0X9C,0XDD,0XED,0XDB,0X94,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X01,0X57,0X10,0X00,0X17,0XAC,0XA0,0X00,0X03,0X47,0XB6, +0X00,0X37,0XBB,0XCC,0XA6,0X30,0X00,0X00,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X79,0X76,0X66,0X55,0X41,0X35,0X67,0X66,0X54, +0X77,0X42,0X00,0X00,0X4B,0X75,0X7D,0XC7,0X6A,0XED,0XCE,0XFA,0X25,0X89,0X9C,0X92, +0X25,0X96,0X22,0X46,0X20,0X25,0X52,0X35,0X54,0X33,0X46,0X68,0X76,0X54,0X30,0X00, +0X00,0X00,0X00,0X00,0X23,0X46,0X87,0X30,0X1A,0XDE,0XED,0XEB,0X71,0X00,0X00,0X00, +0X13,0X34,0X46,0X99,0X87,0X77,0X66,0X77,0X70,0X00,0X00,0X00,0X00,0X36,0XA9,0X85, +0X76,0X67,0X77,0X20,0X00,0X01,0X6B,0XEC,0X97,0X8C,0XEE,0XD8,0X30,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X02,0X86,0X00,0X00,0X15,0X9C,0XB2,0X00,0X00,0X36,0X78, +0X12,0X8B,0XCD,0XDD,0XDC,0X95,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X01,0X00,0X36,0X85,0X44,0X43,0X32,0X02,0X46,0X87,0X55,0X45, +0X57,0X42,0X00,0X00,0X6A,0X74,0X13,0X21,0X5C,0XB9,0X9C,0XEC,0X56,0X74,0X48,0X86, +0X89,0X83,0X00,0X34,0X30,0X25,0X53,0X45,0X43,0X44,0X46,0X64,0X45,0X54,0X32,0X10, +0X00,0X00,0X01,0X23,0X57,0X78,0X73,0X01,0X4B,0XEE,0XDB,0XDE,0XB4,0X00,0X00,0X00, +0X00,0X00,0X02,0X69,0X87,0X76,0X66,0X67,0X60,0X00,0X00,0X00,0X03,0X78,0X98,0X75, +0X66,0X77,0X76,0X52,0X00,0X04,0XBD,0XB4,0X10,0X18,0XAC,0XDC,0X60,0X00,0X00,0X00, +0X00,0X11,0X22,0X11,0X00,0X02,0X74,0X00,0X00,0X01,0X59,0XA2,0X00,0X00,0X15,0X69, +0X33,0XAC,0XDE,0XFF,0XFE,0XEB,0X50,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X02,0X67,0X66,0X87,0X42,0X32,0X13,0X67,0X75,0X67,0X64,0X32,0X23, +0X36,0X54,0X10,0X00,0X6A,0X85,0X00,0X00,0X8C,0X96,0X5A,0XC7,0X66,0X43,0X33,0X56, +0X98,0X62,0X00,0X14,0X40,0X25,0X43,0X44,0X43,0X45,0X55,0X57,0X66,0X78,0X98,0X76, +0X55,0X66,0X78,0X89,0X88,0X75,0X20,0X00,0X4C,0XDD,0XA5,0X8B,0XD7,0X10,0X12,0X11, +0X00,0X00,0X00,0X28,0X87,0X66,0X66,0X67,0X73,0X00,0X00,0X00,0X06,0X88,0X87,0X64, +0X66,0X77,0X66,0X64,0X00,0X28,0XCC,0X50,0X00,0X19,0X9D,0XDC,0X71,0X00,0X00,0X00, +0X13,0X55,0X66,0X64,0X31,0X02,0X63,0X23,0X47,0X87,0X65,0X11,0X00,0X00,0X03,0X69, +0X54,0XAD,0XEF,0XFF,0XDC,0XDE,0XA4,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X01,0X28,0X77,0X66,0X54,0X33,0X21,0X49,0X97,0X77,0X65,0X22,0X22,0X11, +0X05,0X55,0X30,0X00,0X7A,0X85,0X00,0X00,0X9C,0X95,0X02,0X51,0X67,0X33,0X30,0X06, +0X63,0X20,0X01,0X35,0X30,0X36,0X42,0X43,0X54,0X45,0X55,0X54,0X44,0X44,0X68,0XAA, +0XBB,0XBA,0XAA,0X99,0X86,0X40,0X00,0X00,0X29,0XCE,0X80,0X07,0XC9,0X35,0X89,0XA9, +0X53,0X00,0X00,0X28,0X87,0X65,0X66,0X67,0X75,0X00,0X00,0X00,0X05,0X87,0X56,0X64, +0X66,0X66,0X65,0X46,0X00,0X49,0XC9,0X00,0X00,0X0A,0X9B,0XDB,0X61,0X00,0X00,0X01, +0X37,0X99,0X99,0X98,0X85,0X12,0X64,0X7B,0XAB,0XAA,0XBB,0X82,0X00,0X00,0X02,0X57, +0X74,0XAD,0XFF,0X93,0X56,0X7B,0XD8,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X87,0X54,0X33,0X44,0X22,0X21,0X59,0X65,0X44,0X33,0X22,0X21,0X11, +0X12,0X56,0X52,0X10,0X5B,0X95,0X00,0X00,0X8C,0X93,0X00,0X00,0X67,0X43,0X20,0X05, +0X63,0X00,0X28,0XBA,0X53,0X45,0X32,0X12,0X34,0X33,0X22,0X12,0X22,0X22,0X34,0X55, +0X67,0X78,0X87,0X63,0X20,0X00,0X00,0X00,0X03,0X9A,0X50,0X03,0XCA,0X89,0X89,0X9A, +0XA9,0X72,0X01,0X58,0X76,0X65,0X56,0X67,0X87,0X52,0X00,0X00,0X04,0X87,0X55,0X54, +0X55,0X66,0X54,0X45,0X10,0X6A,0XD5,0X00,0X00,0X08,0XDB,0XA7,0X66,0X89,0X74,0X14, +0X68,0XAA,0XAA,0XBA,0X98,0X62,0X5A,0X87,0X77,0X68,0X89,0XBA,0X40,0X00,0X02,0X47, +0X82,0X8C,0XEA,0X10,0X15,0X66,0X9B,0X20,0X00,0X00,0X00,0X00,0X03,0X57,0X77,0X64, +0X00,0X00,0X15,0X75,0X44,0X43,0X32,0X10,0X00,0X58,0X43,0X32,0X21,0X00,0X00,0X00, +0X00,0X24,0X54,0X21,0X2B,0X87,0X00,0X10,0X7B,0X87,0X00,0X00,0X47,0X64,0X20,0X02, +0X53,0X00,0X6B,0XBC,0XA9,0X95,0X10,0X22,0X22,0X22,0X23,0X33,0X33,0X33,0X33,0X35, +0X54,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X10,0X03,0XB9,0X98,0X88,0X89, +0X99,0XA9,0X78,0X87,0X77,0X78,0X89,0XAA,0XBB,0XB9,0X99,0X86,0X57,0X87,0X66,0X55, +0X55,0X55,0X44,0X44,0X11,0X8C,0XC3,0X00,0X10,0X03,0X55,0X8B,0XCF,0XED,0XDC,0XA6, +0X89,0XA9,0X89,0X9B,0XB9,0X74,0XAA,0X56,0X54,0X44,0X46,0X9B,0X93,0X00,0X02,0X56, +0X60,0X37,0XA6,0X00,0X02,0X67,0X8B,0X40,0X00,0X00,0X00,0X02,0X69,0XAB,0XBC,0XBA, +0X00,0X00,0X27,0X63,0X33,0X32,0X00,0X00,0X02,0X77,0X43,0X20,0X00,0X00,0X00,0X00, +0X00,0X01,0X45,0X42,0X28,0XBA,0X40,0X00,0X3C,0X87,0X10,0X00,0X16,0X85,0X32,0X00, +0X34,0X10,0X6C,0XBB,0XAA,0X94,0X11,0X33,0X44,0X45,0X66,0X66,0X67,0X76,0X55,0X44, +0X55,0X53,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X00,0X00,0X05,0XB9,0XA7,0X88,0X77, +0X89,0X99,0X88,0X78,0X89,0X9A,0XBB,0XCC,0XCD,0XDD,0XDC,0XCD,0XCC,0XCA,0X98,0X65, +0X44,0X55,0X55,0X44,0X12,0X9D,0XA0,0X00,0X00,0X00,0X15,0X9B,0XBD,0XFF,0XFE,0XDA, +0X75,0X32,0X01,0X37,0XAA,0X96,0XDA,0X23,0X20,0X00,0X02,0X38,0XA7,0X00,0X01,0X35, +0X50,0X01,0X10,0X00,0X00,0X58,0X8B,0X50,0X00,0X00,0X00,0X37,0XBC,0XCC,0XCE,0XCC, +0X00,0X00,0X38,0X43,0X32,0X10,0X00,0X00,0X37,0X74,0X32,0X10,0X00,0X00,0X00,0X00, +0X00,0X00,0X13,0X44,0X44,0XAA,0X72,0X01,0X08,0X96,0X51,0X00,0X04,0X77,0X53,0X10, +0X12,0X21,0X4B,0XCB,0XA9,0X74,0X23,0X45,0X55,0X43,0X43,0X35,0X67,0X88,0X88,0X85, +0X45,0X76,0X31,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X19,0XB8,0X88,0X88,0X88, +0X88,0X87,0X89,0X9A,0XAA,0XBB,0XBB,0XBC,0XCC,0XCC,0XDD,0XCC,0XBC,0XCC,0XBB,0XA9, +0X76,0X43,0X33,0X34,0X23,0XAD,0X80,0X00,0X00,0X00,0X48,0X87,0X67,0XBF,0XFF,0XEC, +0X71,0X00,0X00,0X01,0X6B,0X87,0XDC,0X44,0X00,0X00,0X00,0X03,0X98,0X02,0X57,0X89, +0X82,0X00,0X00,0X00,0X00,0X37,0X9B,0X60,0X00,0X00,0X03,0X7B,0XC8,0X53,0X59,0XED, +0X00,0X00,0X38,0X43,0X21,0X00,0X00,0X00,0X68,0X43,0X30,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X23,0X34,0X8B,0X97,0X10,0X02,0XA7,0X55,0X11,0X00,0X36,0X75,0X43, +0X00,0X21,0X4A,0XBB,0XA8,0X63,0X35,0X67,0X65,0X30,0X00,0X00,0X12,0X57,0X99,0X97, +0X76,0X67,0X75,0X20,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X5B,0XA5,0X5A,0X99,0X99, +0X87,0X89,0XAB,0XCB,0XBB,0XAB,0XBB,0XCC,0XCD,0XCC,0XDC,0XCD,0XCB,0XBA,0XAB,0XBB, +0XB9,0X75,0X44,0X42,0X25,0XAD,0X80,0X00,0X00,0X03,0X87,0X56,0X78,0X9E,0XFF,0XFC, +0X50,0X00,0X00,0X00,0X4A,0X87,0XCE,0XA4,0X01,0X00,0X00,0X00,0X47,0X47,0XBD,0XEB, +0XDB,0X61,0X00,0X00,0X00,0X17,0XAC,0X60,0X00,0X00,0X27,0XBC,0X72,0X00,0X01,0X7E, +0X00,0X00,0X47,0X43,0X10,0X00,0X00,0X03,0X97,0X33,0X20,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X01,0X38,0XB9,0X51,0X00,0X69,0X76,0X52,0X10,0X02,0X45,0X65, +0X43,0X21,0X5A,0XA9,0X76,0X42,0X46,0X77,0X88,0X75,0X31,0X00,0X00,0X00,0X37,0XAA, +0X97,0X57,0X99,0X73,0X10,0X00,0X00,0X00,0X00,0X00,0X27,0XCB,0X83,0X3B,0XA9,0X98, +0X88,0XAB,0XBB,0XBA,0XAA,0XAB,0XBC,0XCC,0XCC,0XCC,0XCB,0XBB,0XAA,0XBB,0XA9,0XA9, +0X9A,0X98,0X63,0X11,0X15,0XAD,0X70,0X00,0X00,0X07,0X95,0X68,0X65,0X7D,0XFF,0XEC, +0X50,0X00,0X00,0X02,0X7A,0X84,0XBE,0XFD,0XAA,0X00,0X23,0X22,0X26,0X9C,0XEE,0XFF, +0XFE,0XD7,0X10,0X00,0X00,0X07,0X9C,0X70,0X00,0X01,0X5A,0XCA,0X20,0X01,0X00,0X4E, +0X00,0X02,0X66,0X42,0X00,0X00,0X00,0X04,0X96,0X33,0X20,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X02,0X79,0XA7,0X10,0X06,0X97,0X66,0X43,0X20,0X12,0X34, +0X64,0X22,0X47,0X87,0X64,0X33,0X45,0X45,0X68,0X99,0X84,0X10,0X00,0X00,0X01,0X3A, +0XA9,0X65,0X69,0XAA,0X85,0X31,0X00,0X00,0X02,0X47,0XBB,0XBA,0X51,0X3A,0XA9,0X98, +0X8B,0XCB,0XBB,0XBB,0XBB,0XBB,0XCC,0XCC,0XCC,0XCB,0XBB,0XAA,0XA9,0X86,0X43,0X21, +0X11,0X35,0X55,0X41,0X14,0XAD,0X80,0X00,0X00,0X39,0X86,0X85,0X10,0X2C,0XED,0XC9, +0X52,0X11,0X12,0X37,0XBA,0X83,0X7C,0XEE,0XDA,0X35,0X9B,0XA9,0X75,0XAE,0XEF,0XFF, +0XEF,0XEB,0X50,0X00,0X00,0X07,0X9C,0X60,0X00,0X03,0X9B,0XB3,0X00,0X00,0X16,0XBD, +0X00,0X15,0X84,0X22,0X00,0X00,0X00,0X03,0X96,0X44,0X31,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X02,0X56,0X53,0X18,0XA9,0X63,0X00,0X59,0X86,0X45,0X43,0X33,0X33, +0X32,0X23,0X23,0X44,0X43,0X22,0X34,0X20,0X01,0X48,0XA9,0X72,0X00,0X00,0X00,0X03, +0X9C,0X95,0X68,0X9B,0XBB,0XBA,0X99,0X9A,0XBC,0XCD,0XDB,0XA8,0X30,0X59,0XA9,0X98, +0XAC,0XCB,0XBA,0XAB,0XBB,0XCC,0XCC,0XCC,0XCB,0XBB,0XAA,0XAA,0X95,0X10,0X00,0X00, +0X00,0X00,0X01,0X21,0X04,0XAD,0X90,0X00,0X00,0X7A,0X68,0X50,0X00,0X07,0X9A,0X97, +0X67,0X99,0X64,0X57,0X98,0X40,0X28,0XBB,0X85,0X8D,0XCD,0XDB,0XA7,0XAF,0XFF,0XFC, +0XAA,0X9C,0XA1,0X00,0X00,0X05,0X9C,0X50,0X00,0X16,0XAB,0X90,0X00,0X00,0X18,0XCC, +0X00,0X27,0X54,0X20,0X00,0X00,0X00,0X01,0X79,0X63,0X54,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X7B,0XAD,0XCB,0X61,0X5A,0X98,0X52,0X14,0X78,0X77,0X65,0X54,0X45, +0X45,0X44,0X32,0X24,0X73,0X25,0X56,0X52,0X00,0X02,0X8B,0X87,0X20,0X00,0X00,0X00, +0X3B,0XC5,0X26,0X89,0X9A,0XBC,0XCD,0XDE,0XED,0XCC,0XCB,0X95,0X04,0XA9,0XA8,0X9B, +0XCC,0XBB,0XBA,0XAB,0XB6,0XAC,0XDC,0XCC,0XBA,0XAA,0XAA,0X99,0X51,0X00,0X00,0X00, +0X00,0X00,0X00,0X10,0X03,0X9D,0XB0,0X00,0X01,0XA9,0X88,0X20,0X00,0X10,0X15,0X8A, +0XBC,0XDB,0XB9,0X51,0X33,0X00,0X01,0X44,0X14,0XCD,0XEF,0XEE,0XC9,0XBE,0XFF,0XB5, +0X34,0X77,0X95,0X00,0X00,0X05,0X9C,0X40,0X00,0X37,0XAA,0X40,0X00,0X00,0X15,0XAA, +0X00,0X49,0X43,0X21,0X00,0X00,0X00,0X00,0X48,0X99,0X95,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X38,0XBD,0XEE,0XDD,0XA4,0X04,0X79,0X97,0X53,0X26,0X78,0X87,0X77,0X76, +0X65,0X43,0X23,0X57,0X73,0X36,0X78,0X62,0X00,0X00,0X29,0XB9,0X40,0X00,0X00,0X00, +0X05,0XC9,0X11,0X47,0X78,0XAA,0XBB,0XCC,0XCC,0XBB,0XA7,0X52,0X06,0XA9,0X89,0XAC, +0XCB,0XAA,0XAB,0XBA,0X30,0X3C,0XDB,0XBB,0XA9,0X99,0X99,0X98,0X30,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X02,0X9C,0XC3,0X00,0X02,0XA9,0X86,0X00,0X00,0X01,0X69,0XAA, +0XCE,0XEE,0XEC,0X70,0X12,0X43,0X10,0X02,0X27,0XBE,0XFE,0XFF,0XEB,0X8B,0XFF,0X96, +0X31,0X47,0X97,0X00,0X00,0X07,0XAB,0X30,0X00,0X47,0X87,0X00,0X00,0X00,0X02,0X35, +0X00,0X49,0X43,0X32,0X00,0X00,0X00,0X00,0X02,0X56,0X52,0X00,0X00,0X00,0X00,0X00, +0X00,0X01,0X8C,0XFF,0XFF,0XFF,0XD7,0X00,0X25,0X79,0XA9,0X75,0X66,0X66,0X66,0X76, +0X64,0X43,0X45,0X8A,0X81,0X25,0X79,0X76,0X20,0X00,0X03,0XBA,0X61,0X00,0X00,0X00, +0X00,0XAC,0X40,0X01,0X23,0X57,0X89,0XAA,0XAA,0X98,0X63,0X10,0X28,0X98,0X7A,0XBC, +0XBB,0XA9,0XAB,0XB7,0X00,0X1B,0XCB,0XCA,0X98,0X89,0X98,0X88,0X20,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X9B,0XE6,0X00,0X03,0XB9,0X84,0X00,0X00,0X04,0X98,0X66, +0X9D,0XFE,0XED,0XA3,0X57,0XA8,0X52,0X15,0X58,0XCE,0XFD,0X67,0XBD,0X99,0XAB,0X76, +0X30,0X27,0X99,0X10,0X00,0X07,0XAA,0X10,0X14,0X77,0X75,0X00,0X00,0X00,0X00,0X00, +0X00,0X39,0X53,0X32,0X11,0X00,0X00,0X00,0X00,0X11,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X05,0XBE,0XEE,0XEE,0XFF,0XD8,0X10,0X00,0X13,0X68,0X99,0X98,0X89,0X88,0X74, +0X53,0X34,0X67,0X9B,0X80,0X02,0X68,0X87,0X40,0X01,0X00,0X9B,0X82,0X00,0X00,0X00, +0X00,0X6C,0X71,0X00,0X00,0X12,0X34,0X55,0X65,0X32,0X10,0X00,0X57,0X77,0X7B,0XCC, +0XBA,0XA9,0X9A,0XB5,0X00,0X4B,0XCB,0XAA,0X98,0X99,0X98,0X88,0X20,0X00,0X03,0X46, +0X65,0X31,0X00,0X00,0X01,0X7A,0XD8,0X00,0X04,0XB9,0X73,0X00,0X00,0X18,0X96,0X56, +0X49,0XFF,0XFE,0XA6,0X89,0XBB,0X96,0X37,0X89,0XCC,0XEF,0X20,0X4B,0XB8,0X33,0X46, +0X20,0X17,0X89,0X10,0X00,0X28,0XA9,0X47,0X9B,0XCB,0XB8,0X41,0X00,0X00,0X00,0X00, +0X00,0X27,0X74,0X22,0X33,0X20,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X19,0XDE,0XDC,0XBC,0XEF,0XD8,0X00,0X00,0X00,0X02,0X45,0X66,0X77,0X64,0X32, +0X34,0X56,0X57,0XAC,0X80,0X00,0X26,0X87,0X53,0X00,0X00,0X8B,0X81,0X00,0X00,0X00, +0X00,0X2C,0X91,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X66,0X67,0X9B,0XCC, +0XBA,0X99,0X9A,0XB6,0X02,0X9C,0XA9,0X99,0X88,0X99,0X98,0X87,0X10,0X37,0XAC,0XBA, +0XBB,0XCB,0X95,0X10,0X00,0X59,0XCB,0X20,0X04,0XB9,0X72,0X00,0X00,0X4A,0X88,0X74, +0X16,0XEF,0XED,0X96,0X56,0X9D,0XB8,0X66,0X97,0X9B,0XDC,0X30,0X16,0XDB,0X51,0X46, +0X10,0X06,0X89,0X20,0X00,0X48,0XCA,0X8C,0XCE,0XDD,0XEC,0XA6,0X10,0X00,0X00,0X00, +0X00,0X04,0X77,0X55,0X65,0X20,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X1B,0XDD,0XB7,0X58,0XCD,0XA4,0X00,0X00,0X01,0X12,0X21,0X24,0X44,0X31,0X13, +0X47,0X97,0X26,0XBC,0X80,0X00,0X02,0X68,0X66,0X20,0X00,0X9C,0X81,0X00,0X00,0X00, +0X00,0X1C,0XA2,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X55,0X56,0XAC,0XCC, +0XBA,0X99,0XAA,0XB7,0X2A,0XCA,0X99,0XA9,0X89,0X9A,0X98,0X86,0X46,0X9A,0X99,0X78, +0X87,0X89,0XAA,0XA4,0X10,0X29,0XCD,0X60,0X03,0XA9,0X61,0X00,0X01,0X7A,0X78,0X60, +0X09,0XFF,0XEC,0X71,0X00,0X3A,0XB8,0X48,0X41,0X37,0X95,0X00,0X02,0XBB,0X61,0X55, +0X00,0X06,0X99,0X20,0X00,0X5A,0XCA,0XBD,0XEF,0XFF,0XFD,0XB9,0X51,0X00,0X00,0X00, +0X00,0X01,0X57,0X77,0X64,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X2B,0XCB,0X93,0X03,0X76,0X30,0X00,0X00,0X12,0X33,0X34,0X45,0X43,0X33,0X36, +0X79,0XA4,0X06,0XBC,0X90,0X00,0X00,0X25,0X7B,0XA5,0X04,0XDB,0X81,0X00,0X01,0X00, +0X00,0X2C,0XA3,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X34,0X47,0XAB,0XCB, +0XBA,0X99,0XAA,0XB9,0X7C,0XA8,0X99,0X99,0X9A,0XAA,0X87,0X77,0X89,0X97,0X66,0X64, +0X44,0X56,0X89,0XAB,0X73,0X16,0XAC,0X92,0X01,0XA9,0X61,0X00,0X02,0X89,0X76,0X30, +0X06,0XDE,0XC8,0X10,0X00,0X2A,0XC7,0X33,0X27,0XAA,0XA7,0X20,0X01,0XAC,0X73,0X63, +0X00,0X07,0X9A,0X20,0X02,0X7B,0XAA,0XCE,0XFF,0XFD,0X64,0X58,0X83,0X00,0X00,0X00, +0X00,0X00,0X01,0X33,0X21,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X2A,0XCA,0X81,0X00,0X00,0X00,0X00,0X01,0X34,0X34,0X66,0X55,0X44,0X45,0X57, +0X99,0X80,0X06,0XBC,0XB0,0X00,0X00,0X03,0X9F,0XFB,0X7C,0XDC,0X70,0X02,0X68,0X40, +0X00,0X5D,0X92,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X23,0X48,0XAB,0XBB, +0XBB,0X99,0XAA,0XAA,0XBA,0XA9,0X99,0XA9,0X9A,0XA9,0X87,0X7A,0X98,0X65,0X31,0X00, +0X01,0X24,0X56,0X66,0X87,0X44,0X7A,0XB4,0X01,0X99,0X61,0X01,0X03,0X98,0X76,0X10, +0X04,0X8A,0X95,0X20,0X00,0X4C,0X92,0X12,0X8A,0X99,0XAA,0XA3,0X00,0X8C,0X74,0X41, +0X00,0X27,0X8A,0X10,0X04,0X8C,0X99,0XDE,0XFF,0XF8,0X00,0X35,0X96,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X57,0X63,0X00,0X00, +0X00,0X19,0XCA,0X82,0X00,0X00,0X00,0X00,0X04,0X44,0X47,0X76,0X55,0X57,0X45,0X79, +0XAB,0X40,0X04,0XAC,0XC3,0X00,0X00,0X00,0X9D,0XEF,0XFE,0XDB,0X50,0X06,0XB8,0X84, +0X44,0X7D,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X12,0X47,0XAB,0XBB, +0XAB,0XBB,0XAA,0XBA,0X9A,0X88,0X9A,0XAA,0XAA,0XA9,0X86,0X99,0X65,0X42,0X00,0X00, +0X00,0X00,0X24,0X45,0X46,0X76,0X68,0XAA,0X10,0X79,0X53,0X00,0X03,0X98,0X65,0X00, +0X69,0XAA,0XA8,0X62,0X00,0X15,0X21,0X03,0X97,0X87,0X88,0X99,0X20,0X8A,0X84,0X40, +0X00,0X28,0X99,0X20,0X07,0X9B,0X37,0XCE,0XFF,0XD3,0X00,0X04,0X89,0X20,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X59,0XAC,0XCA,0X40,0X00, +0X00,0X18,0XCB,0X82,0X00,0X00,0X00,0X00,0X25,0X56,0X78,0X65,0X67,0X65,0X25,0X9A, +0XBA,0X20,0X02,0X9C,0XD5,0X00,0X03,0X43,0X5D,0XEC,0XED,0XC9,0X20,0X07,0XC9,0X77, +0X44,0XAB,0X63,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X48,0XAA,0XBB, +0X77,0X68,0XAA,0XA6,0X7A,0XA9,0X9A,0XBA,0XAA,0XA8,0X77,0XA7,0X64,0X20,0X00,0X00, +0X00,0X00,0X01,0X45,0X89,0XAA,0XA9,0X9A,0X60,0X48,0X63,0X00,0X04,0X98,0X74,0X06, +0XAB,0XBC,0XC9,0X95,0X10,0X01,0X00,0X03,0X86,0X56,0X55,0X79,0X51,0X9A,0X74,0X20, +0X00,0X48,0X99,0X00,0X37,0XB8,0X13,0XAC,0XDD,0XB3,0X00,0X02,0X79,0X30,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X04,0X9C,0XEE,0XCD,0X90,0X00, +0X00,0X04,0XBC,0X85,0X10,0X00,0X00,0X00,0X45,0X78,0X98,0X46,0X68,0X62,0X16,0XAB, +0XC9,0X00,0X00,0X6A,0XEA,0X30,0X06,0XE9,0X58,0XCC,0XDC,0XA4,0X00,0X04,0XBD,0XA8, +0X8A,0XC7,0X55,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X01,0X47,0X89,0XA9, +0X21,0X17,0XCB,0X92,0X27,0X9A,0XAB,0XBA,0XAB,0XA7,0X79,0X85,0X42,0X00,0X00,0X00, +0X00,0X00,0X01,0X6A,0XBC,0XDE,0XDB,0XAB,0XA4,0X08,0X74,0X10,0X04,0XA7,0X65,0X18, +0X98,0X7B,0XDB,0XB7,0X10,0X00,0X00,0X01,0X66,0X34,0X34,0X67,0X84,0X99,0X64,0X00, +0X00,0X67,0XA9,0X01,0X69,0XB3,0X00,0X59,0XA9,0X62,0X00,0X00,0X59,0X50,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X16,0XCC,0XD8,0X58,0X91,0X00, +0X00,0X02,0X9D,0XB8,0X40,0X00,0X00,0X01,0X68,0X99,0X75,0X57,0X77,0X41,0X17,0XBC, +0XD7,0X00,0X00,0X39,0XDD,0XA5,0X38,0XED,0X82,0X6A,0X87,0X40,0X00,0X00,0X5B,0XCA, +0XB9,0X51,0X48,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X47,0X88,0X9A, +0X10,0X04,0X76,0X30,0X02,0X47,0XAC,0XBB,0XAA,0X87,0X69,0X64,0X42,0X00,0X00,0X00, +0X00,0X00,0X15,0XAD,0XEE,0XEE,0XEC,0XA9,0X99,0X16,0X74,0X20,0X02,0XA7,0X55,0X49, +0X74,0X48,0XCC,0X98,0X00,0X00,0X03,0X56,0X88,0X42,0X11,0X35,0X96,0X88,0X52,0X00, +0X02,0X67,0XB7,0X04,0X7C,0X70,0X00,0X15,0X76,0X20,0X00,0X00,0X59,0X60,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X28,0XCE,0X81,0X01,0X20,0X00, +0X00,0X00,0X4A,0XDC,0X96,0X30,0X00,0X16,0X9A,0XA8,0X62,0X58,0X85,0X10,0X19,0XBD, +0XD5,0X00,0X00,0X04,0X9D,0XED,0XEF,0XEC,0X90,0X04,0X43,0X00,0X00,0X00,0X03,0X67, +0X53,0X00,0X28,0X50,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X36,0X67,0X97, +0X10,0X00,0X00,0X00,0X00,0X01,0X7A,0XBA,0X99,0X87,0X5A,0X73,0X32,0X00,0X00,0X00, +0X00,0X00,0X59,0XAA,0XCF,0XFE,0XEE,0XA7,0X89,0X64,0X85,0X30,0X01,0X97,0X55,0X7A, +0X64,0X45,0XBC,0X86,0X23,0X20,0X28,0XAA,0X99,0X61,0X00,0X14,0X78,0X88,0X50,0X00, +0X03,0X69,0XB4,0X25,0X9B,0X20,0X00,0X35,0X75,0X00,0X00,0X00,0X49,0X60,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X39,0XCD,0X50,0X00,0X00,0X00, +0X00,0X00,0X16,0XAD,0XDC,0XBA,0X9A,0XAC,0XBA,0X85,0X31,0X68,0X73,0X00,0X19,0XBD, +0XC3,0X00,0X13,0X12,0X6A,0XDD,0XEC,0XCB,0X40,0X02,0X54,0X30,0X00,0X01,0X00,0X00, +0X00,0X01,0X16,0X61,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X25,0X67,0X95, +0X00,0X00,0X00,0X00,0X00,0X00,0X25,0XAA,0XA9,0X86,0X4A,0XB6,0X55,0X67,0X63,0X00, +0X00,0X01,0X79,0X76,0X57,0XDF,0XEE,0XB7,0X78,0X85,0X68,0X42,0X00,0X78,0X54,0X88, +0X45,0X31,0X68,0X64,0X68,0X76,0X7B,0X86,0X68,0X83,0X00,0X03,0X78,0X77,0X30,0X00, +0X15,0X7A,0XA2,0X48,0XC5,0X00,0X00,0X68,0X74,0X00,0X00,0X00,0X49,0X50,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X29,0XBB,0X30,0X00,0X00,0X00, +0X00,0X00,0X02,0X5A,0XBC,0XDD,0XDD,0XCB,0X98,0X41,0X02,0X88,0X72,0X00,0X08,0XBD, +0XD6,0X34,0X66,0X66,0X56,0X9B,0XCC,0XB8,0X10,0X01,0X45,0X61,0X10,0X00,0X00,0X00, +0X00,0X00,0X06,0X94,0X10,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X14,0X67,0X95, +0X00,0X01,0X00,0X00,0X00,0X10,0X00,0X9A,0X99,0X76,0X49,0XED,0XCC,0XEE,0XD7,0X10, +0X00,0X03,0X97,0X42,0X00,0X8F,0XEC,0XB5,0X47,0X77,0X58,0X64,0X10,0X59,0X54,0X87, +0X45,0X20,0X01,0X25,0X9C,0XCA,0X99,0X30,0X25,0X87,0X00,0X03,0X68,0X75,0X20,0X01, +0X36,0X8B,0X73,0X79,0X80,0X00,0X04,0X7A,0X62,0X00,0X00,0X01,0X5A,0X50,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X10,0X08,0XAD,0X20,0X00,0X00,0X00, +0X00,0X00,0X00,0X02,0X69,0X9A,0XA9,0X97,0X41,0X00,0X05,0X98,0X60,0X00,0X07,0XBD, +0XE8,0X67,0X87,0X87,0X77,0X57,0X88,0X64,0X42,0X00,0X36,0X75,0X10,0X00,0X00,0X00, +0X00,0X00,0X04,0X88,0X30,0X00,0X00,0X00,0X00,0X00,0X12,0X46,0X76,0X78,0XAA,0XA2, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X8A,0X97,0X76,0X37,0XDF,0XFF,0XFE,0XEB,0X60, +0X00,0X05,0X96,0X40,0X10,0X4C,0XCB,0X92,0X36,0X67,0X65,0X86,0X30,0X38,0X54,0X77, +0X54,0X20,0X00,0X27,0XBB,0XB9,0X67,0X10,0X13,0X58,0X00,0X02,0X67,0X64,0X00,0X02, +0X46,0X9B,0X55,0X98,0X10,0X10,0X17,0X9A,0X40,0X00,0X00,0X02,0X7B,0X40,0X00,0X00, + }; + +const uint8_t PIC2[] PROGMEM = +{ +0X00,0X00,0X00,0X00,0X00,0X03,0X7F,0XFF,0X70,0X00,0X37,0X77,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X30,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X03,0X77,0X77,0X77,0XF7,0X73,0X77,0X77,0X37,0X77,0X77,0X33,0X33, +0X33,0X77,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X37,0X7F, +0X73,0X33,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X77,0X73,0X00,0X00,0X33,0X00,0X00,0X00,0X00, +0X00,0X00,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X03, +0X00,0X00,0X00,0X03,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X37,0X77,0X77,0X33,0X77,0X77,0X77,0X77,0X37,0X33,0X37,0X77,0X73,0X33, +0X33,0X33,0X77,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0XFF, +0X33,0X33,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X33,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X30,0X00,0X00,0X03,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X33, +0X00,0X00,0X00,0X37,0XF7,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X03,0X7F,0X77,0X73,0X33,0X37,0XF7,0X33,0X77,0XF3,0X03,0X77,0X33,0X77,0X73,0X37, +0X73,0X33,0X33,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X7F,0XF7, +0X33,0X33,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X30,0X00,0X00,0X00, +0X00,0X00,0X33,0X00,0X00,0X3F,0XFF,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33, +0X00,0X00,0X03,0X7F,0XFF,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03, +0X77,0X77,0X33,0X33,0X33,0X77,0X77,0X77,0X7F,0X70,0X03,0X77,0X73,0X77,0X70,0X03, +0X37,0X77,0X77,0X77,0XF7,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0X7F,0XF3, +0X33,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X33,0X30,0X00,0X00,0X00, +0X00,0X00,0X03,0X00,0X00,0X3F,0X7F,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33, +0X00,0X00,0X03,0X77,0XFF,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X7F, +0X77,0X77,0X37,0X77,0X77,0XF7,0X77,0X7F,0XF7,0X30,0X33,0X77,0X77,0X77,0XF3,0X00, +0X00,0X33,0X37,0X77,0X7F,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0XFF,0X73, +0X33,0X37,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X00,0X00, +0X00,0X00,0X03,0X30,0X00,0X37,0XF7,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03, +0X30,0X00,0X03,0X7F,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0X77, +0X77,0X77,0X73,0X33,0X37,0X77,0X37,0XF7,0X33,0X30,0X33,0X37,0X77,0X37,0X77,0X00, +0X00,0X00,0X00,0X33,0X77,0XFF,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X03,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0XFF,0XFF,0X33, +0X37,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X03, +0X00,0X00,0X00,0X30,0X00,0X07,0XF7,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X30,0X00,0X03,0XFF,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X7F,0XF7,0X73, +0X33,0X00,0X00,0X00,0X77,0X77,0X7F,0X30,0X73,0X33,0X33,0X33,0X77,0X77,0X77,0X30, +0X00,0X00,0X00,0X00,0X00,0X37,0XF3,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X03,0X00,0X00,0X00,0X00,0X00,0X00,0X77,0X77,0XF7,0X33, +0X37,0X73,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X33,0X33, +0X33,0X33,0X33,0X30,0X00,0X07,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03, +0X33,0X00,0X03,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X77,0X73,0X30,0X00, +0X00,0X00,0X00,0X03,0XF7,0X77,0XF3,0X03,0X33,0X33,0X73,0X00,0X3F,0X77,0X7F,0X30, +0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X37,0X00,0X00,0X00,0X00,0X00,0X03,0X7F,0XFF,0XF3,0X33, +0X37,0X33,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X00, +0X00,0X00,0X33,0X33,0X00,0X03,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03, +0X33,0X00,0X03,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X30,0X00,0X00,0X00, +0X00,0X00,0X00,0X07,0X77,0XF7,0X33,0X37,0X33,0X33,0X73,0X00,0X33,0XF7,0X7F,0X30, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X03,0X77,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0XFF,0X33,0X33, +0X33,0X33,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X03,0X30,0X00,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X03,0X30,0X03,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X77,0X7F,0X30,0X33,0X37,0X33,0X77,0X03,0X00,0X00,0X77,0X77,0X70, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X37,0XF3,0X00,0X00,0X00,0X00,0X00,0X07,0X7F,0XF7,0X33,0X33, +0X33,0X37,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X03,0X30,0X03,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X77,0XF3,0X00,0X33,0X77,0X33,0X73,0X03,0X00,0X00,0X07,0X77,0X70, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X33,0X77,0X70,0X00,0X00,0X00,0X00,0X00,0X07,0XFF,0XF3,0X33,0X33, +0X33,0X77,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X03,0X33,0X00,0X00,0X33,0X33,0X30,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X33,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X0F,0X7F,0X30,0X00,0X03,0X73,0X37,0X30,0X00,0X33,0X00,0X03,0XF7,0X73, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X03,0X33,0X77,0XF7,0X30,0X00,0X00,0X00,0X00,0X00,0X37,0XF7,0X33,0X33,0X33, +0X33,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X37,0XF7,0X7F,0X73,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0XF3,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X33,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X37,0XF3,0X00,0X00,0X07,0X73,0X77,0X00,0X00,0X33,0X00,0X00,0X3F,0X73, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33, +0X33,0X37,0X77,0XF7,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X73,0X33,0X33,0X33, +0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X03,0X33,0X77,0X33,0X37,0X7F,0X30,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X7F,0XFF,0X30,0X00,0X00,0X00,0X00,0X00, +0X00,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X03,0XFF,0X30,0X00,0X00,0X07,0X77,0X70,0X00,0X00,0X30,0X00,0X00,0X07,0XF3, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00, +0X37,0X77,0XF7,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X33,0X33,0X33,0X33, +0X73,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X03,0X37,0X77,0X33,0X33,0X77,0X70,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0X7F,0X77,0X30,0X00,0X00,0X00,0X00,0X00, +0X00,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X07,0XF3,0X00,0X00,0X00,0X37,0X77,0X70,0X00,0X00,0X30,0X00,0X00,0X03,0XF7, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X03, +0X77,0X77,0X77,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X33,0X33, +0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X3F,0X73,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0X7F,0X77,0X30,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X3F,0X30,0X00,0X00,0X00,0X37,0X77,0X30,0X00,0X00,0X30,0X00,0X00,0X00,0X77, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X03, +0X77,0XFF,0X77,0X77,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X33,0X33, +0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X33,0X77,0X77,0X77,0X33,0X33,0X33,0X37,0X73,0X00,0X00,0X30,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X7F,0X77,0X30,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0XF3,0X00,0X00,0X00,0X00,0X77,0X73,0X33,0X00,0X00,0X33,0X00,0X00,0X00,0X3F, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X37, +0X77,0XFF,0X77,0X7F,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X33,0X33, +0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0XF7,0X77,0X77,0X77,0X33,0X33,0X33,0X37,0X77,0X7F,0X77,0X73,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X7F,0X73,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X30,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X03,0X30,0X00,0X00,0X00,0X03,0X7F,0X33,0X33,0X00,0X00,0X33,0X00,0X00,0X00,0X07, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X33,0X33,0X33, +0X77,0XF7,0X77,0X77,0XF7,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X33,0X37, +0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X37,0X73,0X33,0X37,0X73,0X33,0X33,0X33,0X37,0X77,0X77,0X77,0X7F,0X70, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X30,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X03,0X00,0X00,0X00,0X00,0X03,0XF7,0X03,0X73,0X30,0X00,0X33,0X00,0X00,0X00,0X03, +0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33, +0X77,0XFF,0XF7,0XFF,0X77,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X73,0X33,0X33,0X33, +0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X77,0X33,0X33,0X33,0X33,0X33,0X33,0X77,0X37,0X77,0X33,0X33,0X37,0XF3, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X30,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X07,0XF0,0X00,0X37,0X30,0X00,0X33,0X00,0X00,0X00,0X03, +0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33, +0X37,0X77,0XFF,0XFF,0XF7,0X73,0X30,0X00,0X00,0X00,0X00,0X03,0X73,0X77,0X33,0X33, +0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X03,0XF7,0X33,0X33,0X33,0X33,0X37,0X73,0X77,0X7F,0XF3,0X33,0X33,0X33,0X77, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X0F,0X30,0X00,0X37,0X30,0X00,0X33,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X77,0X7F,0XFF,0XF7,0X73,0X30,0X00,0X00,0X00,0X00,0X37,0X73,0X73,0X33,0X37, +0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X03,0XF3,0X33,0X33,0X33,0X33,0X33,0X73,0X33,0X37,0X73,0X33,0X33,0X33,0X77, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X3F,0X00,0X00,0X37,0X73,0X00,0X33,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X03,0X33,0X77,0X7F,0X77,0X73,0X30,0X00,0X00,0X00,0X00,0X37,0X77,0X77,0X77,0X33, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X77,0X33,0X33,0X33,0X33,0X77,0X33,0X33,0X33,0X73,0X33,0X33,0X33,0X77, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X73,0X00,0X00,0X07,0X73,0X00,0X33,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X33,0X37,0X77,0X77,0X33,0X30,0X00,0X00,0X00,0X03,0X77,0X77,0X77,0X77,0X33, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X7F,0X33,0X33,0X33,0X33,0X77,0X33,0X33,0X33,0X77,0X33,0X33,0X33,0X77, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X70,0X00,0X00,0X03,0X73,0X00,0X30,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X33,0X33,0X77,0X73,0X33,0X33,0X33,0X00,0X03,0X37,0X77,0X77,0X77,0X73,0X37, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X07,0XF7,0X77,0X33,0X33,0X33,0X33,0X37,0X33,0X33,0X33,0X33,0X7F,0X70, +0X00,0X00,0X03,0X30,0X00,0X00,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X03,0X30,0X00,0X00,0X03,0X77,0X30,0X30,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X33,0X73,0X33,0X33,0X33,0X33,0X33,0X33,0X37,0XF7,0X7F,0X77,0X77,0X37,0X73, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X37,0X7F,0X77,0X33,0X77,0X33,0X33,0X33,0X73,0X33,0X77,0X77,0X30, +0X00,0X00,0X37,0X77,0X30,0X00,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X03,0X00,0X00,0X00,0X03,0X77,0X33,0X30,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X03,0X33,0X33,0X33,0X77,0X77,0X77,0X73,0X33,0X3F,0XF7,0XFF,0X77,0X77,0X77,0X30, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X07,0X77,0X33,0X77,0X33,0X33,0X37,0XF3,0X33,0XF7,0X30,0X00, +0X00,0X03,0X7F,0XF7,0X30,0X00,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03, +0X77,0X77,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0X77,0X73,0X30,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X77,0X33,0X77,0X77,0X77,0X77,0X33,0X7F,0XFF,0XFF,0XF7,0X7F,0X73,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X07,0X77,0X33,0X33,0X77,0X37,0X73,0X73,0X37,0X73,0X00,0X00, +0X00,0X03,0X7F,0XF7,0X73,0X00,0X03,0X00,0X30,0X00,0X00,0X00,0X00,0X00,0X03,0X77, +0X77,0X77,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0X77,0X77,0X30,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X30,0X00,0X00, +0X00,0X03,0X77,0X37,0X77,0XFF,0XFF,0X77,0X77,0X7F,0XFF,0XFF,0X7F,0XF7,0X33,0X30, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X3F,0X73,0X33,0X33,0XFF,0X3F,0X73,0X33,0X33,0X77,0X00,0X00, +0X00,0X03,0X77,0XF7,0X73,0X00,0X03,0X03,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XF7, +0X33,0X33,0X77,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0X73,0X00,0X00,0X00,0X00,0X00, +0X00,0X33,0X33,0X30,0X00,0X00,0X00,0X00,0X33,0X33,0X33,0X77,0X77,0XF7,0X30,0X00, +0X00,0X03,0X33,0X37,0X7F,0XFF,0XFF,0X77,0X77,0X77,0X77,0X7F,0XF7,0X77,0X33,0X33, +0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X3F,0X33,0X33,0X33,0X37,0X73,0X33,0X33,0X33,0X77,0X00,0X00, +0X00,0X03,0X77,0XFF,0X77,0X00,0X03,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0X73, +0X33,0X33,0X77,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X77,0X73,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X33,0X77,0X77,0X73,0X77,0X77,0X77,0X77,0X77,0XFF,0X77,0XF7,0X30,0X00, +0X00,0X00,0X03,0X37,0X7F,0XFF,0XFF,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X33,0X33, +0X33,0X33,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X37,0X73,0X33,0X33,0X77,0X73,0X33,0X33,0X33,0X7F,0X00,0X00, +0X00,0X00,0X37,0XF7,0X77,0X00,0X03,0X30,0X00,0X00,0X00,0X03,0X77,0X77,0X77,0X73, +0X33,0X33,0X77,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X73,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X03,0X33,0X77,0X7F,0X7F,0XFF,0XFF,0XFF,0XFF,0XF7,0X73,0X00,0X00, +0X00,0X00,0X00,0X37,0X77,0XFF,0XFF,0X77,0X77,0X73,0X33,0X33,0X77,0X77,0X77,0X77, +0X77,0X33,0X30,0X00,0X03,0X33,0X33,0X33,0X33,0X33,0X33,0X33,0X33,0X33,0X33,0X33, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X37,0X33,0X33,0X37,0X7F,0X73,0X33,0X33,0X33,0X77,0X00,0X00, +0X00,0X00,0X03,0X77,0X77,0X00,0X00,0X30,0X00,0X00,0X00,0X37,0X77,0X77,0X77,0X33, +0X33,0X33,0X37,0X33,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X33,0X77,0X77,0X77,0X7F,0XFF,0XF7,0X73,0X33,0X33,0X00, +0X00,0X00,0X00,0X03,0X77,0X77,0X77,0X77,0X77,0X77,0X73,0X77,0X77,0X77,0X77,0X77, +0X77,0X77,0X33,0X33,0X33,0X37,0X73,0X77,0X73,0X37,0X73,0X37,0X73,0X33,0X33,0X33, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X3F,0X73,0X33,0X77,0X73,0X77,0X33,0X33,0X33,0X77,0X00,0X00, +0X00,0X00,0X00,0X37,0X77,0X00,0X03,0X30,0X00,0X00,0X03,0XF7,0X33,0X33,0X77,0X73, +0X37,0X33,0X37,0X77,0X77,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X33,0X33,0X33,0X30,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X37,0X73,0X33,0X33,0X33,0X33,0X33,0X33,0X33,0X33,0X33, +0X30,0X00,0X00,0X03,0X33,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77, +0X77,0X77,0X73,0X33,0X37,0X73,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X07,0X77,0X77,0X77,0X30,0X3F,0X77,0X33,0X37,0XF3,0X00,0X00, +0X00,0X00,0X00,0X03,0X33,0X00,0X03,0X30,0X00,0X00,0X07,0X73,0X33,0X33,0X37,0XF7, +0X37,0X37,0X73,0X33,0X33,0X7F,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33, +0X00,0X00,0X00,0X33,0X33,0X77,0X77,0X77,0X77,0X37,0X73,0X33,0X00,0X03,0X33,0X30, +0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X37,0X37,0X77,0X37,0X33,0X33,0X33,0X33,0X33, +0X33,0X33,0X33,0X33,0X33,0X33,0X37,0X77,0X77,0X77,0X77,0X77,0XFF,0XFF,0XFF,0XF7, +0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X77, +0X30,0X00,0X37,0X7F,0XF7,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X03,0X7F,0XF7,0X33,0X30,0X03,0X77,0X77,0X77,0X70,0X00,0X00, +0X00,0X00,0X00,0X00,0X03,0X30,0X00,0X30,0X00,0X00,0X07,0X73,0X33,0X33,0X33,0X77, +0X33,0X33,0X73,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X77, +0X73,0X00,0X33,0X77,0X77,0X77,0X33,0X33,0X33,0X33,0X33,0X77,0X77,0X7F,0XFF,0X77, +0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X33,0X33,0X77,0X33,0X33,0X33, +0X33,0X33,0X33,0X33,0X33,0X33,0X37,0X77,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7, +0X77,0X73,0X33,0X33,0X77,0X33,0X77,0XF7,0X77,0XFF,0X77,0X7F,0X77,0X77,0X77,0X77, +0X30,0X03,0X77,0X73,0X37,0XF3,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X03,0X30,0X00,0X30,0X00,0X03,0X77,0X73,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X30,0X03,0X30,0X00,0X00,0X07,0X77,0X33,0X33,0X37,0X33, +0X33,0X33,0X33,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0XFF, +0XF3,0X00,0X00,0X00,0X00,0X03,0X33,0X37,0X73,0X33,0X37,0X77,0X33,0XF7,0X77,0X7F, +0X73,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X77,0X77,0X77,0X77,0X77,0X77,0X77,0X33, +0X33,0X33,0X33,0X33,0X33,0X33,0X37,0X77,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7, +0X33,0X00,0X00,0X00,0X03,0X30,0X03,0X77,0X37,0XF7,0X77,0XFF,0X77,0X7F,0XF7,0X7F, +0X33,0X37,0X73,0X33,0X33,0X77,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X33,0X03,0X30,0X00,0X00,0X03,0X73,0X33,0X33,0X7F,0X33, +0X33,0X33,0X77,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0X7F, +0XF3,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X37,0X77,0X33,0X33,0XF7,0X77,0X77, +0X73,0X33,0X33,0X30,0X00,0X00,0X00,0X00,0X33,0X33,0X33,0X77,0X33,0X33,0X37,0X73, +0X33,0X33,0X33,0X33,0X33,0X33,0X33,0X77,0X7F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7, +0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X00,0X37,0X30,0X37,0XF3,0X03,0XFF,0X73, +0X33,0X77,0X73,0X33,0X33,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X03,0X37,0X30,0X00,0X00,0X03,0X7F,0X73,0X33,0X33,0X33, +0X33,0X33,0X37,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0XFF, +0XF3,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0X33,0X33,0X33,0XF7,0X77,0X77, +0XF3,0X33,0X33,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X37,0X77,0X77,0X77,0X77,0X33, +0X73,0X33,0X33,0X33,0X33,0X33,0X33,0X37,0X77,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X73, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X3F,0X00,0X07,0X70, +0X33,0X77,0X33,0X33,0X33,0X37,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X30,0X00,0X00,0X00,0X33,0X77,0X73,0X77,0X33, +0X33,0X33,0X33,0X33,0X33,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0X77, +0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X73,0X33,0X33,0X73,0X77,0X77,0X77, +0X77,0X33,0X33,0X33,0X33,0X00,0X00,0X03,0X00,0X00,0X00,0X33,0X33,0X33,0X33,0X33, +0X37,0X73,0X33,0X33,0X33,0X33,0X33,0X33,0X37,0X77,0X7F,0XFF,0XFF,0XFF,0XFF,0X70, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X30,0X00,0X33, +0X77,0X77,0X33,0X33,0X33,0X37,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X33,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,0X00,0X00,0X00,0X00,0X07,0X73,0X7F,0X73, +0X33,0X33,0XF7,0X33,0X77,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X7F,0X77, +0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X73,0X33,0X33,0X77,0X33,0X3F,0X77,0X77, +0X77,0X33,0X33,0X33,0X33,0X33,0X00,0X03,0X30,0X00,0X00,0X00,0X00,0X03,0X77,0X77, +0X73,0X33,0X73,0X33,0X33,0X33,0X33,0X00,0X33,0X77,0X77,0X77,0X77,0X77,0X77,0X73, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X77,0X77,0X33,0X33,0X33,0X37,0X77,0XF7,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X73,0X00,0X00,0X03,0X30,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,0X00,0X00,0X00,0X00,0X37,0X73,0X33,0X33, +0X33,0X73,0X73,0X37,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0X73, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X73,0X33,0X37,0X77,0X73,0X33,0X07,0X77,0X77, +0X7F,0X33,0X33,0X33,0X03,0X33,0X30,0X00,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X37,0X73,0X33,0X33,0X33,0X30,0X00,0X00,0X33,0X77,0X77,0X77,0X77,0X77,0X33, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X37,0X73,0X33,0X37,0X73,0X37,0X77,0X37,0X77,0X77,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X03,0X33,0X30,0X00,0X00,0X00,0X30,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X30,0X03,0X00,0X00,0X00,0X00,0X03,0X77,0X33,0X33,0X3F, +0X77,0XF3,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X30, +0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X33,0X37,0X73,0X33,0X33,0X03,0X33,0XF7,0X77, +0X7F,0X73,0X33,0X33,0X33,0X33,0X33,0X00,0X37,0X33,0X33,0X30,0X00,0X00,0X00,0X00, +0X33,0X33,0X33,0X33,0X33,0X33,0X00,0X00,0X33,0X30,0X03,0X33,0X33,0X33,0X33,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X77,0X37,0X73,0X77,0X33,0X33,0X33,0X77,0X30,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X30,0X00,0X00,0X00,0X33,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X30,0X33,0X00,0X00,0X00,0X00,0X03,0X73,0X33,0X33,0X37, +0X33,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X30,0X00, +0X00,0X00,0X00,0X00,0X00,0X33,0X73,0X37,0X73,0X30,0X03,0X33,0X33,0X33,0X7F,0X77, +0X77,0X70,0X00,0X33,0X33,0X33,0X33,0X30,0X03,0X77,0X33,0X33,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X30,0X00,0X00,0X00,0X00,0X33,0X30,0X00,0X00,0X00,0X03,0X30,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X77,0X33,0X33,0XF7,0X33,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X33,0X33,0X33,0X33,0X33,0X00,0X30,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X00,0X00,0X00,0X00,0X03,0X73,0X33,0X33,0X33, +0X33,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X30,0X00, +0X00,0X00,0X00,0X00,0X03,0X77,0X37,0X73,0X00,0X00,0X07,0X33,0X33,0X33,0X37,0X77, +0X77,0XF0,0X00,0X00,0X33,0X33,0X33,0X33,0X00,0X37,0X77,0X33,0X33,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X00,0X00,0X00,0X00,0X03,0X30,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X33,0X33,0X33,0X33,0X33,0X33,0X33,0X37,0XF0,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X37,0X33,0X37,0X33,0X33,0X33,0X30,0X00,0X00, +0X03,0X77,0XF3,0X00,0X00,0X03,0X33,0X00,0X00,0X00,0X00,0X03,0X73,0X33,0X33,0X37, +0X73,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X30,0X00, +0X00,0X00,0X00,0X00,0X37,0X73,0X73,0X00,0X00,0X00,0X37,0X33,0X33,0X33,0X03,0XF7, +0X77,0XF3,0X00,0X00,0X00,0X03,0X33,0X33,0X30,0X07,0X77,0X77,0X33,0X30,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X30,0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X3F,0X73,0X33,0X33,0X3F,0X73,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X73,0X33,0X03,0X33,0X33,0X33,0X30,0X00,0X03, +0XF7,0X77,0X77,0X70,0X00,0X00,0X30,0X00,0X00,0X00,0X00,0X00,0XF7,0X33,0X33,0X77, +0X77,0X33,0X33,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X00, +0X00,0X00,0X00,0X03,0X77,0X73,0X00,0X00,0X00,0X00,0X77,0X33,0X33,0X70,0X00,0XF7, +0X77,0XF3,0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X00,0X7F,0X77,0X77,0X33,0X30,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X00,0X00,0X00,0X03,0X30,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X33,0X33,0X33,0X37,0X33,0X33,0X73,0X3F,0X30,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X00,0X00,0X33,0X33,0X33,0X00,0X3F, +0X77,0X77,0X77,0X73,0X00,0X03,0X30,0X00,0X00,0X00,0X00,0X00,0X37,0X77,0X77,0X77, +0X37,0X73,0X33,0X7F,0X30,0X00,0X00,0X00,0X03,0X30,0X00,0X00,0X00,0X33,0X00,0X00, +0X00,0X00,0X00,0X37,0X73,0X30,0X00,0X00,0X00,0X03,0X73,0X33,0X37,0X30,0X00,0X3F, +0X77,0X77,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X30,0X07,0XF7,0X77,0X73,0X33,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X00,0X00,0X00,0X33,0X30,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X37,0X33,0X33,0X33,0X33,0X33,0X37,0X37,0XF7,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X33,0X33,0X00,0X77, +0X77,0X33,0X37,0X73,0X00,0X03,0X30,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0X77,0X33, +0X03,0X77,0X7F,0X73,0X00,0X00,0X00,0X03,0X77,0XF3,0X00,0X00,0X00,0X03,0X00,0X00, +0X00,0X00,0X03,0X77,0X30,0X00,0X00,0X00,0X00,0X07,0X73,0X33,0X73,0X00,0X00,0X07, +0XF7,0X77,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X70,0X00,0X7F,0X77,0X77,0X33,0X30, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X03,0X30,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X73,0X3F,0X73,0X33,0X33,0X77,0X33,0X77,0X77,0X73,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X73,0X33,0X77, +0X77,0X33,0X77,0X77,0X00,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03, +0X00,0X33,0X33,0X00,0X00,0X00,0X00,0X07,0XFF,0XF7,0X00,0X00,0X00,0X03,0X00,0X00, +0X00,0X00,0X37,0X30,0X00,0X00,0X00,0X00,0X00,0X37,0X33,0X77,0X70,0X00,0X00,0X03, +0XF7,0X7F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,0X03,0XFF,0X77,0X73,0X33, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X30,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X33,0X33,0X33,0X77,0X33,0X77,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0XFF,0X77,0XF7, +0X73,0X33,0X77,0X77,0X00,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33, +0X03,0X30,0X00,0X00,0X00,0X00,0X00,0X37,0XF7,0X77,0X00,0X30,0X00,0X03,0X00,0X00, +0X00,0X03,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X77,0X37,0X77,0X30,0X00,0X00,0X00, +0X7F,0X7F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0XF7,0X77,0X33, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X3F,0XF3,0XF7,0X33,0X33,0X77,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X77,0X77,0X77,0X73, +0X73,0X33,0X37,0X77,0X37,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33, +0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X7F,0X77,0X00,0X30,0X00,0X03,0X00,0X00, +0X00,0X03,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X73,0X37,0X73,0X33,0X00,0X00,0X00, +0X3F,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X7F,0X77,0X73, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X33,0X33,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X37,0X73,0X77,0X33,0X33,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0X77,0X73,0X77,0X77, +0X33,0X37,0X37,0X77,0XFF,0X77,0XF7,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X33, +0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0X7F,0X73,0X00,0X03,0X03,0X33,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X73,0X73,0X33,0X33,0X00,0X00,0X00, +0X07,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X77,0X73, +0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X30,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X33,0X33,0X33,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X77,0X73,0X73,0X73,0X33, +0X33,0X77,0X77,0X77,0X77,0X77,0X7F,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X30, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0XFF,0X70,0X00,0X03,0X33,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0X77,0X73,0X33,0X33,0X00,0X00,0X00, +0X03,0XFF,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0X73, +0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X33,0X77,0X73,0X33,0X33,0X37,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0XF7,0X73,0X73,0X37,0X37, +0X77,0X77,0X7F,0XF7,0X77,0X33,0X77,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X30, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0X30,0X00,0X33,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X77,0X00,0X33,0X33,0X00,0X00,0X00, +0X00,0XFF,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0X77, +0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X37,0X77,0X77,0X33,0X33,0X37,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X77,0X77,0X33,0X33,0X37, +0XF7,0X33,0X37,0X77,0X73,0X73,0X37,0XF3,0X00,0XF0,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X0F,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0, +0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X33,0X00,0X00,0X03,0X77, +0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33, +0X33,0X33,0X33,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X33,0X77,0X73,0XF7,0X37,0X73,0X7F,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F,0X77,0X77,0X33,0X33, +0X73,0X37,0X33,0X7F,0X73,0X77,0X77,0XF0,0X00,0XF0,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF0, +0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X00,0X00,0X00,0X73,0X00,0X00,0X00,0X37, +0X73,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X33, +0X7F,0XFF,0XFF,0XF7,0X77,0X77,0X73,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0XF7,0X77,0X73,0X30,0X77,0X77,0X77,0XF3,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X77,0X77,0X37,0XF7, +0X33,0X77,0X77,0X77,0X73,0X33,0X77,0X70,0X00,0XF0,0X00,0X00,0XFF,0X00,0XFF,0X00, +0X00,0XFF,0XF0,0X0F,0X00,0X00,0X0F,0X00,0XFF,0X00,0X00,0XFF,0X00,0X00,0X0F,0XF0, +0X0F,0XF0,0X00,0XF0,0X0F,0XFF,0X00,0XFF,0XFF,0X00,0X0F,0XFF,0X00,0X00,0XFF,0X00, +0X00,0X00,0X00,0X0F,0XF0,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0X00,0X00,0X00,0X07, +0X73,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X37,0X77,0X77,0X77,0X77,0X77,0XFF,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X77,0X30,0X00,0X37,0X77,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X7F,0XF7,0X77,0X77, +0X33,0X77,0X77,0X77,0X77,0X77,0X77,0X30,0X00,0XF0,0X0F,0XF0,0X0F,0X00,0XFF,0X00, +0XF0,0X0F,0X00,0XF0,0X0F,0XF0,0X0F,0X00,0XF0,0X0F,0XF0,0X0F,0X00,0XFF,0X00,0XF0, +0X0F,0X0F,0XF0,0X0F,0X00,0XF0,0X0F,0XFF,0XF0,0X0F,0X00,0XF0,0X0F,0XF0,0X0F,0X00, +0XFF,0X00,0XFF,0X00,0XF0,0X00,0X00,0X00,0X00,0X00,0X37,0XF3,0X00,0X00,0X00,0X03, +0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X03,0X77,0XF7,0X77,0X77,0X77,0X77,0X77,0X73,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X37,0X30,0X00,0X03,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X77,0X77,0X37, +0X73,0X77,0X37,0X7F,0X7F,0X7F,0X73,0X00,0X00,0XF0,0X0F,0XF0,0X0F,0X00,0XFF,0X00, +0XF0,0X0F,0X00,0XF0,0X0F,0XF0,0X0F,0X00,0XF0,0X00,0X0F,0XFF,0X00,0XFF,0X00,0XF0, +0X0F,0XF0,0X00,0X0F,0X00,0XF0,0X0F,0XFF,0XF0,0X0F,0XFF,0XF0,0X0F,0XF0,0X0F,0X00, +0XFF,0X00,0XFF,0X00,0XF0,0X00,0X00,0X00,0X03,0X00,0X7F,0X70,0X00,0X00,0X00,0X00, +0X77,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X33,0X7F,0X77,0X77,0X73,0X37,0X77,0X73,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X07,0X30,0X00,0X03,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X7F,0X77,0X77, +0X73,0X33,0X77,0X77,0X7F,0X73,0X00,0X00,0X00,0XF0,0X0F,0XF0,0X0F,0X00,0XFF,0X00, +0XF0,0X0F,0X00,0XF0,0X0F,0XF0,0X0F,0X00,0XFF,0XF0,0X00,0X0F,0X00,0XFF,0X00,0XF0, +0X0F,0X00,0XF0,0X0F,0X00,0XF0,0X0F,0XFF,0XF0,0X0F,0XFF,0XF0,0X0F,0XF0,0X0F,0X00, +0XFF,0X00,0XFF,0X00,0XF0,0X03,0X33,0X33,0X33,0X03,0X7F,0X30,0X03,0X33,0X00,0X00, +0X37,0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X03,0X77,0X77,0X73,0X33,0X33,0X37,0X30,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X33,0X33,0X00,0X03,0X70,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XF7,0X37,0X37, +0X77,0X77,0X77,0X77,0X77,0X30,0X00,0X00,0X00,0XF0,0X0F,0XF0,0X0F,0X00,0XFF,0X00, +0XFF,0X00,0X0F,0XF0,0X0F,0XF0,0X0F,0X00,0XF0,0X0F,0XF0,0X0F,0X00,0XFF,0X00,0XF0, +0X0F,0X00,0XF0,0X0F,0XF0,0X00,0XFF,0X00,0XF0,0X0F,0X00,0XF0,0X0F,0XF0,0X0F,0X00, +0XFF,0X00,0XFF,0X00,0XF0,0X37,0X77,0X33,0X33,0X33,0XF7,0X30,0X03,0X30,0X00,0X00, +0X07,0X73,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X37,0X77,0X33,0X33,0X33,0X73,0X30,0X00,0X00, +0X00,0X00,0X00,0X00,0X37,0X73,0X00,0X03,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X07,0XF7,0X33,0X33, +0X3F,0XF3,0X77,0X37,0X77,0X73,0X00,0X00,0X00,0XF0,0X00,0X00,0XFF,0XF0,0X00,0X00, +0XFF,0X00,0X0F,0XFF,0X00,0X00,0X0F,0X00,0XFF,0X00,0X00,0XFF,0X00,0X00,0X0F,0XF0, +0X0F,0XF0,0X00,0X0F,0XF0,0X00,0XFF,0X00,0XFF,0X00,0X0F,0XFF,0X00,0X00,0XFF,0X00, +0XFF,0X00,0XFF,0X00,0XF0,0X03,0X33,0X37,0X33,0X33,0XF7,0X73,0X03,0X30,0X00,0X00, +0X03,0X73,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X03,0X33,0X33,0X77,0X33,0X37,0XFF,0X77,0X30,0X00, +0X00,0X00,0X00,0X00,0X37,0X73,0X00,0X03,0X73,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0X77,0X33,0X33, +0X77,0X77,0X33,0X33,0X37,0XF3,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XF0,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X33,0X03,0X73,0X30,0X03,0X00,0X00,0X00, +0X03,0X73,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X33,0X33,0X33,0X00,0X33,0X37,0X77,0X77,0X7F,0X77,0X33, +0X00,0X00,0X00,0X00,0X37,0X73,0X00,0X03,0XF7,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X33,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X0F,0X77,0X77,0X77, +0X77,0X77,0X33,0X33,0X77,0XF3,0X00,0X00,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0X00,0X0F,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X00,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XF0,0X00,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XF0,0X00,0X00,0X00,0X03,0X33,0X33,0X30,0X33,0X00,0X00,0X00, +0X00,0X77,0X30,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X03,0X33,0X33,0X33,0X33,0X30,0X00,0X37,0XF7,0X73,0X7F,0X77,0X77, +}; + + +const uint8_t PIC3[] PROGMEM = +{ +0XFC,0X00,0X00,0X20,0X00,0X00,0X00,0X08,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00, +0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F, +0X80,0X00,0X00,0XFE,0X00,0X00,0X00,0X0C,0X00,0X0C,0X07,0X00,0X00,0X00,0X00,0X00, +0X00,0X7B,0XE0,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X03,0XE0,0X00,0X01, +0X80,0X00,0X39,0XBE,0X1E,0X00,0X00,0X1C,0X00,0X3E,0X0F,0XFF,0X80,0X00,0X00,0X00, +0X01,0XFF,0X7E,0X00,0X00,0X00,0X0F,0X82,0X78,0X00,0X00,0X00,0X07,0XF0,0X00,0X01, +0X80,0X01,0XFF,0X07,0X3F,0XF8,0X00,0X3C,0X00,0X7F,0X3E,0X73,0X80,0X00,0X00,0X00, +0X03,0XFC,0X1F,0X00,0X00,0X00,0X1F,0XCF,0XD8,0X00,0X00,0X00,0X1F,0XF8,0X00,0X01, +0X80,0X07,0X82,0X03,0X3F,0XF8,0X00,0X3C,0X00,0XFF,0XE0,0X03,0X00,0X00,0X00,0X00, +0X07,0XFC,0X01,0X80,0X00,0X00,0X3F,0XD8,0X30,0X00,0X00,0X00,0X1F,0XF8,0X00,0X01, +0X80,0X03,0X00,0X1F,0XFF,0XF8,0X00,0X3E,0X01,0XFF,0XC0,0X01,0X80,0X00,0X00,0X00, +0X07,0XFC,0X00,0XC0,0X00,0X00,0X3F,0XE0,0X0C,0X00,0X00,0X00,0X3F,0XF8,0X00,0X01, +0X00,0X03,0X00,0X7E,0X7F,0XF8,0X00,0X7E,0X01,0XFF,0XE0,0X01,0XC3,0XC0,0X00,0X00, +0X07,0XFC,0X00,0X80,0X00,0X00,0X7F,0XE0,0X06,0X00,0X00,0X00,0X3F,0XF8,0X10,0X01, +0X00,0X03,0X7F,0XFF,0X7F,0XFC,0X00,0X7E,0X03,0XFF,0XC0,0X01,0XEF,0XE0,0X00,0X00, +0X07,0XEF,0XFB,0X80,0X00,0X00,0X7F,0XF8,0X04,0X00,0X00,0X00,0X3F,0XF8,0XF8,0X00, +0X00,0X03,0XF7,0XFF,0XFF,0XFE,0X00,0XEE,0X03,0XFF,0XE0,0X01,0XFF,0XE0,0X00,0X00, +0X07,0XFF,0XFF,0XC0,0X00,0X00,0X7F,0XCF,0XFE,0X00,0X00,0X00,0X3F,0XF1,0XDC,0X00, +0X00,0X07,0XFE,0X7F,0X3F,0XFE,0X00,0XB2,0X03,0XFF,0XF8,0X03,0X1F,0XF0,0X00,0X00, +0X07,0XFF,0XE1,0XB0,0X00,0X00,0X3F,0X83,0XFE,0X00,0X00,0X00,0X3F,0XF3,0X86,0X00, +0X07,0XCF,0XFC,0X1E,0X1F,0XFF,0X01,0XFA,0X01,0XFF,0X1C,0X7F,0XDF,0XF0,0X00,0X00, +0X0C,0XFB,0XFE,0XD8,0X00,0X00,0X3F,0X03,0XFD,0X00,0X00,0X00,0X1F,0X1F,0X03,0X80, +0X07,0XFF,0XF8,0X07,0XCF,0XFF,0X83,0XCF,0X01,0XFF,0XEF,0XF8,0XEF,0XF0,0X00,0X00, +0X18,0X03,0XFF,0XCD,0XE0,0X00,0X60,0X03,0XFD,0X00,0X00,0X00,0X18,0X1F,0XC1,0X90, +0X1F,0XFB,0XE0,0X1F,0XF7,0XFF,0X0F,0XEF,0X00,0XEF,0XF7,0XFF,0XEF,0XF0,0X00,0X00, +0X1F,0X81,0XFF,0X07,0XF0,0X00,0XC0,0X03,0XFF,0X00,0X00,0X00,0X30,0X1F,0X60,0XF8, +0X1F,0XF8,0X38,0X1F,0XFF,0XFE,0X0F,0XFF,0X00,0X4F,0XFC,0XFF,0XE7,0XE0,0X00,0X00, +0X3F,0X80,0XFE,0X07,0XF8,0X01,0X80,0X01,0XFE,0X80,0X00,0X00,0X60,0X1F,0XB0,0X78, +0X1F,0XF0,0XFE,0X39,0XFF,0XFE,0X00,0X03,0X00,0X4F,0XFC,0XFF,0XE3,0XE0,0X00,0X00, +0X70,0X80,0XF8,0X07,0XF8,0X01,0X00,0X00,0XFC,0X80,0X00,0X00,0XC0,0X1F,0XD8,0X7C, +0X1F,0XF1,0XFF,0X30,0X7F,0XFC,0X00,0X01,0X80,0X83,0XF8,0X7F,0XE3,0XC0,0X00,0X01, +0XE3,0X03,0XF8,0X07,0XF8,0X02,0X00,0X00,0X20,0X80,0X00,0X01,0X80,0XDF,0XEC,0X7C, +0X1F,0XE3,0XF3,0X30,0X7F,0XFC,0X00,0X01,0X81,0X83,0XE0,0X3F,0XC2,0X00,0X00,0X03, +0X67,0X06,0X3C,0X03,0XF8,0X06,0X00,0X00,0X0E,0XC0,0X00,0X03,0X03,0XFF,0XFC,0XFC, +0X1F,0XE3,0XC1,0X26,0X3F,0XF8,0X00,0X00,0X81,0X0F,0XC0,0X06,0X02,0X00,0X00,0X06, +0X66,0X06,0X3C,0X03,0XF8,0X04,0X00,0X00,0X1F,0X40,0X00,0X06,0X07,0XFF,0XFD,0XFC, +0X07,0XE7,0XC1,0X2B,0X3F,0XF8,0X00,0X00,0XC3,0X3F,0XE0,0X38,0X03,0X00,0X00,0X0C, +0X6E,0X0E,0X3C,0X03,0XF8,0X0C,0X00,0X00,0X3F,0X40,0X00,0X04,0X0F,0XFF,0XEF,0XFC, +0X03,0XE7,0X9E,0X08,0X3F,0XF8,0X00,0X00,0XFF,0X7F,0XE0,0XFE,0X03,0X00,0X00,0X18, +0X30,0X1E,0X3C,0X03,0XF0,0X08,0X00,0X00,0X39,0XC0,0X00,0X0C,0X1F,0XFF,0XF7,0XF8, +0X00,0X67,0X92,0X00,0X7F,0XF8,0X00,0X00,0XC6,0XFC,0XE0,0XFF,0X83,0X00,0X00,0X10, +0X0E,0X1C,0X3C,0X03,0XF0,0X10,0X00,0X00,0X70,0X60,0X00,0X18,0X3F,0X9C,0X07,0XB0, +0X00,0X67,0X90,0X01,0XFD,0XF8,0X00,0X01,0XE7,0XFB,0XE1,0XFF,0XC3,0X00,0X00,0X30, +0X0F,0X18,0X7C,0X03,0XC0,0X10,0X00,0X00,0X73,0X20,0X00,0X30,0X3F,0X0C,0X07,0XF0, +0X00,0X67,0X82,0X01,0XF9,0XF8,0X00,0X03,0X7D,0XFE,0XC1,0XCF,0XC3,0X00,0X00,0X32, +0X00,0X18,0XFC,0X06,0X00,0X30,0X00,0X00,0X73,0X20,0X00,0X20,0X3E,0X04,0X03,0XF0, +0X00,0X67,0XC6,0X70,0X01,0XF8,0X00,0X02,0X3D,0XFC,0XC1,0XEF,0XC2,0X00,0X00,0X33, +0X00,0X0F,0XF8,0X06,0X00,0X20,0X00,0X00,0X33,0X30,0X00,0X60,0X3E,0X1C,0X03,0XE0, +0X00,0X67,0XFC,0XF0,0X01,0XF8,0X00,0X02,0X3D,0XF9,0X01,0X2F,0XE3,0X00,0X00,0X31, +0X08,0X07,0XF0,0X06,0X00,0X20,0X00,0X00,0X3B,0X18,0X00,0X40,0X3E,0X38,0X07,0XC0, +0X00,0X67,0XF8,0X23,0X01,0XF8,0X00,0X03,0X1D,0XFF,0X00,0X0F,0XC3,0X00,0X00,0X30, +0XFC,0X01,0XC0,0X04,0X00,0X60,0X00,0X00,0X3C,0X18,0X00,0X40,0X3E,0X38,0X0F,0X80, +0X00,0X63,0XF0,0X33,0X01,0XF8,0X00,0X01,0X8C,0XFF,0XC0,0XFF,0XC3,0X00,0X04,0X10, +0X64,0X00,0X00,0X04,0X00,0XE0,0X00,0X00,0X0C,0X08,0X00,0X60,0X1E,0X30,0X1F,0X80, +0X00,0X60,0X01,0XFE,0X01,0XF8,0X00,0X01,0XDC,0X7D,0XC0,0XFF,0XC3,0X00,0X0E,0X18, +0X06,0X00,0X00,0X0C,0X00,0XC0,0X00,0X00,0X00,0X08,0X00,0X60,0X0F,0X80,0X33,0X00, +0X00,0X60,0X01,0XC0,0X01,0XF8,0X00,0X00,0XFC,0X00,0X80,0X3F,0X83,0X00,0X1F,0X08, +0X03,0X00,0X00,0X0C,0X00,0XC0,0X00,0X00,0X00,0X18,0X00,0X20,0X33,0X80,0X73,0X00, +0X00,0X60,0X00,0X00,0X01,0XF8,0X00,0X00,0X1E,0X00,0X00,0X0E,0X06,0X00,0X3F,0X0C, +0X01,0X80,0X18,0X08,0X00,0XC0,0X00,0X00,0X00,0X50,0X00,0X30,0X18,0X00,0X63,0X00, +0X00,0X60,0X00,0X00,0X03,0XF8,0X00,0X00,0X0F,0X00,0X00,0X00,0X0E,0X00,0X7F,0XE6, +0X00,0XE0,0X70,0X08,0X00,0X60,0X00,0X00,0X00,0XD0,0X00,0X10,0X08,0X02,0X67,0X00, +0X00,0X60,0X00,0X00,0X03,0XF8,0X00,0X00,0X05,0X87,0XF0,0X00,0X0C,0X00,0XFF,0XFA, +0X00,0X3F,0XC0,0X18,0X00,0X20,0X00,0X00,0X00,0XB0,0X00,0X78,0X04,0X03,0X0E,0X00, +0X00,0X60,0X00,0X00,0X07,0XF8,0X00,0X00,0X06,0XC3,0XE0,0X00,0X18,0X00,0XFF,0XFF, +0X00,0X00,0X00,0X10,0X00,0X30,0X00,0X00,0X01,0X60,0X01,0XFC,0X06,0X03,0X7E,0X00, +0X00,0X30,0X00,0X00,0X0F,0XF0,0X00,0X00,0X06,0X60,0X00,0X00,0X70,0X00,0XFC,0XFF, +0XC0,0X00,0X00,0X30,0X00,0X10,0X00,0X00,0X00,0XC0,0X01,0XFC,0X03,0X00,0X7E,0X00, +0X00,0X38,0X00,0X00,0X3F,0XF0,0X00,0X00,0X03,0X38,0X00,0X00,0XE0,0X00,0X7F,0X7F, +0XF0,0X00,0X00,0X60,0X00,0X0C,0X00,0X00,0X03,0X80,0X07,0XFE,0X00,0XF8,0X3A,0X00, +0X00,0X1C,0X00,0X00,0X67,0XF0,0X00,0X00,0X03,0X0E,0X00,0X03,0X80,0X00,0X7B,0X7F, +0XF8,0X00,0X01,0XC0,0X00,0X06,0X00,0X00,0X06,0X00,0X0F,0XFF,0X80,0X3C,0X02,0X00, +0X00,0X0F,0X80,0X01,0X81,0XF0,0X00,0X00,0X01,0X8F,0XF8,0XFF,0X80,0X00,0X73,0X7F, +0XFF,0X00,0X0F,0X80,0X00,0X01,0X83,0XC0,0X1C,0X00,0X1F,0XFF,0X80,0X07,0XC4,0X00, +0X00,0X01,0XFF,0XF8,0X00,0X70,0X00,0X00,0X01,0X9E,0X3F,0XFF,0XC0,0X00,0XF3,0X7F, +0XFF,0XFD,0XFC,0X00,0X00,0X00,0XF7,0XE0,0X70,0X00,0X1F,0XFF,0X00,0X03,0X8C,0X00, +0X00,0X00,0X1F,0XE0,0X00,0X60,0X00,0X00,0X00,0XDC,0X00,0X77,0XC0,0X00,0XE2,0XFF, +0XFF,0XFF,0XE0,0X00,0X00,0X00,0X7F,0XE3,0XC0,0X00,0X1F,0XFE,0X00,0X00,0X18,0X00, +0X00,0X00,0X0F,0X80,0X00,0X20,0X00,0X00,0X00,0XD8,0X00,0X63,0XC0,0X01,0XF6,0XFF, +0XFF,0XFF,0XE0,0X00,0X00,0X00,0XFF,0XF2,0XC0,0X00,0X1F,0XFE,0X06,0X00,0XF0,0X00, +0X00,0X00,0X1F,0X80,0X00,0X20,0X00,0X00,0X00,0X70,0X00,0X61,0XC0,0X01,0XDD,0XFF, +0XFF,0XFF,0XE0,0X00,0X00,0X01,0X5F,0XC0,0X40,0X00,0X3F,0XFC,0X03,0XFF,0X80,0X00, +0X00,0X00,0X3F,0X00,0X00,0X30,0X00,0X00,0X00,0X70,0X00,0X60,0XC0,0X07,0XE3,0XCF, +0XFF,0XFF,0XE0,0X00,0X00,0X03,0XDF,0XC0,0X40,0X00,0X3F,0XD0,0X03,0X80,0X00,0X00, +0X00,0X00,0X3F,0X00,0X00,0X30,0X00,0X00,0X00,0X20,0X00,0X70,0X40,0X07,0XFF,0X93, +0XFF,0XFF,0XE0,0X00,0X00,0X03,0XBF,0X80,0X60,0X00,0X3B,0X80,0X03,0X80,0X00,0X00, +0X00,0X00,0X7F,0X00,0X00,0X30,0X00,0X00,0X00,0X60,0X00,0X18,0X60,0X07,0XFF,0X03, +0XFF,0XFF,0XE0,0X00,0X00,0X03,0XFF,0X80,0X30,0X00,0X2B,0X00,0X07,0X80,0X00,0X00, +0X00,0X00,0X7F,0X80,0X00,0X10,0X00,0X00,0X00,0X60,0X00,0X08,0X30,0X01,0XFF,0X73, +0XFF,0XFF,0XC0,0X00,0X00,0X03,0XFF,0X00,0X3E,0X00,0X36,0X00,0X07,0XC0,0X00,0X00, +0X00,0X00,0X7F,0X80,0X00,0X10,0X00,0X00,0X00,0X60,0X00,0X0C,0X30,0X00,0XFF,0X1B, +0XFF,0XFF,0XC0,0X00,0X00,0X07,0XFF,0X00,0X3F,0X00,0X1C,0X00,0X07,0XE0,0X00,0X00, +0X00,0X00,0X7F,0X00,0X00,0X10,0X00,0X00,0X00,0X40,0X00,0X06,0X18,0X00,0X7F,0X8B, +0XF3,0XFF,0XC0,0X00,0X00,0X07,0XFE,0X00,0X3F,0X00,0X1C,0X00,0X07,0XF0,0X00,0X00, +0X00,0X00,0X3F,0X00,0X00,0X10,0X00,0X00,0X00,0X40,0X00,0X04,0X10,0X00,0X1F,0XC7, +0XF1,0XFF,0XC0,0X00,0X00,0X07,0XFE,0X00,0X3F,0X00,0X2C,0X00,0X0F,0XF8,0X00,0X00, +0X00,0X00,0X3F,0X00,0X00,0X10,0X00,0X00,0X00,0X40,0X00,0X04,0X10,0X00,0X03,0XFF, +0XE0,0XFF,0X80,0X00,0X00,0X07,0XFC,0X00,0X3F,0X00,0XC8,0X00,0X0F,0XFC,0X00,0X00, +0X00,0X00,0X1F,0X00,0X00,0X18,0X00,0X00,0X00,0X40,0X00,0X07,0X30,0X00,0X00,0XFF, +0XE0,0X7F,0X80,0X00,0X00,0X07,0XFC,0X00,0X3E,0X00,0XC8,0X00,0X0B,0XF8,0X00,0X00, +0X00,0X00,0X0E,0X00,0X00,0X18,0X00,0X00,0X00,0X40,0X00,0X03,0XE0,0X00,0X00,0XFF, +0XC0,0X1F,0X80,0X00,0X00,0X07,0XFC,0X00,0X3C,0X00,0XC8,0X00,0X1B,0XF8,0X00,0X00, +0X00,0X00,0X04,0X00,0X00,0X18,0X00,0X00,0X00,0X40,0X00,0X03,0XC0,0X00,0X00,0XC7, +0X80,0X0F,0X00,0X00,0X00,0X07,0XF8,0X00,0X20,0X00,0XC8,0X00,0X1B,0XF8,0X00,0X00, +0X00,0X00,0X0C,0X00,0X00,0X18,0X00,0X00,0X00,0X40,0X00,0X03,0X80,0X00,0X00,0X40, +0X00,0X08,0X00,0X00,0X00,0X03,0XF8,0X00,0X20,0X00,0XCC,0X00,0X13,0XF0,0X00,0X00, +0X00,0X00,0X0C,0X00,0X00,0X18,0X00,0X00,0X00,0X40,0X00,0X03,0X00,0X00,0X00,0X40, +0X00,0X18,0X00,0X00,0X00,0X01,0XC0,0X00,0X60,0X00,0XCC,0X01,0X30,0X00,0X00,0X00, +0X00,0X00,0X0C,0X00,0X00,0X10,0X00,0X00,0X00,0X00,0X06,0X00,0X00,0X03,0X60,0X00, +0X30,0X00,0X00,0X00,0X00,0X00,0XC0,0X00,0X60,0X00,0XE4,0X01,0X60,0X00,0X00,0X00, +0X00,0X00,0X0C,0X00,0X00,0X10,0X00,0X00,0X00,0X00,0X06,0X00,0X00,0X03,0X00,0X00, +0X30,0X00,0X00,0X00,0X00,0X00,0XB0,0X00,0X60,0X00,0X3C,0X00,0XC0,0X00,0X00,0X00, +0X00,0X00,0X08,0X00,0X00,0X10,0X0C,0X9B,0X26,0XC9,0X87,0XCC,0XF1,0X9F,0X67,0X9F, +0X33,0XB1,0X87,0X1E,0X7F,0XC1,0X90,0X00,0X30,0X00,0X06,0X00,0X80,0X00,0X00,0X00, +0X00,0X00,0X08,0X06,0X00,0X10,0X0D,0XDB,0X76,0XDD,0X86,0X6C,0XDB,0X33,0X6C,0XD9, +0XB4,0XDB,0X0D,0XB3,0X66,0X61,0X18,0X00,0X10,0X00,0X02,0X00,0X80,0X00,0X00,0X01, +0X80,0X00,0X08,0X03,0XE0,0X30,0X0D,0XDB,0X76,0XDD,0X86,0X6C,0XDB,0X33,0X6F,0X19, +0XB3,0XDB,0X0C,0X33,0X66,0X61,0X0C,0X00,0X10,0X00,0X02,0X00,0X80,0X00,0X00,0X01, +0X80,0X00,0X08,0X02,0X40,0X20,0X07,0X71,0XDC,0X77,0X06,0X6C,0XDB,0X33,0X63,0XD9, +0XB6,0XDB,0X0C,0X33,0X66,0X61,0X87,0X00,0X10,0X00,0X02,0X01,0X80,0X00,0X00,0X01, +0X80,0X00,0X0C,0X06,0X40,0X20,0X07,0X71,0XDC,0X77,0X36,0X6C,0XCE,0X33,0X6C,0XD9, +0XB6,0XCE,0X6D,0XB3,0X66,0X60,0XC3,0XE0,0X20,0X00,0X03,0X03,0X00,0X00,0X00,0X01, +0X80,0X00,0X06,0X04,0X60,0XF8,0X06,0X31,0X8C,0X63,0X37,0XC7,0XCE,0X1F,0X67,0X9F, +0X33,0XCE,0X67,0X1E,0X66,0X60,0X61,0XE0,0X60,0X00,0X03,0X8E,0X00,0X00,0X00,0X01, +0X80,0X00,0X1F,0XFF,0XFF,0XF8,0X00,0X00,0X00,0X00,0X00,0X00,0X0C,0X00,0X00,0X18, +0X00,0X0C,0X00,0X00,0X00,0X01,0X3F,0X31,0XC0,0X00,0X01,0XFC,0X00,0X00,0X00,0X01, +0XFC,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X38,0X00,0X00,0X18, +0X00,0X38,0X00,0X00,0X00,0X00,0X1E,0X1F,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X7F, +}; + +const uint8_t AsciiLib[] PROGMEM = +{ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* */ + 0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x18,0x18,0x00,0x00, /* ! */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x28,0x28,0x50,0x00,0x00,0x00,0x00,0x00,0x00, /* " */ + 0x00,0x00,0x00,0x14,0x14,0x7E,0x14,0x14,0x28,0x7E,0x28,0x28,0x28,0x00,0x00,0x00, /* # */ + 0x00,0x00,0x10,0x38,0x54,0x54,0x50,0x30,0x18,0x14,0x54,0x54,0x38,0x10,0x10,0x00, /* $ */ + 0x00,0x00,0x00,0x44,0xA4,0xA8,0xA8,0x50,0x14,0x2A,0x2A,0x4A,0x44,0x00,0x00,0x00, /* % */ + 0x00,0x00,0x00,0x20,0x50,0x50,0x50,0x7C,0xA8,0xA8,0x98,0x88,0x76,0x00,0x00,0x00, /* & */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x08,0x30,0x00,0x00,0x00,0x00,0x00,0x00, /* ' */ + 0x00,0x00,0x04,0x08,0x10,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x10,0x08,0x04,0x00, /* ( */ + 0x00,0x00,0x20,0x10,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x08,0x08,0x10,0x20,0x00, /* ) */ + 0x00,0x00,0x00,0x00,0x10,0x10,0xD6,0x38,0x38,0xD6,0x10,0x10,0x00,0x00,0x00,0x00, /* * */ + 0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0xFE,0x10,0x10,0x10,0x00,0x00,0x00,0x00, /* + */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x08,0x30,0x00,0x00,0x00,0x00,0x00,0x00, /* , */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* - */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* . */ + 0x00,0x00,0x02,0x04,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x20,0x20,0x40,0x40,0x00, /* / */ + 0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,0x00, /* 0 */ + 0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00, /* 1 */ + 0x00,0x00,0x00,0x3C,0x42,0x42,0x02,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00,0x00, /* 2 */ + 0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,0x04,0x02,0x42,0x42,0x3C,0x00,0x00,0x00, /* 3 */ + 0x00,0x00,0x00,0x08,0x08,0x18,0x28,0x48,0x48,0x7E,0x08,0x08,0x1E,0x00,0x00,0x00, /* 4 */ + 0x00,0x00,0x00,0x7E,0x40,0x40,0x5C,0x62,0x02,0x02,0x42,0x42,0x3C,0x00,0x00,0x00, /* 5 */ + 0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x3C,0x00,0x00,0x00, /* 6 */ + 0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00, /* 7 */ + 0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x3C,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,0x00, /* 8 */ + 0x00,0x00,0x00,0x38,0x44,0x42,0x42,0x46,0x3A,0x02,0x02,0x24,0x38,0x00,0x00,0x00, /* 9 */ + 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00, /* : */ + 0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x10,0x00,0x00,0x00, /* ; */ + 0x00,0x00,0x00,0x02,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00, /* < */ + 0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00, /* = */ + 0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x04,0x08,0x10,0x20,0x40,0x00,0x00, /* > */ + 0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x02,0x04,0x08,0x08,0x00,0x18,0x18,0x00,0x00, /* ? */ + 0x00,0x00,0x00,0x38,0x44,0x9A,0xAA,0xAA,0xAA,0xAA,0xB4,0x42,0x3C,0x00,0x00,0x00, /* @ */ + 0x00,0x00,0x00,0x10,0x10,0x28,0x28,0x28,0x28,0x7C,0x44,0x44,0xEE,0x00,0x00,0x00, /* A */ + 0x00,0x00,0x00,0xFC,0x42,0x42,0x44,0x78,0x44,0x42,0x42,0x42,0xFC,0x00,0x00,0x00, /* B */ + 0x00,0x00,0x00,0x3E,0x42,0x82,0x80,0x80,0x80,0x80,0x82,0x44,0x38,0x00,0x00,0x00, /* C */ + 0x00,0x00,0x00,0xF8,0x44,0x42,0x42,0x42,0x42,0x42,0x42,0x44,0xF8,0x00,0x00,0x00, /* D */ + 0x00,0x00,0x00,0xFC,0x42,0x48,0x48,0x78,0x48,0x48,0x40,0x42,0xFC,0x00,0x00,0x00, /* E */ + 0x00,0x00,0x00,0xFC,0x42,0x48,0x48,0x78,0x48,0x48,0x40,0x40,0xE0,0x00,0x00,0x00, /* F */ + 0x00,0x00,0x00,0x3C,0x44,0x84,0x80,0x80,0x80,0x8E,0x84,0x44,0x38,0x00,0x00,0x00, /* G */ + 0x00,0x00,0x00,0xEE,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0xEE,0x00,0x00,0x00, /* H */ + 0x00,0x00,0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00, /* I */ + 0x00,0x00,0x3E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x88,0xF0,0x00,0x00, /* J */ + 0x00,0x00,0x00,0xEE,0x44,0x48,0x50,0x70,0x50,0x48,0x48,0x44,0xEE,0x00,0x00,0x00, /* K */ + 0x00,0x00,0x00,0xE0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x42,0xFE,0x00,0x00,0x00, /* L */ + 0x00,0x00,0x00,0xEE,0x6C,0x6C,0x6C,0x54,0x54,0x54,0x54,0x54,0xD6,0x00,0x00,0x00, /* M */ + 0x00,0x00,0x00,0xEE,0x64,0x64,0x54,0x54,0x54,0x4C,0x4C,0x4C,0xE4,0x00,0x00,0x00, /* N */ + 0x00,0x00,0x00,0x38,0x44,0x82,0x82,0x82,0x82,0x82,0x82,0x44,0x38,0x00,0x00,0x00, /* O */ + 0x00,0x00,0x00,0xFC,0x42,0x42,0x42,0x7C,0x40,0x40,0x40,0x40,0xE0,0x00,0x00,0x00, /* P */ + 0x00,0x00,0x00,0x38,0x44,0x82,0x82,0x82,0x82,0x82,0xB2,0x4C,0x38,0x06,0x00,0x00, /* Q */ + 0x00,0x00,0x00,0xF8,0x44,0x44,0x44,0x78,0x50,0x48,0x48,0x44,0xE6,0x00,0x00,0x00, /* R */ + 0x00,0x00,0x00,0x3E,0x42,0x42,0x40,0x30,0x0C,0x02,0x42,0x42,0x7C,0x00,0x00,0x00, /* S */ + 0x00,0x00,0x00,0xFE,0x92,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00, /* T */ + 0x00,0x00,0x00,0xEE,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00, /* U */ + 0x00,0x00,0x00,0xEE,0x44,0x44,0x44,0x28,0x28,0x28,0x28,0x10,0x10,0x00,0x00,0x00, /* V */ + 0x00,0x00,0x00,0xD6,0x54,0x54,0x54,0x54,0x6C,0x28,0x28,0x28,0x28,0x00,0x00,0x00, /* W */ + 0x00,0x00,0x00,0xEE,0x44,0x28,0x28,0x10,0x10,0x28,0x28,0x44,0xEE,0x00,0x00,0x00, /* X */ + 0x00,0x00,0x00,0xEE,0x44,0x44,0x28,0x28,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00, /* Y */ + 0x00,0x00,0x00,0x3E,0x44,0x04,0x08,0x08,0x10,0x10,0x20,0x22,0x7E,0x00,0x00,0x00, /* Z */ + 0x00,0x00,0x3C,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3C,0x00, /* [ */ + 0x00,0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x10,0x08,0x08,0x04,0x04,0x04,0x02,0x00, /* \ */ + 0x00,0x00,0x3C,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x3C,0x00, /* ] */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* ^ */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* _ */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* ` */ + 0x00,0x00,0x00,0x00,0x00,0x38,0x44,0x1C,0x24,0x44,0x44,0x3E,0x00,0x00,0x00,0x00, /* a */ + 0x00,0x00,0x00,0xC0,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x42,0x7C,0x00,0x00,0x00, /* b */ + 0x00,0x00,0x00,0x00,0x00,0x1C,0x22,0x40,0x40,0x40,0x22,0x1C,0x00,0x00,0x00,0x00, /* c */ + 0x00,0x00,0x00,0x0C,0x04,0x04,0x7C,0x84,0x84,0x84,0x84,0x8C,0x76,0x00,0x00,0x00, /* d */ + 0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x7E,0x40,0x40,0x42,0x3C,0x00,0x00,0x00,0x00, /* e */ + 0x00,0x00,0x00,0x0E,0x12,0x10,0x7C,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00, /* f */ + 0x00,0x00,0x00,0x00,0x3E,0x44,0x44,0x38,0x40,0x3C,0x42,0x42,0x3C,0x00,0x00,0x00, /* g */ + 0x00,0x00,0x00,0xC0,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,0x00, /* h */ + 0x00,0x00,0x00,0x30,0x30,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00, /* i */ + 0x00,0x00,0x0C,0x0C,0x00,0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x44,0x78,0x00,0x00, /* j */ + 0x00,0x00,0x00,0xC0,0x40,0x40,0x4E,0x48,0x50,0x68,0x48,0x44,0xEE,0x00,0x00,0x00, /* k */ + 0x00,0x00,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00, /* l */ + 0x00,0x00,0x00,0x00,0x00,0xF8,0x54,0x54,0x54,0x54,0x54,0xD6,0x00,0x00,0x00,0x00, /* m */ + 0x00,0x00,0x00,0x00,0x00,0xDC,0x62,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,0x00,0x00, /* n */ + 0x00,0x00,0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x24,0x18,0x00,0x00,0x00,0x00, /* o */ + 0x00,0x00,0x00,0x00,0xDC,0x62,0x42,0x42,0x42,0x42,0x7C,0x40,0xE0,0x00,0x00,0x00, /* p */ + 0x00,0x00,0x00,0x00,0x7C,0x84,0x84,0x84,0x84,0x8C,0x74,0x04,0x0E,0x00,0x00,0x00, /* q */ + 0x00,0x00,0x00,0x00,0x00,0xEE,0x32,0x20,0x20,0x20,0x20,0xF8,0x00,0x00,0x00,0x00, /* r */ + 0x00,0x00,0x00,0x00,0x00,0x3C,0x44,0x40,0x38,0x04,0x44,0x78,0x00,0x00,0x00,0x00, /* s */ + 0x00,0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x10,0x10,0x10,0x0C,0x00,0x00,0x00, /* t */ + 0x00,0x00,0x00,0x00,0x00,0xC6,0x42,0x42,0x42,0x42,0x46,0x3B,0x00,0x00,0x00,0x00, /* u */ + 0x00,0x00,0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x28,0x10,0x10,0x00,0x00,0x00,0x00, /* v */ + 0x00,0x00,0x00,0x00,0x00,0xD6,0x54,0x54,0x54,0x28,0x28,0x28,0x00,0x00,0x00,0x00, /* w */ + 0x00,0x00,0x00,0x00,0x00,0x6E,0x24,0x18,0x18,0x18,0x24,0x76,0x00,0x00,0x00,0x00, /* x */ + 0x00,0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x28,0x18,0x10,0x10,0xE0,0x00,0x00,0x00, /* y */ + 0x00,0x00,0x00,0x00,0x00,0x7E,0x44,0x08,0x10,0x10,0x22,0x7E,0x00,0x00,0x00,0x00, /* z */ + +}; + +#endif diff --git a/doc/ER-OLEDM032-1_Series_Datasheet.pdf b/doc/ER-OLEDM032-1_Series_Datasheet.pdf new file mode 100644 index 0000000..11f4c7f Binary files /dev/null and b/doc/ER-OLEDM032-1_Series_Datasheet.pdf differ diff --git a/doc/Interfacing_ER-OLEDM032-1_to_Arduino.pdf b/doc/Interfacing_ER-OLEDM032-1_to_Arduino.pdf new file mode 100644 index 0000000..834146b Binary files /dev/null and b/doc/Interfacing_ER-OLEDM032-1_to_Arduino.pdf differ diff --git a/doc/SSD1322.pdf b/doc/SSD1322.pdf new file mode 100644 index 0000000..f6ebc0e Binary files /dev/null and b/doc/SSD1322.pdf differ diff --git a/doc/parametre-liaisonUART-TMS320-ESP32.txt b/doc/parametre-liaisonUART-TMS320-ESP32.txt new file mode 100644 index 0000000..42a86cb --- /dev/null +++ b/doc/parametre-liaisonUART-TMS320-ESP32.txt @@ -0,0 +1,10 @@ +Paramètre TMS320: +Fréquence, Duty cycle (a convertir en %) etage 1 etage 2 +A partir de lectures ADC: +Tension entrée, courant d'entrée +Tension etage 1, courant shunt mosfet 1, température (NTC) etage1, tension étage 2, courant shunt mosfet 2, température etage2. +Courant sortie. + +Commande: activer/desactiver. sortie HT +activer désactiver PWM1 +activer/desactiver PWM2. \ No newline at end of file diff --git a/doc/schema-esp32.png b/doc/schema-esp32.png new file mode 100644 index 0000000..e21c9d6 Binary files /dev/null and b/doc/schema-esp32.png differ diff --git a/include/config.h b/include/config.h new file mode 100644 index 0000000..60d1d11 --- /dev/null +++ b/include/config.h @@ -0,0 +1,24 @@ +#pragma once + +// Liaison UART vers le TMS320 +#define PIN_TMS_UART_TX 7 +#define PIN_TMS_UART_RX 6 +#define TMS_UART_BAUD 115200 + +// LED RGB embarquee (WS2812) de l'ESP32-C3-DevKitM-1 +#define PIN_RGB_LED 8 + +// Ecran OLED ER-OLEDM032-1 (SSD1322, SPI 4 fils) +#define PIN_OLED_MOSI 5 +#define PIN_OLED_CLK 4 +#define PIN_OLED_CS 10 +#define PIN_OLED_RST 3 +#define PIN_OLED_DC 1 + +// Le firmware TMS320 n'est pas encore programme : on simule la telemetrie +// en local le temps que le hardware TMS320 tourne. Passer a false quand le +// TMS320 emet reellement des trames $T,...*XX sur l'UART. +#define TMS_DUMMY_MODE true + +// WiFi/serveur web de l'IHM : a definir une fois l'affichage OLED valide +// (connexion STA au reseau local, SSID/mot de passe a fournir). diff --git a/include/protocol.h b/include/protocol.h new file mode 100644 index 0000000..97dde94 --- /dev/null +++ b/include/protocol.h @@ -0,0 +1,38 @@ +#pragma once + +#include + +// Protocole ASCII de type NMEA entre l'ESP32-C3 et le TMS320. +// +// Telemetrie TMS320 -> ESP32, periodique : +// $T,FREQ1=100000,FREQ2=100000,DUTY1=45.2,DUTY2=50.0,VIN=400.5,IIN=1.20, +// V1=200.3,I1=2.50,T1=45.2,VOUT=200.1,I2=2.48,T2=44.8,IOUT=1.05*XX\n +// +// Commande ESP32 -> TMS320, a chaque changement (et rafraichissement +// periodique) : +// $C,HT=1,PWM1=1,PWM2=0*XX\n +// +// XX = XOR de tous les octets entre '$' et '*', en hexadecimal majuscule. + +struct Telemetry { + float freq1 = 0; // Hz, frequence etage 1 + float freq2 = 0; // Hz, frequence etage 2 + float duty1 = 0; // %, duty cycle etage 1 + float duty2 = 0; // %, duty cycle etage 2 + float vin = 0; // V, tension entree + float iin = 0; // A, courant entree + float v1 = 0; // V, tension etage 1 + float i1 = 0; // A, courant shunt mosfet 1 + float t1 = 0; // C, temperature NTC etage 1 + float vout = 0; // V, tension etage 2 (sortie boost) + float i2 = 0; // A, courant shunt mosfet 2 + float t2 = 0; // C, temperature NTC etage 2 + float iout = 0; // A, courant sortie + uint32_t lastUpdateMs = 0; +}; + +struct CommandState { + bool ht = false; // sortie HT activee/desactivee + bool pwm1 = false; // PWM etage 1 activee/desactivee + bool pwm2 = false; // PWM etage 2 activee/desactivee +}; diff --git a/src/er_oled.cpp b/src/er_oled.cpp new file mode 100644 index 0000000..ae54bdd --- /dev/null +++ b/src/er_oled.cpp @@ -0,0 +1,225 @@ +// Adapte du tutoriel EastRising Technology (buydisplay.com) pour +// ER-OLEDM032-1 / SSD1322, repointe sur les broches SPI de l'ESP32-C3 +// (config.h) et limite a l'affichage texte. + +#include "er_oled.h" +#include "config.h" +#include + +static const uint8_t AsciiLib[] PROGMEM = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* */ + 0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x18,0x18,0x00,0x00, /* ! */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x28,0x28,0x50,0x00,0x00,0x00,0x00,0x00,0x00, /* " */ + 0x00,0x00,0x00,0x14,0x14,0x7E,0x14,0x14,0x28,0x7E,0x28,0x28,0x28,0x00,0x00,0x00, /* # */ + 0x00,0x00,0x10,0x38,0x54,0x54,0x50,0x30,0x18,0x14,0x54,0x54,0x38,0x10,0x10,0x00, /* $ */ + 0x00,0x00,0x00,0x44,0xA4,0xA8,0xA8,0x50,0x14,0x2A,0x2A,0x4A,0x44,0x00,0x00,0x00, /* % */ + 0x00,0x00,0x00,0x20,0x50,0x50,0x50,0x7C,0xA8,0xA8,0x98,0x88,0x76,0x00,0x00,0x00, /* & */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x08,0x30,0x00,0x00,0x00,0x00,0x00,0x00, /* ' */ + 0x00,0x00,0x04,0x08,0x10,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x10,0x08,0x04,0x00, /* ( */ + 0x00,0x00,0x20,0x10,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x08,0x08,0x10,0x20,0x00, /* ) */ + 0x00,0x00,0x00,0x00,0x10,0x10,0xD6,0x38,0x38,0xD6,0x10,0x10,0x00,0x00,0x00,0x00, /* * */ + 0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0xFE,0x10,0x10,0x10,0x00,0x00,0x00,0x00, /* + */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x08,0x30,0x00,0x00,0x00,0x00,0x00,0x00, /* , */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* - */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* . */ + 0x00,0x00,0x02,0x04,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x20,0x20,0x40,0x40,0x00, /* / */ + 0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,0x00, /* 0 */ + 0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00, /* 1 */ + 0x00,0x00,0x00,0x3C,0x42,0x42,0x02,0x04,0x08,0x10,0x20,0x42,0x7E,0x00,0x00,0x00, /* 2 */ + 0x00,0x00,0x00,0x3C,0x42,0x42,0x04,0x18,0x04,0x02,0x42,0x42,0x3C,0x00,0x00,0x00, /* 3 */ + 0x00,0x00,0x00,0x08,0x08,0x18,0x28,0x48,0x48,0x7E,0x08,0x08,0x1E,0x00,0x00,0x00, /* 4 */ + 0x00,0x00,0x00,0x7E,0x40,0x40,0x5C,0x62,0x02,0x02,0x42,0x42,0x3C,0x00,0x00,0x00, /* 5 */ + 0x00,0x00,0x00,0x1C,0x24,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x3C,0x00,0x00,0x00, /* 6 */ + 0x00,0x00,0x00,0x7E,0x44,0x44,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00, /* 7 */ + 0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x3C,0x24,0x42,0x42,0x42,0x3C,0x00,0x00,0x00, /* 8 */ + 0x00,0x00,0x00,0x38,0x44,0x42,0x42,0x46,0x3A,0x02,0x02,0x24,0x38,0x00,0x00,0x00, /* 9 */ + 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00, /* : */ + 0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x10,0x00,0x00,0x00, /* ; */ + 0x00,0x00,0x00,0x02,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00, /* < */ + 0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00, /* = */ + 0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x04,0x08,0x10,0x20,0x40,0x00,0x00, /* > */ + 0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x02,0x04,0x08,0x08,0x00,0x18,0x18,0x00,0x00, /* ? */ + 0x00,0x00,0x00,0x38,0x44,0x9A,0xAA,0xAA,0xAA,0xAA,0xB4,0x42,0x3C,0x00,0x00,0x00, /* @ */ + 0x00,0x00,0x00,0x10,0x10,0x28,0x28,0x28,0x28,0x7C,0x44,0x44,0xEE,0x00,0x00,0x00, /* A */ + 0x00,0x00,0x00,0xFC,0x42,0x42,0x44,0x78,0x44,0x42,0x42,0x42,0xFC,0x00,0x00,0x00, /* B */ + 0x00,0x00,0x00,0x3E,0x42,0x82,0x80,0x80,0x80,0x80,0x82,0x44,0x38,0x00,0x00,0x00, /* C */ + 0x00,0x00,0x00,0xF8,0x44,0x42,0x42,0x42,0x42,0x42,0x42,0x44,0xF8,0x00,0x00,0x00, /* D */ + 0x00,0x00,0x00,0xFC,0x42,0x48,0x48,0x78,0x48,0x48,0x40,0x42,0xFC,0x00,0x00,0x00, /* E */ + 0x00,0x00,0x00,0xFC,0x42,0x48,0x48,0x78,0x48,0x48,0x40,0x40,0xE0,0x00,0x00,0x00, /* F */ + 0x00,0x00,0x00,0x3C,0x44,0x84,0x80,0x80,0x80,0x8E,0x84,0x44,0x38,0x00,0x00,0x00, /* G */ + 0x00,0x00,0x00,0xEE,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0xEE,0x00,0x00,0x00, /* H */ + 0x00,0x00,0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00, /* I */ + 0x00,0x00,0x3E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x88,0xF0,0x00,0x00, /* J */ + 0x00,0x00,0x00,0xEE,0x44,0x48,0x50,0x70,0x50,0x48,0x48,0x44,0xEE,0x00,0x00,0x00, /* K */ + 0x00,0x00,0x00,0xE0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x42,0xFE,0x00,0x00,0x00, /* L */ + 0x00,0x00,0x00,0xEE,0x6C,0x6C,0x6C,0x54,0x54,0x54,0x54,0x54,0xD6,0x00,0x00,0x00, /* M */ + 0x00,0x00,0x00,0xEE,0x64,0x64,0x54,0x54,0x54,0x4C,0x4C,0x4C,0xE4,0x00,0x00,0x00, /* N */ + 0x00,0x00,0x00,0x38,0x44,0x82,0x82,0x82,0x82,0x82,0x82,0x44,0x38,0x00,0x00,0x00, /* O */ + 0x00,0x00,0x00,0xFC,0x42,0x42,0x42,0x7C,0x40,0x40,0x40,0x40,0xE0,0x00,0x00,0x00, /* P */ + 0x00,0x00,0x00,0x38,0x44,0x82,0x82,0x82,0x82,0x82,0xB2,0x4C,0x38,0x06,0x00,0x00, /* Q */ + 0x00,0x00,0x00,0xF8,0x44,0x44,0x44,0x78,0x50,0x48,0x48,0x44,0xE6,0x00,0x00,0x00, /* R */ + 0x00,0x00,0x00,0x3E,0x42,0x42,0x40,0x30,0x0C,0x02,0x42,0x42,0x7C,0x00,0x00,0x00, /* S */ + 0x00,0x00,0x00,0xFE,0x92,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00, /* T */ + 0x00,0x00,0x00,0xEE,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00, /* U */ + 0x00,0x00,0x00,0xEE,0x44,0x44,0x44,0x28,0x28,0x28,0x28,0x10,0x10,0x00,0x00,0x00, /* V */ + 0x00,0x00,0x00,0xD6,0x54,0x54,0x54,0x54,0x6C,0x28,0x28,0x28,0x28,0x00,0x00,0x00, /* W */ + 0x00,0x00,0x00,0xEE,0x44,0x28,0x28,0x10,0x10,0x28,0x28,0x44,0xEE,0x00,0x00,0x00, /* X */ + 0x00,0x00,0x00,0xEE,0x44,0x44,0x28,0x28,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00, /* Y */ + 0x00,0x00,0x00,0x3E,0x44,0x04,0x08,0x08,0x10,0x10,0x20,0x22,0x7E,0x00,0x00,0x00, /* Z */ + 0x00,0x00,0x3C,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3C,0x00, /* [ */ + 0x00,0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x10,0x08,0x08,0x04,0x04,0x04,0x02,0x00, /* \ */ + 0x00,0x00,0x3C,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x3C,0x00, /* ] */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* ^ */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* _ */ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* ` */ + 0x00,0x00,0x00,0x00,0x00,0x38,0x44,0x1C,0x24,0x44,0x44,0x3E,0x00,0x00,0x00,0x00, /* a */ + 0x00,0x00,0x00,0xC0,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x42,0x7C,0x00,0x00,0x00, /* b */ + 0x00,0x00,0x00,0x00,0x00,0x1C,0x22,0x40,0x40,0x40,0x22,0x1C,0x00,0x00,0x00,0x00, /* c */ + 0x00,0x00,0x00,0x0C,0x04,0x04,0x7C,0x84,0x84,0x84,0x84,0x8C,0x76,0x00,0x00,0x00, /* d */ + 0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x7E,0x40,0x40,0x42,0x3C,0x00,0x00,0x00,0x00, /* e */ + 0x00,0x00,0x00,0x0E,0x12,0x10,0x7C,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00, /* f */ + 0x00,0x00,0x00,0x00,0x3E,0x44,0x44,0x38,0x40,0x3C,0x42,0x42,0x3C,0x00,0x00,0x00, /* g */ + 0x00,0x00,0x00,0xC0,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,0x00, /* h */ + 0x00,0x00,0x00,0x30,0x30,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00, /* i */ + 0x00,0x00,0x0C,0x0C,0x00,0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x44,0x78,0x00,0x00, /* j */ + 0x00,0x00,0x00,0xC0,0x40,0x40,0x4E,0x48,0x50,0x68,0x48,0x44,0xEE,0x00,0x00,0x00, /* k */ + 0x00,0x00,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00, /* l */ + 0x00,0x00,0x00,0x00,0x00,0xF8,0x54,0x54,0x54,0x54,0x54,0xD6,0x00,0x00,0x00,0x00, /* m */ + 0x00,0x00,0x00,0x00,0x00,0xDC,0x62,0x42,0x42,0x42,0x42,0xE7,0x00,0x00,0x00,0x00, /* n */ + 0x00,0x00,0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x24,0x18,0x00,0x00,0x00,0x00, /* o */ + 0x00,0x00,0x00,0x00,0xDC,0x62,0x42,0x42,0x42,0x42,0x7C,0x40,0xE0,0x00,0x00,0x00, /* p */ + 0x00,0x00,0x00,0x00,0x7C,0x84,0x84,0x84,0x84,0x8C,0x74,0x04,0x0E,0x00,0x00,0x00, /* q */ + 0x00,0x00,0x00,0x00,0x00,0xEE,0x32,0x20,0x20,0x20,0x20,0xF8,0x00,0x00,0x00,0x00, /* r */ + 0x00,0x00,0x00,0x00,0x00,0x3C,0x44,0x40,0x38,0x04,0x44,0x78,0x00,0x00,0x00,0x00, /* s */ + 0x00,0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x10,0x10,0x10,0x0C,0x00,0x00,0x00, /* t */ + 0x00,0x00,0x00,0x00,0x00,0xC6,0x42,0x42,0x42,0x42,0x46,0x3B,0x00,0x00,0x00,0x00, /* u */ + 0x00,0x00,0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x28,0x10,0x10,0x00,0x00,0x00,0x00, /* v */ + 0x00,0x00,0x00,0x00,0x00,0xD6,0x54,0x54,0x54,0x28,0x28,0x28,0x00,0x00,0x00,0x00, /* w */ + 0x00,0x00,0x00,0x00,0x00,0x6E,0x24,0x18,0x18,0x18,0x24,0x76,0x00,0x00,0x00,0x00, /* x */ + 0x00,0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x28,0x18,0x10,0x10,0xE0,0x00,0x00,0x00, /* y */ + 0x00,0x00,0x00,0x00,0x00,0x7E,0x44,0x08,0x10,0x10,0x22,0x7E,0x00,0x00,0x00,0x00, /* z */ +}; + +static void oled_command(uint8_t cmd) { + digitalWrite(PIN_OLED_DC, LOW); + digitalWrite(PIN_OLED_CS, LOW); + SPI.transfer(cmd); + digitalWrite(PIN_OLED_CS, HIGH); +} + +static void oled_data(uint8_t dat) { + digitalWrite(PIN_OLED_DC, HIGH); + digitalWrite(PIN_OLED_CS, LOW); + SPI.transfer(dat); + digitalWrite(PIN_OLED_CS, HIGH); +} + +// Convertit 1 octet noir/blanc (8 pixels) en 4 octets de niveaux de gris +// (2 pixels par octet, format SSD1322 4 bits/pixel). +static void data_processing(uint8_t temp) { + uint8_t hi, lo; + hi = (temp & 0x80) ? 0xF0 : 0x00; + lo = (temp & 0x40) ? 0x0F : 0x00; + oled_data(hi | lo); + hi = (temp & 0x20) ? 0xF0 : 0x00; + lo = (temp & 0x10) ? 0x0F : 0x00; + oled_data(hi | lo); + hi = (temp & 0x08) ? 0xF0 : 0x00; + lo = (temp & 0x04) ? 0x0F : 0x00; + oled_data(hi | lo); + hi = (temp & 0x02) ? 0xF0 : 0x00; + lo = (temp & 0x01) ? 0x0F : 0x00; + oled_data(hi | lo); +} + +void er_oled_SetWindow(uint8_t Xstart, uint8_t Ystart, uint8_t Xend, uint8_t Yend) { + oled_command(0x15); + oled_data(Xstart + 0x1C); + oled_data(Xend + 0x1C); + oled_command(0x75); + oled_data(Ystart); + oled_data(Yend); + oled_command(0x5C); // write RAM +} + +void er_oled_clear() { + er_oled_SetWindow(0x00, 0x00, 0x77, 0x7F); + for (int row = 0; row < 128; row++) { + for (int i = 0; i < 240; i++) { + oled_data(0x00); + } + } +} + +void er_oled_char(uint8_t x, uint8_t y, const char *ascii, uint8_t mode) { + x = x / 4; + uint16_t offset = (*ascii - 32) * 16; + er_oled_SetWindow(x, y, x + 1, y + 15); + for (uint8_t i = 0; i < 16; i++) { + uint8_t b = pgm_read_byte(&AsciiLib[offset + i]); + if (mode) b = ~b; + data_processing(b); + } +} + +void er_oled_string(uint8_t x, uint8_t y, const char *pString, uint8_t mode) { + while (*pString != 0) { + er_oled_char(x, y, pString, mode); + x += 8; + pString += 1; + } +} + +void er_oled_begin() { + pinMode(PIN_OLED_RST, OUTPUT); + pinMode(PIN_OLED_DC, OUTPUT); + pinMode(PIN_OLED_CS, OUTPUT); + + // Broches SPI personnalisees : sck, miso (non cable), mosi, ss + SPI.begin(PIN_OLED_CLK, -1, PIN_OLED_MOSI, PIN_OLED_CS); + SPI.beginTransaction(SPISettings(20000000, MSBFIRST, SPI_MODE0)); + + digitalWrite(PIN_OLED_CS, LOW); + digitalWrite(PIN_OLED_RST, HIGH); + delay(10); + digitalWrite(PIN_OLED_RST, LOW); + delay(10); + digitalWrite(PIN_OLED_RST, HIGH); + + oled_command(0xFD); // set command lock + oled_data(0x12); // unlock + oled_command(0xAE); // display off + oled_command(0xB3); // clock divider / osc frequency + oled_data(0x91); + oled_command(0xCA); // multiplex ratio + oled_data(0x3F); // duty = 1/64 + oled_command(0xA2); // display offset + oled_data(0x00); + oled_command(0xA1); // start line + oled_data(0x00); + oled_command(0xA0); // set remap + oled_data(0x14); + oled_data(0x11); + oled_command(0xAB); // function selection + oled_data(0x01); // external VDD + oled_command(0xB4); + oled_data(0xA0); + oled_data(0xFD); + oled_command(0xC1); // contrast current + oled_data(0x80); + oled_command(0xC7); // master contrast current control + oled_data(0x0F); + oled_command(0xB1); // phase length + oled_data(0xE2); + oled_command(0xD1); + oled_data(0x82); + oled_data(0x20); + oled_command(0xBB); // pre-charge voltage + oled_data(0x1F); + oled_command(0xB6); // second pre-charge period + oled_data(0x08); + oled_command(0xBE); // VCOMH + oled_data(0x07); + oled_command(0xA6); // normal display + oled_command(0xAF); // display on +} diff --git a/src/er_oled.h b/src/er_oled.h new file mode 100644 index 0000000..6d176cc --- /dev/null +++ b/src/er_oled.h @@ -0,0 +1,18 @@ +#pragma once + +// Driver bas niveau pour ecran ER-OLEDM032-1 (controleur SSD1322, 256x64, +// SPI 4 fils). Adapte du tutoriel constructeur (buydisplay.com) pour +// utiliser les broches SPI personnalisees de l'ESP32-C3 (voir config.h) et +// depouille des fonctions d'affichage bitmap, inutiles pour ce projet +// (dashboard texte uniquement). + +#include + +#define OLED_X_MAXPIXEL 256 +#define OLED_Y_MAXPIXEL 64 + +void er_oled_begin(); +void er_oled_clear(); +void er_oled_SetWindow(uint8_t Xstart, uint8_t Ystart, uint8_t Xend, uint8_t Yend); +void er_oled_char(uint8_t x, uint8_t y, const char *ascii, uint8_t mode); +void er_oled_string(uint8_t x, uint8_t y, const char *pString, uint8_t mode); diff --git a/src/main.cpp b/src/main.cpp index 3174bb9..1ada856 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,42 @@ #include +#include "config.h" +#include "oled_ui.h" +#include "tms_link.h" +#include "web_ui.h" + +namespace { + +// Clignotement 1 Hz de la LED RGB embarquee, vert a 30% de luminosite, +// pour indiquer que le firmware tourne. +const uint32_t STATUS_LED_PERIOD_MS = 500; +const uint8_t STATUS_LED_GREEN = (uint8_t)(255 * 0.30f); +uint32_t g_lastStatusLedMs = 0; +bool g_statusLedOn = false; + +void updateStatusLed() { + uint32_t now = millis(); + if (now - g_lastStatusLedMs < STATUS_LED_PERIOD_MS) return; + g_lastStatusLedMs = now; + g_statusLedOn = !g_statusLedOn; + neopixelWrite(PIN_RGB_LED, 0, g_statusLedOn ? STATUS_LED_GREEN : 0, 0); +} + +} // namespace + void setup() { Serial.begin(115200); + Serial.println("ESP32-C3-dualboost"); + Serial.println(TMS_DUMMY_MODE ? "Mode simulation TMS320 (dummy)" : "Mode liaison TMS320 reelle"); + + TmsLink::begin(); + OledUi::begin(); + WebUi::begin(); } void loop() { + TmsLink::poll(); + OledUi::update(TmsLink::telemetry(), TmsLink::linkOk()); + WebUi::poll(); + updateStatusLed(); } diff --git a/src/oled_ui.cpp b/src/oled_ui.cpp new file mode 100644 index 0000000..5d6b107 --- /dev/null +++ b/src/oled_ui.cpp @@ -0,0 +1,84 @@ +#include "oled_ui.h" + +#include + +#include "er_oled.h" +#include "tms_link.h" + +namespace OledUi { + +namespace { + +const uint32_t REFRESH_PERIOD_MS = 500; +const uint32_t PAGE_PERIOD_MS = 3000; + +uint32_t g_lastRefreshMs = 0; +uint32_t g_lastPageChangeMs = 0; +uint8_t g_page = 0; +const uint8_t PAGE_COUNT = 3; + +void drawLine(uint8_t y, const char *text) { + char padded[33]; + snprintf(padded, sizeof(padded), "%-32s", text); + er_oled_string(0, y, padded, 0); +} + +void drawEntreeCommandes(const Telemetry &t, bool linkOk) { + char l0[33], l1[33], l2[33], l3[33]; + snprintf(l0, sizeof(l0), "TMS320: %s", linkOk ? "OK" : "PERDU"); + snprintf(l1, sizeof(l1), "Vin=%.1fV Iin=%.2fA", t.vin, t.iin); + snprintf(l2, sizeof(l2), "Iout=%.2fA", t.iout); + snprintf(l3, sizeof(l3), "HT:%s PWM1:%s PWM2:%s", TmsLink::command().ht ? "ON " : "OFF", + TmsLink::command().pwm1 ? "ON " : "OFF", TmsLink::command().pwm2 ? "ON " : "OFF"); + drawLine(0, l0); + drawLine(16, l1); + drawLine(32, l2); + drawLine(48, l3); +} + +void drawEtage1(const Telemetry &t) { + char l1[33], l2[33]; + snprintf(l1, sizeof(l1), "F=%.0fHz D=%.1f%%", t.freq1, t.duty1); + snprintf(l2, sizeof(l2), "V=%.1fV I=%.2fA T=%.1fC", t.v1, t.i1, t.t1); + drawLine(0, "ETAGE 1"); + drawLine(16, l1); + drawLine(32, l2); + drawLine(48, ""); +} + +void drawEtage2(const Telemetry &t) { + char l1[33], l2[33]; + snprintf(l1, sizeof(l1), "F=%.0fHz D=%.1f%%", t.freq2, t.duty2); + snprintf(l2, sizeof(l2), "V=%.1fV I=%.2fA T=%.1fC", t.vout, t.i2, t.t2); + drawLine(0, "ETAGE 2"); + drawLine(16, l1); + drawLine(32, l2); + drawLine(48, ""); +} + +} // namespace + +void begin() { + er_oled_begin(); + er_oled_clear(); +} + +void update(const Telemetry &t, bool linkOk) { + uint32_t now = millis(); + + if (now - g_lastPageChangeMs >= PAGE_PERIOD_MS) { + g_lastPageChangeMs = now; + g_page = (g_page + 1) % PAGE_COUNT; + } + + if (now - g_lastRefreshMs < REFRESH_PERIOD_MS) return; + g_lastRefreshMs = now; + + switch (g_page) { + case 0: drawEntreeCommandes(t, linkOk); break; + case 1: drawEtage1(t); break; + case 2: drawEtage2(t); break; + } +} + +} // namespace OledUi diff --git a/src/oled_ui.h b/src/oled_ui.h new file mode 100644 index 0000000..54ca08a --- /dev/null +++ b/src/oled_ui.h @@ -0,0 +1,13 @@ +#pragma once + +#include "protocol.h" + +namespace OledUi { + +void begin(); + +// A appeler en boucle. Redessine l'ecran periodiquement et fait tourner +// les pages (entree/commandes, etage 1, etage 2). +void update(const Telemetry &t, bool linkOk); + +} // namespace OledUi diff --git a/src/tms_link.cpp b/src/tms_link.cpp new file mode 100644 index 0000000..d220454 --- /dev/null +++ b/src/tms_link.cpp @@ -0,0 +1,172 @@ +#include "tms_link.h" + +#include +#include + +#include "config.h" + +namespace TmsLink { + +namespace { + +Telemetry g_telemetry; +CommandState g_command; +uint32_t g_lastValidFrameMs = 0; +uint32_t g_lastCommandSentMs = 0; + +char g_lineBuf[160]; +uint8_t g_lineLen = 0; + +const uint32_t COMMAND_SEND_PERIOD_MS = 500; +const uint32_t SIM_UPDATE_PERIOD_MS = 200; +uint32_t g_lastSimMs = 0; + +uint8_t checksumOf(const char *s, size_t len) { + uint8_t cs = 0; + for (size_t i = 0; i < len; i++) cs ^= (uint8_t)s[i]; + return cs; +} + +// Applique une valeur "TAG=xxx" a la telemetrie courante. +void applyField(const char *tag, float value) { + if (!strcmp(tag, "FREQ1")) g_telemetry.freq1 = value; + else if (!strcmp(tag, "FREQ2")) g_telemetry.freq2 = value; + else if (!strcmp(tag, "DUTY1")) g_telemetry.duty1 = value; + else if (!strcmp(tag, "DUTY2")) g_telemetry.duty2 = value; + else if (!strcmp(tag, "VIN")) g_telemetry.vin = value; + else if (!strcmp(tag, "IIN")) g_telemetry.iin = value; + else if (!strcmp(tag, "V1")) g_telemetry.v1 = value; + else if (!strcmp(tag, "I1")) g_telemetry.i1 = value; + else if (!strcmp(tag, "T1")) g_telemetry.t1 = value; + else if (!strcmp(tag, "VOUT")) g_telemetry.vout = value; + else if (!strcmp(tag, "I2")) g_telemetry.i2 = value; + else if (!strcmp(tag, "T2")) g_telemetry.t2 = value; + else if (!strcmp(tag, "IOUT")) g_telemetry.iout = value; +} + +// Parse une ligne "$T,TAG=val,TAG=val,...*XX". Retourne true si le +// checksum est valide et que la trame a bien ete appliquee. +bool parseTelemetryLine(char *line) { + size_t len = strlen(line); + if (len < 5 || line[0] != '$' || line[1] != 'T' || line[2] != ',') return false; + + char *star = strrchr(line, '*'); + if (!star || star - line < 3) return false; + + uint8_t rxChecksum = (uint8_t)strtol(star + 1, nullptr, 16); + uint8_t computed = checksumOf(line + 1, star - (line + 1)); + if (rxChecksum != computed) return false; + + *star = '\0'; + char *field = line + 3; // apres "$T," + char *saveptr = nullptr; + char *tok = strtok_r(field, ",", &saveptr); + while (tok) { + char *eq = strchr(tok, '='); + if (eq) { + *eq = '\0'; + applyField(tok, atof(eq + 1)); + } + tok = strtok_r(nullptr, ",", &saveptr); + } + return true; +} + +void pollUart() { + while (Serial1.available()) { + char c = (char)Serial1.read(); + if (c == '\n') { + g_lineBuf[g_lineLen] = '\0'; + if (parseTelemetryLine(g_lineBuf)) { + g_telemetry.lastUpdateMs = millis(); + g_lastValidFrameMs = g_telemetry.lastUpdateMs; + } + g_lineLen = 0; + } else if (c != '\r') { + if (g_lineLen < sizeof(g_lineBuf) - 1) { + g_lineBuf[g_lineLen++] = c; + } else { + g_lineLen = 0; // ligne trop longue, on repart de zero + } + } + } +} + +// Simule un convertisseur en fonctionnement pour pouvoir developper et +// tester l'IHM (OLED + web) sans firmware TMS320. +void updateSimulation() { + uint32_t now = millis(); + if (now - g_lastSimMs < SIM_UPDATE_PERIOD_MS) return; + g_lastSimMs = now; + + float t = now / 1000.0f; + bool running = g_command.ht; + + g_telemetry.freq1 = 100000.0f; + g_telemetry.freq2 = 100000.0f; + g_telemetry.duty1 = running && g_command.pwm1 ? 45.0f + 2.0f * sinf(t) : 0.0f; + g_telemetry.duty2 = running && g_command.pwm2 ? 50.0f + 2.0f * sinf(t + 1.0f) : 0.0f; + + g_telemetry.vin = 400.0f + 1.0f * sinf(t * 0.5f); + g_telemetry.iin = running ? 1.2f + 0.1f * sinf(t) : 0.05f; + + g_telemetry.v1 = running && g_command.pwm1 ? 200.0f + 0.5f * sinf(t) : 0.0f; + g_telemetry.i1 = running && g_command.pwm1 ? 2.5f + 0.2f * sinf(t * 1.3f) : 0.0f; + g_telemetry.t1 = 40.0f + 5.0f * sinf(t * 0.1f); + + g_telemetry.vout = running && g_command.pwm2 ? 200.0f + 0.5f * sinf(t + 0.3f) : 0.0f; + g_telemetry.i2 = running && g_command.pwm2 ? 2.48f + 0.2f * sinf(t * 1.1f) : 0.0f; + g_telemetry.t2 = 39.5f + 5.0f * sinf(t * 0.1f + 0.5f); + + g_telemetry.iout = running ? 1.05f + 0.1f * sinf(t * 0.8f) : 0.0f; + + g_telemetry.lastUpdateMs = now; + g_lastValidFrameMs = now; +} + +void sendCommandFrame() { + char body[48]; + int n = snprintf(body, sizeof(body), "C,HT=%d,PWM1=%d,PWM2=%d", g_command.ht ? 1 : 0, + g_command.pwm1 ? 1 : 0, g_command.pwm2 ? 1 : 0); + uint8_t cs = checksumOf(body, n); + + char frame[64]; + snprintf(frame, sizeof(frame), "$%s*%02X\n", body, cs); + Serial1.print(frame); +} + +} // namespace + +void begin() { + Serial1.begin(TMS_UART_BAUD, SERIAL_8N1, PIN_TMS_UART_RX, PIN_TMS_UART_TX); +} + +void poll() { + if (TMS_DUMMY_MODE) { + updateSimulation(); + } else { + pollUart(); + } + + uint32_t now = millis(); + if (now - g_lastCommandSentMs >= COMMAND_SEND_PERIOD_MS) { + g_lastCommandSentMs = now; + sendCommandFrame(); + } +} + +void setCommand(const CommandState &cmd) { + g_command = cmd; + sendCommandFrame(); + g_lastCommandSentMs = millis(); +} + +const Telemetry &telemetry() { return g_telemetry; } +const CommandState &command() { return g_command; } + +bool linkOk() { + if (TMS_DUMMY_MODE) return true; + return (millis() - g_lastValidFrameMs) < 2000; +} + +} // namespace TmsLink diff --git a/src/tms_link.h b/src/tms_link.h new file mode 100644 index 0000000..d95a0bc --- /dev/null +++ b/src/tms_link.h @@ -0,0 +1,23 @@ +#pragma once + +#include "protocol.h" + +namespace TmsLink { + +void begin(); + +// A appeler en boucle : lit/parse l'UART (ou simule si TMS_DUMMY_MODE) et +// envoie periodiquement la trame de commande courante. +void poll(); + +// Met a jour l'etat de commande a transmettre au TMS320 au prochain envoi. +void setCommand(const CommandState &cmd); + +const Telemetry &telemetry(); +const CommandState &command(); + +// true si une trame de telemetrie valide (checksum OK) a ete recue +// recemment (ou si on est en mode simulation). +bool linkOk(); + +} // namespace TmsLink diff --git a/src/web_ui.cpp b/src/web_ui.cpp new file mode 100644 index 0000000..1f322b5 --- /dev/null +++ b/src/web_ui.cpp @@ -0,0 +1,11 @@ +#include "web_ui.h" + +// TODO : serveur web IHM, connexion WiFi en mode STA au reseau local +// (SSID/mot de passe a definir), une fois l'affichage OLED valide. + +namespace WebUi { + +void begin() {} +void poll() {} + +} // namespace WebUi diff --git a/src/web_ui.h b/src/web_ui.h new file mode 100644 index 0000000..e3d8958 --- /dev/null +++ b/src/web_ui.h @@ -0,0 +1,12 @@ +#pragma once + +// Stub pour l'instant : la priorite est de valider l'affichage OLED avec +// la simulation TMS320 avant de brancher le serveur web (qui devra se +// connecter au reseau local, en mode STA, avec des identifiants a fournir). + +namespace WebUi { + +void begin(); +void poll(); + +} // namespace WebUi