mirror of
https://github.com/binary-kitchen/doorlockd
synced 2024-12-22 18:34:25 +01:00
Initial commit
This commit is contained in:
parent
cbaaaffe84
commit
ee24c8c862
30
CMakeLists.txt
Normal file
30
CMakeLists.txt
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
project(doorlockd)
|
||||||
|
|
||||||
|
option(USE_COLORIZED_LOGS "Colorized logging" ON)
|
||||||
|
|
||||||
|
add_definitions(-std=c++11)
|
||||||
|
|
||||||
|
configure_file (
|
||||||
|
"${PROJECT_SOURCE_DIR}/config.h.in"
|
||||||
|
"${PROJECT_BINARY_DIR}/config.h"
|
||||||
|
)
|
||||||
|
|
||||||
|
include_directories("${PROJECT_BINARY_DIR}")
|
||||||
|
|
||||||
|
set(SRCS
|
||||||
|
main.cpp
|
||||||
|
logger.cpp
|
||||||
|
door.cpp
|
||||||
|
epaper.cpp
|
||||||
|
logic.cpp
|
||||||
|
util.cpp
|
||||||
|
epaper/Display_COG_Process.c
|
||||||
|
epaper/Display_Controller.c
|
||||||
|
epaper/Display_Hardware_Driver.c
|
||||||
|
epaper/bsp.c
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(doorlockd ${SRCS})
|
||||||
|
|
||||||
|
target_link_libraries(doorlockd wiringPi jsoncpp)
|
16
config.h.in
Normal file
16
config.h.in
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#ifndef CONFIG_H
|
||||||
|
#define CONFIG_H
|
||||||
|
|
||||||
|
#cmakedefine USE_COLORIZED_LOGS
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
#define DEFAULT_LOG_LEVEL LogLevel::debug2
|
||||||
|
#else
|
||||||
|
#define DEFAULT_LOG_LEVEL LogLevel::info
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define TOKEN_TIMEOUT 15
|
||||||
|
#define LOCKPAGE_PREFIX "https://lock.binary.kitchen/"
|
||||||
|
#define FIFO_LOCATION "/tmp/fifo"
|
||||||
|
|
||||||
|
#endif
|
42
door.cpp
Normal file
42
door.cpp
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <wiringPi.h>
|
||||||
|
|
||||||
|
#include "logger.h"
|
||||||
|
#include "door.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
constexpr int LOCKPIN = 10;
|
||||||
|
|
||||||
|
Door::Door() : _l(Logger::get())
|
||||||
|
{
|
||||||
|
_l(LogLevel::info, "Initializing Raspberry Pi GPIOs");
|
||||||
|
wiringPiSetup();
|
||||||
|
pinMode(LOCKPIN, OUTPUT);
|
||||||
|
|
||||||
|
lock();
|
||||||
|
}
|
||||||
|
|
||||||
|
Door::~Door()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Door &Door::get()
|
||||||
|
{
|
||||||
|
static Door d;
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Door::lock()
|
||||||
|
{
|
||||||
|
_l(LogLevel::info, "Door closed");
|
||||||
|
digitalWrite(LOCKPIN, HIGH);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Door::unlock()
|
||||||
|
{
|
||||||
|
_l(LogLevel::info, "Door opened");
|
||||||
|
digitalWrite(LOCKPIN, LOW);
|
||||||
|
}
|
25
door.h
Normal file
25
door.h
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#ifndef DOOR_H
|
||||||
|
#define DOOR_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "logger.h"
|
||||||
|
|
||||||
|
class Door {
|
||||||
|
|
||||||
|
public:
|
||||||
|
static Door &get();
|
||||||
|
|
||||||
|
~Door();
|
||||||
|
|
||||||
|
void lock();
|
||||||
|
void unlock();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
Door();
|
||||||
|
|
||||||
|
const Logger &_l;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
53
epaper.cpp
Normal file
53
epaper.cpp
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#include <cstring>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
|
#include "logger.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
#include "epaper/bsp.h"
|
||||||
|
#include "epaper/Display_Controller.h"
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "epaper.h"
|
||||||
|
|
||||||
|
#include "template.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
Epaper::Epaper() :
|
||||||
|
_logger(Logger::get())
|
||||||
|
{
|
||||||
|
memset(_prevImg, 0xFF, ARRAY_SIZE);
|
||||||
|
bsp_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
Epaper::~Epaper()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Epaper &Epaper::get()
|
||||||
|
{
|
||||||
|
static Epaper e;
|
||||||
|
return e;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Epaper::draw(const string &uri)
|
||||||
|
{
|
||||||
|
unsigned char buffer[ARRAY_SIZE];
|
||||||
|
snprintf((char*)buffer, ARRAY_SIZE, "qrencode -l M -d 100 -s 5 \"%s\" -o /tmp/qr.png", uri.c_str());
|
||||||
|
system((char*)buffer);
|
||||||
|
|
||||||
|
FILE* f = popen("composite -geometry +90+0 /tmp/qr.png /tmp/template.png -colorspace gray -depth 1 gray:-", "r");
|
||||||
|
int i = fread(buffer, ARRAY_SIZE, 1, f);
|
||||||
|
if (i != 1)
|
||||||
|
{
|
||||||
|
_logger(LogLevel::error, "Image format error");
|
||||||
|
pclose(f);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pclose(f);
|
||||||
|
|
||||||
|
epd_DisplayImg(EPDType_270, buffer, _prevImg);
|
||||||
|
memcpy(_prevImg, buffer, ARRAY_SIZE);
|
||||||
|
}
|
31
epaper.h
Normal file
31
epaper.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#ifndef EPAPER_H
|
||||||
|
#define EPAPER_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <array>
|
||||||
|
|
||||||
|
#include "logger.h"
|
||||||
|
|
||||||
|
class Epaper {
|
||||||
|
public:
|
||||||
|
|
||||||
|
constexpr static int HEIGHT = 176; // In Pixel
|
||||||
|
constexpr static int WIDTH = 33; // In Byte
|
||||||
|
|
||||||
|
constexpr static int ARRAY_SIZE = HEIGHT * WIDTH;
|
||||||
|
|
||||||
|
static Epaper &get();
|
||||||
|
~Epaper();
|
||||||
|
|
||||||
|
void draw(const std::string &uri);
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
Epaper();
|
||||||
|
|
||||||
|
uint8_t _prevImg[ARRAY_SIZE];
|
||||||
|
|
||||||
|
const Logger &_logger;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
650
epaper/Display_COG_Process.c
Normal file
650
epaper/Display_COG_Process.c
Normal file
@ -0,0 +1,650 @@
|
|||||||
|
// Copyright 2013 Pervasive Displays, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at:
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
||||||
|
// express or implied. See the License for the specific language
|
||||||
|
// governing permissions and limitations under the License.
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Includes
|
||||||
|
*****************************************************************************/
|
||||||
|
//#include "driver_config.h"
|
||||||
|
//#include "target_config.h"
|
||||||
|
//#include "type.h"
|
||||||
|
//#include "gpio.h"
|
||||||
|
#include "Display_COG_Process.h"
|
||||||
|
#include "Display_Hardware_Driver.h"
|
||||||
|
#include "Display_Controller.h"
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Defines and typedefs
|
||||||
|
*****************************************************************************/
|
||||||
|
#define _GaugeFrameTimeMark 0
|
||||||
|
|
||||||
|
const COG_Parameters_t COG_Parameters[3]= {
|
||||||
|
{ //for 1.44"
|
||||||
|
{0x00,0x00,0x00,0x00,0x00,0x0f,0xff,0x00},
|
||||||
|
0x03,
|
||||||
|
(128/8),
|
||||||
|
96,
|
||||||
|
(((128+96)*2)/8),
|
||||||
|
(43),
|
||||||
|
480
|
||||||
|
},
|
||||||
|
{ //for 2.0"
|
||||||
|
{0x00,0x00,0x00,0x00,0x01,0xFF,0xE0,0x00},
|
||||||
|
0x03,
|
||||||
|
(200/8),
|
||||||
|
96,
|
||||||
|
(((200+96)*2)/8)+1,
|
||||||
|
(53),
|
||||||
|
480
|
||||||
|
},
|
||||||
|
{ //for 2.7"
|
||||||
|
{0x00,0x00,0x00,0x7F,0xFF,0xFE,0x00,0x00},
|
||||||
|
0x00,
|
||||||
|
(264/8),
|
||||||
|
176,
|
||||||
|
(((264+176)*2)/8)+1,
|
||||||
|
105,
|
||||||
|
630
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint8_t ScanTable[4] = {0xC0, 0x30, 0x0C, 0x03};
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Local variables
|
||||||
|
*****************************************************************************/
|
||||||
|
static uint32_t StageTime = 480;
|
||||||
|
static COG_LineDataPacket_t COG_Line;
|
||||||
|
static uint16_t EPD_Type_Index = 0;
|
||||||
|
static uint16_t cnt = 0;
|
||||||
|
static uint32_t Currentframe;
|
||||||
|
static uint8_t *DataLineEven;
|
||||||
|
static uint8_t *DataLineOdd;
|
||||||
|
static uint8_t *DataLineScan;
|
||||||
|
static uint8_t *DisplayOrgPtr;
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Local functions
|
||||||
|
*****************************************************************************/
|
||||||
|
static void SetTemperature_Factor(uint8_t EPD_Type_Index)
|
||||||
|
{
|
||||||
|
int16_t Temperature;
|
||||||
|
|
||||||
|
//Get current temperature
|
||||||
|
Temperature = epd_get_temperature();
|
||||||
|
|
||||||
|
if (Temperature < -10)
|
||||||
|
{
|
||||||
|
StageTime = COG_Parameters[EPD_Type_Index].StageTime * 17;
|
||||||
|
}
|
||||||
|
else if (Temperature < -5)
|
||||||
|
{
|
||||||
|
StageTime = COG_Parameters[EPD_Type_Index].StageTime * 12;
|
||||||
|
}
|
||||||
|
else if (Temperature < 5)
|
||||||
|
{
|
||||||
|
StageTime = COG_Parameters[EPD_Type_Index].StageTime * 8;
|
||||||
|
}
|
||||||
|
else if (Temperature < 10)
|
||||||
|
{
|
||||||
|
StageTime = COG_Parameters[EPD_Type_Index].StageTime * 4;
|
||||||
|
}
|
||||||
|
else if (Temperature < 15)
|
||||||
|
{
|
||||||
|
StageTime = COG_Parameters[EPD_Type_Index].StageTime * 3;
|
||||||
|
}
|
||||||
|
else if (Temperature < 20)
|
||||||
|
{
|
||||||
|
StageTime = COG_Parameters[EPD_Type_Index].StageTime * 2;
|
||||||
|
}
|
||||||
|
else if (Temperature < 40)
|
||||||
|
{
|
||||||
|
StageTime = COG_Parameters[EPD_Type_Index].StageTime * 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StageTime = (COG_Parameters[EPD_Type_Index].StageTime * 7)/10;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Driver_TypeSelect(uint8_t typeIndex)
|
||||||
|
{
|
||||||
|
switch(typeIndex)
|
||||||
|
{
|
||||||
|
case EPDType_144:
|
||||||
|
DataLineEven=&COG_Line.LineDatas.COG_144LineData.Even[0];
|
||||||
|
DataLineOdd=&COG_Line.LineDatas.COG_144LineData.Odd[0];
|
||||||
|
DataLineScan=&COG_Line.LineDatas.COG_144LineData.Scan[0];
|
||||||
|
break;
|
||||||
|
case EPDType_200:
|
||||||
|
DataLineEven=&COG_Line.LineDatas.COG_20LineData.Even[0];
|
||||||
|
DataLineOdd=&COG_Line.LineDatas.COG_20LineData.Odd[0];
|
||||||
|
DataLineScan=&COG_Line.LineDatas.COG_20LineData.Scan[0];
|
||||||
|
break;
|
||||||
|
case EPDType_270:
|
||||||
|
DataLineEven=&COG_Line.LineDatas.COG_27LineData.Even[0];
|
||||||
|
DataLineOdd=&COG_Line.LineDatas.COG_27LineData.Odd[0];
|
||||||
|
DataLineScan=&COG_Line.LineDatas.COG_27LineData.Scan[0];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//#pragma GCC optimize ("-O3")
|
||||||
|
static void Display_Stage_1 (uint8_t *PreviousPicture)
|
||||||
|
{
|
||||||
|
uint16_t i,j,k; // general counters
|
||||||
|
uint8_t TempByte; // Temporary storage for image data check
|
||||||
|
uint16_t StartClock;
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
uint8_t *DataLinePrt;
|
||||||
|
DisplayOrgPtr = (PreviousPicture+(uint32_t)((COG_Parameters[EPD_Type_Index].VERTICAL-1)*COG_Parameters[EPD_Type_Index].HORIZONTAL));
|
||||||
|
#else
|
||||||
|
DisplayOrgPtr = PreviousPicture;
|
||||||
|
#endif
|
||||||
|
Currentframe = (uint32_t)COG_Parameters[EPD_Type_Index].FrameTime;
|
||||||
|
//TestPinTrigger();
|
||||||
|
cnt = 0;
|
||||||
|
StartClock = epd_GetCurrentTimeTick();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
// TestPin2Trigger();
|
||||||
|
PreviousPicture = DisplayOrgPtr;
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
DataLinePrt = PreviousPicture;
|
||||||
|
#endif
|
||||||
|
for (i = 0; i < COG_Parameters[EPD_Type_Index].VERTICAL; i++) // for every line
|
||||||
|
{
|
||||||
|
// SPI (0x04, ...)
|
||||||
|
epd_SPI_Send_Byte(0x04, COG_Parameters[EPD_Type_Index].VoltageLevel);
|
||||||
|
k = COG_Parameters[EPD_Type_Index].HORIZONTAL-1;
|
||||||
|
for (j = 0; j < COG_Parameters[EPD_Type_Index].HORIZONTAL; j++) // check every bit in the line
|
||||||
|
{
|
||||||
|
TempByte = (*PreviousPicture++);
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
DataLineEven[j] = ((TempByte & 0x80) ? BLACK3 : WHITE3)
|
||||||
|
| ((TempByte & 0x20) ? BLACK2 : WHITE2)
|
||||||
|
| ((TempByte & 0x08) ? BLACK1 : WHITE1)
|
||||||
|
| ((TempByte & 0x02) ? BLACK0 : WHITE0);
|
||||||
|
|
||||||
|
DataLineOdd[k--] = ((TempByte & 0x01) ? BLACK3 : WHITE3)
|
||||||
|
| ((TempByte & 0x04) ? BLACK2 : WHITE2)
|
||||||
|
| ((TempByte & 0x10) ? BLACK1 : WHITE1)
|
||||||
|
| ((TempByte & 0x40) ? BLACK0 : WHITE0);
|
||||||
|
DataLinePrt--;
|
||||||
|
#else
|
||||||
|
DataLineOdd[j] = ((TempByte & 0x80) ? BLACK3 : WHITE3)
|
||||||
|
| ((TempByte & 0x20) ? BLACK2 : WHITE2)
|
||||||
|
| ((TempByte & 0x08) ? BLACK1 : WHITE1)
|
||||||
|
| ((TempByte & 0x02) ? BLACK0 : WHITE0);
|
||||||
|
|
||||||
|
DataLineEven[k--] = ((TempByte & 0x01) ? BLACK3 : WHITE3)
|
||||||
|
| ((TempByte & 0x04) ? BLACK2 : WHITE2)
|
||||||
|
| ((TempByte & 0x10) ? BLACK1 : WHITE1)
|
||||||
|
| ((TempByte & 0x40) ? BLACK0 : WHITE0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
PreviousPicture = DataLinePrt;
|
||||||
|
#endif
|
||||||
|
DataLineScan[(i>>2)] = ScanTable[(i%4)];
|
||||||
|
// SPI (0x0a, line data....)
|
||||||
|
epd_SPI_Send(0x0a, (uint8_t *)&COG_Line.uint8, COG_Parameters[EPD_Type_Index].DataLineSize);
|
||||||
|
|
||||||
|
// SPI (0x02, 0x25)
|
||||||
|
epd_SPI_Send_Byte(0x02, 0x2F);
|
||||||
|
|
||||||
|
DataLineScan[(i>>2)] = 0;
|
||||||
|
}
|
||||||
|
#if(!_GaugeFrameTimeMark)
|
||||||
|
if(COG_Parameters[EPD_Type_Index].FrameTime>0)
|
||||||
|
{
|
||||||
|
while(Currentframe>(epd_GetCurrentTimeTick() - StartClock));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
//TestPin2Trigger();
|
||||||
|
Currentframe=(uint32_t)(epd_GetCurrentTimeTick() - StartClock)+COG_Parameters[EPD_Type_Index].FrameTime ;
|
||||||
|
cnt++;
|
||||||
|
}while (StageTime>Currentframe);
|
||||||
|
// TestPin2Trigger();
|
||||||
|
while(StageTime>(epd_GetCurrentTimeTick() - StartClock));
|
||||||
|
// TestPin2Trigger();
|
||||||
|
// TestPinTrigger();
|
||||||
|
}
|
||||||
|
|
||||||
|
//#pragma GCC optimize ("-O3")
|
||||||
|
static void Display_Stage_2 (uint8_t *PreviousPicture)
|
||||||
|
{
|
||||||
|
uint16_t i, j, k; // general counters
|
||||||
|
uint8_t TempByte; // Temporary storage for image data check
|
||||||
|
uint16_t StartClock;
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
uint8_t *DataLinePrt;
|
||||||
|
DisplayOrgPtr = (PreviousPicture+(uint32_t)((COG_Parameters[EPD_Type_Index].VERTICAL-1)*COG_Parameters[EPD_Type_Index].HORIZONTAL));
|
||||||
|
#else
|
||||||
|
DisplayOrgPtr = PreviousPicture;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// TestPinTrigger();
|
||||||
|
cnt = 0;
|
||||||
|
Currentframe = (uint32_t)COG_Parameters[EPD_Type_Index].FrameTime;
|
||||||
|
StartClock = epd_GetCurrentTimeTick();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
// TestPin2Trigger();
|
||||||
|
PreviousPicture = DisplayOrgPtr;
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
DataLinePrt = PreviousPicture;
|
||||||
|
#endif
|
||||||
|
for (i = 0; i < COG_Parameters[EPD_Type_Index].VERTICAL; i++) // for every line
|
||||||
|
{
|
||||||
|
// SPI (0x04, ...)
|
||||||
|
epd_SPI_Send_Byte(0x04, COG_Parameters[EPD_Type_Index].VoltageLevel);
|
||||||
|
k = COG_Parameters[EPD_Type_Index].HORIZONTAL-1;
|
||||||
|
for (j = 0; j < COG_Parameters[EPD_Type_Index].HORIZONTAL; j++) // make every bit in the line black
|
||||||
|
{
|
||||||
|
TempByte =(*PreviousPicture++);
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
DataLineEven[j] = ((TempByte & 0x80) ? WHITE3 : NOTHING)
|
||||||
|
| ((TempByte & 0x20) ? WHITE2 : NOTHING)
|
||||||
|
| ((TempByte & 0x08) ? WHITE1 : NOTHING)
|
||||||
|
| ((TempByte & 0x02) ? WHITE0 : NOTHING);
|
||||||
|
DataLineOdd[k--] = ((TempByte & 0x01) ? WHITE3 : NOTHING)
|
||||||
|
| ((TempByte & 0x04) ? WHITE2 : NOTHING)
|
||||||
|
| ((TempByte & 0x10) ? WHITE1 : NOTHING)
|
||||||
|
| ((TempByte & 0x40) ? WHITE0 : NOTHING);
|
||||||
|
DataLinePrt--;
|
||||||
|
#else
|
||||||
|
DataLineOdd[j] = ((TempByte & 0x80) ? WHITE3 : NOTHING)
|
||||||
|
| ((TempByte & 0x20) ? WHITE2 : NOTHING)
|
||||||
|
| ((TempByte & 0x08) ? WHITE1 : NOTHING)
|
||||||
|
| ((TempByte & 0x02) ? WHITE0 : NOTHING);
|
||||||
|
DataLineEven[k--] = ((TempByte & 0x01) ? WHITE3 : NOTHING)
|
||||||
|
| ((TempByte & 0x04) ? WHITE2 : NOTHING)
|
||||||
|
| ((TempByte & 0x10) ? WHITE1 : NOTHING)
|
||||||
|
| ((TempByte & 0x40) ? WHITE0 : NOTHING);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
PreviousPicture = DataLinePrt;
|
||||||
|
#endif
|
||||||
|
DataLineScan[(i>>2)] = ScanTable[(i%4)];
|
||||||
|
// SPI (0x0a, line data....)
|
||||||
|
epd_SPI_Send(0x0a, (uint8_t *)&COG_Line.uint8, COG_Parameters[EPD_Type_Index].DataLineSize);
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x02, 0x25);
|
||||||
|
|
||||||
|
DataLineScan[(i>>2)] = 0;
|
||||||
|
}
|
||||||
|
#if(!_GaugeFrameTimeMark)
|
||||||
|
if(COG_Parameters[EPD_Type_Index].FrameTime>0)
|
||||||
|
{
|
||||||
|
while(Currentframe>(epd_GetCurrentTimeTick() - StartClock));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
//TestPin2Trigger();
|
||||||
|
Currentframe=(uint32_t)(epd_GetCurrentTimeTick() - StartClock)+COG_Parameters[EPD_Type_Index].FrameTime ;
|
||||||
|
cnt++;
|
||||||
|
}while (StageTime>Currentframe);
|
||||||
|
// TestPin2Trigger();
|
||||||
|
while(StageTime>(epd_GetCurrentTimeTick() - StartClock));
|
||||||
|
// TestPin2Trigger();
|
||||||
|
// TestPinTrigger();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//#pragma GCC optimize ("-O3")
|
||||||
|
static void Display_Stage_3 (uint8_t *Picture)
|
||||||
|
{
|
||||||
|
uint16_t i, j,k; // general counters
|
||||||
|
uint8_t TempByte; // Temporary storage for image data check
|
||||||
|
uint16_t StartClock;
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
uint8_t *DataLinePrt;
|
||||||
|
DisplayOrgPtr = (Picture+(uint32_t)((COG_Parameters[EPD_Type_Index].VERTICAL-1)*COG_Parameters[EPD_Type_Index].HORIZONTAL));
|
||||||
|
#else
|
||||||
|
DisplayOrgPtr = Picture;
|
||||||
|
#endif
|
||||||
|
Currentframe = (uint32_t)COG_Parameters[EPD_Type_Index].FrameTime;
|
||||||
|
cnt = 0;
|
||||||
|
// TestPinTrigger();
|
||||||
|
StartClock = epd_GetCurrentTimeTick();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
// TestPin2Trigger();
|
||||||
|
Picture = DisplayOrgPtr;
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
DataLinePrt = Picture;
|
||||||
|
#endif
|
||||||
|
for (i = 0; i < COG_Parameters[EPD_Type_Index].VERTICAL; i++) // for every line
|
||||||
|
{
|
||||||
|
// SPI (0x04, 0x03)
|
||||||
|
epd_SPI_Send_Byte(0x04, COG_Parameters[EPD_Type_Index].VoltageLevel);
|
||||||
|
k = COG_Parameters[EPD_Type_Index].HORIZONTAL-1;
|
||||||
|
for (j = 0; j < COG_Parameters[EPD_Type_Index].HORIZONTAL; j++) // check every bit in the line
|
||||||
|
{
|
||||||
|
TempByte = (*Picture++);
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
DataLineEven[j] = ((TempByte & 0x80) ? BLACK3 : NOTHING)
|
||||||
|
| ((TempByte & 0x20) ? BLACK2 : NOTHING )
|
||||||
|
| ((TempByte & 0x08) ? BLACK1 : NOTHING )
|
||||||
|
| ((TempByte & 0x02) ? BLACK0 : NOTHING );
|
||||||
|
|
||||||
|
DataLineOdd[k--] = ((TempByte & 0x01) ? BLACK3 : NOTHING)
|
||||||
|
| ((TempByte & 0x04) ? BLACK2 : NOTHING )
|
||||||
|
| ((TempByte & 0x10) ? BLACK1 : NOTHING )
|
||||||
|
| ((TempByte & 0x40) ? BLACK0 : NOTHING );
|
||||||
|
DataLinePrt--;
|
||||||
|
#else
|
||||||
|
DataLineOdd[j] = ((TempByte & 0x80) ? BLACK3 : NOTHING)
|
||||||
|
| ((TempByte & 0x20) ? BLACK2 : NOTHING )
|
||||||
|
| ((TempByte & 0x08) ? BLACK1 : NOTHING )
|
||||||
|
| ((TempByte & 0x02) ? BLACK0 : NOTHING );
|
||||||
|
|
||||||
|
DataLineEven[k--] = ((TempByte & 0x01) ? BLACK3 : NOTHING)
|
||||||
|
| ((TempByte & 0x04) ? BLACK2 : NOTHING )
|
||||||
|
| ((TempByte & 0x10) ? BLACK1 : NOTHING )
|
||||||
|
| ((TempByte & 0x40) ? BLACK0 : NOTHING );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
Picture = DataLinePrt;
|
||||||
|
#endif
|
||||||
|
DataLineScan[(i>>2)] = ScanTable[(i%4)];
|
||||||
|
// SPI (0x0a, line data....)
|
||||||
|
epd_SPI_Send(0x0a, (uint8_t *)&COG_Line.uint8, COG_Parameters[EPD_Type_Index].DataLineSize);
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x02, 0x2F);
|
||||||
|
|
||||||
|
DataLineScan[(i>>2)] = 0;
|
||||||
|
}
|
||||||
|
#if(!_GaugeFrameTimeMark)
|
||||||
|
if(COG_Parameters[EPD_Type_Index].FrameTime>0)
|
||||||
|
{
|
||||||
|
while(Currentframe>(epd_GetCurrentTimeTick() - StartClock));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
//TestPin2Trigger();
|
||||||
|
Currentframe=(uint32_t)(epd_GetCurrentTimeTick() - StartClock)+COG_Parameters[EPD_Type_Index].FrameTime ;
|
||||||
|
cnt++;
|
||||||
|
}while (StageTime>Currentframe);
|
||||||
|
// TestPin2Trigger();
|
||||||
|
while(StageTime>(epd_GetCurrentTimeTick() - StartClock));
|
||||||
|
// TestPin2Trigger();
|
||||||
|
// TestPinTrigger();
|
||||||
|
}
|
||||||
|
|
||||||
|
//#pragma GCC optimize ("-O3")
|
||||||
|
static void Display_Stage_4 (uint8_t *Picture)
|
||||||
|
{
|
||||||
|
uint16_t i, j,k; // general counters
|
||||||
|
uint8_t TempByte; // Temporary storage for image data check
|
||||||
|
uint16_t StartClock;
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
uint8_t *DataLinePrt;
|
||||||
|
DisplayOrgPtr = (Picture+(uint32_t)((COG_Parameters[EPD_Type_Index].VERTICAL-1)*COG_Parameters[EPD_Type_Index].HORIZONTAL));
|
||||||
|
#else
|
||||||
|
DisplayOrgPtr = Picture;
|
||||||
|
#endif
|
||||||
|
Currentframe = (uint32_t)COG_Parameters[EPD_Type_Index].FrameTime;
|
||||||
|
cnt = 0;
|
||||||
|
// TestPinTrigger();
|
||||||
|
|
||||||
|
StartClock = epd_GetCurrentTimeTick();
|
||||||
|
do
|
||||||
|
{
|
||||||
|
// TestPin2Trigger();
|
||||||
|
Picture = DisplayOrgPtr;
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
DataLinePrt = Picture;
|
||||||
|
#endif
|
||||||
|
for (i = 0; i < COG_Parameters[EPD_Type_Index].VERTICAL; i++) // for every line
|
||||||
|
{
|
||||||
|
// SPI (0x04, ...)
|
||||||
|
epd_SPI_Send_Byte(0x04, COG_Parameters[EPD_Type_Index].VoltageLevel);
|
||||||
|
k = COG_Parameters[EPD_Type_Index].HORIZONTAL-1;
|
||||||
|
for (j = 0; j < COG_Parameters[EPD_Type_Index].HORIZONTAL; j++) // check every bit in the line
|
||||||
|
{
|
||||||
|
TempByte =(*Picture++);
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
DataLineEven[j] = ((TempByte & 0x80) ? WHITE3 : BLACK3 )
|
||||||
|
| ((TempByte & 0x20) ? WHITE2 : BLACK2 )
|
||||||
|
| ((TempByte & 0x08) ? WHITE1 : BLACK1 )
|
||||||
|
| ((TempByte & 0x02) ? WHITE0 : BLACK0 );
|
||||||
|
|
||||||
|
DataLineOdd[k--] = ((TempByte & 0x01) ? WHITE3 : BLACK3 )
|
||||||
|
| ((TempByte & 0x04) ? WHITE2 : BLACK2 )
|
||||||
|
| ((TempByte & 0x10) ? WHITE1 : BLACK1 )
|
||||||
|
| ((TempByte & 0x40) ? WHITE0 : BLACK0 );
|
||||||
|
DataLinePrt--;
|
||||||
|
#else
|
||||||
|
DataLineOdd[j] = ((TempByte & 0x80) ? WHITE3 : BLACK3 )
|
||||||
|
| ((TempByte & 0x20) ? WHITE2 : BLACK2 )
|
||||||
|
| ((TempByte & 0x08) ? WHITE1 : BLACK1 )
|
||||||
|
| ((TempByte & 0x02) ? WHITE0 : BLACK0 );
|
||||||
|
|
||||||
|
DataLineEven[k--] = ((TempByte & 0x01) ? WHITE3 : BLACK3 )
|
||||||
|
| ((TempByte & 0x04) ? WHITE2 : BLACK2 )
|
||||||
|
| ((TempByte & 0x10) ? WHITE1 : BLACK1 )
|
||||||
|
| ((TempByte & 0x40) ? WHITE0 : BLACK0 );
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#ifdef DISPLAY_180_DEGREE
|
||||||
|
Picture = DataLinePrt;
|
||||||
|
#endif
|
||||||
|
DataLineScan[(i>>2)] = ScanTable[(i%4)];
|
||||||
|
// SPI (0x0a, line data....)
|
||||||
|
epd_SPI_Send(0x0a, (uint8_t *)&COG_Line.uint8, COG_Parameters[EPD_Type_Index].DataLineSize);
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x02, 0x2F);
|
||||||
|
|
||||||
|
DataLineScan[(i>>2)] = 0;
|
||||||
|
}
|
||||||
|
#if(!_GaugeFrameTimeMark)
|
||||||
|
if(COG_Parameters[EPD_Type_Index].FrameTime>0)
|
||||||
|
{
|
||||||
|
while(Currentframe>(epd_GetCurrentTimeTick() - StartClock));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
//TestPin2Trigger();
|
||||||
|
Currentframe=(uint32_t)(epd_GetCurrentTimeTick() - StartClock)+COG_Parameters[EPD_Type_Index].FrameTime ;
|
||||||
|
cnt++;
|
||||||
|
}while (StageTime>Currentframe);
|
||||||
|
|
||||||
|
// TestPin2Trigger();
|
||||||
|
while(StageTime>(epd_GetCurrentTimeTick() - StartClock));
|
||||||
|
// TestPin2Trigger();
|
||||||
|
// TestPinTrigger();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Display_Nothing (void)
|
||||||
|
{
|
||||||
|
uint16_t i; // general counters
|
||||||
|
|
||||||
|
for (i = 0; i < COG_Parameters[EPD_Type_Index].HORIZONTAL; i++) // make every bit in the line white
|
||||||
|
{
|
||||||
|
DataLineEven[i] = 0x00;
|
||||||
|
DataLineOdd[i] = 0x00;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < COG_Parameters[EPD_Type_Index].VERTICAL; i++) // for every line
|
||||||
|
{
|
||||||
|
epd_SPI_Send_Byte(0x04, 0x03);
|
||||||
|
DataLineScan[(i>>2)] = ScanTable[(i%4)];
|
||||||
|
// SPI (0x0a, line data....)
|
||||||
|
epd_SPI_Send(0x0a, (uint8_t *)&COG_Line.uint8, COG_Parameters[EPD_Type_Index].DataLineSize);
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x02, 0x2F);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Dummy_line(void)
|
||||||
|
{
|
||||||
|
uint16_t i;
|
||||||
|
|
||||||
|
for (i = 0; i < COG_Parameters[EPD_Type_Index].DataLineSize; i++)
|
||||||
|
{
|
||||||
|
COG_Line.uint8[i] = 0x00;
|
||||||
|
}
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x04, 0x03);
|
||||||
|
|
||||||
|
// SPI (0x0a, line data....)
|
||||||
|
epd_SPI_Send(0x0a, (uint8_t *)&COG_Line.uint8, COG_Parameters[EPD_Type_Index].DataLineSize);
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x02, 0x2F);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Public functions
|
||||||
|
*****************************************************************************/
|
||||||
|
void epd_HwInit(void)
|
||||||
|
{
|
||||||
|
epd_InitDisplayHardware();
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_PowerOn(void)
|
||||||
|
{
|
||||||
|
epd_discharge_low();
|
||||||
|
epd_rst_low();
|
||||||
|
epd_cs_low();
|
||||||
|
epd_spi_init();
|
||||||
|
|
||||||
|
epd_pwm_active(5);
|
||||||
|
|
||||||
|
epd_panelon_on();
|
||||||
|
|
||||||
|
epd_pwm_active(10);
|
||||||
|
|
||||||
|
epd_cs_high();
|
||||||
|
|
||||||
|
//epd_border_high();
|
||||||
|
|
||||||
|
epd_rst_high();
|
||||||
|
|
||||||
|
epd_pwm_active(5);
|
||||||
|
|
||||||
|
epd_rst_low();
|
||||||
|
|
||||||
|
epd_pwm_active(5);
|
||||||
|
|
||||||
|
epd_rst_high();
|
||||||
|
|
||||||
|
epd_pwm_active(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_InitializeDriver(uint8_t EPDIndex)
|
||||||
|
{
|
||||||
|
uint8_t SendBuffer[2];
|
||||||
|
uint16_t k;
|
||||||
|
|
||||||
|
EPD_Type_Index = EPDIndex;
|
||||||
|
|
||||||
|
//Data Line Clear
|
||||||
|
for (k = 0; k <= __LineDataSize; k ++)
|
||||||
|
{
|
||||||
|
COG_Line.uint8[k] = 0x00;
|
||||||
|
}
|
||||||
|
Driver_TypeSelect(EPDIndex);
|
||||||
|
k = 0;
|
||||||
|
|
||||||
|
SetTemperature_Factor(EPDIndex);
|
||||||
|
|
||||||
|
/*while (DRIVERBUSY_Get())
|
||||||
|
{
|
||||||
|
delayT32B0Us(500);
|
||||||
|
if((k++)>=1000) return;//wait 500 ms
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// SPI (0x01, 0x0000, 0x0000, 0x01ff, 0xe000)
|
||||||
|
epd_SPI_Send(0x01, (uint8_t *)&COG_Parameters[EPDIndex].ChannelSelect, 8);
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x06, 0xff);
|
||||||
|
epd_SPI_Send_Byte(0x07, 0x9d);
|
||||||
|
epd_SPI_Send_Byte(0x08, 0x00);
|
||||||
|
|
||||||
|
// SPI (0x09, 0xd000)
|
||||||
|
SendBuffer[0] = 0xd0;
|
||||||
|
SendBuffer[1] = 0x00;
|
||||||
|
epd_SPI_Send(0x09, SendBuffer, 2);
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x04,COG_Parameters[EPDIndex].VoltageLevel);
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x03, 0x01);
|
||||||
|
epd_SPI_Send_Byte(0x03, 0x00);
|
||||||
|
|
||||||
|
epd_pwm_active(5);
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x05, 0x01);
|
||||||
|
|
||||||
|
epd_pwm_active(30);
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x05, 0x03);
|
||||||
|
epd_delay_ms(30);
|
||||||
|
epd_SPI_Send_Byte(0x05, 0x0f);
|
||||||
|
epd_delay_ms(30);
|
||||||
|
epd_SPI_Send_Byte(0x02, 0x24);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_Display (uint8_t *pNewImg, uint8_t *pPrevImg)
|
||||||
|
{
|
||||||
|
//COG Process - update display in four steps
|
||||||
|
Display_Stage_1(pPrevImg);
|
||||||
|
Display_Stage_2(pPrevImg);
|
||||||
|
Display_Stage_3(pNewImg);
|
||||||
|
Display_Stage_4(pNewImg);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_PowerOff (void)
|
||||||
|
{
|
||||||
|
Display_Nothing();
|
||||||
|
Dummy_line();
|
||||||
|
epd_delay_ms(25);
|
||||||
|
|
||||||
|
//border_low();
|
||||||
|
//epd_delay_ms(_30ms);
|
||||||
|
//border_high();
|
||||||
|
|
||||||
|
epd_SPI_Send_Byte(0x03, 0x01);
|
||||||
|
epd_SPI_Send_Byte(0x02, 0x05);
|
||||||
|
epd_SPI_Send_Byte(0x05, 0x0E);
|
||||||
|
epd_SPI_Send_Byte(0x05, 0x02);
|
||||||
|
epd_SPI_Send_Byte(0x04, 0x0C);
|
||||||
|
epd_delay_ms(120);
|
||||||
|
epd_SPI_Send_Byte(0x05, 0x00);
|
||||||
|
epd_SPI_Send_Byte(0x07, 0x0D);
|
||||||
|
epd_SPI_Send_Byte(0x04, 0x50);
|
||||||
|
epd_delay_ms(40);
|
||||||
|
epd_SPI_Send_Byte(0x04, 0xA0);
|
||||||
|
epd_delay_ms(40);
|
||||||
|
epd_SPI_Send_Byte(0x04, 0x00);
|
||||||
|
|
||||||
|
epd_rst_low();
|
||||||
|
epd_cs_low();
|
||||||
|
epd_spi_detach();
|
||||||
|
epd_panelon_off();
|
||||||
|
|
||||||
|
//epd_border_low();
|
||||||
|
|
||||||
|
epd_discharge_high();
|
||||||
|
epd_delay_ms(150);
|
||||||
|
epd_discharge_low();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
120
epaper/Display_COG_Process.h
Normal file
120
epaper/Display_COG_Process.h
Normal file
@ -0,0 +1,120 @@
|
|||||||
|
// Copyright 2013 Pervasive Displays, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at:
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
||||||
|
// express or implied. See the License for the specific language
|
||||||
|
// governing permissions and limitations under the License.
|
||||||
|
|
||||||
|
#ifndef __Display_COG_Process_H_
|
||||||
|
#define __Display_COG_Process_H_
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Includes
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#include "bsp.h"
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Defines and typedefs
|
||||||
|
*****************************************************************************/
|
||||||
|
#define BLACK0 (0x03)
|
||||||
|
#define BLACK1 (0x0C)
|
||||||
|
#define BLACK2 (0x30)
|
||||||
|
#define BLACK3 (0xc0)
|
||||||
|
#define WHITE0 (0x02)
|
||||||
|
#define WHITE1 (0x08)
|
||||||
|
#define WHITE2 (0x20)
|
||||||
|
#define WHITE3 (0x80)
|
||||||
|
|
||||||
|
#define NOTHING (0x00)
|
||||||
|
#define SCANON (0xC0)
|
||||||
|
#define __LineDataSize 111
|
||||||
|
|
||||||
|
/*
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
_5ms,
|
||||||
|
_10ms,
|
||||||
|
_25ms,
|
||||||
|
_30ms,
|
||||||
|
_40ms,
|
||||||
|
_120ms,
|
||||||
|
_150ms,
|
||||||
|
_300ms
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
EPDType_144 = 0, //1.44" display
|
||||||
|
EPDType_200 = 1, //2.0" display
|
||||||
|
EPDType_270 = 2 //2.7" display
|
||||||
|
} EPDType_t;
|
||||||
|
#define EPD_TYPE_144 0
|
||||||
|
#define EPD_TYPE_200 1
|
||||||
|
#define EPD_TYPE_270 2
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint8_t Even[16];
|
||||||
|
uint8_t Scan[24];
|
||||||
|
uint8_t Odd [16];
|
||||||
|
} COG_144_LineData_t;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint8_t Even[25];
|
||||||
|
uint8_t Scan[24];
|
||||||
|
uint8_t Odd [25];
|
||||||
|
uint8_t DummyData;
|
||||||
|
} COG_20_LineData_t;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint8_t Even[33];
|
||||||
|
uint8_t Scan[44];
|
||||||
|
uint8_t Odd [33];
|
||||||
|
uint8_t DummyData;
|
||||||
|
} COG_27_LineData_t;
|
||||||
|
|
||||||
|
typedef union
|
||||||
|
{
|
||||||
|
union
|
||||||
|
{
|
||||||
|
COG_144_LineData_t COG_144LineData;
|
||||||
|
COG_20_LineData_t COG_20LineData;
|
||||||
|
COG_27_LineData_t COG_27LineData;
|
||||||
|
} LineDatas;
|
||||||
|
uint8_t uint8[__LineDataSize];
|
||||||
|
} COG_LineDataPacket_t;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
uint8_t ChannelSelect[8];
|
||||||
|
uint8_t VoltageLevel;
|
||||||
|
uint16_t HORIZONTAL;
|
||||||
|
uint16_t VERTICAL;
|
||||||
|
uint8_t DataLineSize;
|
||||||
|
uint16_t FrameTime;
|
||||||
|
uint16_t StageTime;
|
||||||
|
} COG_Parameters_t;
|
||||||
|
|
||||||
|
extern const COG_Parameters_t COG_Parameters[3];
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Prototypes
|
||||||
|
*****************************************************************************/
|
||||||
|
void epd_HwInit(void);
|
||||||
|
void epd_PowerOn(void);
|
||||||
|
void epd_InitializeDriver(uint8_t EPDIndex);
|
||||||
|
void epd_Display(uint8_t *pNewImg, uint8_t *pPrevImg);
|
||||||
|
void epd_PowerOff(void);
|
||||||
|
|
||||||
|
#endif //__Display_COG_Process_H_
|
40
epaper/Display_Controller.c
Normal file
40
epaper/Display_Controller.c
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
// Copyright 2013 Pervasive Displays, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at:
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
||||||
|
// express or implied. See the License for the specific language
|
||||||
|
// governing permissions and limitations under the License.
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Includes
|
||||||
|
*****************************************************************************/
|
||||||
|
//#include "driver_config.h"
|
||||||
|
//#include "type.h"
|
||||||
|
//#include "gpio.h"
|
||||||
|
#include "Display_Controller.h"
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Global Functions
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
void epd_DisplayImg(EPDType_t EPDType, uint8_t *pNewImg, uint8_t *pPrevImg)
|
||||||
|
{
|
||||||
|
//always initialize display (has been powered off before)
|
||||||
|
epd_HwInit();
|
||||||
|
epd_PowerOn();
|
||||||
|
epd_InitializeDriver(EPDType);
|
||||||
|
|
||||||
|
//display new picture, but first remove old one
|
||||||
|
epd_Display(pNewImg, pPrevImg);
|
||||||
|
|
||||||
|
//power down display - picture still displayed
|
||||||
|
epd_PowerOff();
|
||||||
|
}
|
||||||
|
|
34
epaper/Display_Controller.h
Normal file
34
epaper/Display_Controller.h
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
// Copyright 2013 Pervasive Displays, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at:
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
||||||
|
// express or implied. See the License for the specific language
|
||||||
|
// governing permissions and limitations under the License.
|
||||||
|
|
||||||
|
#ifndef __Display_Controller_H_
|
||||||
|
#define __Display_Controller_H_
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Includes
|
||||||
|
*****************************************************************************/
|
||||||
|
#include "bsp.h"
|
||||||
|
#include "Display_COG_Process.h"
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Defines and typedefs
|
||||||
|
*****************************************************************************/
|
||||||
|
#define DISPLAY_IN_USE EPD_TYPE_270
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Prototypes
|
||||||
|
*****************************************************************************/
|
||||||
|
void epd_DisplayImg(EPDType_t EPDType, uint8_t *pNewImg, uint8_t *pPrevImg);
|
||||||
|
|
||||||
|
#endif //__Display_Controller_H_
|
258
epaper/Display_Hardware_Driver.c
Normal file
258
epaper/Display_Hardware_Driver.c
Normal file
@ -0,0 +1,258 @@
|
|||||||
|
// Copyright 2013 Pervasive Displays, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at:
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
||||||
|
// express or implied. See the License for the specific language
|
||||||
|
// governing permissions and limitations under the License.
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Includes
|
||||||
|
*****************************************************************************/
|
||||||
|
#include "Display_Hardware_Driver.h"
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Public functions
|
||||||
|
*****************************************************************************/
|
||||||
|
void epd_cs_high(void)
|
||||||
|
{
|
||||||
|
// CS_SET_HIGH;
|
||||||
|
bsp_pinOut(BSP_PIN_6, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_cs_low(void)
|
||||||
|
{
|
||||||
|
// CS_SET_LOW;
|
||||||
|
bsp_pinOut(BSP_PIN_6, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_rst_high(void)
|
||||||
|
{
|
||||||
|
// RST_SET_HIGH;
|
||||||
|
bsp_pinOut(BSP_PIN_12, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_rst_low(void)
|
||||||
|
{
|
||||||
|
// RST_SET_LOW;
|
||||||
|
bsp_pinOut(BSP_PIN_12, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_discharge_high(void)
|
||||||
|
{
|
||||||
|
// DISCHARGE_SET_HIGH;
|
||||||
|
bsp_pinOut(BSP_PIN_14, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_discharge_low(void)
|
||||||
|
{
|
||||||
|
// DISCHARGE_SET_LOW;
|
||||||
|
bsp_pinOut(BSP_PIN_14, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_panelon_off(void)
|
||||||
|
{
|
||||||
|
// PANELON_SET_LOW;
|
||||||
|
bsp_pinOut(BSP_PIN_13, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_panelon_on(void)
|
||||||
|
{
|
||||||
|
// PANELON_SET_HIGH;
|
||||||
|
bsp_pinOut(BSP_PIN_13, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_border_high(void)
|
||||||
|
{
|
||||||
|
// BORDER_SET_HIGH;
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_border_low(void)
|
||||||
|
{
|
||||||
|
// BORDER_SET_LOW;
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_delay_ms(uint32_t Time)
|
||||||
|
{
|
||||||
|
bsp_delayMs(Time);
|
||||||
|
}
|
||||||
|
|
||||||
|
int16_t epd_get_temperature(void)
|
||||||
|
{
|
||||||
|
return bsp_getTemp();
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t epd_GetCurrentTimeTick(void)
|
||||||
|
{
|
||||||
|
return bsp_getMsTicks();
|
||||||
|
}
|
||||||
|
|
||||||
|
//******************************************************************
|
||||||
|
//PWM Configuration/Control
|
||||||
|
//******************************************************************
|
||||||
|
#if 0
|
||||||
|
volatile uint32_t period = 500; //96Khz PWM frequency
|
||||||
|
|
||||||
|
void epd_pwm_disable(void)
|
||||||
|
{
|
||||||
|
disable_timer16(1);
|
||||||
|
LPC_IOCON->PIO1_9 &= 0xFC;//Disable PWM,set general IO
|
||||||
|
PWM_DIR_OUT();
|
||||||
|
PWM_SET_LOW();
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_pwm_active(void)
|
||||||
|
{
|
||||||
|
PWM_SET_HIGH();
|
||||||
|
/* Initialize the PWM in timer32_1 enabling match0 output */
|
||||||
|
init_timer16PWM(1, period, MATCH0,0);
|
||||||
|
setMatch_timer16PWM (1, 1, period/8);
|
||||||
|
enable_timer16(1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
void epd_pwm_active(uint16_t delayInMs)
|
||||||
|
{
|
||||||
|
uint16_t numOfIterations;
|
||||||
|
|
||||||
|
numOfIterations = delayInMs * 100;
|
||||||
|
// PWM_DIR_OUT;
|
||||||
|
bsp_pinMode(BSP_PIN_11, BSP_PINMODE_OUTPUT);
|
||||||
|
for(; numOfIterations > 0; numOfIterations--)
|
||||||
|
{
|
||||||
|
// PWM_SET_HIGH;
|
||||||
|
bsp_pinOut(BSP_PIN_11, 1);
|
||||||
|
bsp_delayUs(5); //100kHz (96kHz ideal)
|
||||||
|
// PWM_SET_LOW;
|
||||||
|
bsp_pinOut(BSP_PIN_11, 0);
|
||||||
|
bsp_delayUs(5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************
|
||||||
|
//SPI Configuration
|
||||||
|
//******************************************************************
|
||||||
|
void epd_spi_detach(void)
|
||||||
|
{
|
||||||
|
#if 0
|
||||||
|
LPC_IOCON->PIO0_8 &= 0xFC;; /* SSP I/O config */
|
||||||
|
SPIMISO_DIR_OUT();
|
||||||
|
SPIMISO_Set(Low);
|
||||||
|
|
||||||
|
LPC_IOCON->PIO0_9 &= 0xFC; /* SSP MOSI */
|
||||||
|
SPIMOSI_DIR_OUT();
|
||||||
|
SPIMOSI_Set(Low);
|
||||||
|
|
||||||
|
LPC_IOCON->PIO2_11 &= 0xFC;
|
||||||
|
SPICLK_DIR_OUT();
|
||||||
|
SPICLK_Set(Low);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
void epd_spi_init (void)
|
||||||
|
{
|
||||||
|
bsp_spiInit();
|
||||||
|
//SSP_IOConfig( SSP_PORT ); /* initialize SSP port */
|
||||||
|
//SSP_Init( SSP_PORT );
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_SPI_Send (unsigned char Register, unsigned char *Data, unsigned Length)
|
||||||
|
{
|
||||||
|
uint8_t buf[2];
|
||||||
|
|
||||||
|
epd_cs_low();
|
||||||
|
buf[0] = 0x70;
|
||||||
|
buf[1] = Register;
|
||||||
|
bsp_writeToDisplay(buf, 2);
|
||||||
|
epd_cs_high();
|
||||||
|
bsp_delayUs(10);
|
||||||
|
|
||||||
|
epd_cs_low();
|
||||||
|
buf[0] = 0x72;
|
||||||
|
bsp_writeToDisplay(buf, 1);
|
||||||
|
bsp_writeToDisplay(Data, Length);
|
||||||
|
epd_cs_high();
|
||||||
|
bsp_delayUs(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void epd_SPI_Send_Byte (uint8_t Register, uint8_t Data)
|
||||||
|
{
|
||||||
|
uint8_t buf[2];
|
||||||
|
|
||||||
|
epd_cs_low();
|
||||||
|
buf[0] = 0x70;
|
||||||
|
buf[1] = Register;
|
||||||
|
bsp_writeToDisplay(buf, 2);
|
||||||
|
epd_cs_high();
|
||||||
|
bsp_delayUs(10);
|
||||||
|
|
||||||
|
epd_cs_low();
|
||||||
|
buf[0] = 0x72;
|
||||||
|
buf[1] = Data;
|
||||||
|
bsp_writeToDisplay(buf, 2);
|
||||||
|
epd_cs_high();
|
||||||
|
bsp_delayUs(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
void epd_InitDisplayHardware(void)
|
||||||
|
{
|
||||||
|
// RST_DIR_OUT;
|
||||||
|
bsp_pinMode(BSP_PIN_12, BSP_PINMODE_OUTPUT);
|
||||||
|
// DISCHARGE_DIR_OUT;
|
||||||
|
bsp_pinMode(BSP_PIN_14, BSP_PINMODE_OUTPUT);
|
||||||
|
// CS_DIR_OUT;
|
||||||
|
bsp_pinMode(BSP_PIN_6, BSP_PINMODE_OUTPUT);
|
||||||
|
// PANELON_DIR_OUT;
|
||||||
|
bsp_pinMode(BSP_PIN_13, BSP_PINMODE_OUTPUT);
|
||||||
|
// DRIVERBUSY_DIR_IN;
|
||||||
|
bsp_pinMode(BSP_PIN_7, BSP_PINMODE_INPUT);
|
||||||
|
// BORDER_DIR_OUT;
|
||||||
|
|
||||||
|
|
||||||
|
epd_panelon_off();
|
||||||
|
epd_spi_init();
|
||||||
|
epd_cs_low();
|
||||||
|
// epd_pwm_low();
|
||||||
|
epd_pwm_active(0); //set output low
|
||||||
|
epd_rst_low();
|
||||||
|
epd_discharge_low();
|
||||||
|
|
||||||
|
// TESTPin_DIR_OUT();
|
||||||
|
// TESTPin2_DIR_OUT();
|
||||||
|
}
|
||||||
|
|
||||||
|
//************************************************************************
|
||||||
|
void TestPinLow(void)
|
||||||
|
{
|
||||||
|
// TESTPin_Set(0);
|
||||||
|
}
|
||||||
|
void TestPinHigh(void)
|
||||||
|
{
|
||||||
|
// TESTPin_Set(1);
|
||||||
|
}
|
||||||
|
void TestPinTrigger(void)
|
||||||
|
{
|
||||||
|
// if(TESTPin_Get())TestPinLow();
|
||||||
|
// else TestPinHigh();
|
||||||
|
}
|
||||||
|
void TestPin2Low(void)
|
||||||
|
{
|
||||||
|
// TESTPin2_Set(0);
|
||||||
|
}
|
||||||
|
void TestPin2High(void)
|
||||||
|
{
|
||||||
|
// TESTPin2_Set(1);
|
||||||
|
}
|
||||||
|
void TestPin2Trigger(void)
|
||||||
|
{
|
||||||
|
// if(TESTPin2_Get())TestPin2Low();
|
||||||
|
// else TestPin2High();
|
||||||
|
}
|
102
epaper/Display_Hardware_Driver.h
Normal file
102
epaper/Display_Hardware_Driver.h
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
// Copyright 2013 Pervasive Displays, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at:
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
||||||
|
// express or implied. See the License for the specific language
|
||||||
|
// governing permissions and limitations under the License.
|
||||||
|
|
||||||
|
#ifndef __DISPLAY_HARDWARE_DRIVER_H_
|
||||||
|
#define __DISPLAY_HARDWARE_DRIVER_H_
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Includes
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#include "bsp.h"
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Defines and typedefs
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
//Pin 12 on Serial Expansion Connector
|
||||||
|
// #define RST_DIR_OUT SEC14_PIN12_SET_OUTP
|
||||||
|
// #define RST_SET_HIGH SEC14_PIN12_SET_HIGH
|
||||||
|
// #define RST_SET_LOW SEC14_PIN12_SET_LOW
|
||||||
|
|
||||||
|
//Pin 14 on Serial Expansion Connector
|
||||||
|
// #define DISCHARGE_DIR_OUT SEC14_PIN14_SET_OUTP
|
||||||
|
// #define DISCHARGE_SET_HIGH SEC14_PIN14_SET_HIGH
|
||||||
|
// #define DISCHARGE_SET_LOW SEC14_PIN14_SET_LOW
|
||||||
|
|
||||||
|
//Pin 6 on Serial Expansion Connector
|
||||||
|
// #define CS_DIR_OUT SEC14_PIN6_SET_OUTP
|
||||||
|
// #define CS_SET_HIGH SEC14_PIN6_SET_HIGH
|
||||||
|
// #define CS_SET_LOW SEC14_PIN6_SET_LOW
|
||||||
|
|
||||||
|
//Pin 13 on Serial Expansion Connector
|
||||||
|
// #define PANELON_DIR_OUT SEC14_PIN13_SET_OUTP
|
||||||
|
// #define PANELON_SET_HIGH SEC14_PIN13_SET_HIGH
|
||||||
|
// #define PANELON_SET_LOW SEC14_PIN13_SET_LOW
|
||||||
|
|
||||||
|
//Pin 7 on Serial Expansion Connector
|
||||||
|
// #define DRIVERBUSY_DIR_IN SEC14_PIN7_SET_INP
|
||||||
|
// #define DRIVERBUSY_GET SEC14_PIN7_INP
|
||||||
|
|
||||||
|
//Not implemented
|
||||||
|
// #define BORDER_DIR_OUT
|
||||||
|
// #define BORDER_SET_HIGH
|
||||||
|
// #define BORDER_SET_LOW
|
||||||
|
|
||||||
|
//Pin 11 on Serial Expansion Connector
|
||||||
|
// #define PWM_DIR_OUT SEC14_PIN11_SET_OUTP
|
||||||
|
// #define PWM_SET_HIGH SEC14_PIN11_SET_HIGH
|
||||||
|
// #define PWM_SET_LOW SEC14_PIN11_SET_LOW
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Prototypes
|
||||||
|
*****************************************************************************/
|
||||||
|
void epd_cs_high(void);
|
||||||
|
void epd_cs_low(void);
|
||||||
|
void epd_rst_high(void);
|
||||||
|
void epd_rst_low(void);
|
||||||
|
void epd_discharge_high(void);
|
||||||
|
void epd_discharge_low(void);
|
||||||
|
void epd_panelon_off(void);
|
||||||
|
void epd_panelon_on(void);
|
||||||
|
|
||||||
|
void epd_pwm_active(uint16_t delayInMs);
|
||||||
|
|
||||||
|
void epd_border_high(void);
|
||||||
|
void epd_border_low(void);
|
||||||
|
|
||||||
|
void epd_TestPinLow(void);
|
||||||
|
void epd_TestPinHigh(void);
|
||||||
|
void epd_TestPinTrigger(void);
|
||||||
|
|
||||||
|
void epd_TestPin2Low(void);
|
||||||
|
void epd_TestPin2High(void);
|
||||||
|
void epd_TestPin2Trigger(void);
|
||||||
|
|
||||||
|
void epd_delay_ms(uint32_t Time);
|
||||||
|
int16_t epd_get_temperature(void);
|
||||||
|
uint32_t epd_GetCurrentTimeTick(void);
|
||||||
|
|
||||||
|
/***************************************************************************/
|
||||||
|
void epd_spi_detach(void);
|
||||||
|
void epd_spi_init (void);
|
||||||
|
void epd_SPI_Send (unsigned char Register, unsigned char *Data, unsigned Length);
|
||||||
|
void epd_SPI_Send_Byte (uint8_t Register, uint8_t Data);
|
||||||
|
void epd_InitDisplayHardware (void);
|
||||||
|
|
||||||
|
/****************************************************************************/
|
||||||
|
|
||||||
|
#endif //__DISPLAY_HARDWARE_DRIVER_H_
|
234
epaper/Image_EAlogo.h
Normal file
234
epaper/Image_EAlogo.h
Normal file
@ -0,0 +1,234 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright(C) 2012, Embedded Artists AB
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
* Software that is described herein is for illustrative purposes only
|
||||||
|
* which provides customers with programming information regarding the
|
||||||
|
* products. This software is supplied "AS IS" without any warranties.
|
||||||
|
* Embedded Artists AB assumes no responsibility or liability for the
|
||||||
|
* use of the software, conveys no license or title under any patent,
|
||||||
|
* copyright, or mask work right to the product. Embedded Artists AB
|
||||||
|
* reserves the right to make changes in the software without
|
||||||
|
* notification. Embedded Artists AB also make no representation or
|
||||||
|
* warranty that such application will be suitable for the specified
|
||||||
|
* use without further testing or modification.
|
||||||
|
*****************************************************************************/
|
||||||
|
#ifndef __IMAGE_EALOGO_H_
|
||||||
|
#define __IMAGE_EALOGO_H_
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Includes
|
||||||
|
*****************************************************************************/
|
||||||
|
#include "Display_Controller.h"
|
||||||
|
|
||||||
|
//White=>1
|
||||||
|
//Black=>0
|
||||||
|
|
||||||
|
#if(DISPLAY_IN_USE == EPD_TYPE_144)
|
||||||
|
unsigned char const ImageDataEA[96][16]=
|
||||||
|
{
|
||||||
|
0 //Does not exist
|
||||||
|
};
|
||||||
|
unsigned char PreloadImage[96][16];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if(DISPLAY_IN_USE == EPD_TYPE_200)
|
||||||
|
unsigned char const ImageDataEA[96][25] =
|
||||||
|
{
|
||||||
|
0 //Does not exist
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned char PreloadImage[96][32];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if(DISPLAY_IN_USE == EPD_TYPE_270)
|
||||||
|
unsigned char const ImageDataEA[176][33]=
|
||||||
|
{
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0x0F, 0xFF, 0x9F, 0xFF, 0xF3, 0xF3, 0xFF, 0xE7, 0xF1, 0xFF, 0xB3, 0xFF, 0x7F, 0x9F, 0x8F, 0xC1, 0x27, 0xC0, 0xFC, 0x0F, 0xFF, 0xFF, 0xFF, 0xF0, 0x79, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0x0F, 0xFF, 0x9F, 0xFF, 0xF3, 0xF3, 0xFF, 0xE7, 0xF1, 0xFF, 0x33, 0xFE, 0x7F, 0x9F, 0x07, 0xC1, 0x27, 0xC0, 0xFC, 0x07, 0xFF, 0xFF, 0xFF, 0xF0, 0x39, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0xFF, 0xFF, 0x9F, 0xFF, 0xF3, 0xF3, 0xFF, 0xE7, 0xF1, 0xFF, 0x3F, 0xFE, 0x7F, 0x9E, 0x67, 0xF9, 0x27, 0xCF, 0xFC, 0xE7, 0xFF, 0xFF, 0xFF, 0xF3, 0x1F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0xF8, 0x33, 0x83, 0xC7, 0x93, 0x93, 0x8F, 0x27, 0xE4, 0xE4, 0x13, 0x8C, 0x31, 0x9E, 0x67, 0xFB, 0x27, 0xCF, 0xFC, 0xE4, 0x39, 0x3C, 0x72, 0xF3, 0x99, 0xC7, 0x27, 0x30, 0xCE, 0x7F, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0x08, 0x01, 0x81, 0x93, 0x03, 0x03, 0x26, 0x07, 0xE4, 0xE0, 0x13, 0x04, 0x20, 0xFF, 0xE7, 0xF3, 0xFF, 0xC0, 0xFC, 0xE0, 0x18, 0x19, 0x30, 0xF3, 0x99, 0x83, 0x03, 0x20, 0x4E, 0x7F, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0x09, 0x99, 0x99, 0x93, 0x33, 0x33, 0x26, 0x67, 0xE4, 0xE7, 0x33, 0x36, 0x66, 0xFF, 0xCF, 0xF3, 0xFF, 0xC0, 0xFC, 0x01, 0x99, 0x99, 0x33, 0xF3, 0x99, 0x9B, 0x33, 0x26, 0x64, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0xF9, 0x99, 0x99, 0x83, 0x33, 0x33, 0x06, 0x67, 0xCE, 0x67, 0x33, 0x0E, 0x61, 0xFF, 0x8F, 0xF7, 0xFF, 0xCF, 0x84, 0x0E, 0x19, 0x98, 0x33, 0xF3, 0x99, 0x87, 0x33, 0x38, 0x64, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0xF9, 0x99, 0x99, 0x9F, 0x33, 0x33, 0x3E, 0x67, 0xC0, 0x67, 0x33, 0xC6, 0x78, 0xFF, 0x1F, 0xE7, 0xFF, 0xCF, 0x84, 0xF8, 0x19, 0x99, 0xF3, 0xF3, 0x99, 0xE3, 0x33, 0x20, 0x64, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0xF9, 0x99, 0x99, 0x93, 0x33, 0x33, 0x26, 0x67, 0xC0, 0x67, 0x33, 0x66, 0x6C, 0xFF, 0x3F, 0xE7, 0xFF, 0xCF, 0xFC, 0xF9, 0x99, 0x99, 0x33, 0xF3, 0x19, 0xB3, 0x33, 0x26, 0x75, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0x09, 0x99, 0x81, 0x93, 0x03, 0x03, 0x26, 0x07, 0x9F, 0x27, 0x13, 0x06, 0x20, 0xFE, 0x04, 0xE7, 0xFF, 0xC0, 0xFC, 0xF8, 0x18, 0x19, 0x33, 0xF0, 0x39, 0x83, 0x03, 0x20, 0x71, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0x09, 0x99, 0x93, 0xC7, 0x93, 0x93, 0x8F, 0x27, 0x9F, 0x27, 0x93, 0x8F, 0x31, 0xFE, 0x04, 0xE7, 0xFF, 0xC0, 0xFC, 0xFC, 0x99, 0x3C, 0x73, 0xF0, 0x79, 0xC7, 0x27, 0x32, 0x71, 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, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xF3, 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, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xC3, 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, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xC7, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x33, 0xC3, 0x3C, 0x0C, 0x33, 0x00, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x33, 0xC3, 0x3C, 0x0C, 0x33, 0x00, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x3F, 0x33, 0x3C, 0xF3, 0x3F, 0x3F, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFE, 0x1F, 0xFF, 0xC0, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x3F, 0x33, 0x3C, 0xF3, 0x3F, 0x3F, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFE, 0x3F, 0xFC, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x33, 0x30, 0x0C, 0x0C, 0x0F, 0x30, 0x33, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFC, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x33, 0x30, 0x0C, 0x0C, 0x0F, 0x30, 0x33, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xF8, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x3F, 0x3F, 0xC0, 0x3C, 0xC3, 0x30, 0x33, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xF8, 0x7F, 0xFF, 0xC0, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x3F, 0x3F, 0xC0, 0x3C, 0xC3, 0x30, 0x33, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x33, 0xF3, 0xF3, 0x00, 0xFF, 0x30, 0x33, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x33, 0xF3, 0xF3, 0x00, 0xFF, 0x30, 0x33, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x3F, 0xFC, 0x0F, 0x30, 0xC3, 0x3F, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x3F, 0xFC, 0x0F, 0x30, 0xC3, 0x3F, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x33, 0x33, 0x33, 0x33, 0x33, 0x00, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0x83, 0xE0, 0x00, 0x00, 0x03, 0xF8, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xCF, 0xC3, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xCF, 0xC3, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x0F, 0xF0, 0x0F, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xF1, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xFC, 0x3F, 0xCC, 0xF3, 0xCF, 0x0F, 0x33, 0x33, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0x03, 0xE0, 0x00, 0x00, 0x00, 0x07, 0x00, 0x0F, 0xF0, 0x0F, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xF1, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xFC, 0x3F, 0xCC, 0xF3, 0xCF, 0x0F, 0x33, 0x33, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFE, 0x03, 0xE0, 0xFF, 0x80, 0x10, 0x03, 0x80, 0x07, 0xF0, 0x1F, 0xFF, 0xE3, 0xFF, 0xFF, 0xC7, 0xF1, 0xFF, 0xFC, 0x7F, 0xFF, 0xF3, 0x33, 0xFC, 0xCC, 0xF3, 0x33, 0xCC, 0xC0, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFE, 0x07, 0xE1, 0xFF, 0xF0, 0x1E, 0x01, 0x80, 0x07, 0xF1, 0xFF, 0x9C, 0xE2, 0x7C, 0x3E, 0x47, 0x91, 0xC3, 0xE4, 0x7F, 0xFF, 0xF3, 0x33, 0xFC, 0xCC, 0xF3, 0x33, 0xCC, 0xC0, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0x07, 0xE1, 0xFF, 0xF8, 0x1F, 0x01, 0xC0, 0x07, 0xF1, 0xF8, 0x00, 0x60, 0x38, 0x1C, 0x07, 0x01, 0x81, 0xC0, 0x7F, 0xFF, 0xF3, 0x0C, 0x33, 0xCF, 0x03, 0xC0, 0xFC, 0xCC, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0x07, 0xE1, 0xFF, 0xFC, 0x0F, 0x81, 0xC0, 0x03, 0xF0, 0x18, 0x00, 0x60, 0x10, 0x8C, 0x07, 0x01, 0x08, 0xC0, 0x7F, 0xFF, 0xF3, 0x0C, 0x33, 0xCF, 0x03, 0xC0, 0xFC, 0xCC, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0x07, 0xE1, 0xFF, 0xFC, 0x0F, 0xC0, 0xE0, 0x03, 0xF0, 0x18, 0xC4, 0x63, 0x11, 0x88, 0x46, 0x21, 0x18, 0x84, 0x7F, 0xFF, 0xFC, 0xFF, 0xF0, 0xFF, 0x00, 0xF3, 0x30, 0xCC, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF8, 0x07, 0xE1, 0xFF, 0xFE, 0x0F, 0xC0, 0xE0, 0x03, 0xF0, 0x18, 0xC4, 0x63, 0x10, 0x08, 0xC6, 0x21, 0x00, 0x8C, 0x7F, 0xFF, 0xFC, 0xFF, 0xF0, 0xFF, 0x00, 0xF3, 0x30, 0xCC, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF8, 0x07, 0xE1, 0xFF, 0xFE, 0x0F, 0xC0, 0xF0, 0x03, 0xF0, 0xF8, 0xC4, 0x63, 0x10, 0x08, 0xC6, 0x31, 0x00, 0x8C, 0x7F, 0xFF, 0xF3, 0xF3, 0x30, 0x33, 0x30, 0xCC, 0x33, 0x0C, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF8, 0x07, 0xE1, 0xFF, 0xFE, 0x0F, 0xC0, 0xF0, 0x03, 0xF1, 0xF8, 0xC4, 0x63, 0x10, 0xF8, 0xC6, 0x31, 0x1F, 0x8C, 0x7F, 0xFF, 0xF3, 0xF3, 0x30, 0x33, 0x30, 0xCC, 0x33, 0x0C, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF8, 0x07, 0xE1, 0xFF, 0xFC, 0x00, 0x00, 0xF0, 0x03, 0xF1, 0xF8, 0xC4, 0x63, 0x11, 0xF8, 0xC6, 0x31, 0x1F, 0x8C, 0x7F, 0xFF, 0xF0, 0x3C, 0xFF, 0xFC, 0xC3, 0x00, 0x0F, 0x0C, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF8, 0x07, 0xE1, 0xFF, 0xF8, 0x00, 0x00, 0xF0, 0x03, 0xF0, 0x38, 0xC4, 0x63, 0x11, 0x88, 0x46, 0x21, 0x18, 0x84, 0x7F, 0xFF, 0xF0, 0x3C, 0xFF, 0xFC, 0xC3, 0x00, 0x0F, 0x0C, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF0, 0x07, 0xE1, 0xFF, 0xF0, 0x00, 0x00, 0xF8, 0x03, 0xF0, 0x08, 0xC4, 0x60, 0x30, 0x0C, 0x07, 0x01, 0x00, 0xC0, 0x7F, 0xFF, 0xFF, 0x30, 0x3F, 0xF3, 0x00, 0xC3, 0x33, 0xF3, 0xCF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF0, 0x07, 0xE1, 0xFF, 0xC0, 0x00, 0x00, 0xF8, 0x03, 0xF0, 0x08, 0xC4, 0x60, 0x38, 0x1C, 0x07, 0x01, 0x81, 0xC0, 0x7F, 0xFF, 0xFF, 0x30, 0x3F, 0xF3, 0x00, 0xC3, 0x33, 0xF3, 0xCF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF0, 0x07, 0xE1, 0xFE, 0x00, 0x1F, 0xE0, 0xF8, 0x03, 0xFF, 0xFF, 0xFF, 0xFE, 0x7C, 0x3E, 0x7F, 0x9F, 0xC3, 0xE7, 0xFF, 0xFF, 0xFC, 0xFF, 0xCC, 0xF3, 0x30, 0xF3, 0xC3, 0xCC, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF0, 0x07, 0xE0, 0x00, 0x00, 0xFF, 0xE0, 0xF8, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xCC, 0xF3, 0x30, 0xF3, 0xC3, 0xCC, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF0, 0x03, 0xE0, 0x00, 0x03, 0xFF, 0xE0, 0xF8, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x00, 0x3F, 0x0C, 0x0C, 0x33, 0x30, 0xF3, 0xC3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF0, 0x03, 0xE0, 0x00, 0x07, 0xFF, 0xE0, 0xF8, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xE3, 0x8F, 0xFC, 0x7F, 0xFF, 0xFF, 0xF3, 0x00, 0x3F, 0x0C, 0x0C, 0x33, 0x30, 0xF3, 0xC3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF0, 0x03, 0xE0, 0x00, 0x0F, 0xFF, 0xE0, 0xF8, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xC7, 0x1F, 0xFC, 0x7F, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x30, 0x0F, 0xFF, 0x00, 0x0F, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF0, 0x03, 0xE0, 0xFC, 0x0F, 0xFF, 0xE0, 0xF8, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xC7, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x30, 0x0F, 0xFF, 0x00, 0x0F, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF0, 0x01, 0xE0, 0xFC, 0x0F, 0xFF, 0xE0, 0xF8, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xE2, 0x03, 0x1C, 0x18, 0x30, 0x7F, 0xFF, 0xFF, 0x0F, 0x33, 0xF3, 0xFF, 0x00, 0xC3, 0xF0, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF0, 0x01, 0xE0, 0xFC, 0x1F, 0xFF, 0xE0, 0xF8, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xE0, 0x03, 0x18, 0x10, 0x20, 0x3F, 0xFF, 0xFF, 0x0F, 0x33, 0xF3, 0xFF, 0x00, 0xC3, 0xF0, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF0, 0x01, 0xE0, 0xFC, 0x0F, 0xFF, 0xE0, 0xF8, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xE0, 0x87, 0x11, 0x98, 0x66, 0x3F, 0xFF, 0xF0, 0x3C, 0xF3, 0x33, 0xC0, 0xC3, 0xC0, 0xFC, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF8, 0x00, 0xE0, 0x7C, 0x0F, 0xFF, 0xE0, 0xF8, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x88, 0xE3, 0x8E, 0x31, 0xB8, 0xC7, 0x7F, 0xFF, 0xF0, 0x3C, 0xF3, 0x33, 0xC0, 0xC3, 0xC0, 0xFC, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF8, 0x00, 0xE0, 0x3E, 0x07, 0xFF, 0xE0, 0xF8, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x88, 0xC7, 0x8E, 0x30, 0x78, 0xC1, 0xFF, 0xFF, 0xFF, 0x30, 0x30, 0xC3, 0xF3, 0x33, 0x03, 0xC0, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF8, 0x00, 0x70, 0x1E, 0x03, 0xFF, 0xE0, 0xF8, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x08, 0xC7, 0x8E, 0x30, 0x38, 0xE0, 0x7F, 0xFF, 0xFF, 0x30, 0x30, 0xC3, 0xF3, 0x33, 0x03, 0xC0, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xF8, 0x00, 0x30, 0x03, 0x00, 0x7F, 0xE0, 0xF8, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xC7, 0x8E, 0x3C, 0x10, 0xF0, 0x7F, 0xFF, 0xF0, 0x30, 0xCC, 0xCF, 0xF3, 0xC3, 0x33, 0xC0, 0x3F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xC7, 0x8E, 0x3E, 0x11, 0xFC, 0x7F, 0xFF, 0xF0, 0x30, 0xCC, 0xCF, 0xF3, 0xC3, 0x33, 0xC0, 0x3F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFC, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFE, 0x38, 0xC7, 0x0C, 0x63, 0x31, 0x8C, 0x7F, 0xFF, 0xF3, 0x33, 0x3C, 0xF3, 0x0C, 0x3C, 0x3F, 0xC0, 0xCF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFE, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFE, 0x38, 0x8F, 0x04, 0x60, 0x30, 0x80, 0x7F, 0xFF, 0xF3, 0x33, 0x3C, 0xF3, 0x0C, 0x3C, 0x3F, 0xC0, 0xCF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFE, 0x00, 0x07, 0xF0, 0x00, 0x00, 0x01, 0xF0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFC, 0x38, 0x8F, 0x8C, 0x60, 0x70, 0xC0, 0xFF, 0xFF, 0xF3, 0xFF, 0xCF, 0x0C, 0xC3, 0xF3, 0xCF, 0xC3, 0x3F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xCF, 0x0C, 0xC3, 0xF3, 0xCF, 0xC3, 0x3F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xC0, 0x0C, 0xCF, 0xCC, 0x33, 0xF0, 0x00, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0x80, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xC0, 0x0C, 0xCF, 0xCC, 0x33, 0xF0, 0x00, 0xF3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xC0, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xC0, 0x33, 0x00, 0x33, 0xF0, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xE0, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xC0, 0x33, 0x00, 0x33, 0xF0, 0x03, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xC3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x3C, 0x30, 0xC0, 0xFF, 0x03, 0x33, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFC, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x3C, 0x30, 0xC0, 0xFF, 0x03, 0x33, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x30, 0x33, 0xCC, 0x0C, 0x03, 0xF0, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x7F, 0x8F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x30, 0x33, 0xCC, 0x0C, 0x03, 0xF0, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x07, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x3C, 0x00, 0xFF, 0xFC, 0x30, 0x03, 0xCF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x3C, 0x00, 0xFF, 0xFC, 0x30, 0x03, 0xCF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x3F, 0xCF, 0x03, 0xC0, 0xF3, 0xC3, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x3F, 0xCF, 0x03, 0xC0, 0xF3, 0xC3, 0x0F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x3C, 0xCC, 0xCC, 0x30, 0xF3, 0xF3, 0xC3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x03, 0x3C, 0xCC, 0xCC, 0x30, 0xF3, 0xF3, 0xC3, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x3C, 0xFC, 0xC0, 0xCF, 0x3C, 0x3C, 0x3F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0x3C, 0xFC, 0xC0, 0xCF, 0x3C, 0x3C, 0x3F, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x3F, 0xC3, 0x03, 0x3C, 0x00, 0xFF, 0xCF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x3F, 0xC3, 0x03, 0x3C, 0x00, 0xFF, 0xCF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned char PreloadImage[176][33];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif //__IMAGE_EALOGO_H_
|
425
epaper/Image_PDlogo.h
Normal file
425
epaper/Image_PDlogo.h
Normal file
@ -0,0 +1,425 @@
|
|||||||
|
// Copyright 2013 Pervasive Displays, Inc.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at:
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
|
||||||
|
// express or implied. See the License for the specific language
|
||||||
|
// governing permissions and limitations under the License.
|
||||||
|
|
||||||
|
#ifndef __IMAGE_PDLOGO_H_
|
||||||
|
#define __IMAGE_PDLOGO_H_
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Includes
|
||||||
|
*****************************************************************************/
|
||||||
|
#include "Display_Controller.h"
|
||||||
|
|
||||||
|
//White=>1
|
||||||
|
//Black=>0
|
||||||
|
|
||||||
|
#if(DISPLAY_IN_USE == EPD_TYPE_144)
|
||||||
|
|
||||||
|
unsigned char const ImageDataPD[96][16]=
|
||||||
|
{
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xE0, 0xC1, 0x81, 0x9F, 0x77, 0xC1, 0x93, 0xE4, 0x1C, 0x07, 0x38, 0x60, 0xCF, 0xF3, 0x3E, 0xC7},
|
||||||
|
{0xE6, 0x4F, 0x98, 0x8E, 0x67, 0x99, 0x9B, 0xEC, 0xFC, 0xF3, 0x33, 0xE6, 0x4F, 0xF3, 0x9C, 0xBB},
|
||||||
|
{0xE7, 0x4F, 0x9C, 0x8E, 0x63, 0x9F, 0x99, 0xCC, 0xFC, 0xF9, 0x37, 0xE7, 0x4F, 0xF1, 0x9D, 0xBF},
|
||||||
|
{0xE7, 0x4F, 0x9C, 0xCE, 0xC3, 0x8F, 0x99, 0xCC, 0xFC, 0xF9, 0x33, 0xE7, 0x4F, 0xED, 0xC9, 0x9F},
|
||||||
|
{0xE6, 0x41, 0x99, 0xC4, 0xD1, 0xC7, 0x9C, 0xDC, 0x1C, 0xFD, 0x38, 0xE4, 0x4F, 0xEC, 0xE3, 0xC7},
|
||||||
|
{0xE0, 0xCF, 0x83, 0xE5, 0x99, 0xE3, 0x9C, 0xDC, 0xFC, 0xFD, 0x3C, 0x61, 0xCF, 0xC0, 0xF7, 0xF3},
|
||||||
|
{0xE7, 0xCF, 0x81, 0xE1, 0x81, 0xF3, 0x9C, 0x9C, 0xFC, 0xF9, 0x3F, 0x27, 0xCF, 0xDC, 0xF7, 0xFB},
|
||||||
|
{0xE7, 0xCF, 0x99, 0xE1, 0x3C, 0xF9, 0x9E, 0x3C, 0xFC, 0xF9, 0x3F, 0x27, 0xCF, 0x9E, 0x77, 0xFB},
|
||||||
|
{0xE7, 0xCF, 0x98, 0xF3, 0x3C, 0x99, 0x9E, 0x3C, 0xFC, 0xF3, 0x37, 0x67, 0xCF, 0xBE, 0x77, 0xBB},
|
||||||
|
{0xE7, 0xC1, 0x9C, 0xF3, 0x7E, 0xC3, 0x9F, 0x7C, 0x1C, 0x07, 0x30, 0xE7, 0xC0, 0xBF, 0x37, 0xC7},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xCF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xC0, 0x7F, 0x9F, 0xFF, 0xCF, 0xFF, 0xFC, 0xFE, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xC0, 0x7F, 0x9F, 0xFF, 0xCF, 0xFF, 0xFC, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xCF, 0xFF, 0x9F, 0xFF, 0xCF, 0xFF, 0xFC, 0xFE, 0x7C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xCF, 0xFF, 0x9F, 0xC1, 0xC8, 0xFC, 0x3C, 0xFE, 0x7E, 0x78, 0x79, 0x18, 0xFC, 0x3F, 0xFF},
|
||||||
|
{0xFF, 0xCF, 0xFF, 0x9F, 0x80, 0xC0, 0x78, 0x1C, 0xFE, 0x7E, 0x70, 0x38, 0x00, 0x78, 0x1F, 0xFF},
|
||||||
|
{0xFF, 0xC0, 0xFF, 0x9F, 0xBC, 0xC6, 0x31, 0x8C, 0xFE, 0x7E, 0x63, 0x18, 0xC6, 0x71, 0x8F, 0xFF},
|
||||||
|
{0xFF, 0xC0, 0xE1, 0x9F, 0xFC, 0xCF, 0x33, 0xCC, 0xFE, 0x7E, 0x67, 0x99, 0xCE, 0x73, 0xCF, 0xFF},
|
||||||
|
{0xFF, 0xCF, 0xE1, 0x9F, 0xC0, 0xCF, 0x30, 0x0C, 0xFE, 0x7E, 0x60, 0x19, 0xCE, 0x73, 0xCF, 0xFF},
|
||||||
|
{0xFF, 0xCF, 0xFF, 0x9F, 0x9C, 0xCF, 0x33, 0xFC, 0xFE, 0x7E, 0x67, 0xF9, 0xCE, 0x73, 0xCF, 0xFF},
|
||||||
|
{0xFF, 0xCF, 0xFF, 0x9F, 0x9C, 0xC6, 0x31, 0xEC, 0xFE, 0x7C, 0xE3, 0xD9, 0xCE, 0x71, 0x8F, 0xFF},
|
||||||
|
{0xFF, 0xC0, 0x7F, 0x80, 0x80, 0xC0, 0x78, 0x0C, 0xFE, 0x00, 0xF0, 0x19, 0xCE, 0x78, 0x1F, 0xFF},
|
||||||
|
{0xFF, 0xC0, 0x7F, 0x80, 0xC4, 0xC8, 0xFC, 0x1C, 0xFE, 0x03, 0xF8, 0x39, 0xCE, 0x7C, 0x3F, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
|
||||||
|
};
|
||||||
|
unsigned char PreloadImage[96][16];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#if(DISPLAY_IN_USE == EPD_TYPE_200)
|
||||||
|
|
||||||
|
unsigned char const ImageDataPD[96][25] =
|
||||||
|
{
|
||||||
|
// 5 10 15 20 25
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFE, 0x03, 0xE0, 0x1C, 0x0E, 0x0F, 0xE3, 0xBF, 0xE0, 0xF1, 0x07, 0xF1, 0x00, 0xF0, 0x07, 0xFF, 0xE1, 0xF0, 0x1E, 0x3F, 0xFE, 0xF1, 0xF9, 0xC3, 0xFF},
|
||||||
|
{0xFE, 0x00, 0xE0, 0x1C, 0x03, 0x0F, 0xC7, 0x3F, 0x80, 0x71, 0x87, 0xE3, 0x00, 0xF0, 0x00, 0xF1, 0xC0, 0x73, 0x0E, 0x3F, 0xFC, 0xF1, 0xF9, 0x80, 0xFF},
|
||||||
|
{0xFE, 0x38, 0x63, 0xFC, 0x61, 0x07, 0xC7, 0x1F, 0x0E, 0x31, 0x83, 0xE3, 0x1F, 0xF1, 0xF0, 0x71, 0x8E, 0x73, 0xC6, 0x3F, 0xFC, 0x78, 0xF3, 0x1C, 0xFF},
|
||||||
|
{0xFE, 0x3C, 0x63, 0xFC, 0x71, 0x87, 0xCE, 0x1F, 0x1E, 0x31, 0xC3, 0xE7, 0x1F, 0xF1, 0xFC, 0x71, 0x9F, 0x73, 0xE6, 0x3F, 0xF8, 0x78, 0xF3, 0x3E, 0xFF},
|
||||||
|
{0xFE, 0x3C, 0x63, 0xFC, 0x71, 0x87, 0x8E, 0x0F, 0x1F, 0xF1, 0xC3, 0xC7, 0x1F, 0xF1, 0xFC, 0x31, 0x9F, 0xF3, 0xE6, 0x3F, 0xF8, 0x3C, 0x67, 0x3F, 0xFF},
|
||||||
|
{0xFE, 0x3C, 0x63, 0xFC, 0x71, 0xC3, 0x9C, 0xCF, 0x0F, 0xF1, 0xE1, 0xCF, 0x1F, 0xF1, 0xFE, 0x31, 0x8F, 0xF3, 0xE6, 0x3F, 0xF3, 0x3E, 0x67, 0x1F, 0xFF},
|
||||||
|
{0xFE, 0x38, 0x63, 0xFC, 0x61, 0xC3, 0x9C, 0xC7, 0x87, 0xF1, 0xE1, 0xCF, 0x1F, 0xF1, 0xFE, 0x31, 0x83, 0xF3, 0xC6, 0x3F, 0xF3, 0x3E, 0x0F, 0x07, 0xFF},
|
||||||
|
{0xFE, 0x00, 0x60, 0x1C, 0x03, 0xE1, 0x3D, 0xE7, 0xC3, 0xF1, 0xF0, 0x9F, 0x00, 0xF1, 0xFE, 0x31, 0xC0, 0xF3, 0x0E, 0x3F, 0xF7, 0x9F, 0x0F, 0x81, 0xFF},
|
||||||
|
{0xFE, 0x00, 0xE0, 0x1C, 0x0F, 0xE1, 0x39, 0xE3, 0xE0, 0xF1, 0xF0, 0x9F, 0x00, 0xF1, 0xFE, 0x31, 0xE0, 0x70, 0x1E, 0x3F, 0xE0, 0x1F, 0x9F, 0xC0, 0xFF},
|
||||||
|
{0xFE, 0x3F, 0xE3, 0xFC, 0x07, 0xE0, 0x38, 0x03, 0xF0, 0x71, 0xF0, 0x1F, 0x1F, 0xF1, 0xFE, 0x31, 0xF8, 0x33, 0xFE, 0x3F, 0xE0, 0x0F, 0x9F, 0xF0, 0x7F},
|
||||||
|
{0xFE, 0x3F, 0xE3, 0xFC, 0x03, 0xF0, 0x70, 0x03, 0xFC, 0x31, 0xF8, 0x3F, 0x1F, 0xF1, 0xFE, 0x31, 0xFE, 0x33, 0xFE, 0x3F, 0xCF, 0x8F, 0x9F, 0xFC, 0x7F},
|
||||||
|
{0xFE, 0x3F, 0xE3, 0xFC, 0x43, 0xF0, 0x71, 0xE1, 0x3E, 0x31, 0xF8, 0x3F, 0x1F, 0xF1, 0xFC, 0x31, 0xFE, 0x33, 0xFE, 0x3F, 0xCF, 0x8F, 0x9F, 0xFC, 0x7F},
|
||||||
|
{0xFE, 0x3F, 0xE3, 0xFC, 0x61, 0xF8, 0xF3, 0xE1, 0x1E, 0x31, 0xFC, 0x7F, 0x1F, 0xF1, 0xF8, 0x71, 0xBE, 0x33, 0xFE, 0x3F, 0xDF, 0xC7, 0x9F, 0x7C, 0x7F},
|
||||||
|
{0xFE, 0x3F, 0xE3, 0xFC, 0x70, 0xF8, 0xE3, 0xE0, 0x06, 0x31, 0xFC, 0x7F, 0x1F, 0xF1, 0xF0, 0xF1, 0x1C, 0x73, 0xFE, 0x3F, 0x9F, 0xC7, 0x9E, 0x38, 0xFF},
|
||||||
|
{0xFE, 0x3F, 0xE0, 0x1C, 0x78, 0x7D, 0xE3, 0xF0, 0x80, 0x71, 0xFE, 0x7F, 0x00, 0xF0, 0x01, 0xF1, 0x00, 0x73, 0xFE, 0x01, 0x9F, 0xE3, 0x9E, 0x00, 0xFF},
|
||||||
|
{0xFE, 0x3F, 0xE0, 0x1C, 0x7C, 0x7D, 0xE3, 0xF0, 0xE0, 0xF1, 0xFF, 0xFF, 0x00, 0xF0, 0x0F, 0xF1, 0x81, 0xF3, 0xFE, 0x01, 0xBF, 0xE3, 0x9F, 0x03, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x1F, 0xFC, 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xC7, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x1F, 0xFC, 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xC7, 0xFE, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x1F, 0xFC, 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xC7, 0xFE, 0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xC7, 0xFE, 0x3E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0x7F, 0xE0, 0x7C, 0x61, 0xFE, 0x0F, 0xC7, 0xFE, 0x3F, 0x8F, 0xE0, 0xFC, 0x61, 0xE1, 0xFE, 0x07, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0x7F, 0x80, 0x3C, 0x00, 0x78, 0x07, 0xC7, 0xFE, 0x3F, 0x87, 0x80, 0x7C, 0x00, 0x80, 0xF8, 0x03, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x3F, 0xFC, 0x7F, 0x80, 0x1C, 0x00, 0x70, 0x03, 0xC7, 0xFE, 0x3F, 0xC7, 0x00, 0x3C, 0x00, 0x00, 0x70, 0x01, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x3F, 0xFC, 0x7F, 0x9F, 0x1C, 0x3C, 0x31, 0xE1, 0xC7, 0xFE, 0x3F, 0xC7, 0x1E, 0x1C, 0x38, 0x38, 0x71, 0xF0, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x3F, 0xFC, 0x7F, 0xFF, 0x1C, 0x7E, 0x23, 0xF1, 0xC7, 0xFE, 0x3F, 0xC6, 0x3F, 0x1C, 0x7C, 0x7C, 0x63, 0xF8, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x8F, 0xF8, 0x0C, 0x7F, 0xE0, 0x1C, 0x7E, 0x23, 0xF1, 0xC7, 0xFE, 0x3F, 0xC6, 0x3F, 0x1C, 0x7C, 0x7C, 0x63, 0xF8, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x8F, 0xF8, 0x0C, 0x7F, 0x80, 0x1C, 0x7E, 0x20, 0x01, 0xC7, 0xFE, 0x3F, 0xC6, 0x00, 0x1C, 0x7C, 0x7C, 0x63, 0xF8, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x8F, 0xF8, 0x0C, 0x7F, 0x07, 0x1C, 0x7E, 0x20, 0x01, 0xC7, 0xFE, 0x3F, 0x86, 0x00, 0x1C, 0x7C, 0x7C, 0x63, 0xF8, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0x7F, 0x1F, 0x1C, 0x7E, 0x23, 0xFF, 0xC7, 0xFE, 0x3F, 0x8E, 0x3F, 0xFC, 0x7C, 0x7C, 0x63, 0xF8, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x8F, 0xFF, 0xFC, 0x7F, 0x1E, 0x1C, 0x3C, 0x21, 0xF3, 0xC7, 0xFE, 0x3E, 0x0E, 0x1F, 0x3C, 0x7C, 0x7C, 0x61, 0xF1, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x1F, 0xFC, 0x01, 0x00, 0x1C, 0x00, 0x70, 0x03, 0xC7, 0xFE, 0x00, 0x1F, 0x00, 0x3C, 0x7C, 0x7C, 0x70, 0x01, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x1F, 0xFC, 0x01, 0x80, 0x1C, 0x00, 0xF8, 0x03, 0xC7, 0xFE, 0x00, 0x3F, 0x80, 0x3C, 0x7C, 0x7C, 0x78, 0x03, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x1F, 0xFC, 0x01, 0xC1, 0x1C, 0x41, 0xFC, 0x0F, 0xC7, 0xFE, 0x00, 0xFF, 0xC0, 0xFC, 0x7C, 0x7C, 0x7C, 0x0F, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned char PreloadImage[96][32];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if(DISPLAY_IN_USE == EPD_TYPE_270)
|
||||||
|
unsigned char const ImageDataPD[176][33]=
|
||||||
|
{
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xF8, 0x03, 0xF0, 0x03, 0xC0, 0x0F, 0x83, 0xFF, 0x9F, 0x3F, 0xFC, 0x07, 0xE3, 0x83, 0xFF, 0x9C, 0x00, 0xFE, 0x00, 0x1F, 0xFF, 0xFC, 0x07, 0xC0, 0x1F, 0x8F, 0xFF, 0xFC, 0xFC, 0x7F, 0xF7, 0xC0, 0xFF},
|
||||||
|
{0xF8, 0x00, 0xF0, 0x03, 0xC0, 0x03, 0x83, 0xFF, 0x1E, 0x1F, 0xF8, 0x03, 0xE3, 0x81, 0xFF, 0x1C, 0x00, 0xFE, 0x00, 0x07, 0xF1, 0xF8, 0x03, 0xC0, 0x07, 0x8F, 0xFF, 0xFC, 0xFC, 0x7F, 0xE3, 0x80, 0x7F},
|
||||||
|
{0xF8, 0x60, 0x70, 0x03, 0xC1, 0x81, 0x81, 0xFF, 0x3E, 0x1F, 0xF0, 0xE3, 0xE3, 0xC1, 0xFF, 0x1C, 0x00, 0xFE, 0x3F, 0xC1, 0xF1, 0xF1, 0xE3, 0xC7, 0xC3, 0x8F, 0xFF, 0xF8, 0x7E, 0x3F, 0xC7, 0x1E, 0x3F},
|
||||||
|
{0xF8, 0x70, 0x70, 0xFF, 0xC3, 0xC1, 0xC1, 0xFE, 0x3C, 0x1F, 0xF1, 0xF3, 0xE3, 0xC1, 0xFE, 0x3C, 0x3F, 0xFE, 0x3F, 0xF0, 0xF1, 0xE3, 0xFF, 0xC7, 0xE3, 0x8F, 0xFF, 0xF8, 0x7E, 0x3F, 0xCE, 0x3F, 0x3F},
|
||||||
|
{0xF8, 0x78, 0x70, 0xFF, 0xC3, 0xE1, 0xC1, 0xFE, 0x7C, 0x0F, 0xE1, 0xFF, 0xE3, 0xC0, 0xFE, 0x3C, 0x3F, 0xFE, 0x3F, 0xF8, 0xF1, 0xE3, 0xFF, 0xC7, 0xF1, 0x8F, 0xFF, 0xF0, 0x7F, 0x1F, 0x8E, 0x3F, 0xFF},
|
||||||
|
{0xF8, 0x78, 0x70, 0xFF, 0xC3, 0xE1, 0xE0, 0xFC, 0x7C, 0x0F, 0xE1, 0xFF, 0xE3, 0xE0, 0xFE, 0x7C, 0x3F, 0xFE, 0x3F, 0xF8, 0x71, 0xE3, 0xFF, 0xC7, 0xF1, 0x8F, 0xFF, 0xF2, 0x3F, 0x0F, 0x9E, 0x3F, 0xFF},
|
||||||
|
{0xF8, 0x78, 0x70, 0xFF, 0xC3, 0xE1, 0xE0, 0xFC, 0x78, 0x0F, 0xE0, 0xFF, 0xE3, 0xE0, 0xFC, 0x7C, 0x3F, 0xFE, 0x3F, 0xFC, 0x71, 0xE3, 0xFF, 0xC7, 0xF1, 0x8F, 0xFF, 0xF2, 0x3F, 0x8F, 0x3E, 0x3F, 0xFF},
|
||||||
|
{0xF8, 0x78, 0x70, 0xFF, 0xC3, 0xE1, 0xE0, 0xFC, 0xF9, 0x07, 0xE0, 0x7F, 0xE3, 0xF0, 0x7C, 0xFC, 0x3F, 0xFE, 0x3F, 0xFC, 0x71, 0xE1, 0xFF, 0xC7, 0xE3, 0x8F, 0xFF, 0xE7, 0x1F, 0x87, 0x3E, 0x1F, 0xFF},
|
||||||
|
{0xF8, 0x70, 0x70, 0xFF, 0xC3, 0xC1, 0xF0, 0x78, 0xF1, 0x87, 0xE0, 0x1F, 0xE3, 0xF0, 0x7C, 0xFC, 0x3F, 0xFE, 0x3F, 0xFC, 0x71, 0xF0, 0x7F, 0xC7, 0xE3, 0x8F, 0xFF, 0xE7, 0x1F, 0xC6, 0x7F, 0x07, 0xFF},
|
||||||
|
{0xF8, 0x60, 0xF0, 0x01, 0xC1, 0x83, 0xF0, 0x79, 0xF3, 0x83, 0xF0, 0x07, 0xE3, 0xF0, 0x78, 0xFC, 0x00, 0xFE, 0x3F, 0xFC, 0x71, 0xF8, 0x1F, 0xC7, 0xC7, 0x8F, 0xFF, 0xCF, 0x9F, 0xE2, 0x7F, 0x81, 0xFF},
|
||||||
|
{0xF8, 0x01, 0xF0, 0x01, 0xC0, 0x0F, 0xF8, 0x79, 0xF3, 0x83, 0xF8, 0x03, 0xE3, 0xF8, 0x39, 0xFC, 0x00, 0xFE, 0x3F, 0xFC, 0x71, 0xFC, 0x07, 0xC0, 0x0F, 0x8F, 0xFF, 0xCF, 0x8F, 0xE0, 0xFF, 0xC0, 0x7F},
|
||||||
|
{0xF8, 0x07, 0xF0, 0xFF, 0xC0, 0x1F, 0xF8, 0x31, 0xE3, 0xC3, 0xFC, 0x01, 0xE3, 0xF8, 0x31, 0xFC, 0x3F, 0xFE, 0x3F, 0xFC, 0x71, 0xFF, 0x03, 0xC0, 0x7F, 0x8F, 0xFF, 0xC0, 0x0F, 0xF1, 0xFF, 0xF0, 0x3F},
|
||||||
|
{0xF8, 0x7F, 0xF0, 0xFF, 0xC0, 0x0F, 0xF8, 0x33, 0xE7, 0xC1, 0xFF, 0x01, 0xE3, 0xFC, 0x33, 0xFC, 0x3F, 0xFE, 0x3F, 0xFC, 0x71, 0xFF, 0xC3, 0xC7, 0xFF, 0x8F, 0xFF, 0x80, 0x07, 0xF1, 0xFF, 0xFC, 0x1F},
|
||||||
|
{0xF8, 0x7F, 0xF0, 0xFF, 0xC3, 0x07, 0xFC, 0x23, 0xC0, 0x01, 0xFF, 0xC1, 0xE3, 0xFC, 0x13, 0xFC, 0x3F, 0xFE, 0x3F, 0xFC, 0x71, 0xFF, 0xE1, 0xC7, 0xFF, 0x8F, 0xFF, 0x9F, 0xC7, 0xF1, 0xFF, 0xFE, 0x1F},
|
||||||
|
{0xF8, 0x7F, 0xF0, 0xFF, 0xC3, 0x07, 0xFC, 0x07, 0xC0, 0x00, 0xFF, 0xE1, 0xE3, 0xFC, 0x03, 0xFC, 0x3F, 0xFE, 0x3F, 0xF8, 0x71, 0xFF, 0xF1, 0xC7, 0xFF, 0x8F, 0xFF, 0x3F, 0xC7, 0xF1, 0xFF, 0xFF, 0x1F},
|
||||||
|
{0xF8, 0x7F, 0xF0, 0xFF, 0xC3, 0x83, 0xFC, 0x07, 0xCF, 0xE0, 0xFF, 0xF1, 0xE3, 0xFE, 0x07, 0xFC, 0x3F, 0xFE, 0x3F, 0xF8, 0xF1, 0xFF, 0xF1, 0xC7, 0xFF, 0x8F, 0xFF, 0x3F, 0xE3, 0xF1, 0xFF, 0xFF, 0x1F},
|
||||||
|
{0xF8, 0x7F, 0xF0, 0xFF, 0xC3, 0x81, 0xFE, 0x07, 0x8F, 0xE0, 0xFF, 0xF1, 0xE3, 0xFE, 0x07, 0xFC, 0x3F, 0xFE, 0x3F, 0xF0, 0xF1, 0xFF, 0xF3, 0xC7, 0xFF, 0x8F, 0xFE, 0x7F, 0xE3, 0xF1, 0xFF, 0xFF, 0x1F},
|
||||||
|
{0xF8, 0x7F, 0xF0, 0xFF, 0xC3, 0xC1, 0xFE, 0x0F, 0x9F, 0xF0, 0x67, 0xE1, 0xE3, 0xFF, 0x0F, 0xFC, 0x3F, 0xFE, 0x3F, 0xE1, 0xF1, 0xFF, 0xF3, 0xC7, 0xFF, 0x8F, 0xFE, 0x7F, 0xF1, 0xF1, 0xFE, 0x7F, 0x1F},
|
||||||
|
{0xF8, 0x7F, 0xF0, 0x03, 0xC3, 0xC0, 0xFF, 0x0F, 0x1F, 0xF0, 0x63, 0xC3, 0xE3, 0xFF, 0x0F, 0xFC, 0x00, 0xFE, 0x3F, 0xC3, 0xF1, 0xE7, 0xE7, 0xC7, 0xFF, 0x8F, 0xFC, 0x7F, 0xF1, 0xF1, 0xFE, 0x1E, 0x3F},
|
||||||
|
{0xF8, 0x7F, 0xF0, 0x03, 0xC3, 0xE0, 0x7F, 0x0F, 0x1F, 0xF8, 0x60, 0x07, 0xE3, 0xFF, 0x0F, 0xFC, 0x00, 0xFE, 0x00, 0x0F, 0xF1, 0xE0, 0x0F, 0xC7, 0xFF, 0x80, 0x0C, 0xFF, 0xF0, 0xF1, 0xFE, 0x00, 0x7F},
|
||||||
|
{0xF8, 0x7F, 0xF0, 0x03, 0xC3, 0xF0, 0x7F, 0x9F, 0x3F, 0xF8, 0x70, 0x1F, 0xE3, 0xFF, 0x9F, 0xFC, 0x00, 0xFE, 0x00, 0x3F, 0xF1, 0xF0, 0x1F, 0xCF, 0xFF, 0x80, 0x0C, 0xFF, 0xF8, 0xF9, 0xFF, 0x00, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0x07, 0xC0, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0xFF, 0xFF, 0xFC, 0x1F, 0xFF, 0x07, 0xF0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x1F, 0xFE, 0x00, 0xFE, 0x0C, 0x1F, 0xFE, 0x03, 0xFC, 0x1F, 0xFF, 0x07, 0xF8, 0x3F, 0xC0, 0x7F, 0x87, 0x03, 0xE0, 0xFF, 0xE0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x1F, 0xF8, 0x00, 0x7E, 0x08, 0x07, 0xF8, 0x01, 0xFC, 0x1F, 0xFF, 0x07, 0xF8, 0x1F, 0x00, 0x3F, 0x86, 0x01, 0x80, 0x7F, 0x80, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x1F, 0xF8, 0x00, 0x3E, 0x00, 0x03, 0xF0, 0x00, 0xFC, 0x1F, 0xFF, 0x07, 0xFC, 0x1E, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x07, 0xFF, 0xFC, 0x1F, 0xF8, 0x00, 0x1E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x1F, 0xFF, 0x07, 0xFC, 0x1C, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x1E, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x07, 0xFF, 0xFC, 0x1F, 0xF8, 0xF8, 0x1E, 0x03, 0x83, 0xE0, 0xF0, 0x3C, 0x1F, 0xFF, 0x07, 0xFC, 0x1C, 0x1E, 0x07, 0x80, 0xE0, 0x18, 0x1E, 0x07, 0x03, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x07, 0xFF, 0xFC, 0x1F, 0xFF, 0xFC, 0x1E, 0x0F, 0x81, 0xC1, 0xF8, 0x3C, 0x1F, 0xFF, 0x07, 0xFC, 0x18, 0x3F, 0x07, 0x81, 0xF0, 0x3C, 0x1C, 0x0F, 0x81, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x07, 0x80, 0x3C, 0x1F, 0xFF, 0xFC, 0x1E, 0x0F, 0xC1, 0xC1, 0xF8, 0x3C, 0x1F, 0xFF, 0x07, 0xFC, 0x18, 0x3F, 0x07, 0x83, 0xF0, 0x7C, 0x1C, 0x1F, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0x80, 0x3C, 0x1F, 0xFF, 0x00, 0x1E, 0x0F, 0xC1, 0xC0, 0x00, 0x3C, 0x1F, 0xFF, 0x07, 0xFC, 0x18, 0x00, 0x07, 0x83, 0xF0, 0x7C, 0x1C, 0x1F, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0x80, 0x3C, 0x1F, 0xFC, 0x00, 0x1E, 0x0F, 0xC1, 0xC0, 0x00, 0x3C, 0x1F, 0xFF, 0x07, 0xFC, 0x18, 0x00, 0x07, 0x83, 0xF0, 0x7C, 0x1C, 0x1F, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0x80, 0x3C, 0x1F, 0xF8, 0x00, 0x1E, 0x0F, 0xC1, 0xC0, 0x00, 0x3C, 0x1F, 0xFF, 0x07, 0xF8, 0x18, 0x00, 0x07, 0x83, 0xF0, 0x7C, 0x1C, 0x1F, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x1F, 0xF0, 0x3C, 0x1E, 0x0F, 0xC1, 0xC1, 0xFF, 0xFC, 0x1F, 0xFF, 0x07, 0xF8, 0x38, 0x3F, 0xFF, 0x83, 0xF0, 0x7C, 0x1C, 0x1F, 0xC1, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x1F, 0xF0, 0x7C, 0x1E, 0x0F, 0x81, 0xC1, 0xFF, 0xFC, 0x1F, 0xFF, 0x07, 0xF0, 0x38, 0x3F, 0xFF, 0x83, 0xF0, 0x7C, 0x1C, 0x0F, 0x81, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFC, 0x1F, 0xF0, 0x78, 0x1E, 0x03, 0x83, 0xE0, 0xFE, 0x7C, 0x1F, 0xFF, 0x07, 0xC0, 0x7C, 0x1F, 0xCF, 0x83, 0xF0, 0x7C, 0x1E, 0x07, 0x03, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFC, 0x00, 0x10, 0x00, 0x1E, 0x00, 0x03, 0xE0, 0x00, 0x7C, 0x1F, 0xFF, 0x00, 0x00, 0x7C, 0x00, 0x0F, 0x83, 0xF0, 0x7C, 0x1E, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFC, 0x00, 0x18, 0x00, 0x1E, 0x00, 0x07, 0xF0, 0x00, 0x7C, 0x1F, 0xFF, 0x00, 0x00, 0xFE, 0x00, 0x0F, 0x83, 0xF0, 0x7C, 0x1F, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFC, 0x00, 0x18, 0x02, 0x1E, 0x10, 0x0F, 0xF8, 0x00, 0x7C, 0x1F, 0xFF, 0x00, 0x03, 0xFF, 0x00, 0x0F, 0x83, 0xF0, 0x7C, 0x1F, 0x80, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0x80, 0x03, 0xFF, 0xFC, 0x00, 0x1E, 0x06, 0x1E, 0x1C, 0x1F, 0xFE, 0x01, 0xFC, 0x1F, 0xFF, 0x00, 0x1F, 0xFF, 0xC0, 0x3F, 0x83, 0xF0, 0x7C, 0x1F, 0xE0, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
|
||||||
|
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned char PreloadImage[176][33];
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif //__IMAGE_PDLOGO_H_
|
243
epaper/bsp.c
Normal file
243
epaper/bsp.c
Normal file
@ -0,0 +1,243 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright(C) 2012, Embedded Artists AB
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
* Software that is described herein is for illustrative purposes only
|
||||||
|
* which provides customers with programming information regarding the
|
||||||
|
* products. This software is supplied "AS IS" without any warranties.
|
||||||
|
* Embedded Artists AB assumes no responsibility or liability for the
|
||||||
|
* use of the software, conveys no license or title under any patent,
|
||||||
|
* copyright, or mask work right to the product. Embedded Artists AB
|
||||||
|
* reserves the right to make changes in the software without
|
||||||
|
* notification. Embedded Artists AB also make no representation or
|
||||||
|
* warranty that such application will be suitable for the specified
|
||||||
|
* use without further testing or modification.
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Includes
|
||||||
|
*****************************************************************************/
|
||||||
|
#include "bsp.h"
|
||||||
|
#include <wiringPi.h>
|
||||||
|
#include <wiringPiI2C.h>
|
||||||
|
#include <wiringPiSPI.h>
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Typedefs and defines
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#define LM75A_I2C_ADDR 0x49 //(0x49 << 1)
|
||||||
|
#define LM75A_CMD_TEMP 0x00
|
||||||
|
#define DISPLAY_BUF_SZ (256)
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Local variables
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
// I2C device handle
|
||||||
|
static int gI2cFd = -1;
|
||||||
|
|
||||||
|
// mapping between Serial Expansion connector and Raspberry Pi
|
||||||
|
// GPIOs. Raspberry Pi GPIO numbering according to wiringPi
|
||||||
|
static int pinMap[BSP_PIN_SZ*2] =
|
||||||
|
{
|
||||||
|
// [SEC] | [PI GPIO#]
|
||||||
|
BSP_PIN_6, 6, // CS
|
||||||
|
BSP_PIN_7, 0, // Busy
|
||||||
|
BSP_PIN_8, -1, // Not Used
|
||||||
|
BSP_PIN_11, 1, // PWM
|
||||||
|
BSP_PIN_12, 5, // RST
|
||||||
|
BSP_PIN_13, 3, // PWR_Ctrl
|
||||||
|
BSP_PIN_14, 4, // DISCHARGE
|
||||||
|
};
|
||||||
|
|
||||||
|
// buffer used when writing to display via SPI
|
||||||
|
static uint8_t displayBuf[DISPLAY_BUF_SZ];
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Local functions
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
static int32_t lm75a_readTemp(void)
|
||||||
|
{
|
||||||
|
uint8_t temp[2];
|
||||||
|
int16_t t = 0;
|
||||||
|
|
||||||
|
wiringPiI2CWrite(gI2cFd, LM75A_CMD_TEMP);
|
||||||
|
temp[0] = wiringPiI2CRead(gI2cFd);
|
||||||
|
temp[1] = wiringPiI2CRead(gI2cFd);
|
||||||
|
|
||||||
|
|
||||||
|
// 11 MSB bits used. Celcius is calculated as Temp data * 1/8
|
||||||
|
t = ((temp[0] << 8) | (temp[1]));
|
||||||
|
|
||||||
|
return ((t * 100) >> 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Public functions
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* BSP initialize function. Must be called before any other BSP related
|
||||||
|
* functions.
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
int bsp_init(void)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (wiringPiSetup() < 0) {
|
||||||
|
printf("bsp_init: failed to initialize wiringPi\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((gI2cFd = wiringPiI2CSetup(LM75A_I2C_ADDR)) < 0) {
|
||||||
|
printf("bsp_init: failed to initialize I2C\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (wiringPiSPISetup(0, 1000000) < 0) {
|
||||||
|
printf("bsp_init: failed to initialize SPI\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Get number of milliseconds
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
uint32_t bsp_getMsTicks(void)
|
||||||
|
{
|
||||||
|
return millis();
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Initialize SPI
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
void bsp_spiInit(void)
|
||||||
|
{
|
||||||
|
// initialized in bsp_init
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Write data to the display
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
void bsp_writeToDisplay(uint8_t* data, uint16_t len)
|
||||||
|
{
|
||||||
|
if (len > DISPLAY_BUF_SZ) {
|
||||||
|
printf("bsp_writeToDisplay: ERROR len=%d > %d\n", len, DISPLAY_BUF_SZ);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(displayBuf, data, len);
|
||||||
|
wiringPiSPIDataRW(0, displayBuf, len);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Delay specified number of milliseconds
|
||||||
|
*
|
||||||
|
* Params:
|
||||||
|
* [in] ms - number of milliseconds to delay
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
void bsp_delayMs(uint32_t ms)
|
||||||
|
{
|
||||||
|
delay(ms);
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Delay specified number of microseconds
|
||||||
|
*
|
||||||
|
* Params:
|
||||||
|
* [in] us - number of microseconds to delay
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
void bsp_delayUs(uint32_t us)
|
||||||
|
{
|
||||||
|
delayMicroseconds(us);
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Read temperature
|
||||||
|
*
|
||||||
|
* Params:
|
||||||
|
* [out] temperature - (int16_t) temperature in Celsius
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
int16_t bsp_getTemp(void)
|
||||||
|
{
|
||||||
|
lm75a_readTemp();
|
||||||
|
bsp_delayMs(5);
|
||||||
|
return (int16_t)(lm75a_readTemp()/100);
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Set the PIN mode of a specific pin
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
void bsp_pinMode(bsp_pin_t pin, bps_pinMode_t mode)
|
||||||
|
{
|
||||||
|
int m = INPUT;
|
||||||
|
int p = 0;
|
||||||
|
|
||||||
|
if (pin >= BSP_PIN_SZ) return;
|
||||||
|
|
||||||
|
if (mode == BSP_PINMODE_OUTPUT) {
|
||||||
|
m = OUTPUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
p = pinMap[pin*2+1];
|
||||||
|
|
||||||
|
pinMode(p, m);
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* Set PIN to high (1) of low (0) value
|
||||||
|
*
|
||||||
|
*****************************************************************************/
|
||||||
|
void bsp_pinOut(bsp_pin_t pin, int value)
|
||||||
|
{
|
||||||
|
int p = 0;
|
||||||
|
int v = LOW;
|
||||||
|
|
||||||
|
if (pin >= BSP_PIN_SZ) return;
|
||||||
|
|
||||||
|
if (value != 0) {
|
||||||
|
v = HIGH;
|
||||||
|
}
|
||||||
|
|
||||||
|
p = pinMap[pin*2+1];
|
||||||
|
|
||||||
|
digitalWrite(p, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
61
epaper/bsp.h
Normal file
61
epaper/bsp.h
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/*****************************************************************************
|
||||||
|
*
|
||||||
|
* Copyright(C) 2012, Embedded Artists AB
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
* Software that is described herein is for illustrative purposes only
|
||||||
|
* which provides customers with programming information regarding the
|
||||||
|
* products. This software is supplied "AS IS" without any warranties.
|
||||||
|
* Embedded Artists AB assumes no responsibility or liability for the
|
||||||
|
* use of the software, conveys no license or title under any patent,
|
||||||
|
* copyright, or mask work right to the product. Embedded Artists AB
|
||||||
|
* reserves the right to make changes in the software without
|
||||||
|
* notification. Embedded Artists AB also make no representation or
|
||||||
|
* warranty that such application will be suitable for the specified
|
||||||
|
* use without further testing or modification.
|
||||||
|
*****************************************************************************/
|
||||||
|
#ifndef __BSP_H__
|
||||||
|
#define __BSP_H__
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Defines and typedefs
|
||||||
|
*****************************************************************************/
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
// pin numbering is for the Serial Expansion Connector
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
BSP_PIN_6 = 0,
|
||||||
|
BSP_PIN_7,
|
||||||
|
BSP_PIN_8,
|
||||||
|
BSP_PIN_11,
|
||||||
|
BSP_PIN_12,
|
||||||
|
BSP_PIN_13,
|
||||||
|
BSP_PIN_14,
|
||||||
|
BSP_PIN_SZ // must be last
|
||||||
|
} bsp_pin_t;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
BSP_PINMODE_INPUT = 0,
|
||||||
|
BSP_PINMODE_OUTPUT
|
||||||
|
} bps_pinMode_t;
|
||||||
|
|
||||||
|
/******************************************************************************
|
||||||
|
* Prototypes
|
||||||
|
*****************************************************************************/
|
||||||
|
int bsp_init(void);
|
||||||
|
void bsp_spiInit(void);
|
||||||
|
void bsp_writeToDisplay(uint8_t* data, uint16_t len);
|
||||||
|
uint32_t bsp_getMsTicks(void);
|
||||||
|
void bsp_delayMs(uint32_t ms);
|
||||||
|
void bsp_delayUs(uint32_t us);
|
||||||
|
int16_t bsp_getTemp(void);
|
||||||
|
void bsp_pinMode(bsp_pin_t pin, bps_pinMode_t mode);
|
||||||
|
void bsp_pinOut(bsp_pin_t pin, int value);
|
||||||
|
|
||||||
|
#endif //__BSP_H__
|
192
logger.cpp
Normal file
192
logger.cpp
Normal file
@ -0,0 +1,192 @@
|
|||||||
|
// (c) 2015 Ralf Ramsauer - Logger class from the sdfs project
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <cstdarg>
|
||||||
|
#include <ctime>
|
||||||
|
#include <iomanip>
|
||||||
|
#include <sstream>
|
||||||
|
#include <map>
|
||||||
|
#include <mutex>
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <Windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "logger.h"
|
||||||
|
|
||||||
|
using std::map;
|
||||||
|
using std::string;
|
||||||
|
using std::mutex;
|
||||||
|
using std::lock_guard;
|
||||||
|
using std::move;
|
||||||
|
|
||||||
|
using std::cerr;
|
||||||
|
using std::endl;
|
||||||
|
|
||||||
|
#ifdef USE_COLORIZED_LOGS
|
||||||
|
#ifdef _WIN32 // If Windows, Use Windows Terminal coloring
|
||||||
|
const static map<LogLevel, WORD> colorAttribute = {
|
||||||
|
{LogLevel::error, FOREGROUND_RED },
|
||||||
|
{LogLevel::warning, FOREGROUND_RED | FOREGROUND_GREEN },
|
||||||
|
{LogLevel::notice, FOREGROUND_BLUE },
|
||||||
|
{LogLevel::info, FOREGROUND_GREEN },
|
||||||
|
{LogLevel::debug, FOREGROUND_BLUE | FOREGROUND_RED },
|
||||||
|
{LogLevel::debug2, FOREGROUND_BLUE | FOREGROUND_RED },
|
||||||
|
};
|
||||||
|
#else // Use ANSI Escape sequences
|
||||||
|
const static map<LogLevel, string> prefix_ansicolor = {
|
||||||
|
{LogLevel::error, "\x1b[1m\x1b[31m" },
|
||||||
|
{LogLevel::warning, "\x1b[1m\x1b[33m" },
|
||||||
|
{LogLevel::notice, "\x1b[1m\x1b[34m" },
|
||||||
|
{LogLevel::info, "\x1b[1m\x1b[32m" },
|
||||||
|
{LogLevel::debug, "\x1b[1m\x1b[35m" },
|
||||||
|
{LogLevel::debug2, "\x1b[1m\x1b[36m" },
|
||||||
|
};
|
||||||
|
|
||||||
|
const static string suffix_ansireset = "\x1b[0m";
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const static map<LogLevel, string> logLevel = {
|
||||||
|
{LogLevel::error, "ERROR " },
|
||||||
|
{LogLevel::warning, "WARNING" },
|
||||||
|
{LogLevel::notice, "NOTICE " },
|
||||||
|
{LogLevel::info, "INFO " },
|
||||||
|
{LogLevel::debug, "DEBUG " },
|
||||||
|
{LogLevel::debug2, "DEBUG2 " },
|
||||||
|
};
|
||||||
|
|
||||||
|
Logger::Logger(const LogLevel level) :
|
||||||
|
_level(level),
|
||||||
|
_ostreamMutex()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger::~Logger()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger &Logger::get()
|
||||||
|
{
|
||||||
|
static Logger l(DEFAULT_LOG_LEVEL);
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Logger::operator ()(const std::string &message, const LogLevel level) const
|
||||||
|
{
|
||||||
|
if(level > _level)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::ostringstream prefix;
|
||||||
|
|
||||||
|
auto t = std::time(nullptr);
|
||||||
|
auto tm = *std::localtime(&t);
|
||||||
|
|
||||||
|
#if defined(USE_COLORIZED_LOGS) && !defined(_WIN32)
|
||||||
|
prefix << prefix_ansicolor.at(level);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// GCC does not support put_time :-(
|
||||||
|
/*stringstream ss;
|
||||||
|
ss << std::put_time(&tm, "%d-%m-%Y %H-%M-%S");
|
||||||
|
prefix = "[" + ss.str() + "] ";*/
|
||||||
|
|
||||||
|
const size_t BUFFER_SIZE = 80;
|
||||||
|
char timeBuffer[BUFFER_SIZE];
|
||||||
|
std::strftime(timeBuffer, BUFFER_SIZE, "%Y-%m-%d %H:%M:%S", &tm);
|
||||||
|
prefix << "[" << timeBuffer << "] -- " << logLevel.at(level) << " :: ";
|
||||||
|
|
||||||
|
// Critical section
|
||||||
|
{
|
||||||
|
lock_guard<mutex> lock(_ostreamMutex);
|
||||||
|
|
||||||
|
#if defined(USE_COLORIZED_LOGS) && !defined(_WIN32)
|
||||||
|
cerr << prefix.str() << message << suffix_ansireset << endl;
|
||||||
|
cerr.flush();
|
||||||
|
#elif defined(USE_COLORIZED_LOGS) && defined(_WIN32)
|
||||||
|
|
||||||
|
// taken from GTEST
|
||||||
|
const HANDLE stdout_handle = GetStdHandle(STD_ERROR_HANDLE);
|
||||||
|
|
||||||
|
// Gets the current text color.
|
||||||
|
CONSOLE_SCREEN_BUFFER_INFO buffer_info;
|
||||||
|
GetConsoleScreenBufferInfo(stdout_handle, &buffer_info);
|
||||||
|
const WORD old_color_attrs = buffer_info.wAttributes;
|
||||||
|
|
||||||
|
// We need to flush the stream buffers into the console before each
|
||||||
|
// SetConsoleTextAttribute call lest it affect the text that is already
|
||||||
|
// printed but has not yet reached the console.
|
||||||
|
cerr.flush();
|
||||||
|
SetConsoleTextAttribute(stdout_handle,
|
||||||
|
colorAttribute.at(level) | FOREGROUND_INTENSITY);
|
||||||
|
|
||||||
|
cerr << prefix.str() << message << endl;
|
||||||
|
cerr.flush();
|
||||||
|
|
||||||
|
// Restores the text color.
|
||||||
|
SetConsoleTextAttribute(stdout_handle, old_color_attrs);
|
||||||
|
|
||||||
|
#else
|
||||||
|
cerr << prefix.str() << message << endl;
|
||||||
|
cerr.flush();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Logger::operator ()(const std::ostringstream &message, const LogLevel level) const
|
||||||
|
{
|
||||||
|
(*this)(message.str(), level);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Logger::operator ()(const LogLevel level, const char* format, ...) const
|
||||||
|
{
|
||||||
|
if(level > _level)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
va_list argp;
|
||||||
|
char* message = nullptr;
|
||||||
|
|
||||||
|
// determine buffer length
|
||||||
|
va_start(argp, format);
|
||||||
|
int size = vsnprintf(nullptr, 0, format, argp) + 1;
|
||||||
|
va_end(argp);
|
||||||
|
|
||||||
|
if (size >= 0)
|
||||||
|
{
|
||||||
|
message = (char*)malloc(size);
|
||||||
|
if (message == nullptr)
|
||||||
|
{
|
||||||
|
(*this)("[LOGGER] CRITICAL: MEMORY ALLOCATION ERROR",
|
||||||
|
LogLevel::error);
|
||||||
|
}
|
||||||
|
|
||||||
|
va_start(argp,format);
|
||||||
|
vsnprintf(message, size, format, argp);
|
||||||
|
va_end(argp);
|
||||||
|
|
||||||
|
(*this)(string(message), level);
|
||||||
|
|
||||||
|
free(message);
|
||||||
|
} else {
|
||||||
|
(*this)("[LOGGER] CRITICAL: VSNPRINTF ERROR",
|
||||||
|
LogLevel::error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Logger::level(const LogLevel level)
|
||||||
|
{
|
||||||
|
_level = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
LogLevel Logger::level() const
|
||||||
|
{
|
||||||
|
return _level;
|
||||||
|
}
|
||||||
|
|
||||||
|
void foo(void) {
|
||||||
|
}
|
60
logger.h
Normal file
60
logger.h
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#ifndef LOGGER_H
|
||||||
|
#define LOGGER_H
|
||||||
|
|
||||||
|
#include <ostream>
|
||||||
|
#include <string>
|
||||||
|
#include <sstream>
|
||||||
|
#include <mutex>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The LogLevel enum
|
||||||
|
*/
|
||||||
|
enum class LogLevel : unsigned char
|
||||||
|
{
|
||||||
|
off, /// disable logging
|
||||||
|
error, /// error conditions
|
||||||
|
warning, /// warning conditions
|
||||||
|
notice, /// normal but significant conditions
|
||||||
|
info, /// informational messages
|
||||||
|
debug, /// debug-level messages
|
||||||
|
debug2 /// more debug-level messages
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief The Logger class
|
||||||
|
*
|
||||||
|
* The logger class is a thread-safe class which is used for formatting and forwarding
|
||||||
|
* log messages.
|
||||||
|
*/
|
||||||
|
class Logger final {
|
||||||
|
|
||||||
|
public:
|
||||||
|
static Logger &get();
|
||||||
|
|
||||||
|
/// Log a string
|
||||||
|
void operator() (const std::string &message, const LogLevel level = LogLevel::debug) const;
|
||||||
|
|
||||||
|
/// Log a ostringstream
|
||||||
|
void operator() (const std::ostringstream &message, const LogLevel level = LogLevel::debug) const;
|
||||||
|
|
||||||
|
/// Log a format string
|
||||||
|
void operator() (const LogLevel level, const char* format, ...) const;
|
||||||
|
|
||||||
|
/// Set minimum required log level to generate output
|
||||||
|
void level(const LogLevel level);
|
||||||
|
/// Get minimum required log level to generate output
|
||||||
|
LogLevel level() const;
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Constructor
|
||||||
|
* @param level Minimum required log level to generate output
|
||||||
|
*/
|
||||||
|
Logger(const LogLevel level);
|
||||||
|
~Logger();
|
||||||
|
|
||||||
|
LogLevel _level;
|
||||||
|
mutable std::mutex _ostreamMutex;
|
||||||
|
};
|
||||||
|
#endif
|
236
logic.cpp
Normal file
236
logic.cpp
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
#include <sys/stat.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include <cstdlib>
|
||||||
|
#include <json/json.h>
|
||||||
|
|
||||||
|
#include "util.h"
|
||||||
|
#include "logic.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
const string Logic::_lockPagePrefix = LOCKPAGE_PREFIX;
|
||||||
|
const string Logic::_fifoLocation = FIFO_LOCATION;
|
||||||
|
|
||||||
|
Logic &Logic::get()
|
||||||
|
{
|
||||||
|
static Logic l;
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
|
||||||
|
Logic::Logic() :
|
||||||
|
_logger(Logger::get()),
|
||||||
|
_door(Door::get()),
|
||||||
|
_epaper(Epaper::get())
|
||||||
|
{
|
||||||
|
srand(time(NULL));
|
||||||
|
|
||||||
|
_logger(LogLevel::debug, "Creating Fifo file");
|
||||||
|
if (access(_fifoLocation.c_str(), F_OK) == 0)
|
||||||
|
{
|
||||||
|
_logger(LogLevel::warning, "Fifo file aready existing, trying to delete");
|
||||||
|
if (unlink(_fifoLocation.c_str()) != 0)
|
||||||
|
{
|
||||||
|
throw("Unable to delete Fifo file");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (mkfifo(_fifoLocation.c_str(), 0660) != 0)
|
||||||
|
{
|
||||||
|
throw("Unable to create Fifo");
|
||||||
|
}
|
||||||
|
|
||||||
|
_fifoHandle = open(_fifoLocation.c_str(), O_RDWR | O_NONBLOCK);
|
||||||
|
if (_fifoHandle == -1)
|
||||||
|
{
|
||||||
|
throw("Unable to open Fifo");
|
||||||
|
}
|
||||||
|
|
||||||
|
_createNewToken(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
Logic::~Logic()
|
||||||
|
{
|
||||||
|
if (_fifoHandle != -1)
|
||||||
|
{
|
||||||
|
close(_fifoHandle);
|
||||||
|
}
|
||||||
|
|
||||||
|
_logger(LogLevel::debug, "Removing Fifo file");
|
||||||
|
if (unlink(_fifoLocation.c_str()) != 0)
|
||||||
|
{
|
||||||
|
throw("Unable to delete Fifo file");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Logic::_parseRequest(const string &str)
|
||||||
|
{
|
||||||
|
_logger("Parsing request...");
|
||||||
|
Json::Reader reader;
|
||||||
|
Json::Value root;
|
||||||
|
|
||||||
|
bool suc = reader.parse(str, root, false);
|
||||||
|
if (!suc)
|
||||||
|
{
|
||||||
|
_logger(LogLevel::error, "Request ist not valid JSON!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string action, user, password, host, token;
|
||||||
|
bool authenticated;
|
||||||
|
try {
|
||||||
|
action = getJsonOrFail<string>(root, "action");
|
||||||
|
host = getJsonOrFail<string>(root, "host");
|
||||||
|
authenticated = getJsonOrFail<bool>(root, "authenticated");
|
||||||
|
string user, password;
|
||||||
|
if (authenticated == true)
|
||||||
|
{
|
||||||
|
user = getJsonOrFail<string>(root, "user");
|
||||||
|
password = getJsonOrFail<string>(root, "password");
|
||||||
|
token = getJsonOrFail<string>(root, "token");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
_logger(LogLevel::warning, "Error parsing JSON");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("Action: %s\nAuthenticated: %d\nHost: %s\n",action.c_str(), authenticated, host.c_str());
|
||||||
|
printf("User: %s\nPassword: %s\nToken: %s\n",user.c_str(), password.c_str(), token.c_str());
|
||||||
|
|
||||||
|
if (authenticated == true)
|
||||||
|
{
|
||||||
|
if (_checkToken(token) == false)
|
||||||
|
{
|
||||||
|
_logger(LogLevel::error, "User provided invalid token");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_checkLDAP(user, password) == false)
|
||||||
|
{
|
||||||
|
_logger(LogLevel::error, "invalid LDAP credentials");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (action == "lock")
|
||||||
|
{
|
||||||
|
_lock();
|
||||||
|
} else if (action == "unlock") {
|
||||||
|
_unlock();
|
||||||
|
} else {
|
||||||
|
_logger(LogLevel::error, "Unknown Action: %s", action.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Logic::_lock()
|
||||||
|
{
|
||||||
|
if (_state == LOCKED)
|
||||||
|
{
|
||||||
|
_logger(LogLevel::warning, "Unable to lock: already locked");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_door.lock();
|
||||||
|
_state = LOCKED;
|
||||||
|
_createNewToken(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Logic::_unlock()
|
||||||
|
{
|
||||||
|
if (_state == UNLOCKED)
|
||||||
|
{
|
||||||
|
_logger(LogLevel::warning, "Unable to unlock: already unlocked");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_door.unlock();
|
||||||
|
_state = UNLOCKED;
|
||||||
|
_createNewToken(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Logic::run()
|
||||||
|
{
|
||||||
|
struct timeval tv;
|
||||||
|
fd_set set;
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
FD_ZERO(&set);
|
||||||
|
FD_SET(_fifoHandle, &set);
|
||||||
|
tv.tv_sec = _tokenTimeout;
|
||||||
|
tv.tv_usec = 0;
|
||||||
|
|
||||||
|
int i = select(_fifoHandle+1, &set, nullptr, nullptr, &tv);
|
||||||
|
if (i == 0)
|
||||||
|
{
|
||||||
|
_createNewToken(true);
|
||||||
|
continue;
|
||||||
|
} else if (i == -1) {
|
||||||
|
throw "Fifo select() failed";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!FD_ISSET(_fifoHandle, &set))
|
||||||
|
{
|
||||||
|
_logger(LogLevel::warning, "select(): Not my fd");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
string payload;
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
constexpr int BUFSIZE = 2;
|
||||||
|
char tmp[BUFSIZE];
|
||||||
|
i = read(_fifoHandle, tmp, BUFSIZE);
|
||||||
|
if (i > 0) {
|
||||||
|
payload += string(tmp, i);
|
||||||
|
} else {
|
||||||
|
if (errno == EWOULDBLOCK)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
throw "read() fifo failed";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_parseRequest(payload);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Logic::_checkToken(const string &strToken)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
uint64_t token = toUint64(strToken);
|
||||||
|
if (token == _curToken || (_prevValid == true && token == _prevToken))
|
||||||
|
{
|
||||||
|
_logger(LogLevel::info, "Token check successful");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (const char* const &ex)
|
||||||
|
{
|
||||||
|
_logger(LogLevel::error, "Check Token failed for token \"%s\" (expected %s): %s", strToken.c_str(), toHexString(_curToken).c_str(), ex);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Logic::_checkLDAP(const string &user, const string &password)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Logic::_createNewToken(const bool stillValid)
|
||||||
|
{
|
||||||
|
_prevToken = _curToken;
|
||||||
|
_prevValid = stillValid;
|
||||||
|
|
||||||
|
_curToken = (((uint64_t)rand())<<32) | ((uint64_t)rand());
|
||||||
|
|
||||||
|
_epaper.draw(_lockPagePrefix + toHexString(_curToken));
|
||||||
|
|
||||||
|
ostringstream message;
|
||||||
|
message << "New Token generated: " << toHexString(_curToken) << " old Token: " << toHexString(_prevToken) << " is " << (_prevValid?"still":"not") << " valid";
|
||||||
|
_logger(message, LogLevel::info);
|
||||||
|
}
|
56
logic.h
Normal file
56
logic.h
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
#ifndef LOGIC_H
|
||||||
|
#define LOGIC_H
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
#include <string>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include "epaper.h"
|
||||||
|
#include "door.h"
|
||||||
|
#include "logger.h"
|
||||||
|
|
||||||
|
class Logic
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
static Logic &get();
|
||||||
|
~Logic();
|
||||||
|
|
||||||
|
void run();
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
Logic();
|
||||||
|
void _parseRequest(const std::string &str);
|
||||||
|
|
||||||
|
void _lock();
|
||||||
|
void _unlock();
|
||||||
|
|
||||||
|
bool _checkToken(const std::string &token);
|
||||||
|
bool _checkLDAP(const std::string &user, const std::string &password);
|
||||||
|
|
||||||
|
void _createNewToken(const bool stillValid);
|
||||||
|
|
||||||
|
const Logger &_logger;
|
||||||
|
Door &_door;
|
||||||
|
Epaper &_epaper;
|
||||||
|
|
||||||
|
using Token = uint64_t;
|
||||||
|
|
||||||
|
Token _curToken;
|
||||||
|
bool _prevValid = { false };
|
||||||
|
Token _prevToken;
|
||||||
|
|
||||||
|
|
||||||
|
const static std::string _lockPagePrefix;
|
||||||
|
const static std::string _fifoLocation;
|
||||||
|
|
||||||
|
int _fifoHandle = {-1};
|
||||||
|
|
||||||
|
static constexpr int _tokenTimeout = TOKEN_TIMEOUT;
|
||||||
|
|
||||||
|
enum {LOCKED, UNLOCKED} _state = { LOCKED };
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
31
main.cpp
Normal file
31
main.cpp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#include <iostream>
|
||||||
|
#include <sstream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
#include "logic.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
const static Logger &l = Logger::get();
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
l(LogLevel::notice, "Starting doorlockd");
|
||||||
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
Logic &logic = Logic::get();
|
||||||
|
logic.run();
|
||||||
|
}
|
||||||
|
catch (const char* const &ex) {
|
||||||
|
ostringstream str;
|
||||||
|
str << "FATAL ERROR: " << ex;
|
||||||
|
l(str, LogLevel::error);
|
||||||
|
}
|
||||||
|
|
||||||
|
Door::get().lock();
|
||||||
|
l(LogLevel::notice, "Doorlockd stopped");
|
||||||
|
return 0;
|
||||||
|
}
|
486
template.h
Normal file
486
template.h
Normal file
@ -0,0 +1,486 @@
|
|||||||
|
static char template_lock[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xE0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xC0, 0xFF, 0xFF, 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, 0xE0,
|
||||||
|
0xFF, 0xFF, 0x3F, 0xF0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x3F,
|
||||||
|
0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 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, 0xF8, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0x07, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 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, 0xFC, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 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, 0xC0,
|
||||||
|
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 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, 0xFE, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF,
|
||||||
|
0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x1F, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xF0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF,
|
||||||
|
0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xF0, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0xFC,
|
||||||
|
0xF1, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x7C, 0xC0, 0x7F, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xF0, 0x3F, 0x7C, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xF0, 0x3F, 0x3C, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x3C,
|
||||||
|
0x80, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x3C, 0x80, 0x7F, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xF0, 0x3F, 0x1C, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xF0, 0x3F, 0x1C, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0x1C,
|
||||||
|
0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x3C, 0x80, 0x7F, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xE0, 0x3F, 0x3C, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xF0, 0x3F, 0x3C, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0x7C,
|
||||||
|
0xC0, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x3F, 0x7C, 0xC0, 0x3F, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xE0, 0x3F, 0xFC, 0xE1, 0x3F, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x01, 0x00,
|
||||||
|
0xE0, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x00, 0xE0, 0xFF, 0xFF,
|
||||||
|
0xFF, 0x3F, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x10, 0x3E, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0x3F, 0x00,
|
||||||
|
0x00, 0xE0, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xD0, 0xF8, 0x01, 0xC0, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0xF8, 0x07,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xC7, 0x07,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x1F, 0x1F, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xC0, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xBC, 0xFF, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xF0, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x38, 0xFC, 0xE3, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0xFC, 0x3F, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xF3, 0x9F,
|
||||||
|
0x1F, 0x00, 0x00, 0x00, 0x38, 0x80, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC7, 0x7F, 0x1C, 0x00, 0x00,
|
||||||
|
0x00, 0x78, 0xE0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x3E, 0xFE, 0xF3, 0x00, 0x00, 0x00, 0x78, 0xF8,
|
||||||
|
0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xF8, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x1F, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xC7,
|
||||||
|
0xFF, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x00, 0x00,
|
||||||
|
0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xF8, 0x03, 0x00, 0xC0, 0xFF, 0x3F,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xF0, 0xFB, 0x0F, 0x00, 0xF0, 0xFF, 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,
|
||||||
|
0x3F, 0x7E, 0x00, 0xFC, 0xFF, 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, 0x00, 0x38, 0xF8, 0x01,
|
||||||
|
0xFF, 0xFF, 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, 0x00, 0x10, 0xC0, 0xEF, 0xFF, 0xFF, 0x07,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xF7, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xFE, 0xFF, 0x8F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF,
|
||||||
|
0xFF, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x7F, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xFE, 0xFF, 0xF3, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x7F,
|
||||||
|
0x80, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0x7C, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x80, 0xE1, 0xFF, 0x03, 0x00, 0xF0, 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, 0xB0,
|
||||||
|
0xC6, 0xFF, 0x00, 0x00, 0xC0, 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, 0x18, 0xE4, 0x3F, 0x00,
|
||||||
|
0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xBC, 0x07, 0x00, 0x00, 0x00, 0xF8,
|
||||||
|
0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x08, 0x8F, 0x01, 0x00, 0x00, 0x00, 0xC0, 0x3F, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,
|
||||||
|
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00, 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, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x60, 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, 0x1C,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x3E, 0x0C, 0x8C, 0xFF, 0xF1,
|
||||||
|
0x0F, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x18, 0x18, 0x70, 0x80, 0x7F, 0x0C, 0x86, 0xFF, 0xF1, 0x1F, 0xFC, 0x03,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x78,
|
||||||
|
0xC0, 0x41, 0x0C, 0x87, 0x01, 0x30, 0x38, 0x0E, 0x02, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x78, 0xC0, 0x00, 0x8C,
|
||||||
|
0x81, 0x01, 0x30, 0x30, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x18, 0x18, 0x78, 0xE0, 0x00, 0xCC, 0x81, 0x01, 0x30,
|
||||||
|
0x30, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x18, 0x18, 0x6C, 0x60, 0x00, 0x6C, 0x80, 0x01, 0x30, 0x30, 0x0E, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0xDC,
|
||||||
|
0x60, 0x00, 0x7C, 0x80, 0xFF, 0x30, 0x18, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x1F, 0xCC, 0x60, 0x00, 0xFC,
|
||||||
|
0x80, 0xFF, 0xF0, 0x1F, 0xF8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x18, 0x18, 0xCC, 0x60, 0x00, 0xDC, 0x81, 0x01, 0xF0,
|
||||||
|
0x0F, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x18, 0x18, 0xFE, 0x61, 0x00, 0x8C, 0x81, 0x01, 0x30, 0x1C, 0x00, 0x07,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0xFE,
|
||||||
|
0x61, 0x00, 0x8C, 0x83, 0x01, 0x30, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x86, 0xC1, 0x00, 0x0C,
|
||||||
|
0x87, 0x01, 0x30, 0x38, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x18, 0x18, 0x86, 0xC1, 0x61, 0x0C, 0x86, 0x01, 0x30,
|
||||||
|
0x30, 0x82, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x18, 0x18, 0x83, 0x83, 0x7F, 0x0C, 0x8C, 0xFF, 0x31, 0x60, 0xFE, 0x03,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x03,
|
||||||
|
0x03, 0x3E, 0x0C, 0x9C, 0xFF, 0x31, 0xE0, 0xFC, 0x01, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xC0, 0x03, 0x07, 0x63, 0x00, 0x0E, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x0F, 0x07,
|
||||||
|
0x63, 0x00, 0x1C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x0C, 0x0F, 0x63, 0x00, 0x1C,
|
||||||
|
0x06, 0x00, 0x00, 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, 0x1C, 0x0F, 0x63, 0x00, 0x18, 0x06, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x18, 0x18, 0x1B, 0x63, 0x00, 0x30, 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, 0x18, 0x18, 0x1B,
|
||||||
|
0x63, 0x00, 0xF0, 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, 0x18, 0x18, 0x13, 0x63, 0x00, 0xE0,
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x18, 0x18, 0x33, 0x63, 0x00, 0xC0, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x18, 0x18, 0x33, 0x63, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x63,
|
||||||
|
0x63, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x63, 0x63, 0x00, 0xC0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x38, 0x0C, 0xC3, 0x63, 0x00, 0xC0, 0x00, 0x00, 0x00,
|
||||||
|
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, 0x0E, 0xC3, 0x63, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x0F, 0x83,
|
||||||
|
0xE3, 0x7F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x03, 0x83, 0xE3, 0x7F, 0xC0,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
112
util.cpp
Normal file
112
util.cpp
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
int getJson(const Json::Value &root, const string &key)
|
||||||
|
{
|
||||||
|
auto val = root.get(key, Json::Value());
|
||||||
|
if (val.isInt())
|
||||||
|
return val.asInt();
|
||||||
|
throw "Json Type error";
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
string getJson(const Json::Value &root, const string &key)
|
||||||
|
{
|
||||||
|
auto val = root.get(key, Json::Value());
|
||||||
|
if (val.isString())
|
||||||
|
return val.asString();
|
||||||
|
throw "Json Type error";
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
size_t getJson(const Json::Value &root, const string &key)
|
||||||
|
{
|
||||||
|
auto val = root.get(key, Json::Value());
|
||||||
|
if (val.isInt())
|
||||||
|
return val.asUInt64();
|
||||||
|
throw "Json Type error";
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
bool getJson(const Json::Value &root, const string &key)
|
||||||
|
{
|
||||||
|
auto val = root.get(key, Json::Value());
|
||||||
|
if (val.isBool())
|
||||||
|
return val.asBool();
|
||||||
|
throw "Json Type error";
|
||||||
|
}
|
||||||
|
|
||||||
|
template <>
|
||||||
|
Json::Value getJson(const Json::Value &root, const string &key)
|
||||||
|
{
|
||||||
|
auto val = root.get(key, Json::Value());
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char nibble2hex(unsigned char input)
|
||||||
|
{
|
||||||
|
input &= 0xf;
|
||||||
|
|
||||||
|
if(input <= 9)
|
||||||
|
{
|
||||||
|
return input + '0';
|
||||||
|
}
|
||||||
|
|
||||||
|
return input - 0xA + 'A';
|
||||||
|
}
|
||||||
|
|
||||||
|
string toHexString(const uint64_t c)
|
||||||
|
{
|
||||||
|
string retval;
|
||||||
|
|
||||||
|
retval = nibble2hex((c>>60) & 0xF);
|
||||||
|
retval += nibble2hex((c>>56) & 0xF);
|
||||||
|
retval += nibble2hex((c>>52) & 0xF);
|
||||||
|
retval += nibble2hex((c>>48) & 0xF);
|
||||||
|
retval += nibble2hex((c>>44) & 0xF);
|
||||||
|
retval += nibble2hex((c>>40) & 0xF);
|
||||||
|
retval += nibble2hex((c>>36) & 0xF);
|
||||||
|
retval += nibble2hex((c>>32) & 0xF);
|
||||||
|
retval += nibble2hex((c>>28) & 0xF);
|
||||||
|
retval += nibble2hex((c>>24) & 0xF);
|
||||||
|
retval += nibble2hex((c>>20) & 0xF);
|
||||||
|
retval += nibble2hex((c>>16) & 0xF);
|
||||||
|
retval += nibble2hex((c>>12) & 0xF);
|
||||||
|
retval += nibble2hex((c>> 8) & 0xF);
|
||||||
|
retval += nibble2hex((c>> 4) & 0xF);
|
||||||
|
retval += nibble2hex((c ) & 0xF);
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
unsigned char hex2uchar(const char input)
|
||||||
|
{
|
||||||
|
if(input >= '0' && input <= '9') {
|
||||||
|
return input - '0';
|
||||||
|
} else if(input >= 'A' && input <= 'F') {
|
||||||
|
return input - 'A' + 10;
|
||||||
|
} else if(input >= 'a' && input <= 'f') {
|
||||||
|
return input - 'a' + 10;
|
||||||
|
}
|
||||||
|
throw("Malformed hexadecimal input");
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64_t toUint64(const string &s)
|
||||||
|
{
|
||||||
|
if (s.length() != (64/4))
|
||||||
|
{
|
||||||
|
throw("Hex string has invalid length");
|
||||||
|
}
|
||||||
|
|
||||||
|
uint64_t retval = 0;
|
||||||
|
|
||||||
|
for (int i = 0 ; i < (64/4) ; i++)
|
||||||
|
{
|
||||||
|
retval <<= 4;
|
||||||
|
retval |= hex2uchar(s.at(i))&0xf;
|
||||||
|
}
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
25
util.h
Normal file
25
util.h
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#ifndef UTIL_H
|
||||||
|
#define UTIL_H
|
||||||
|
|
||||||
|
#include <algorithm>
|
||||||
|
#include <json/json.h>
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T getJson(const Json::Value &root, const std::string &key);
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
T getJsonOrFail(const Json::Value &root, const std::string &key)
|
||||||
|
{
|
||||||
|
const auto members = root.getMemberNames();
|
||||||
|
if (std::find(members.begin(), members.end(), key) == members.end())
|
||||||
|
{
|
||||||
|
throw "Json key not existing";
|
||||||
|
}
|
||||||
|
|
||||||
|
return getJson<T>(root, key);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string toHexString(uint64_t c);
|
||||||
|
uint64_t toUint64(const std::string &s);
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user