Some wireless doorbell does not need a battery at doorbell button (transmitter). it converts a mechanical energy to electric energy in which act as a power supply to transmit RF signals. In this project, we try to hack the RF module inside receiver, and use ESP32 to decode the received RF data stream.
WARNING:Do not try to take measurement on the receiver when it is plugged into main power (110V - 220V), you may have chance get electric shock. Unless you have good knowledge to do it and you know what you are doing.
There are so many wireless doorbell in the market. Some of them saying that the doorbell is battery-free. Normally, the receiver requires AC110 - 220V power source. The transmitter is just a BIG button. Here is an example :
For the BIG button, when you depress it, it can converts this mechanical movement to electric energy. This electric energy can last for at least about 25ms in time, in which allows the transmitter broadcast its ID in radio frequency four times. Luckily, the doorbell use a separate PCB as RF module. It's working voltage is at 3.3V.
So just de-solder it and connects to the ESP32 board for RF data decode. I use a e-Ink ESP32 PICO module as example. It can show you the result directly.
Now, it's time to use oscilloscope to see what's going on at the RF_OUT pin. The RF module connected to Arduino board with +3.3V, GND and the RF_OUT signal connects to IO21. Here we have the captured digital waveform :
The RF_OUT signal changes randomly when the power is on. It is something like White Noise, or when your radio doesn't well tuned. However, if you press the doorbell button once, you may see the pattern looks consistency and repeatable. There are four same 25-bits pulses occur, shown in yellow color at CHANNEL 1. For the CHANNEL 2, it is a debug signal done by the Arduino code. It is in-sync with the data stream where decode is take place.
Just zoom in the repeat pattern, you may see that if we sync every pulse with rising-edge, the time duration is almost the same. There are two types of pulse with different logic HIGH time duration. This is kind of PWM (Pulse Width Module). Assume that the pulse with short duration is binary bit '0' and the other is '1'. Then, we have 25-bits data "0 1111 0001 1111 0101 1010 1000" (00F1F5A8 in HEX). Already decode that bit stream? Yes. To correct decode these bit stream, we also require to determine the beginning of bit stream. For the waveform capture, there is a long duration low level pulse as indication.
For the Arduino code, we need to :
a. Determine the beginning condition of bit stream
- look for falling-edge of the signal
- measure duration of logic LOW level
- if it is about 1ms, then 'Start Condition' found
- otherwise, re-scan again
b. Determine each bit duration and decode it
CHANNEL 2 shows you more precisely how the program works. The I/O pin ISR (Interrupt Service Routine) triggers when rising-edge of RFIN_PIN. The DEBUG_PIN sets logic HIGH when rising-edge detected. It will put into logic LOW level in the timer Alarm ISR when the program take readings on the RFIN_PIN for bit decode.
Since the data streams repeat four time, we may say that if there are at least two same doorbell ID code detected, we can confirm that the corresponding doorbell 'BIG' switch is pressed. In real world, RF signals may affected by weather condition, distance in between receiver and the transmitter, something blocked the RF signals such as wall etc. So you may not receive all four data pattern all the times.
So now, we can identify each RF switch ID correctly. You may now use this RF switch to control any devices.
A video shows captured RF data stream:
A video shows the decoded information:
//////////////////////////////////////
//
// ESP32-RfSwitch.ino
// Hardware : ESP32 PICO
//
//////////////////////////////////////
//
// This project using a 2.13" e-Ink Display Module as an example
// For details about this ESP32 module, please visit : https://www.dfrobot.com//product-2101.html
// and https://wiki.dfrobot.com/e-Ink_Display_Module_for_ESP32_SKU_DFR0676
//
// To decode a RF bit stream, we need to know
// - a start condition
// A low pulse with duration about 1000us
//
// - time duration of each bit
// About 142us, fix duration for each of bit
//
// - Total number of bits per frame
// 25
//
// We use a timer with resolution at 100ns for bit duration and start condition measurement.
// A RF pin input with edge interrupt generation, on either rising-edge or falling-edge.
//
//
#include <pgmspace.h>
#include "SPI.h"
#include"EPD_Font8x16.h" // LCD background logo and fonts data included
#define SPI_MOSI 23 // SPI Interface for the e-Ink display
#define SPI_MISO -1
#define SPI_CLK 18
#define ELINK_SS 5 // Additional hardware connection about the e-Ink display
#define ELINK_BUSY 4
#define ELINK_RESET 16
#define ELINK_DC 17
#define RFIN_PIN 21 // RF Streams input pin from the RF Module
#define DEBUG_PIN 19 // a digiral output pin for debug purpose
#define MAX_LINE_BYTES 16 // 16 lines x 8 bits = 128 pixels
#define MAX_COLUMN_BYTES 250 // 250 pixels in column
#define ALLSCREEN_GRAGHBYTES 4000
//
// Defination related to RF bit streams
// All these data were obtained by oscilloscope
//
#define STREAM_HEAD_MIN 9000 // RF Bit Streams header detection timing : minimum is 9000us
#define STREAM_HEAD_MAX 13000 // and maximum is 13000us
#define STREAM_BITDURATION 1420 // RF Bit Streams duration, measured as 1360us
#define STREAM_BITDUR_MIN 1200 // Minimum duration for each bit
#define STREAM_BITDUR_MAX 1600 // Maximum duration for each bit
#define STREAM_BITDETECT 600 // a time delay about 600us after rising-edge detected for a single bit
#define STREAM_BITCOUNT 25 // Total number of bits per frame
#define STREAM_TIMEOUT 48 // Number of rising-edge wait when bit duration is not in given specification
//
// Fixed setup data for the e-Ink display
// For details, please refer to https://wiki.dfrobot.com/e-Ink_Display_Module_for_ESP32_SKU_DFR0676
//
const uint8_t LUT_DATA_full[] =
{
0xA0, 0x90, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x50, 0x90, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xA0, 0x90, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x50, 0x90, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x0F, 0x00, 0x00, 0x00,
0x0F, 0x0F, 0x00, 0x00, 0x03,
0x0F, 0x0F, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
//0x15, 0x41, 0xA8, 0x32, 0x50, 0x2C, 0x0B,
};
//
// Fixed setup data for the e-Ink display
//
const uint8_t LUT_DATA_part[] =
{
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00,
//0x15, 0x41, 0xA8, 0x32, 0x50, 0x2C, 0x0B,
};
//
// Variables related to RF stream decode
//
uint8_t streamState; // Decode states, 0: Wait for stream header and 1: decode data bit
uint8_t rfBitCount; // Number of data bit read
uint8_t rfDecodeRead; // Number of data frame (25-bits) decoded
uint32_t streamCode; // a 32-bit dword for saving bit where just read
uint32_t streamDecode[4]; // an array for saving decoded 25-bit data stream
uint32_t frameTimeout; // timeout counter for each frame detection
uint16_t dispTimeOut; // timeout counter switch ID display on e-Ink
SPIClass epdSPI(HSPI);
uint8_t SPIsend, SPIreceive;
hw_timer_t *rfTimer = NULL;
//
// RFIN_PIN edge interrupt serivce routine
// - for start condition detection and data stream timeout
//
//
void IRAM_ATTR rfDetect_ISR() {
uint8_t pinState; // RF input pin logic level
uint64_t rfTimerVal; // rfDetectTimer counter value, 100ns per count
timerStop(rfTimer); // Stop timer first
rfTimerVal = timerRead(rfTimer); // get the counter value
timerStart(rfTimer); // re-start timer
pinState = digitalRead(RFIN_PIN); // Read the RFIN_PIN logical level
if (streamState == 0) {
if (pinState == LOW) { // if logic level is LOW, that is Falling Edge
timerWrite(rfTimer, 0L); // Reset counter value to ZERO and wait for rising-edge interrupt
}
else { // if logic level is HIGH, that is Rising Edge
// Check the counter value and makesure that it is between 900us and 1300us
// and total number of frame decoded less than 4
if ((rfTimerVal >= STREAM_HEAD_MIN) && (rfTimerVal <= STREAM_HEAD_MAX) && (rfDecodeRead < 4)) {
digitalWrite(DEBUG_PIN, HIGH); // DEBUG to HIGH, a start condition detected
timerWrite(rfTimer, 0L); // Reset counter value to ZERO
timerAlarmEnable(rfTimer); // Enable Alarm Interrupt (use timer to decode each bit, delay about 60us after rising-edge)
streamState ++; // streamState = 1 for bit decode
rfBitCount = 0; // Number of bit count to ZERO
streamCode = 0; // Decoded Word to ZERO
}
else // If a start condition, the low pulse duration is not match, then ignore it
streamState = 0; // streamState = 0 for start condition detect again
if (frameTimeout > 0) // Check for number of retries.
frameTimeout --;
else
digitalWrite(DEBUG_PIN, HIGH); // If it is more the 48 times, then DEBUG_PIN change to HIGH for end of frame detection
}
}
else if (streamState == 1) { // streamState = 1, for bit decode
if (pinState == HIGH) { // If RFIN_PIN is at logic HIGH, that is rising-edge detected
// If time duration between each rising-edge is between 120us and 160us, then
if ((rfTimerVal > STREAM_BITDUR_MIN) && (rfTimerVal < STREAM_BITDUR_MAX)) {
timerWrite(rfTimer, 0L); // Set timer counter to ZERO
timerAlarmEnable(rfTimer); // Enable timer alarm for bit decode
digitalWrite(DEBUG_PIN, HIGH); // DEBUG_PIN changed to HIGH state
}
else { // otherwise, a wrong bit duration detected
timerAlarmDisable(rfTimer); // Disable timer alarm
timerWrite(rfTimer, 0L); // Set timer counter to ZERO
streamState = 0; // Restart everything. Now, detects a start condition of a frame
}
}
}
}
void IRAM_ATTR rfDetectTimer_ISR()
{
digitalWrite(DEBUG_PIN, LOW);
streamCode <<= 1;
if (digitalRead(RFIN_PIN) == HIGH)
streamCode |= 1;
rfBitCount ++;
if (rfBitCount >= STREAM_BITCOUNT) {
timerAlarmDisable(rfTimer);
timerWrite(rfTimer, 0L);
streamState = 0;
streamDecode[0] = streamDecode[1];
streamDecode[1] = streamDecode[2];
streamDecode[2] = streamDecode[3];
streamDecode[3] = streamCode;
rfDecodeRead ++;
}
frameTimeout = STREAM_TIMEOUT;
}
void EPD_W21_writeCMD(unsigned char command)
{
EPD_W21_CheckBUSY();
epdSPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0));
delayMicroseconds(10);
digitalWrite(ELINK_SS, LOW);
delayMicroseconds(10);
digitalWrite(ELINK_DC, LOW);
SPIreceive = epdSPI.transfer(command);
digitalWrite(ELINK_SS, HIGH);
epdSPI.endTransaction();
}
void EPD_W21_writeDATA(unsigned char data)
{
EPD_W21_CheckBUSY();
epdSPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0));
delayMicroseconds(10);
digitalWrite(ELINK_SS, LOW);
delayMicroseconds(10);
digitalWrite(ELINK_DC, HIGH);
delayMicroseconds(10);
SPIreceive = epdSPI.transfer(data);
digitalWrite(ELINK_SS, HIGH);
epdSPI.endTransaction();
}
void EPD_W21_writeblockDATA(const uint8_t *d, uint16_t size)
{
uint16_t i;
EPD_W21_CheckBUSY();
epdSPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0));
delayMicroseconds(10);
digitalWrite(ELINK_SS, LOW);
delayMicroseconds(10);
digitalWrite(ELINK_DC, HIGH);
delayMicroseconds(10);
for (i=0; i<size; i++)
SPIreceive = epdSPI.transfer(*d++);
digitalWrite(ELINK_SS, HIGH);
epdSPI.endTransaction();
}
void EPD_W21_Reset(void)
{
delay(20);
digitalWrite(ELINK_RESET, LOW);
delay(20);
digitalWrite(ELINK_RESET, HIGH);
delay(200);
}
void EPD_W21_CheckBUSY(void)
{
unsigned long start = micros();
while(1) {
if (!digitalRead(ELINK_BUSY)) break;
delay(1);
if (micros() - start > 10000000) {
Serial.println("Busy Timeout!");
break;
}
}
}
void EPD_Update(void)
{
EPD_W21_writeCMD(0x22); //Display Update Control
EPD_W21_writeDATA(0xF7);
EPD_W21_writeCMD(0x20); //Activate Display Update Sequence
EPD_W21_CheckBUSY();
}
void EPD_Part_Update(void)
{
EPD_W21_writeCMD(0x22); //Display Update Control
EPD_W21_writeDATA(0xFF);
EPD_W21_writeCMD(0x20); //Activate Display Update Sequence
EPD_W21_CheckBUSY();
}
void EPD_DeepSleep(void)
{
EPD_W21_writeCMD(0x10); //enter deep sleep
EPD_W21_writeDATA(0x01);
delay(100);
}
void EPD_SetRAMValue_BaseMap( const unsigned char * datas)
{
unsigned int i;
const unsigned char *datas_flag;
datas_flag=datas;
EPD_W21_writeCMD(0x24); //Write Black and White image to RAM
for(i=0;i<ALLSCREEN_GRAGHBYTES;i++) {
EPD_W21_writeDATA(pgm_read_byte(&datas[i]));
}
datas=datas_flag;
EPD_W21_writeCMD(0x26); //Write Black and White image to RAM
for(i=0;i<ALLSCREEN_GRAGHBYTES;i++) {
EPD_W21_writeDATA(pgm_read_byte(&datas[i]));
}
EPD_Update();
}
void EPD_WhiteScreen_ALL(const unsigned char * data)
{
unsigned int i;
EPD_W21_writeCMD(0x24); //write RAM for black(0)/white (1)
for(i=0;i<ALLSCREEN_GRAGHBYTES;i++) {
if (data == NULL)
EPD_W21_writeDATA(0xff);
else
EPD_W21_writeDATA(pgm_read_byte(&data[i]));
}
EPD_Update();
}
void EPD_Dis_Part(unsigned int x_start,unsigned int y_start,const unsigned char * datas,unsigned int PART_COLUMN,unsigned int PART_LINE)
{
unsigned int i;
unsigned int x_end,y_start1,y_start2,y_end1,y_end2;
x_start=x_start/8;//
x_end=x_start+PART_LINE/8-1;
y_start1=0;
y_start2=y_start;
if(y_start>=256) {
y_start1=y_start2/256;
y_start2=y_start2%256;
}
y_end1=0;
y_end2=y_start+PART_COLUMN-1;
if(y_end2>=256) {
y_end1=y_end2/256;
y_end2=y_end2%256;
}
EPD_W21_writeCMD(0x44); // set RAM x address start/end, in page 35
EPD_W21_writeDATA(x_start); // RAM x address start at 00h;
EPD_W21_writeDATA(x_end); // RAM x address end at 0fh(15+1)*8->128
EPD_W21_writeCMD(0x45); // set RAM y address start/end, in page 35
EPD_W21_writeDATA(y_start2); // RAM y address start at 0127h;
EPD_W21_writeDATA(y_start1); // RAM y address start at 0127h;
EPD_W21_writeDATA(y_end2); // RAM y address end at 00h;
EPD_W21_writeDATA(y_end1); // ????=0
EPD_W21_writeCMD(0x4E); // set RAM x address count to 0;
EPD_W21_writeDATA(x_start);
EPD_W21_writeCMD(0x4F); // set RAM y address count to 0X127;
EPD_W21_writeDATA(y_start2);
EPD_W21_writeDATA(y_start1);
EPD_W21_writeCMD(0x24); //Write Black and White image to RAM
for(i=0;i<PART_COLUMN*PART_LINE/8;i++) {
EPD_W21_writeDATA(pgm_read_byte(&datas[i]));
}
//EPD_Part_Update();
}
void EPD_PrintString(uint8_t sx, uint8_t sy,const char* str, uint8_t isUpdate)
{
uint8_t slen;
const char* pt;
uint16_t sChar;
pt = str;
slen = 0;
while (*pt++)
slen ++;
if (slen == 0)
return;
pt = str + slen - 1;
sx = 249 - sx; // Maping to LCD's coordinates
sx = sx - (8 * (slen-1));
while (*pt) {
sChar = *pt--;
sChar = sChar - 32;
sChar = sChar * 16;
EPD_Dis_Part(sy, sx,&Font8x16[sChar],8,16);
sx = sx + 8;
}
if (isUpdate)
EPD_Part_Update();
}
void EPD_PrintHex32bit(uint8_t hx, uint8_t hy, uint32_t hex, uint8_t isUpdate)
{
uint16_t hChar, i;
hx = 249 - hx; // Maping to LCD's coordinates
if (hx > 56)
hx = hx - 56;
for (i=0; i<8; i++) {
hChar = (hex & 0x0000000F);
if (hChar <= 9) {
hChar = hChar + '0';
}
else {
hChar = hChar - 10;
hChar = hChar + '0';
hChar = hChar + 17;
}
hChar = hChar - 32;
hChar = hChar * 16;
EPD_Dis_Part(hy, hx,&Font8x16[hChar],8,16);
hx = hx + 8;
hex >>= 4;
}
if (isUpdate)
EPD_Part_Update();
}
void EPD_init(void)
{
EPD_W21_Reset(); //Electronic paper IC reset
EPD_W21_CheckBUSY();
EPD_W21_writeCMD(0x12); //SWRESET
EPD_W21_CheckBUSY();
EPD_W21_writeCMD(0x01); //Driver output control
EPD_W21_writeDATA(0xF9);
EPD_W21_writeDATA(0x00);
EPD_W21_writeDATA(0x00);
EPD_W21_writeCMD(0x11); //data entry mode
EPD_W21_writeDATA(0x01);
EPD_W21_writeCMD(0x44); //set Ram-X address start/end position
EPD_W21_writeDATA(0x00);
EPD_W21_writeDATA(0x0F); //0x0F-->(15+1)*8=128
EPD_W21_writeCMD(0x45); //set Ram-Y address start/end position
EPD_W21_writeDATA(0xF9); //0xF9-->(249+1)=250
EPD_W21_writeDATA(0x00);
EPD_W21_writeDATA(0x00);
EPD_W21_writeDATA(0x00);
EPD_W21_writeCMD(0x3C); //BorderWavefrom
EPD_W21_writeDATA(0x01);
EPD_W21_writeCMD(0x18); //Reading temperature sensor
EPD_W21_writeDATA(0x80);
EPD_W21_writeCMD(0x4E); // set RAM x address count to 0;
EPD_W21_writeDATA(0x00);
EPD_W21_writeCMD(0x4F); // set RAM y address count to 0X199;
EPD_W21_writeDATA(0xF9);
EPD_W21_writeDATA(0x00);
EPD_W21_CheckBUSY();
}
void setup() {
// put your setup code here, to run once:
streamState = 0;
frameTimeout = STREAM_TIMEOUT;
dispTimeOut = 0;
Serial.begin(115200);
Serial.println();
Serial.println("setup");
pinMode(ELINK_BUSY, INPUT_PULLUP);
digitalWrite(ELINK_SS, HIGH);
digitalWrite(ELINK_RESET, HIGH);
digitalWrite(ELINK_DC, HIGH);
pinMode(ELINK_SS, OUTPUT);
pinMode(ELINK_DC, OUTPUT);
pinMode(ELINK_RESET, OUTPUT);
pinMode(DEBUG_PIN, OUTPUT);
digitalWrite(DEBUG_PIN, LOW);
EPD_W21_Reset(); //Electronic paper IC reset
epdSPI.begin(SPI_CLK, SPI_MISO, SPI_MOSI, ELINK_SS);
EPD_init(); //Electronic paper initialization
EPD_SetRAMValue_BaseMap(gImage_basemap); //Partial refresh background color,Brush map is a must, please do not delete
delay(100);
EPD_PrintString(0, 72, "RF SWITCH ID:", false);
EPD_PrintHex32bit(112, 72, 0, true);
Serial.println("Initial Done.");
// Enable Timer0 with prescaler 8, count up
// So the resolution of counter0 is 100ns
//
rfTimer = timerBegin(0, 8, true);
timerAttachInterrupt(rfTimer, &rfDetectTimer_ISR, true);
timerAlarmWrite(rfTimer, STREAM_BITDETECT, false);
timerAlarmDisable(rfTimer);
pinMode(RFIN_PIN, INPUT_PULLUP);
attachInterrupt(RFIN_PIN, rfDetect_ISR, CHANGE);
}
void loop() {
// put your main code here, to run repeatedly:
uint16_t i, count;
uint32_t code;
if ((rfDecodeRead >= 1) && (frameTimeout == 0)) {
rfDecodeRead = 0;
frameTimeout = STREAM_TIMEOUT;
count = 0;
for (i=0; i<4; i++) {
Serial.print(streamDecode[i], HEX);
Serial.print(' ');
if (streamDecode[i] != 0)
code = streamDecode[i];
if (code == streamDecode[i])
count ++;
streamDecode[i] = 0;
}
Serial.println();
if (count > 1) {
EPD_PrintString(0, 72, "RF SWITCH ID:", false);
EPD_PrintHex32bit(112, 72, code, true);
dispTimeOut = 100;
}
}
if (dispTimeOut > 0) {
dispTimeOut = dispTimeOut - 1;
if (dispTimeOut == 0) {
EPD_PrintString(0, 72, "RF SWITCH ID:", false);
EPD_PrintHex32bit(112, 72, 0, true);
}
}
delay(10);
}
//////////////////////////////////////
//
// EPD_Font8x16.h
//
//////////////////////////////////////
//
//
#include <pgmspace.h>
//
// A 8x16 font table for EPD Display
//
const unsigned char Font8x16[] PROGMEM = {
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // <Space>
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x33,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // !
0xFF,0xFF,0xFF,0xFF,0xC3,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xFF,0xFF,0xFF,0xFF,0xFF, // "
0xFF,0xB3,0xFD,0x8F,0xFC,0x33,0xF1,0x8F,0xCC,0x3F,0xF1,0xBF,0xCD,0xFF,0xFF,0xFF, // #
0xE3,0xCF,0xDD,0xF7,0xDE,0xF7,0x80,0x03,0xDE,0xF7,0xDF,0x77,0xE7,0x8F,0xFF,0xFF, // $
0xF1,0xFF,0xEE,0xF3,0xDD,0xCF,0xE3,0x3F,0xEC,0xC7,0xE3,0xBB,0x9F,0x77,0xFF,0x8F, // %
0xFF,0x87,0xE1,0x7B,0xDE,0xFB,0xDD,0x3B,0xE3,0xC7,0xFE,0xEB,0xFE,0x1B,0xFE,0xF7, // &
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // '
0xFF,0xFF,0xFF,0xFF,0xFC,0x07,0xF3,0xF9,0xEF,0xFE,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF, // (
0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xEF,0xFE,0xF3,0xF9,0xFC,0x07,0xFF,0xFF,0xFF,0xFF, // )
0xFF,0xFF,0xFF,0xFF,0xEE,0xFF,0xF5,0xFF,0xC0,0x7F,0xF5,0xFF,0xEE,0xFF,0xFF,0xFF, // *
0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xF8,0x03,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0xFF, // +
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF2,0xFF,0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // ,
0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF, // -
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xFF,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // .
0xFF,0xFF,0xFF,0xFF,0xFF,0xE3,0xFF,0x1F,0xF8,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF, // /
0xFF,0xFF,0xF0,0x0F,0xEF,0xF7,0xDF,0xFB,0xDF,0xFB,0xEF,0xF7,0xF0,0x0F,0xFF,0xFF, // 0
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFB,0xC0,0x03,0xFF,0xFB,0xFF,0xFF,0xFF,0xFF, // 1
0xFF,0xFF,0xE7,0xF3,0xDF,0xEB,0xDF,0xDB,0xDF,0xBB,0xEE,0x7B,0xF1,0xF3,0xFF,0xFF, // 2
0xFF,0xFF,0xEF,0xFB,0xDF,0xFB,0xDE,0xFB,0xDC,0xFB,0xE3,0x77,0xFF,0x8F,0xFF,0xFF, // 3
0xFF,0xFF,0xFF,0x9F,0xFE,0x5F,0xF9,0xDF,0xE7,0xDF,0xC0,0x03,0xFF,0xDF,0xFF,0xFF, // 4
0xFF,0xFF,0xFF,0xFB,0xC1,0xFB,0xDD,0xFB,0xDD,0xFB,0xDE,0xF7,0xDF,0x0F,0xFF,0xFF, // 5
0xFF,0xFF,0xF8,0x0F,0xF6,0xF7,0xED,0xFB,0xDD,0xFB,0xDE,0xF7,0xDF,0x0F,0xFF,0xFF, // 6
0xFF,0xFF,0xC7,0xFF,0xDF,0xFF,0xDF,0xE3,0xDF,0x1F,0xD8,0xFF,0xC7,0xFF,0xFF,0xFF, // 7
0xFF,0xFF,0xF3,0x8F,0xED,0x77,0xDE,0xFB,0xDE,0xFB,0xED,0x77,0xF3,0x8F,0xFF,0xFF, // 8
0xFF,0xFF,0xF0,0xFB,0xEF,0x7B,0xDF,0xBB,0xDF,0xB7,0xEF,0x6F,0xF0,0x1F,0xFF,0xFF, // 9
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xF3,0xFC,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // :
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0xF2,0xFC,0xF1,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // ;
0xFF,0xFF,0xFF,0xBF,0xFF,0x5F,0xFF,0x5F,0xFE,0xEF,0xFE,0xEF,0xFD,0xF7,0xFF,0xFF, // <
0xFE,0xEF,0xFE,0xEF,0xFE,0xEF,0xFE,0xEF,0xFE,0xEF,0xFE,0xEF,0xFE,0xEF,0xFE,0xEF, // =
0xFF,0xFF,0xFD,0xF7,0xFE,0xEF,0xFE,0xEF,0xFF,0x5F,0xFF,0x5F,0xFF,0xBF,0xFF,0xFF, // >
0xFF,0xFF,0xE3,0xFF,0xDF,0xFF,0xDF,0x93,0xDE,0x7F,0xED,0xFF,0xF3,0xFF,0xFF,0xFF, // ?
0xF0,0x0F,0xEF,0xF7,0xDC,0x3B,0xDB,0xDB,0xDB,0xDB,0xDC,0x3B,0xEB,0xD7,0xF0,0x17, // @
0xFF,0xFB,0xFF,0xC3,0xF8,0x3B,0xC7,0xBF,0xF8,0x3B,0xFF,0xC3,0xFF,0xFB,0xFF,0xFF, // A
0xDF,0xFB,0xC0,0x03,0xDE,0xFB,0xDE,0xFB,0xDE,0xFB,0xED,0x77,0xF3,0x8F,0xFF,0xFF, // B
0xF0,0x0F,0xEF,0xF7,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xEF,0xFB,0xC7,0xF7,0xFF,0xFF, // C
0xDF,0xFB,0xC0,0x03,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xE7,0xE7,0xF8,0x1F,0xFF,0xFF, // D
0xDF,0xFB,0xC0,0x03,0xDE,0xFB,0xDE,0xFB,0xDE,0xFB,0xDC,0x7B,0xC7,0xE3,0xFF,0xFF, // E
0xDF,0xFB,0xC0,0x03,0xDE,0xFB,0xDE,0xFF,0xDE,0xFF,0xDC,0x7F,0xC7,0xFF,0xFF,0xFF, // F
0xF0,0x0F,0xEF,0xF7,0xDF,0xFB,0xDF,0xFB,0xEF,0x7B,0xC7,0x07,0xFF,0x7F,0xFF,0xFF, // G
0xDF,0xFB,0xC0,0x03,0xDE,0xFB,0xFE,0xFF,0xDE,0xFB,0xC0,0x03,0xDF,0xFB,0xFF,0xFF, // H
0xFF,0xFF,0xFF,0xFF,0xDF,0xFB,0xC0,0x03,0xDF,0xFB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // I
0xFF,0xFF,0xFF,0xF7,0xFF,0xFB,0xDF,0xFB,0xC0,0x07,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF, // J
0xDF,0xFB,0xC0,0x03,0xDC,0xFB,0xFB,0x3F,0xD7,0xCB,0xCF,0xF3,0xDF,0xFB,0xFF,0xFF, // K
0xDF,0xFB,0xC0,0x03,0xDF,0xFB,0xFF,0xFB,0xFF,0xFB,0xFF,0xF3,0xFF,0xEF,0xFF,0xFF, // L
0xDF,0xFB,0xC0,0x03,0xF8,0xFB,0xFF,0x0F,0xF8,0xFB,0xC0,0x03,0xDF,0xFB,0xFF,0xFF, // M
0xDF,0xFB,0xC0,0x03,0xF3,0xFB,0xFC,0x3F,0xDF,0xCF,0xC0,0x03,0xDF,0xFF,0xFF,0xFF, // N
0xF8,0x1F,0xE7,0xE7,0xDF,0xFB,0xDF,0xFB,0xDF,0xFB,0xE7,0xE7,0xF8,0x1F,0xFF,0xFF, // O
0xDF,0xFB,0xC0,0x03,0xDF,0x7B,0xDF,0x7F,0xDF,0x7F,0xEE,0xFF,0xF1,0xFF,0xFF,0xFF, // P
0xF8,0x1F,0xE7,0xE7,0xDF,0xFB,0xDF,0xFB,0xDF,0xF9,0xE7,0xE6,0xF8,0x1E,0xFF,0xFF, // Q
0xDF,0xFB,0xC0,0x03,0xDF,0x7B,0xDF,0x3F,0xDF,0x4F,0xEE,0xF3,0xF1,0xFB,0xFF,0xFF, // R
0xF3,0xE3,0xED,0xF7,0xDE,0xFB,0xDE,0xFB,0xDF,0x7B,0xEF,0xB7,0xC7,0xCF,0xFF,0xFF, // S
0xCF,0xFF,0xDF,0xFF,0xDF,0xFB,0xC0,0x03,0xDF,0xFB,0xDF,0xFF,0xCF,0xFF,0xFF,0xFF, // T
0xDF,0xFF,0xC0,0x07,0xDF,0xFB,0xFF,0xFB,0xDF,0xFB,0xC0,0x07,0xDF,0xFF,0xFF,0xFF, // U
0xDF,0xFF,0xC1,0xFF,0xDE,0x1F,0xFF,0xE3,0xDE,0x1F,0xC1,0xFF,0xDF,0xFF,0xFF,0xFF, // V
0xDF,0xFF,0xC0,0x3F,0xDF,0xC3,0xF0,0x3F,0xDF,0xC3,0xC0,0x3F,0xDF,0xFF,0xFF,0xFF, // W
0xDF,0xFB,0xC7,0xE3,0xD9,0x9B,0xFE,0x7F,0xD9,0x9B,0xC7,0xE3,0xDF,0xFB,0xFF,0xFF, // X
0xDF,0xFF,0xC7,0xFF,0xD8,0xFB,0xFF,0x03,0xD8,0xFB,0xC7,0xFF,0xDF,0xFF,0xFF,0xFF, // Y
0xC7,0xF3,0xDF,0xCB,0xDF,0xBB,0xDE,0x7B,0xDD,0xFB,0xD3,0xFB,0xCF,0xE3,0xFF,0xFF, // Z
};
//
// Just a full screen Logo for EPD display
//
const unsigned char gImage_basemap[4000] PROGMEM = { /* 0X01,0X01,0XFA,0X00,0X7A,0X00, */
0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfd, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfd, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfb, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfb, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfb, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf7, 0xbf, 0xff, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf7, 0x7f, 0xff, 0x4b, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xef, 0x7f, 0xfd, 0x7f, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf7, 0x7f, 0xd3, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xee, 0xfe, 0xaf, 0xfd, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xef, 0xf2, 0xff, 0xa3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xde, 0x1f, 0xfd, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xdf, 0xff, 0xea, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xdf, 0xfe, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xdf, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xdf, 0x57, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xdb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x7b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbb, 0xff, 0xff, 0xfd, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbb, 0xff, 0xff, 0xe4, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbb, 0xff, 0xfe, 0x1f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbf, 0xff, 0xf2, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xdb, 0xff, 0x0f, 0xff, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xd7, 0xf9, 0x7f, 0xfd, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xeb, 0xa7, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0x5f, 0xfa, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xe9, 0xff, 0xd5, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xd7, 0xfd, 0x2b, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbf, 0xf5, 0xf7, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xbf, 0x4f, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xba, 0xbf, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xcb, 0xff, 0xdd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xbb, 0xfa, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xb7, 0xe5, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x77, 0x5f, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x74, 0xbf, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x75, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x7f, 0xfa, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x7f, 0xd5, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0xff, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x7a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0x88, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0x5f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0x7f, 0xef, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfc, 0xff, 0xf0, 0x26, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfb, 0xff, 0xff, 0xb5, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfb, 0xff, 0xff, 0xad, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfb, 0xfb, 0xdf, 0x25, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf3, 0xe1, 0xaf, 0xbd, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfb, 0x85, 0x4f, 0x65, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf7, 0x92, 0x1f, 0xa9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfb, 0xb8, 0xff, 0x3d, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf3, 0xfd, 0xfc, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfd, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfb, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfc, 0xff, 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0x1f, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xc0, 0xbf, 0xfa, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0xff, 0xcb, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfe, 0x5f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xf9, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xd7, 0xfd, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x5f, 0xe5, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfa, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfb, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf7, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf7, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf6, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf4, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfd, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfb, 0xbf, 0xfd, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfb, 0xbf, 0xea, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfb, 0x7f, 0xab, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf7, 0x7e, 0xbf, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf7, 0xfa, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfb, 0x25, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf7, 0xdf, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfb, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfb, 0xfd, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfd, 0xd3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfe, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xf9, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xcb, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xfe, 0x3f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xf2, 0xff, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x17, 0xfc, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf9, 0x7f, 0xe5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xc7, 0xff, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xfe, 0x5f, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xf2, 0xff, 0xa7, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xdf, 0xfc, 0xae, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xdf, 0xf3, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xdf, 0x4f, 0xde, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xed, 0x7f, 0xbe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xe5, 0xff, 0x7f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0x77, 0xc5, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfc, 0xe3, 0xfd, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xed, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf9, 0xde, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf7, 0xbf, 0x5f, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xe7, 0xbf, 0xd1, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xef, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xee, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xf5, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};
Comments
Please log in or sign up to comment.