diff options
-rw-r--r-- | backends/gp32/h/defines.h | 71 | ||||
-rw-r--r-- | backends/gp32/h/gpdef.h | 100 | ||||
-rw-r--r-- | backends/gp32/h/gpfont.h | 67 | ||||
-rw-r--r-- | backends/gp32/h/gpfont_port.h | 11 | ||||
-rw-r--r-- | backends/gp32/h/gpfontres.dat | 650 | ||||
-rw-r--r-- | backends/gp32/h/gpgraphic.h | 176 | ||||
-rw-r--r-- | backends/gp32/h/gpmem.h | 65 | ||||
-rw-r--r-- | backends/gp32/h/gpmm.h | 45 | ||||
-rw-r--r-- | backends/gp32/h/gpos_def.h | 74 | ||||
-rw-r--r-- | backends/gp32/h/gpsockdef.h | 65 | ||||
-rw-r--r-- | backends/gp32/h/gpstdio.h | 145 | ||||
-rw-r--r-- | backends/gp32/h/gpstdlib.h | 55 | ||||
-rw-r--r-- | backends/gp32/h/initval_port.h | 37 |
13 files changed, 1561 insertions, 0 deletions
diff --git a/backends/gp32/h/defines.h b/backends/gp32/h/defines.h new file mode 100644 index 0000000000..d842bd1908 --- /dev/null +++ b/backends/gp32/h/defines.h @@ -0,0 +1,71 @@ +/* defines.h */ + +#ifndef __DEFINES_H__ +#define __DEFINES_H__ + +typedef unsigned char u8; +typedef signed char s8; +typedef unsigned short u16; +typedef short s16; +typedef unsigned int u32; +typedef int s32; + +//#define LITTLE_ENDIAN +/* +typedef union + { +#ifdef LITTLE_ENDIAN + struct + { + u8 low; + u8 high; + } byte; +#else + struct + { + u8 high; + u8 low; + } byte; +#endif + u16 word; + } word; + + +typedef union + { +#ifdef LITTLE_ENDIAN + struct + { + word low; + word high; + } word; +#else + struct + { + word high; + word low; + } word; +#endif + u32 dword; + } dword; + + + + + +#ifndef BOOL +#define BOOL int +#endif +#ifndef TRUE +#define TRUE 1 +#endif +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef NULL +#define NULL 0 +#endif +*/ +#endif + diff --git a/backends/gp32/h/gpdef.h b/backends/gp32/h/gpdef.h new file mode 100644 index 0000000000..99a00a2f9c --- /dev/null +++ b/backends/gp32/h/gpdef.h @@ -0,0 +1,100 @@ + +#ifndef __GPDEF_H__ +#define __GPDEF_H__ + +#include "gpos_def.h" + +#ifndef NULL +#define NULL 0 +#endif + +#ifndef TRUE +#define TRUE 1 +#else +#undef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#else +#undef FALSE +#define FALSE 0 +#endif + +#ifndef __size_t +#define __size_t 1 + typedef unsigned int size_t; +#endif + +//ph0x +//#undef byte +//#define byte char + +#undef ubyte +#define ubyte unsigned char + +#undef uchar +#define uchar unsigned char + +#undef word +#define word short + +#undef uword +#define uword unsigned short + +#undef ushort +#define ushort unsigned short + +#undef dword +#define dword long + +#undef udword +#define udword unsigned long + +#undef ulong +#define ulong unsigned long + +/* Button definitions */ +#define GPC_VK_NONE 0x00 +#define GPC_VK_LEFT 0x01 +#define GPC_VK_UP 0x08 +#define GPC_VK_RIGHT 0x04 +#define GPC_VK_DOWN 0x02 + +#define GPC_VK_F1 0x80 /*AT OLD, VK_ENTER*/ +#define GPC_VK_F2 0x10 /*AT OLD, VK_F3*/ +#define GPC_VK_F3 0x20 /*AT OLD, VK_F2*/ +#define GPC_VK_ENTER 0x40 /*AT OLD, VK_F1*/ + +#define GPC_VK_START 0x100 +#define GPC_VK_SELECT 0x200 + +#define GPC_VK_FA GPC_VK_ENTER +#define GPC_VK_FB GPC_VK_F3 +#define GPC_VK_FL GPC_VK_F2 +#define GPC_VK_FR GPC_VK_F1 + +/* LCD Definitions */ +#define GPC_LCD_WIDTH 320 +#define GPC_LCD_HEIGHT 240 +#define GPC_LCD_PHYSICAL_W 240 +#define GPC_LCD_PHYSICAL_H 320 + +typedef struct tagGPRECT{ + int left; + int top; + int right; + int bottom; +}GPRECT; + +typedef struct tagGPPOINT{ + int X; + int Y; +} GPPOINT; + +/* file stuff */ +#define MAX_PATH_NAME_LEN 256 + +#endif /*__GPDEF_H__*/ + diff --git a/backends/gp32/h/gpfont.h b/backends/gp32/h/gpfont.h new file mode 100644 index 0000000000..8f1d0383ff --- /dev/null +++ b/backends/gp32/h/gpfont.h @@ -0,0 +1,67 @@ + +#ifndef __GPFONT_H__ +#define __GPFONT_H__ + +#include "gpdef.h" +#include "gpgraphic.h" + +typedef struct tagBGFONTINFO{ + int kor_w; + int kor_h; + int eng_w; + int eng_h; + int chargap; + int linegap; +}BGFONTINFO; + +void GpFontInit (BGFONTINFO * ptr); + +void GpFontResSet (unsigned char * p_kor, unsigned char * p_eng); +unsigned char * GpKorFontResGet(void); +unsigned char * GpEngFontResGet(void); + +void GpSysFontGet (BGFONTINFO *fInfo); +int GpTextWidthGet (const char * lpsz); +int GpTextHeightGet (const char * lpsz); +int GpTextLenGet (const char * str); + +void GpTextOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y, + char * source, unsigned char color); +void GpCharOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y, + char * source, unsigned char color); +void GpTextNOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y, + char * source, int nStart, int nString, unsigned char color); + +#define GPC_GT_BOTTOM 0x2 +#define GPC_GT_HCENTER 0x8 +#define GPC_GT_LEFT 0x10 +#define GPC_GT_RIGHT 0x20 +#define GPC_GT_TOP 0x40 +#define GPC_GT_WORDBREAK 0x80 +#define GPC_GT_VCENTER 0x100 + +void GpTextDraw (GPDRAWSURFACE * ptgpds, GPRECT * cRect, unsigned int uFormat, + char * source, int nStart, int nCount, unsigned char color); + +typedef struct tagEXT_FONT{ + int fx_flag; + unsigned char * lpsz; + unsigned char * pBmFont; + int ex_font_w; + int ex_font_h; + int ex_chargap; + int ex_linegap; + int color1; + int color2; +} EXT_FONT; + +int GpCustTextOut (GPDRAWTAG * gptag, GPDRAWSURFACE * ptgpds, int x, int y, EXT_FONT * y_font); + +void GpHAutomatonInit (void); +int GpHAutomatonInput (const char * p_input, char ** p_working); +int GpHAutomatonDelete (char ** p_working); +char * GpHAutomatonBuffered (void); + +#endif + + diff --git a/backends/gp32/h/gpfont_port.h b/backends/gp32/h/gpfont_port.h new file mode 100644 index 0000000000..4ea71b60d4 --- /dev/null +++ b/backends/gp32/h/gpfont_port.h @@ -0,0 +1,11 @@ +#ifndef __GPFONT_PORT_H__ +#define __GPFONT_PORT_H__ + +#define KORFONT_W 12 /* pixel */ +#define KORFONT_H 12 /* pixel */ +#define ENGFONT_W 8 /* pixel */ +#define ENGFONT_H 16 /* pixel */ +#define FONT_CHARGAP 4 /* percentage */ +#define FONT_LINEGAP 4 /* percentage */ + +#endif diff --git a/backends/gp32/h/gpfontres.dat b/backends/gp32/h/gpfontres.dat new file mode 100644 index 0000000000..a1cee658f6 --- /dev/null +++ b/backends/gp32/h/gpfontres.dat @@ -0,0 +1,650 @@ +/*font size : (12, 12), font number : 344*/ +const unsigned char fontresKor[] = { /* Foreign lang */ +0x00, 0x00, 0x02, 0x04, 0x02, 0x04, 0x04, 0x04, 0x18, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x08, 0x04, 0xf2, 0x07, +0x04, 0x04, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xfe, 0x07, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, +0x02, 0x04, 0x02, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x04, 0x42, 0x04, 0x42, 0x04, +0x42, 0x04, 0xc2, 0x07, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xfe, 0x07, 0x02, 0x04, 0x02, 0x04, 0x02, 0x04, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x42, 0x00, 0x42, 0x00, +0x42, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xfe, 0x07, 0x42, 0x00, 0xfe, 0x07, 0x42, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x38, 0x00, 0xc0, 0x07, +0x20, 0x00, 0x18, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x04, 0x00, 0x38, 0x00, 0xc2, 0x07, 0x3c, 0x00, 0xe0, 0x07, 0x18, 0x00, 0x04, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x02, 0x04, 0x02, 0x04, +0x02, 0x04, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x06, 0x04, 0x38, 0x04, 0xc0, 0x07, 0x30, 0x04, 0x0c, 0x04, 0x02, 0x04, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x04, 0x30, 0x04, 0xc6, 0x07, +0x38, 0x04, 0xe0, 0x07, 0x18, 0x04, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x01, 0x0c, 0x05, 0xf0, 0x05, 0x08, 0x05, 0x04, 0x05, 0x02, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x04, 0x42, 0x04, 0x44, 0x04, +0x48, 0x04, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xfe, 0x07, 0x42, 0x04, 0x42, 0x04, 0x42, 0x04, 0x42, 0x04, 0x02, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x04, 0xfe, 0x05, 0x02, 0x04, +0x02, 0x04, 0xfe, 0x05, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x3c, 0x01, 0x42, 0x05, 0x42, 0x05, 0x42, 0x05, 0x3c, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, +0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x08, 0x04, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x08, 0x04, 0x30, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x04, 0x08, 0x04, +0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x00, +0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, +0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, +0x20, 0x04, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xf0, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, +0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, +0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, +0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x01, +0x20, 0x01, 0xe0, 0x07, 0x20, 0x01, 0x20, 0x01, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, +0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x07, +0xc0, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x40, 0x02, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x40, 0x02, +0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0x40, 0x04, +0x80, 0x04, 0x00, 0x07, 0x80, 0x04, 0x40, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x04, 0x40, 0x04, 0x80, 0x07, 0x40, 0x04, 0x20, 0x04, 0x40, 0x04, 0x80, 0x07, +0x40, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x20, 0x05, +0x40, 0x05, 0x80, 0x05, 0x40, 0x05, 0x20, 0x05, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x48, 0x04, +0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x90, 0x04, +0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xe0, 0x07, +0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x60, 0x01, 0x90, 0x05, +0x10, 0x05, 0x10, 0x05, 0x10, 0x05, 0x90, 0x05, 0x60, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x20, 0x04, +0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, +0x20, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x04, 0x20, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, +0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x04, +0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, +0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x05, 0x40, 0x05, +0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, +0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x01, +0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0x40, 0x01, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x01, 0x40, 0x01, 0xc0, 0x07, 0x40, 0x01, 0x40, 0x01, +0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, +0x00, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x06, 0x80, 0x01, 0x40, 0x00, 0x80, 0x01, 0x00, 0x06, +0x80, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x40, 0x04, +0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x40, 0x04, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x80, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x05, 0x80, 0x04, +0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x80, 0x04, 0x00, 0x07, +0x80, 0x04, 0x40, 0x04, 0x80, 0x04, 0x00, 0x07, 0x80, 0x04, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x20, 0x01, 0x40, 0x05, 0x80, 0x05, 0x00, 0x05, 0x80, 0x05, 0x40, 0x05, +0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x80, 0x04, +0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0xa0, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x05, 0x20, 0x05, 0x20, 0x05, 0x20, 0x05, 0x20, 0x05, +0x20, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0xe0, 0x05, +0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xe0, 0x05, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x40, 0x01, 0xa0, 0x05, 0x20, 0x05, 0x20, 0x05, 0x20, 0x05, 0xa0, 0x05, +0x40, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, +0x08, 0x04, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x10, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x04, 0xf0, 0x07, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x00, 0x40, 0x00, +0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, +0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xf0, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, +0x20, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xe0, 0x07, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x01, 0xe0, 0x07, +0x20, 0x01, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x07, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x20, 0x07, +0xc0, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xc0, 0x03, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x04, 0x40, 0x04, 0x80, 0x07, +0x80, 0x04, 0x40, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x04, 0x80, 0x07, 0x40, 0x04, 0x80, 0x07, 0x80, 0x04, 0x40, 0x04, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x20, 0x05, 0xc0, 0x05, +0x40, 0x05, 0x20, 0x05, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x90, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x90, 0x04, 0x90, 0x04, +0x90, 0x04, 0x90, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x04, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0xe0, 0x07, 0x20, 0x04, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x90, 0x05, 0x10, 0x05, +0x90, 0x05, 0x60, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x40, 0x04, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x04, 0x80, 0x07, +0x00, 0x00, 0x40, 0x04, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x07, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, +0x40, 0x04, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x05, 0x40, 0x05, 0x40, 0x05, +0x40, 0x05, 0x40, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x01, 0x40, 0x01, +0x40, 0x01, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xc0, 0x07, 0x40, 0x01, 0xc0, 0x07, 0x40, 0x01, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x06, +0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x00, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00, 0x00, 0x07, 0x00, 0x01, 0x80, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x40, 0x04, 0x40, 0x04, +0x40, 0x04, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x04, 0x80, 0x04, 0x00, 0x07, 0x00, 0x05, 0x80, 0x04, 0x40, 0x04, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x80, 0x07, 0x40, 0x04, +0x80, 0x07, 0x80, 0x04, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x01, 0x40, 0x05, 0x80, 0x05, 0x80, 0x05, 0x40, 0x05, 0x40, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, +0xa0, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xc0, 0x07, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0xc0, 0x07, 0x40, 0x04, +0x40, 0x04, 0xc0, 0x07, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x01, 0xa0, 0x05, 0x20, 0x05, 0xa0, 0x05, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x10, 0x04, 0x20, 0x04, +0x40, 0x04, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x04, 0x40, 0x04, 0x90, 0x07, 0x20, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x00, 0x20, 0x00, +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0x20, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, +0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xf0, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0x90, 0x07, 0x10, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x20, 0x04, 0x20, 0x04, +0x20, 0x04, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xf0, 0x07, 0x10, 0x01, 0x10, 0x01, 0x10, 0x01, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x10, 0x01, 0xf0, 0x07, +0x10, 0x01, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x10, 0x00, 0x60, 0x00, 0x80, 0x07, 0x80, 0x00, 0x40, 0x00, 0x30, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x20, 0x07, +0xc0, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xc0, 0x03, 0x20, 0x04, 0x20, 0x04, 0x20, 0x04, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x60, 0x04, 0x80, 0x07, +0x40, 0x04, 0x20, 0x04, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x04, 0xc0, 0x04, 0x20, 0x07, 0xc0, 0x04, 0x80, 0x07, 0x40, 0x04, 0x20, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x20, 0x05, 0xc0, 0x05, +0x40, 0x05, 0x20, 0x05, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x90, 0x04, 0x90, 0x04, 0x90, 0x04, 0xa0, 0x04, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x90, 0x04, 0x90, 0x04, +0x90, 0x04, 0x10, 0x04, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x10, 0x04, 0xf0, 0x05, 0x10, 0x04, 0x10, 0x04, 0xf0, 0x05, 0x10, 0x04, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x90, 0x05, 0x10, 0x05, +0x90, 0x05, 0x60, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x80, 0x04, +0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x80, 0x04, +0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x80, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x04, +0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04, +0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x05, 0x40, 0x05, +0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, +0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x02, +0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x02, 0x80, 0x02, 0x80, 0x07, 0x80, 0x02, 0x80, 0x02, +0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, +0x00, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x80, 0x00, 0x00, 0x01, 0x00, 0x06, +0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x04, +0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x04, 0x00, 0x06, 0x00, 0x05, +0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x00, 0x05, 0x00, 0x06, +0x00, 0x05, 0x80, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x05, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x40, 0x01, 0x40, 0x05, 0x80, 0x05, 0x40, 0x05, 0x40, 0x01, +0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, +0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x40, 0x05, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, +0x40, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x04, 0x80, 0x07, +0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x07, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x02, 0x80, 0x02, 0x40, 0x03, 0x40, 0x02, 0x40, 0x06, 0x40, 0x02, 0x40, 0x03, +0x80, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, +0x80, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x80, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x04, 0x80, 0x07, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04, +0x80, 0x07, 0x80, 0x04, 0x80, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0xc0, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x05, 0x40, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x04, 0x80, 0x04, +0x80, 0x04, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x07, 0x80, 0x02, 0x80, 0x02, 0x80, 0x02, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x02, 0x80, 0x07, +0x80, 0x02, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x06, 0x00, 0x02, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x07, 0x00, 0x01, +0x80, 0x00, 0x80, 0x07, 0x00, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x03, 0x80, 0x04, 0x80, 0x04, 0x80, 0x04, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x80, 0x04, 0x00, 0x07, +0x00, 0x05, 0x80, 0x04, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x04, 0x00, 0x07, 0x80, 0x04, 0x00, 0x07, 0x00, 0x05, 0x80, 0x04, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x40, 0x05, 0x80, 0x05, +0x80, 0x05, 0x40, 0x05, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x40, 0x05, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x05, 0x40, 0x05, +0x40, 0x05, 0x40, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x04, 0xc0, 0x07, 0x40, 0x04, 0x40, 0x04, 0xc0, 0x07, 0x40, 0x04, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x02, 0x40, 0x03, 0x40, 0x06, +0x40, 0x03, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 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, 0x07, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x20, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xff, 0x07, 0x90, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x90, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, +0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x90, 0x00, +0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, +0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3e, 0x00, +0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0xff, 0x07, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xff, 0x07, +0x20, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x02, 0x00, +0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x02, 0x00, 0x7e, 0x00, 0x02, 0x00, 0x02, 0x00, +0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, +0x10, 0x00, 0x1f, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x00, 0x22, 0x00, 0x3c, 0x00, 0x20, 0x00, 0x20, 0x00, 0x28, 0x00, 0x08, 0x00, +0x08, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x22, 0x00, 0x3c, 0x00, +0x20, 0x00, 0x28, 0x00, 0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x00, 0x22, 0x00, 0x3c, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, +0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1f, 0x00, +0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1f, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, +0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, +0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, +0x40, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x90, 0x00, 0x90, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, +0x90, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, +0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x90, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x90, 0x00, +0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, +0x02, 0x00, 0x1e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, +0xff, 0x07, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x1e, 0x00, +0x02, 0x00, 0x02, 0x00, 0xff, 0x07, 0x20, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x1e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, +0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x00, +0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0e, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00, +0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x12, 0x00, 0x1c, 0x00, +0x10, 0x00, 0x14, 0x00, 0x14, 0x00, 0x04, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x10, 0x00, 0x12, 0x00, 0x1c, 0x00, 0x10, 0x00, 0x10, 0x00, 0x12, 0x00, 0x02, 0x00, +0xff, 0x07, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x11, 0x00, 0x1e, 0x00, +0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, +0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, +0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, +0x04, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xf8, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x80, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xf8, 0x07, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x20, 0x02, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x80, 0x00, 0xf0, 0x07, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x02, 0x20, 0x02, +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x02, 0xf0, 0x07, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xe0, 0x01, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, +0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x01, 0x20, 0x00, +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x00, 0xe0, 0x01, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xe0, 0x07, +0x80, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xe0, 0x01, 0x20, 0x00, +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0xc0, 0x01, 0x40, 0x00, 0xc0, 0x01, 0x40, 0x00, 0x40, 0x00, +0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, +0x40, 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x78, 0x00, 0x40, 0x00, 0x40, 0x00, 0x50, 0x00, 0x10, 0x00, +0xfc, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70, 0x00, +0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x02, 0xf0, 0x07, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, +0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, +0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, +0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, +0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, +0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0xf8, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x80, 0x00, +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x40, 0x01, +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xf0, 0x07, 0x00, 0x00, +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x40, 0x01, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0xf0, 0x07, 0x00, 0x00, +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, +0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, +0xe0, 0x07, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xe0, 0x00, +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xe0, 0x07, 0x80, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xe0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, +0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x60, 0x00, +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, +0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x02, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x01, 0xf0, 0x07, +0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, +0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, +0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, +0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, +0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00, +0x0a, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, +0x01, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, +0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x05, 0x00, +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x01, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, +0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, +0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00, +0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, +0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, +0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, +0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x15, 0x00, 0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x15, 0x00, +0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0a, 0x00, +0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, +0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0f, 0x00, +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x19, 0x00, 0x09, 0x00, 0x0d, 0x00, +0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, +0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00, +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, +0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, +0x01, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, +0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x11, 0x00, +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x05, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x01, 0x00, 0x02, 0x00, 0x1c, 0x00, +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00, +0x1f, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, +0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, +0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00, +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x15, 0x00, +0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x15, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, +0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00, +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0d, 0x00, +0x09, 0x00, 0x19, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, +0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, +0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00, +0x0a, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, +0x01, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, +0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x05, 0x00, +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x01, 0x00, 0x02, 0x00, 0x1c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, +0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, +0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00, +0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, +0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, +0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, +0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x15, 0x00, 0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x15, 0x00, +0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0a, 0x00, +0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, +0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0f, 0x00, +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x09, 0x00, 0x19, 0x00, 0x09, 0x00, 0x0d, 0x00, +0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, +0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0f, 0x00, 0x08, 0x00, 0x08, 0x00, +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, +0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, +0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, +0x01, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, +0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x11, 0x00, +0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x05, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x01, 0x00, 0x02, 0x00, 0x1c, 0x00, +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, 0x1d, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x11, 0x00, +0x1f, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x15, 0x00, 0x15, 0x00, +0x1d, 0x00, 0x0a, 0x00, 0x0d, 0x00, 0x19, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, +0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x0f, 0x00, 0x05, 0x00, 0x05, 0x00, 0x0f, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, +0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x0c, 0x00, +0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, +0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x0a, 0x00, 0x09, 0x00, +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x15, 0x00, +0x16, 0x00, 0x14, 0x00, 0x16, 0x00, 0x15, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0a, 0x00, +0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x15, 0x00, +0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x0f, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x0f, 0x00, +0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0d, 0x00, +0x09, 0x00, 0x19, 0x00, 0x09, 0x00, 0x0d, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; + +/*font size : (8, 16), font number : 128*/ +const unsigned char fontresEng[] = { /* Ascii code */ +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0xe0, 0x0f, 0x10, 0x10, 0x90, 0x14, 0xd0, 0x10, 0xd0, 0x10, 0x90, 0x14, 0x10, 0x10, 0xe0, 0x0f, +0xe0, 0x0f, 0xf0, 0x1f, 0x70, 0x1b, 0x30, 0x1f, 0x30, 0x1f, 0x70, 0x1b, 0xf0, 0x1f, 0xe0, 0x0f, +0x00, 0x00, 0x80, 0x07, 0xc0, 0x0f, 0xe0, 0x0f, 0xf0, 0x07, 0xe0, 0x0f, 0xc0, 0x0f, 0x80, 0x07, +0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xc0, 0x07, 0xe0, 0x0f, 0xc0, 0x07, 0x80, 0x03, 0x00, 0x01, +0x80, 0x03, 0x80, 0x03, 0x90, 0x0f, 0x70, 0x1c, 0x70, 0x1c, 0x90, 0x0f, 0x80, 0x03, 0x80, 0x03, +0x00, 0x03, 0x80, 0x07, 0x90, 0x0f, 0xf0, 0x1f, 0xf0, 0x1f, 0x90, 0x0f, 0x80, 0x07, 0x00, 0x03, +0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0xc0, 0x03, 0xc0, 0x03, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, +0xfe, 0x7f, 0xfe, 0x7f, 0x7e, 0x7e, 0x3e, 0x7c, 0x3e, 0x7c, 0x7e, 0x7e, 0xfe, 0x7f, 0xfe, 0x7f, +0x00, 0x00, 0xc0, 0x03, 0x60, 0x06, 0x20, 0x04, 0x20, 0x04, 0x60, 0x06, 0xc0, 0x03, 0x00, 0x00, +0xfe, 0x7f, 0x3e, 0x7c, 0x9e, 0x79, 0xde, 0x7b, 0xde, 0x7b, 0x9e, 0x79, 0x3e, 0x7c, 0xfe, 0x7f, +0x00, 0x00, 0xe0, 0x00, 0xf0, 0x01, 0x10, 0x03, 0x10, 0x17, 0xf0, 0x1d, 0xe0, 0x18, 0x00, 0x1e, +0x00, 0x00, 0x40, 0x0e, 0x40, 0x1f, 0xf0, 0x11, 0xf0, 0x11, 0x40, 0x1f, 0x40, 0x0e, 0x00, 0x00, +0x00, 0x0e, 0x00, 0x1f, 0x00, 0x11, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, +0x30, 0x00, 0x70, 0x00, 0xf0, 0x1f, 0xe0, 0x1f, 0x00, 0x14, 0x00, 0x14, 0x00, 0x1c, 0x00, 0x1c, +0x38, 0x00, 0xf8, 0x1f, 0xf0, 0x1f, 0x00, 0x14, 0x00, 0x14, 0x70, 0x14, 0xf0, 0x1f, 0xe0, 0x1f, +0x00, 0x00, 0xe0, 0x01, 0xe0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x00, 0xf0, 0x1f, 0xe0, 0x0f, 0xc0, 0x07, 0x80, 0x03, 0x80, 0x03, 0x00, 0x01, 0x00, 0x01, +0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x80, 0x03, 0x80, 0x03, 0xc0, 0x07, 0xe0, 0x0f, 0xf0, 0x1f, +0x00, 0x00, 0x40, 0x04, 0x60, 0x0c, 0xf0, 0x1f, 0xf0, 0x1f, 0x60, 0x0c, 0x40, 0x04, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xb0, 0x1f, 0xb0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x1f, 0xb0, 0x1f, +0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xe0, 0x01, 0xe0, 0x01, +0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, 0x70, 0x00, +0x00, 0x00, 0x48, 0x04, 0x68, 0x0c, 0xf8, 0x1f, 0xf8, 0x1f, 0x68, 0x0c, 0x48, 0x04, 0x00, 0x00, +0x00, 0x00, 0x00, 0x04, 0x00, 0x0c, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x00, +0x00, 0x00, 0x40, 0x00, 0x60, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x60, 0x00, 0x40, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x40, 0x05, 0xc0, 0x07, 0x80, 0x03, 0x00, 0x01, +0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xc0, 0x07, 0x40, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x00, 0xc0, 0x03, 0xc0, 0x03, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, +0x00, 0x01, 0x80, 0x03, 0xc0, 0x07, 0x00, 0x01, 0x00, 0x01, 0xc0, 0x07, 0x80, 0x03, 0x00, 0x01, +0x00, 0x00, 0x60, 0x00, 0xe0, 0x01, 0xe0, 0x07, 0xe0, 0x0f, 0xe0, 0x07, 0xe0, 0x01, 0x60, 0x00, +0x00, 0x00, 0x00, 0x0c, 0x00, 0x0f, 0xc0, 0x0f, 0xe0, 0x0f, 0xc0, 0x0f, 0x00, 0x0f, 0x00, 0x0c, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xb0, 0x1f, 0xb0, 0x1f, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x38, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x38, +0x00, 0x00, 0x40, 0x04, 0xf0, 0x1f, 0xf0, 0x1f, 0x40, 0x04, 0xf0, 0x1f, 0xf0, 0x1f, 0x40, 0x04, +0x00, 0x00, 0x60, 0x0e, 0x30, 0x1f, 0x10, 0x11, 0x1c, 0x71, 0x1c, 0x71, 0xf0, 0x19, 0xe0, 0x0c, +0x00, 0x00, 0x10, 0x06, 0x30, 0x06, 0x60, 0x00, 0xc0, 0x00, 0x80, 0x01, 0x30, 0x03, 0x30, 0x06, +0x00, 0x00, 0xe0, 0x00, 0xf0, 0x0d, 0x10, 0x1f, 0x90, 0x13, 0xe0, 0x1e, 0xf0, 0x0d, 0x10, 0x01, +0x00, 0x00, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0x30, 0x18, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x30, 0x18, 0xe0, 0x0f, 0xc0, 0x07, 0x00, 0x00, +0x00, 0x01, 0x40, 0x05, 0xc0, 0x07, 0x80, 0x03, 0x80, 0x03, 0xc0, 0x07, 0x40, 0x05, 0x00, 0x01, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xe0, 0x0f, 0xe0, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x78, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x60, 0x00, 0xc0, 0x00, 0x80, 0x01, 0x00, 0x03, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x18, +0x00, 0x00, 0xe0, 0x0f, 0xf0, 0x1f, 0x90, 0x11, 0x10, 0x13, 0x10, 0x16, 0xf0, 0x1f, 0xe0, 0x0f, +0x00, 0x00, 0x00, 0x00, 0x10, 0x04, 0x10, 0x0c, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x00, 0x10, 0x00, +0x00, 0x00, 0x30, 0x08, 0x70, 0x18, 0xd0, 0x10, 0x90, 0x11, 0x10, 0x13, 0x30, 0x1e, 0x30, 0x0c, +0x00, 0x00, 0x20, 0x08, 0x30, 0x18, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0xf0, 0x1f, 0xe0, 0x0e, +0x00, 0x00, 0x80, 0x01, 0x80, 0x03, 0x80, 0x06, 0x90, 0x0c, 0xf0, 0x1f, 0xf0, 0x1f, 0x90, 0x00, +0x00, 0x00, 0x20, 0x1f, 0x30, 0x1f, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0xf0, 0x11, 0xe0, 0x10, +0x00, 0x00, 0xe0, 0x07, 0xf0, 0x0f, 0x10, 0x19, 0x10, 0x11, 0x10, 0x11, 0xf0, 0x01, 0xe0, 0x00, +0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0xf0, 0x10, 0xf0, 0x11, 0x00, 0x13, 0x00, 0x1e, 0x00, 0x1c, +0x00, 0x00, 0xe0, 0x0e, 0xf0, 0x1f, 0x10, 0x11, 0x10, 0x11, 0x10, 0x11, 0xf0, 0x1f, 0xe0, 0x0e, +0x00, 0x00, 0x00, 0x0e, 0x10, 0x1f, 0x10, 0x11, 0x10, 0x11, 0x30, 0x11, 0xe0, 0x1f, 0xc0, 0x0f, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x60, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x70, 0x0c, 0x60, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0xc0, 0x06, 0x60, 0x0c, 0x30, 0x18, 0x10, 0x10, 0x00, 0x00, +0x00, 0x00, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x40, 0x02, 0x00, 0x00, +0x00, 0x00, 0x10, 0x10, 0x30, 0x18, 0x60, 0x0c, 0xc0, 0x06, 0x80, 0x03, 0x00, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x10, 0xb0, 0x11, 0xb0, 0x13, 0x00, 0x1e, 0x00, 0x0c, +0x00, 0x00, 0xe0, 0x0f, 0xf0, 0x1f, 0x10, 0x10, 0xd0, 0x13, 0xd0, 0x13, 0xd0, 0x1f, 0x80, 0x0f, +0x00, 0x00, 0xf0, 0x03, 0xf0, 0x07, 0x80, 0x0c, 0x80, 0x18, 0x80, 0x0c, 0xf0, 0x07, 0xf0, 0x03, +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x11, 0x10, 0x11, 0xf0, 0x1f, 0xe0, 0x0e, +0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0x30, 0x18, 0x10, 0x10, 0x10, 0x10, 0x30, 0x18, 0x60, 0x0c, +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x10, 0x30, 0x18, 0xe0, 0x0f, 0xc0, 0x07, +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x11, 0x90, 0x13, 0x30, 0x18, 0x70, 0x1c, +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x11, 0x80, 0x13, 0x00, 0x18, 0x00, 0x1c, +0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0x30, 0x18, 0x90, 0x10, 0x90, 0x10, 0xe0, 0x18, 0xf0, 0x0c, +0x00, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xf0, 0x1f, 0xf0, 0x1f, +0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x60, 0x00, 0x70, 0x00, 0x10, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xe0, 0x1f, 0x00, 0x10, +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x01, 0xc0, 0x07, 0xf0, 0x1e, 0x30, 0x18, +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x00, 0x30, 0x00, 0x70, 0x00, +0x00, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x0c, 0xf0, 0x1f, 0xf0, 0x1f, +0x00, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x0e, 0x00, 0x07, 0x80, 0x03, 0xf0, 0x1f, 0xf0, 0x1f, +0x00, 0x00, 0xc0, 0x07, 0xe0, 0x0f, 0x30, 0x18, 0x10, 0x10, 0x30, 0x18, 0xe0, 0x0f, 0xc0, 0x07, +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x00, 0x0e, +0x00, 0x00, 0xc0, 0x0f, 0xe0, 0x1f, 0x20, 0x10, 0xe0, 0x10, 0x78, 0x10, 0xf8, 0x1f, 0xc8, 0x0f, +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x11, 0x80, 0x11, 0xf0, 0x1f, 0x70, 0x0e, +0x00, 0x00, 0x60, 0x0c, 0x70, 0x1e, 0x10, 0x13, 0x10, 0x11, 0x90, 0x11, 0xf0, 0x1c, 0x60, 0x0c, +0x00, 0x18, 0x00, 0x10, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x10, 0x00, 0x10, 0x00, 0x18, +0x00, 0x00, 0xe0, 0x1f, 0xf0, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xf0, 0x1f, 0xe0, 0x1f, +0x00, 0x00, 0xc0, 0x1f, 0xe0, 0x1f, 0x30, 0x00, 0x10, 0x00, 0x30, 0x00, 0xe0, 0x1f, 0xc0, 0x1f, +0x00, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x60, 0x00, 0xc0, 0x00, 0x60, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, +0x00, 0x00, 0x70, 0x1c, 0xf0, 0x1e, 0x80, 0x03, 0x00, 0x01, 0x80, 0x03, 0xf0, 0x1e, 0x70, 0x1c, +0x00, 0x00, 0x00, 0x1c, 0x10, 0x1e, 0xf0, 0x03, 0xf0, 0x01, 0xf0, 0x03, 0x10, 0x1e, 0x00, 0x1c, +0x00, 0x00, 0x70, 0x1c, 0xf0, 0x18, 0x90, 0x11, 0x10, 0x13, 0x10, 0x16, 0x30, 0x1c, 0x70, 0x18, +0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, 0x07, 0x80, 0x03, 0xc0, 0x01, 0xe0, 0x00, 0x70, 0x00, +0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x08, +0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x70, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x60, 0x00, 0xf0, 0x02, 0x90, 0x02, 0x90, 0x02, 0xe0, 0x03, 0xf0, 0x01, 0x10, 0x00, +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xe0, 0x1f, 0x10, 0x02, 0x10, 0x03, 0xf0, 0x01, 0xe0, 0x00, +0x00, 0x00, 0xe0, 0x01, 0xf0, 0x03, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0x30, 0x03, 0x20, 0x01, +0x00, 0x00, 0xe0, 0x00, 0xf0, 0x01, 0x10, 0x03, 0x10, 0x12, 0xe0, 0x1f, 0xf0, 0x1f, 0x10, 0x00, +0x00, 0x00, 0xe0, 0x01, 0xf0, 0x03, 0x90, 0x02, 0x90, 0x02, 0x90, 0x02, 0xb0, 0x03, 0xa0, 0x01, +0x00, 0x00, 0x10, 0x01, 0xf0, 0x0f, 0xf0, 0x1f, 0x10, 0x11, 0x00, 0x19, 0x00, 0x0c, 0x00, 0x00, +0x00, 0x00, 0xc8, 0x01, 0xec, 0x03, 0x24, 0x02, 0x24, 0x02, 0xfc, 0x01, 0xf8, 0x03, 0x00, 0x02, +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x00, 0x01, 0x00, 0x02, 0xf0, 0x03, 0xf0, 0x01, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x02, 0xf0, 0x1b, 0xf0, 0x1b, 0x10, 0x00, 0x00, 0x00, +0x00, 0x00, 0x18, 0x00, 0x1c, 0x00, 0x04, 0x00, 0x04, 0x02, 0xfc, 0x1b, 0xf8, 0x1b, 0x00, 0x00, +0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x80, 0x00, 0xc0, 0x01, 0x70, 0x03, 0x30, 0x02, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0xf0, 0x1f, 0xf0, 0x1f, 0x10, 0x00, 0x00, 0x00, +0x00, 0x00, 0xf0, 0x01, 0xf0, 0x03, 0x00, 0x01, 0xf0, 0x01, 0x00, 0x01, 0xf0, 0x03, 0xf0, 0x01, +0x00, 0x00, 0x00, 0x02, 0xf0, 0x03, 0xf0, 0x01, 0x00, 0x02, 0x00, 0x02, 0xf0, 0x03, 0xf0, 0x01, +0x00, 0x00, 0xe0, 0x01, 0xf0, 0x03, 0x10, 0x02, 0x10, 0x02, 0x10, 0x02, 0xf0, 0x03, 0xe0, 0x01, +0x00, 0x00, 0x04, 0x02, 0xfc, 0x03, 0xfc, 0x01, 0x24, 0x02, 0x20, 0x02, 0xe0, 0x03, 0xc0, 0x01, +0x00, 0x00, 0xc0, 0x01, 0xe0, 0x03, 0x20, 0x02, 0x24, 0x02, 0xfc, 0x01, 0xfc, 0x03, 0x04, 0x02, +0x00, 0x00, 0x10, 0x02, 0xf0, 0x03, 0xf0, 0x01, 0x10, 0x03, 0x00, 0x02, 0x80, 0x03, 0x80, 0x01, +0x00, 0x00, 0x20, 0x01, 0xb0, 0x03, 0x90, 0x02, 0xd0, 0x02, 0x50, 0x02, 0x70, 0x03, 0x20, 0x01, +0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0xe0, 0x0f, 0xf0, 0x1f, 0x10, 0x02, 0x30, 0x02, 0x20, 0x00, +0x00, 0x00, 0xe0, 0x03, 0xf0, 0x03, 0x10, 0x00, 0x10, 0x00, 0xe0, 0x03, 0xf0, 0x03, 0x10, 0x00, +0x00, 0x00, 0x80, 0x03, 0xc0, 0x03, 0x60, 0x00, 0x30, 0x00, 0x60, 0x00, 0xc0, 0x03, 0x80, 0x03, +0x00, 0x00, 0xe0, 0x03, 0xf0, 0x03, 0x30, 0x00, 0x60, 0x00, 0x30, 0x00, 0xf0, 0x03, 0xe0, 0x03, +0x00, 0x00, 0x10, 0x02, 0x30, 0x03, 0xe0, 0x01, 0xc0, 0x00, 0xe0, 0x01, 0x30, 0x03, 0x10, 0x02, +0x00, 0x00, 0xc0, 0x03, 0xe4, 0x03, 0x24, 0x00, 0x24, 0x00, 0x2c, 0x00, 0xf8, 0x03, 0xf0, 0x03, +0x00, 0x00, 0x10, 0x03, 0x30, 0x03, 0x70, 0x02, 0xd0, 0x02, 0x90, 0x03, 0x30, 0x03, 0x30, 0x02, +0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0xe0, 0x0f, 0xf0, 0x1e, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, +0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1e, 0xf0, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0xf0, 0x1e, 0xe0, 0x0f, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, +0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x10, 0x00, 0x18, 0x00, 0x08, 0x00, 0x18, 0x00, 0x10, +0x00, 0x00, 0xe0, 0x00, 0xe0, 0x01, 0x20, 0x03, 0x20, 0x06, 0x20, 0x03, 0xe0, 0x01, 0xe0, 0x00, }; + diff --git a/backends/gp32/h/gpgraphic.h b/backends/gp32/h/gpgraphic.h new file mode 100644 index 0000000000..f1ead3c59c --- /dev/null +++ b/backends/gp32/h/gpgraphic.h @@ -0,0 +1,176 @@ + +#ifndef __GRAPHIC_H__ +#define __GRAPHIC_H__ + +#define GPC_DRAW_OK 0 +#define GPC_DRAW_ERR_FULL 1 +#define GPC_DRAW_ERR_PARAM 2 +#define GPC_DRAW_ERR_UNKNOWN 3 +#define GPC_DRAW_ERR_OUTOFMEM 4 + +#define GPC_LCD_ON_BIT 0x80 +#define GPC_LCD_VACTIVE 0x40 +#define GPC_LCD_HACTIVE 0x20 + +typedef struct tagGPLCDINFO{ + union{ + int U32_lcd; + struct{ + char clk_value; + char lcd_buf_count; + char bpp; + char b_lcd_on; + }U8_lcd; + }lcd_global; + unsigned int buffer_size; + unsigned int * buf_addr[4]; + unsigned int * r_palette; + unsigned int * m_palette; +}GPLCDINFO; + +typedef struct tagGPDRAWTAG{ + int restoreflag; + short clip_x; + short clip_y; + short clip_w; + short clip_h; +}GPDRAWTAG; + +typedef struct tagGPDRAWSURFACE{ + unsigned char * ptbuffer; + int bpp; /*reserved*/ + int buf_w; + int buf_h; + int ox; + int oy; + unsigned char * o_buffer; +} GPDRAWSURFACE; + +#define GPC_DFLAG_1BPP 1 +#define GPC_DFLAG_2BPP 2 +#define GPC_DFLAG_4BPP 4 +#define GPC_DFLAG_8BPP 8 +#define GPC_DFLAG_16BPP 16 + +int GpGraphicModeSet(int gd_bpp, int * gp_pal); +void GpLcdInfoGet(GPLCDINFO * p_info); +void GpLcdEnable(void); +void GpLcdDisable(void); +int GpLcdStatusGet(void); +int GpLcdSurfaceGet(GPDRAWSURFACE * ptgpds, int idx); +int GpMemSurfaceGet(GPDRAWSURFACE * ptgpds); +extern void (*GpSurfaceSet)(GPDRAWSURFACE * ptgpds); +extern void (*GpSurfaceFlip)(GPDRAWSURFACE * ptgpds); +unsigned char * GpLcdLock(void); +void GpLcdUnlock(void); + +#define GPC_PAL_RED_MASK 0xf800 +#define GPC_PAL_GREEN_MASK 0x07c0 +#define GPC_PAL_BLUE_MASK 0x003e +#define GPC_PALCHAN_RED_BIT 0x4 +#define GPC_PALCHAN_GREEN_BIT 0x2 +#define GPC_PALCHAN_BLUE_BIT 0x1 + +typedef unsigned short GP_PALETTEENTRY; +typedef struct tag_GP_LOGPALENTRY{ + unsigned char peRed; + unsigned char peGreen; + unsigned char peBlue; + unsigned char peFlags; +}GP_LOGPALENTRY; + +typedef unsigned long * GP_HPALETTE; +GP_HPALETTE GpPaletteCreate (int entry_num, GP_PALETTEENTRY * pal_entry); +GP_HPALETTE GpPaletteCreateEx (int entry_num, GP_LOGPALENTRY * pal_entry); + +GP_HPALETTE GpPaletteSelect(GP_HPALETTE h_new); + +unsigned int GpPaletteRealize (void); +int GpPaletteDelete (GP_HPALETTE hPal); +#define GPC_PAL_SYNC_REALIZE 0 +#define GPC_PAL_ASYNC_REALIZE 1 +#define GPC_PAL_NO_REALIZE 2 +int GpPaletteEntryChange (int pal_offset, int entry_num, GP_PALETTEENTRY * pal_entry, int flag); +int GpPaletteEntryChangeEx (int pal_offset, int entry_num, GP_LOGPALENTRY * pal_entry, int flag); + +GP_HPALETTE GpRegPalGet (void); +GP_HPALETTE GpLogPalGet (void); + +int GpLcdFade (int fade_step, GP_HPALETTE old_pal); +void GpLcdNoFade (GP_HPALETTE old_pal); +int GpLcdChanFade (int fade_step, int chan, GP_HPALETTE old_pal); +int GpLcdFadeNormalize (GP_HPALETTE basic_pal); + +int GpBitBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char * src, int sx,int sy,int imgw,int imgh); +int GpTransBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char *src,int sx,int sy,int imgw,int imgh,unsigned char color); +int GpBitLRBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char * src,int sx,int sy,int imgw,int imgh); +int GpTransLRBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char* src,int sx,int sy,int imgw,int imgh,unsigned char color); +int GpBitUDBlt (GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char * src,int sx,int sy,int imgw,int imgh); +int GpTransUDBlt(GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char* src,int sx,int sy,int imgw,int imgh,unsigned char color); +int GpRectFill(GPDRAWTAG * gptag,GPDRAWSURFACE * ptgpds,int dx,int dy,int width,int height,unsigned char color); + +void GpPointSet(GPDRAWSURFACE * ptgpds,int x, int y, unsigned char color); +void GpLineDraw(GPDRAWSURFACE * ptgpds,int xS,int yS,int xE,int yE,unsigned char color); +void GpRectDraw(GPDRAWSURFACE * ptgpds,int left,int top,int right,int bottom,unsigned char color); +void GpEllipseDraw(GPDRAWSURFACE * ptgpds,int xS,int yS,int w,int h,unsigned char color); + +/************************************************************************************************* + +GPGRAPHIC Effect API + + You must import libgpg_ex??.a for using the following: + + +CURRENTLY, THE FOLLOWING ARE ALLOWED + + GPC_GDFX_COPY + GPC_GDFX_TRANS + GPC_GDFX_EASYBLEND + GPC_GDFX_TRANS | GPC_GDFX_EASYBLEND + GPC_GDFX_BLEND + GPC_GDFX_TRANS | GPC_GDFX_BLEND + GPC_GDFX_INVERT + GPC_GDFX_TRANS | GPC_GDFX_INVERT + GPC_GDFX_LRFLIP + GPC_GDFX_UDFLIP + GPC_GDFX_TRANS | GPC_GDFX_LRFLIP + GPC_GDFX_TRANS | GPC_GDFX_UDFLIP + GPC_GDFX_RAYPLUS + GPC_GDFX_TRANS | GPC_GDFX_RAYPLUS + GPC_GDFX_TRANS | GPC_GDFX_MASKING + GPC_GDFX_MASKING | GPC_GDFX_RAYPLUS + GPC_GDFX_TRANS | GPC_GDFX_CHRAYPLUS + GPC_GDFX_TRANS | GPC_GDFX_PART_RAY + GPC_GDFX_RAYMINUS + GPC_GDFX_TRANS | GPC_GDFX_RAYMINUS + GPC_GDFX_MASKING | GPC_GDFX_RAYMINUS +*****************************************************************************************************/ + +#define GPC_GDFX_NOEFFECT 0x00 +#define GPC_GDFX_COPY 0x01 +#define GPC_GDFX_TRANS 0x02 +#define GPC_GDFX_EASYBLEND 0x04 +#define GPC_GDFX_BLEND 0x08 +#define GPC_GDFX_EXCHANGE 0x10 +#define GPC_GDFX_INVERT 0x20 +#define GPC_GDFX_LRFLIP 0x40 +#define GPC_GDFX_UDFLIP 0x80 +#define GPC_GDFX_RAYPLUS 0x100 +#define GPC_GDFX_MASKING 0x200 +#define GPC_GDFX_CHRAYPLUS 0x400 +#define GPC_GDFX_PART_RAY 0x800 +#define GPC_GDFX_RAYMINUS 0x1000 +#define GPC_GDFX_SRC_RPLUS 0x2000 + +typedef struct tagGPGD_FX{ + int fx_flag; /*effect option*/ + int v_default; /*default value*/ + int v_tmp; /*temporary value*/ + int * v_list; /*value list (not yet used)*/ +}GPGD_FX; + +int GpFxBlt(GPDRAWTAG *gptag, GPDRAWSURFACE *tggpds, int dx, int dy, int width, int height, GPDRAWSURFACE *srcgpds, GPGD_FX *gpfx); + +#endif /*__gpgraphic_h__*/ + + diff --git a/backends/gp32/h/gpmem.h b/backends/gp32/h/gpmem.h new file mode 100644 index 0000000000..304e1ebdb4 --- /dev/null +++ b/backends/gp32/h/gpmem.h @@ -0,0 +1,65 @@ + +#ifndef __GPMEM_H__ +#define __GPMEM_H__ + +typedef struct tagGM_HEAP_DEF{ + void * heapstart; + void * heapend; + } GM_HEAP_DEF; + +struct tagGPMEMFUNC{ + void * (*malloc)(unsigned int size); + void * (*zimalloc)(unsigned int size); + void * (*calloc)(int count, unsigned int size); + void (*free)(void * pt); + unsigned int (*availablemem)(void); + void * (*malloc_ex)(unsigned int size, int ex_flag, unsigned char init_val); + void (*free_ex)(void); + void * (*make_mem_partition)(struct tagGPMEMFUNC * p_mem_sub, unsigned int size, int * err_no); + }; +typedef struct tagGPMEMFUNC GPMEMFUNC; + +typedef struct tagGPSTRFUNC{ + void (*memset)(void * ptr, unsigned char val, unsigned int size); + void * (*memcpy)(void * s1, const void * s2, unsigned int size); + char * (*strcpy)(char * s1, const char * s2); + char * (*strncpy)(char * s1, const char * s2, unsigned int size); + char * (*strcat)(char * s1, const char * s2); + char * (*strncat)(char * s1, const char * s2, unsigned int size); + int (*gpstrlen)(const char * s); + int (*sprintf)(char * buf, const char * fmt, ...); + void (*uppercase)(char *ptr, int count); + void (*lowercase)(char *ptr, int count); + int (*compare)(const char *pt1, const char *pt2); + void (*trim_right)(const char *ptr); +} GPSTRFUNC; + +void gm_heap_init(GM_HEAP_DEF * p_def); + +extern void * gm_malloc(unsigned int size); +extern void * gm_zi_malloc(unsigned int size); +#define MALLOC_EX_AUTOFREE 0x1 +#define MALLOC_EX_MEMSET 0x2 +extern void * gm_malloc_ex(unsigned int size, int ex_flag, unsigned char init_val); +extern void * gm_calloc(int count, unsigned int size); +extern void gm_free(void * pt); +extern void gm_free_ex(void); +extern unsigned int gm_availablesize(void); +extern void * gm_make_mem_part(GPMEMFUNC * p_mem_sub, unsigned int size, int * err_no); + +extern void gm_memset(void * /*ptr*/, unsigned char /*val*/, unsigned int /*size*/); +extern void * gm_memcpy(void * /*s1*/, const void * /*s2*/, unsigned int /*size*/); +extern char * gm_strcpy(char * /*s1*/, const char * /*s2*/); +extern char * gm_strncpy(char * /*s1*/, const char * /*s2*/, unsigned int /*size*/); +extern char * gm_strcat(char * /*s1*/, const char * /*s2*/); +extern char * gm_strncat(char * /*s1*/, const char * /*s2*/, unsigned int /*size*/); +extern int gm_lstrlen(const char * /*s*/); +extern int gm_sprintf(char * buf, const char * fmt, ...); +extern void gm_lowercase(char * ptr, int count); +extern void gm_uppercase(char * ptr, int count); +extern int gm_compare(const char * pt1, const char * pt2); +extern void gm_trim_right(const char * ptr); + +#endif /*__GPMEM_H__*/ + + diff --git a/backends/gp32/h/gpmm.h b/backends/gp32/h/gpmm.h new file mode 100644 index 0000000000..2d804762d7 --- /dev/null +++ b/backends/gp32/h/gpmm.h @@ -0,0 +1,45 @@ + +#ifndef __GPMM_H__ +#define __GPMM_H__ + +/* MIDI related */ +#define GPC_MIDISTATUS_BUSY 1 +#define GPC_MIDISTATUS_READY 0 +#define GPC_MIDISTATUS_PAUSED 2 + +void GpMidiPlay (unsigned char * midisrc,int repeatcount); +void GpMidiListPlay (unsigned char ** srclist,int listcount); +void GpMidiStop (void); +void GpMidiPause (void); +void GpMidiReplay (void); +int GpMidiStatusGet (int * played); + +/* PCM related */ +#define GPC_EPCM_OK 0 +#define GPC_EPCM_FULL 1 +#define GPC_EPCM_NO_INIT 2 + +typedef enum{ + PCM_M11, + PCM_S11, + PCM_M22, + PCM_S22, + PCM_M44, + PCM_S44 +} PCM_SR; + +typedef enum{ + PCM_8BIT, + PCM_16BIT +} PCM_BIT; + +int GpPcmInit (PCM_SR sr, PCM_BIT bit_count); +int GpPcmPlay (unsigned short * src, int size, int repeatflag); +void GpPcmRemove (unsigned short * src); +void GpPcmStop (void); +int GpPcmEnvGet (PCM_SR * p_sr, PCM_BIT * p_bit_count, int * p_real_sr); + +int GpPcmLock (unsigned short * p_src, int * idx_buf, unsigned int * addr_of_playing_buf); +void GpPcmOnlyKill (unsigned short * p_src); + +#endif /*__GENERALMIDI_H__*/ diff --git a/backends/gp32/h/gpos_def.h b/backends/gp32/h/gpos_def.h new file mode 100644 index 0000000000..fc462a97ab --- /dev/null +++ b/backends/gp32/h/gpos_def.h @@ -0,0 +1,74 @@ +#ifndef __gpos_def_h__ +#define __gpos_def_h__ + +typedef enum{ + H_THREAD_SOUND, + H_THREAD_IDLE, + H_THREAD_GPMAIN, + H_THREAD_NET, + H_THREAD_TMR0, + H_THREAD_TMR1, + H_THREAD_TMR2, + H_THREAD_TMR3 +}H_THREAD; + +/************************************************************* +* OS launching flag * +*************************************************************/ +#define ALLOW_PRIORITY_REVERSION 0x1 //BIT [0] flag : if set, allow reversion. + +/*******************************************************************/ +/*Schedule related define*/ +#define GPOS_DFT_RUNNING_TIME 20 //20*2 = 40ms +#define GPOS_DFT_SUSPEND_TIME 5 //5*2 = 10ms +/*******************************************************************/ + +/*******************************************************************/ +/*Priority define*/ +#define GPOS_PRIO_ABOVE_NORMAL 2 +#define GPOS_PRIO_NORMAL 3 +#define GPOS_PRIO_BELOW_NORMAL 4 +#define GPOS_PRIO_LOW 5 +/*******************************************************************/ + +/*******************************************************************/ +/*GP kernel related return values list*/ +#define GPOS_ERR_OK 0 +#define GPOS_ERR_NOEFFECT 1 +#define GPOS_ERR_INVALIDARG 2 +#define GPOS_ERR_ALREADY_USED 3 +#define GPOS_ERR_INVALID_ACCESS 4 +#define GPOS_ERR_OUTOFMEM 5 +#define GPOS_ERR_STACK 6 +#define GPOS_ERR_PENDED_THREAD 7 +/*******************************************************************/ + +/*******************************************************************/ +/*User thread define*/ +#define GPC_MAXPROGTIMER 4 + +int GpTimerOptSet(int idx, int tmr_tps, int max_exec_tick, void (*irq_tmrfunc)(void)); +int GpTimerSet(int idx); +int GpTimerPause(int idx); +int GpTimerResume(int idx); +void GpTimerKill(int idx); +/*******************************************************************/ + +/*******************************************************************/ +/*GP kernel control define*/ +void GpMain(void * arg); +void GpKernelInitialize(void); +void GpKernelStart(void); +void GpKernelOptSet(int flag); +void GpKernelLock(void); +void GpKernelUnlock(void); +void GpThreadSleep(unsigned int delay); +int GpThreadOptSet(H_THREAD th, int priority, int stk_size); /*return ok or err*/ +H_THREAD GpThreadHandleGet(void); +void GpNetThreadAct(void (*t_func)(void)); +void GpNetThreadDelete(void); +/*******************************************************************/ + +int GpPredefinedStackGet(H_THREAD th); + +#endif diff --git a/backends/gp32/h/gpsockdef.h b/backends/gp32/h/gpsockdef.h new file mode 100644 index 0000000000..a49144474f --- /dev/null +++ b/backends/gp32/h/gpsockdef.h @@ -0,0 +1,65 @@ + +#ifndef __GPSOCKDEF_H__ +#define __GPSOCKDEF_H__ + +/*****************************************************************************/ +typedef enum{ + GNS_MDM_INIT, + GNS_MDM_DIAL, + GNS_MDM_HANGUP, + GNS_TIME_OUT, /*lcp or ipcp time out for an ack long enough */ + GNS_LCP_UP, + GNS_IP_UP, + GNS_USR_SEND, + GNS_PPP_QUIT, + GNS_ERR_CHAP, + GNS_ERR_PAP +}GP_NET_STATE; + +/***************************************************************************/ +struct tagGP_COMM_OPT{ + int baudrate; + void (*uart_reset)(int ch); + void (*uart_open)(int ch, int baudrate, int en_int); + void (*uart_sendc)(int ch, unsigned char data); + int (*uart_getc)(int ch, unsigned char * data); + int (*uart_sendready)(int channel); + unsigned int (*get_nettick)(void); +}; +typedef struct tagGP_COMM_OPT GP_COMM_OPT; + +struct tagGP_COMM_MEM{ + void* (*malloc)(unsigned int nbyte); + void (*free)(void * pt); +}; +typedef struct tagGP_COMM_MEM GP_COMM_MEM; + +/*****************************************************************************/ +#define MAX_PARAM_STRING 128 + +struct tagGP_INET_OPT{ + char gp_phone_num[MAX_PARAM_STRING]; + char gp_userid[MAX_PARAM_STRING]; + char gp_pwd[MAX_PARAM_STRING]; + char gp_fhost[MAX_PARAM_STRING]; + int gp_fport; + char gp_modem_init_cmd[MAX_PARAM_STRING]; + char gp_modem_sub_cmd[MAX_PARAM_STRING]; + int gp_ppp_tmo; + int gp_line_tmo; + void (*deliver_state)(GP_NET_STATE msg); + char gp_dns_addr[MAX_PARAM_STRING]; +#ifdef GPNET_DEBUG + void (*deliver_msg)(const char *p_str); + void (*copy_tx)(unsigned char data); + void (*copy_rx)(unsigned char data); +#endif +}; +typedef struct tagGP_INET_OPT GP_INET_OPT; + +/****************************************************************************/ +extern GP_COMM_OPT gp_comm_opt; +extern GP_COMM_MEM gp_comm_mem; +extern GP_INET_OPT gp_inet_opt; + +#endif /*__GPSOCKDEF_H__*/ diff --git a/backends/gp32/h/gpstdio.h b/backends/gp32/h/gpstdio.h new file mode 100644 index 0000000000..bfcbdb1ca4 --- /dev/null +++ b/backends/gp32/h/gpstdio.h @@ -0,0 +1,145 @@ + +#ifndef __GPSTDIO_H__ +#define __GPSTDIO_H__ + +#include "gpdef.h" +/*****************************************************************/ +/*GP32 FAT */ +/*****************************************************************/ +typedef enum { + SM_OK, /* 0 */ + ERR_FLASH_STATUS, + ERR_CARD_NOT_DETECTED, + ERR_CARD_CHANGED, + ERR_NOT_ERASED, + ERR_NOT_FORMATTED, + ERR_INVALID_MBR, + ERR_INVALID_PBR, + ERR_INVALID_FAT, + ERR_INVALID_NAME, + ERR_INVALID_HANDLE, /* 10 */ + ERR_INVALID_PARAM, + ERR_NO_EMPTY_BLOCK, + ERR_INVALID_BLOCK, + ERR_ECC, + ERR_ECC_CORRECTABLE, + ERR_FILE_OPENED, + ERR_FILE_EXIST, + ERR_DIR_NOT_EMPTY, + ERR_EOF, + ERR_FILE_NOT_OPENED, /* 20 */ + ERR_FILE_NOT_EXIST, + ERR_NO_LONG_NAME, + ERR_NOT_FOUND, + ERR_INCORRECT_FAT, + ERR_ROOT_DIR, + ERR_LOCKED, + ERR_NOT_PERMITTED, + ERR_OUT_OF_MEMORY, + ERR_OUT_OF_ROOT_ENTRY, + ERR_NO_MORE_ENTRY, /* 30 */ + ERR_SM_TIMEOUT, + ERR_SYSTEM_PARAMETER, + ERR_INTERNAL, + ERR_FILE_NAME_LEN_TOO_LONG, + ERR_NO_EMPTY_CLUSTER, + ERR_INVALID_R_PATH, + ERR_ID_NOT_FOUND, + ERR_ID_INVALID, + ERR_NOT_INITIALIZED +} ERR_CODE; /* 0 when success. otherwise error code */ + +typedef long F_HANDLE; /* MSB is 1, when error. otherwise cluster + * number + * (bits 30 - 24: device number (0 - 128)) + * (bits 23 - 17: file opened id) => + * used multi-access mode + */ + +/* fcreate mode */ +#define NOT_IF_EXIST 0 +#define ALWAYS_CREATE 1 + +/* open mode (can be ORed) */ +#define OPEN_R 1 +#define OPEN_W 2 + +/* ddel mode */ +#define NOT_IF_NOT_EMPTY 0 +#define ALWAYS_DELETE 1 + +/* seek mode */ +#define FROM_CURRENT 0 +#define FROM_BEGIN 1 +#define FROM_END 2 + +/* format mode */ +#define FORMAT_NORMAL 0 +#define FORMAT_RESCUE 1 + + +typedef struct { + uword year; + ubyte month; + ubyte day; + ubyte hour; + ubyte min; + ubyte sec; + ubyte msec; +}sTIME; + +/********** + * attr + * 7-6 Reserved. Must be 0's. + * 5: 1 = ARCHIVE file was modified + * 4: 1 = DIRECTORY, 0 = file + * 3: 1 = VOLUME label + * 2: 1 = SYSTEM file or directory + * 1: 1 = HIDDEN file or directory + * 0: 1 = READONLY file + **********/ +typedef struct { + udword attr; + udword cluster; + udword size; + sTIME time; +} GPFILEATTR; + +typedef struct { + char name[16]; +} GPDIRENTRY; + + +ERR_CODE GpFatInit (void); +ERR_CODE GpRelativePathSet (const char * p_path); +void GpRelativePathGet (char *p_path); + +ERR_CODE GpFileCreate (const char * p_file_name, ulong fcreate_mode, F_HANDLE *p_handle); +ERR_CODE GpFileOpen (const char * p_file_name, ulong fopen_mode, F_HANDLE *p_handle); +ERR_CODE GpFileRead (F_HANDLE h_file, void * p_buf, ulong buf_size, ulong * p_read_count); +ERR_CODE GpFileWrite (F_HANDLE h_file, const void * p_buf, ulong count); +ERR_CODE GpFileSeek (F_HANDLE h_file, ulong seek_mode, ulong offset, long * p_old_offset); +ERR_CODE GpFileClose (F_HANDLE h_file); +ERR_CODE GpFileRemove (const char * p_file_name); +ERR_CODE GpFileGetSize (const char * p_file_name, ulong * p_size); +ERR_CODE GpFileExtend (F_HANDLE h_file, ulong size); +ERR_CODE GpFileMove (const char * old_path, const char * new_path); +ERR_CODE GpFileRename (const char * old_path, const char * new_path); + +ERR_CODE GpDirCreate (const char * p_dir_name, ulong dcreate_mode); +ERR_CODE GpDirRemove (const char * p_dir_name, ulong ddel_mode); +ERR_CODE GpDirEnumNum (const char * p_dir_name, ulong * p_num); +ERR_CODE GpDirEnumList (const char * p_dir_name, ulong entry_start, ulong entry_count, GPDIRENTRY * p_list, ulong * p_read_count); + +ERR_CODE GpFileAttr (const char * p_name, GPFILEATTR * p_attr); + +ERR_CODE GpVolumeInfo (const char * p_vol_name, ulong * total_size, ulong * used_size, ulong * free_size); +ERR_CODE GpFormat (const char * p_vol_name, ulong format_id, ulong * p_bad_block); + +ERR_CODE GpNoFATUpdate (const char * p_vol_name); +ERR_CODE GpFATUpdate (const char * p_vol_name); + +ERR_CODE GpFatInitialized (void); +ERR_CODE GpSMCDetected (void); + +#endif diff --git a/backends/gp32/h/gpstdlib.h b/backends/gp32/h/gpstdlib.h new file mode 100644 index 0000000000..f7a27e7275 --- /dev/null +++ b/backends/gp32/h/gpstdlib.h @@ -0,0 +1,55 @@ +#ifndef __GPSTDLIB_H__ +#define __GPSTDLIB_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************/ +/*SYS INITIALIZE FUNCTION*/ +void _gp_sdk_init(void); +void _gp_key_polling_time_set(int loop_cnt); + + +/************************************************************************/ +int GpAppPathSet(const char * p_path, int n_len); +char * GpAppPathGet(int * n_len /* optional */); +int GpUserInfoGet(char * p_id, char * p_pwd); +int GpArgSet(int len, char * p_arg); +int GpAppExecute(char * p_code_ptr, const char * s_path); +void GpAppExit(void); +unsigned int GpTickCountGet(void); +void GpNetTpsSet(int tps); +int GpUSBLineCheck(void); + +/*Keyboard*/ +void GpKeyInit(void); +int GpKeyGet(void); /*return key data*/ +int GpKeyGetEx(int * key_status); /*return GpKeyChanged()*/ +int GpKeyChanged(void); + +/*CPU Speed*/ +int GpClockSpeedChange(int master_speed, int div_factor, int clk_mode); +unsigned int GpMClkGet(void); +unsigned int GpHClkGet(void); +unsigned int GpPClkGet(void); +/***********************************************************************/ + +/***********************************************************************/ + #include "gpmem.h" + +extern GPMEMFUNC gp_mem_func; +extern GPSTRFUNC gp_str_func; +/***********************************************************************/ + +/***********************************************************************/ +void GpSrand(int seed); +unsigned int GpRand(void); +unsigned int GpRandN(unsigned n); +/***********************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif /*__k41lib_h__*/ diff --git a/backends/gp32/h/initval_port.h b/backends/gp32/h/initval_port.h new file mode 100644 index 0000000000..e069f85a58 --- /dev/null +++ b/backends/gp32/h/initval_port.h @@ -0,0 +1,37 @@ +#ifndef __INITVAL_PORT_H__ +#define __INITVAL_PORT_H__ + +/*******************************************************************/ +/*at loading time, thread stack define -- implemented in gpstart.c*/ +#define GPMAIN_STACK_SIZE (100<<10) /*100KB -- access code = 0*/ +#define NET_STACK_SIZE (64<<10) /*64KB -- access code = 1*/ +#define USER_STACK_SIZE (4 << 10) /*4KB -- access code = 2*/ +/*******************************************************************/ + +/************************************************************* +* Heap Management Library Attach * +*************************************************************/ +#define USE_GP_MEM 1 /* If you don't use gpmem.alf, change USE_GP_MEM to 0 */ + +/************************************************************* +* Button Checking Loop count * +*************************************************************/ +#define KEYPOLLING_NUM 20 /* You can change polling number, but the valus must be as small as possible. */ + +/************************************************************* +* Processor Clock speed * +*************************************************************/ +#define DEFAULT_MCLK 67800000 +#define CHANGE_MCLK 0 /* If the CHANGE_MCLK is zero, the clock speed of process is 40MHz */ +#if CHANGE_MCLK /* If the CHANGE_MCLK is non-zero, select CLOCKSPEED */ + #define YOUR_SELECT_CLK 0 + #if (YOUR_SELECT_CLK == 0) + #define CLK_SPEED 59250000 + #define DIV_FACTOR 0x47022 + #define CLK_MODE 1 + #elif (YOUR_SELECT_CLK == 1 ) + #else + #endif +#endif /*CHANGE_MCLK*/ + +#endif /*__initval_port_h__*/ |