From 57c7f2279e0daf933be2c258a0a03a4576c77f4a Mon Sep 17 00:00:00 2001 From: David Griffith Date: Tue, 3 Jan 2012 00:26:42 -0800 Subject: [PATCH] Adding DOS Frotz 2.43 changes --- src/common/fastmem.c | 91 +- src/common/files.c | 4 +- src/common/frotz.h | 82 +- src/common/input.c | 15 +- src/common/quetzal.c | 6 +- src/common/sound.c | 4 +- src/dos/bcfrotz.h | 99 ++ src/dos/bcinit.c | 849 ++++++++++++++++ src/dos/bcinput.c | 999 +++++++++++++++++++ src/dos/bcmouse.c | 75 ++ src/dos/bcpic.c | 683 +++++++++++++ src/dos/bcsample.c | 429 ++++++++ src/dos/bcscreen.c | 298 ++++++ src/dos/bctext.c | 807 +++++++++++++++ src/dos/fontdata.h | 2250 ++++++++++++++++++++++++++++++++++++++++++ 15 files changed, 6629 insertions(+), 62 deletions(-) create mode 100644 src/dos/bcfrotz.h create mode 100644 src/dos/bcinit.c create mode 100644 src/dos/bcinput.c create mode 100644 src/dos/bcmouse.c create mode 100644 src/dos/bcpic.c create mode 100644 src/dos/bcsample.c create mode 100644 src/dos/bcscreen.c create mode 100644 src/dos/bctext.c create mode 100644 src/dos/fontdata.h diff --git a/src/common/fastmem.c b/src/common/fastmem.c index 9906f0b..12ab84b 100644 --- a/src/common/fastmem.c +++ b/src/common/fastmem.c @@ -117,7 +117,7 @@ zword get_header_extension (int entry) return 0; addr = h_extension_table + 2 * entry; - LOW_WORD (addr, val) + LOW_WORD (addr, val); return val; @@ -138,7 +138,7 @@ void set_header_extension (int entry, zword val) return; addr = h_extension_table + 2 * entry; - SET_WORD (addr, val) + SET_WORD (addr, val); }/* set_header_extension */ @@ -158,14 +158,14 @@ void restart_header (void) int i; - SET_BYTE (H_CONFIG, h_config) - SET_WORD (H_FLAGS, h_flags) + SET_BYTE (H_CONFIG, h_config); + SET_WORD (H_FLAGS, h_flags); if (h_version >= V4) { - SET_BYTE (H_INTERPRETER_NUMBER, h_interpreter_number) - SET_BYTE (H_INTERPRETER_VERSION, h_interpreter_version) - SET_BYTE (H_SCREEN_ROWS, h_screen_rows) - SET_BYTE (H_SCREEN_COLS, h_screen_cols) + SET_BYTE (H_INTERPRETER_NUMBER, h_interpreter_number); + SET_BYTE (H_INTERPRETER_VERSION, h_interpreter_version); + SET_BYTE (H_SCREEN_ROWS, h_screen_rows); + SET_BYTE (H_SCREEN_COLS, h_screen_cols); } /* It's less trouble to use font size 1x1 for V5 games, especially @@ -184,20 +184,20 @@ void restart_header (void) } if (h_version >= V5) { - SET_WORD (H_SCREEN_WIDTH, screen_x_size) - SET_WORD (H_SCREEN_HEIGHT, screen_y_size) - SET_BYTE (H_FONT_HEIGHT, font_y_size) - SET_BYTE (H_FONT_WIDTH, font_x_size) - SET_BYTE (H_DEFAULT_BACKGROUND, h_default_background) - SET_BYTE (H_DEFAULT_FOREGROUND, h_default_foreground) + SET_WORD (H_SCREEN_WIDTH, screen_x_size); + SET_WORD (H_SCREEN_HEIGHT, screen_y_size); + SET_BYTE (H_FONT_HEIGHT, font_y_size); + SET_BYTE (H_FONT_WIDTH, font_x_size); + SET_BYTE (H_DEFAULT_BACKGROUND, h_default_background); + SET_BYTE (H_DEFAULT_FOREGROUND, h_default_foreground); } if (h_version == V6) for (i = 0; i < 8; i++) storeb ((zword) (H_USER_NAME + i), h_user_name[i]); - SET_BYTE (H_STANDARD_HIGH, h_standard_high) - SET_BYTE (H_STANDARD_LOW, h_standard_low) + SET_BYTE (H_STANDARD_HIGH, h_standard_high); + SET_BYTE (H_STANDARD_LOW, h_standard_low); }/* restart_header */ @@ -264,27 +264,27 @@ void init_memory (void) /* Copy header fields to global variables */ - LOW_BYTE (H_VERSION, h_version) + LOW_BYTE (H_VERSION, h_version); if (h_version < V1 || h_version > V8) os_fatal ("Unknown Z-code version"); - LOW_BYTE (H_CONFIG, h_config) + LOW_BYTE (H_CONFIG, h_config); if (h_version == V3 && (h_config & CONFIG_BYTE_SWAPPED)) os_fatal ("Byte swapped story file"); - LOW_WORD (H_RELEASE, h_release) - LOW_WORD (H_RESIDENT_SIZE, h_resident_size) - LOW_WORD (H_START_PC, h_start_pc) - LOW_WORD (H_DICTIONARY, h_dictionary) - LOW_WORD (H_OBJECTS, h_objects) - LOW_WORD (H_GLOBALS, h_globals) - LOW_WORD (H_DYNAMIC_SIZE, h_dynamic_size) - LOW_WORD (H_FLAGS, h_flags) + LOW_WORD (H_RELEASE, h_release); + LOW_WORD (H_RESIDENT_SIZE, h_resident_size); + LOW_WORD (H_START_PC, h_start_pc); + LOW_WORD (H_DICTIONARY, h_dictionary); + LOW_WORD (H_OBJECTS, h_objects); + LOW_WORD (H_GLOBALS, h_globals); + LOW_WORD (H_DYNAMIC_SIZE, h_dynamic_size); + LOW_WORD (H_FLAGS, h_flags); for (i = 0, addr = H_SERIAL; i < 6; i++, addr++) - LOW_BYTE (addr, h_serial[i]) + LOW_BYTE (addr, h_serial[i]); /* Auto-detect buggy story files that need special fixes */ @@ -306,8 +306,8 @@ void init_memory (void) } - LOW_WORD (H_ABBREVIATIONS, h_abbreviations) - LOW_WORD (H_FILE_SIZE, h_file_size) + LOW_WORD (H_ABBREVIATIONS, h_abbreviations); + LOW_WORD (H_FILE_SIZE, h_file_size); /* Calculate story file size in bytes */ @@ -328,12 +328,12 @@ void init_memory (void) } - LOW_WORD (H_CHECKSUM, h_checksum) - LOW_WORD (H_ALPHABET, h_alphabet) - LOW_WORD (H_FUNCTIONS_OFFSET, h_functions_offset) - LOW_WORD (H_STRINGS_OFFSET, h_strings_offset) - LOW_WORD (H_TERMINATING_KEYS, h_terminating_keys) - LOW_WORD (H_EXTENSION_TABLE, h_extension_table) + LOW_WORD (H_CHECKSUM, h_checksum); + LOW_WORD (H_ALPHABET, h_alphabet); + LOW_WORD (H_FUNCTIONS_OFFSET, h_functions_offset); + LOW_WORD (H_STRINGS_OFFSET, h_strings_offset); + LOW_WORD (H_TERMINATING_KEYS, h_terminating_keys); + LOW_WORD (H_EXTENSION_TABLE, h_extension_table); /* Zork Zero Macintosh doesn't have the graphics flag set */ @@ -364,7 +364,7 @@ void init_memory (void) if (story_size - size < 0x8000) n = (unsigned) (story_size - size); - SET_PC (size) + SET_PC (size); if (fread (pcp, 1, n, story_fp) != n) os_fatal ("Story file read error"); @@ -496,7 +496,7 @@ void storeb (zword addr, zbyte value) } - SET_BYTE (addr, value) + SET_BYTE (addr, value); }/* storeb */ @@ -550,7 +550,7 @@ void z_restart (void) if (h_version != V6) { long pc = (long) h_start_pc; - SET_PC (pc) + SET_PC (pc); } else call (h_start_pc, 0, NULL, 0); @@ -574,14 +574,14 @@ static void get_default_name (char *default_name, zword addr) zbyte len; int i; - LOW_BYTE (addr, len) + LOW_BYTE (addr, len); addr++; for (i = 0; i < len; i++) { zbyte c; - LOW_BYTE (addr, c) + LOW_BYTE (addr, c); addr++; if (c >= 'A' && c <= 'Z') @@ -680,7 +680,7 @@ void z_restore (void) pc |= (unsigned) fgetc (gfp) << 8; pc |= fgetc (gfp); - SET_PC (pc) + SET_PC (pc); sp = stack + (fgetc (gfp) << 8); sp += fgetc (gfp); @@ -848,6 +848,7 @@ static void mem_undiff (zbyte *diff, long diff_length, zbyte *dest) int restore_undo (void) { + long pc = curr_undo->pc; if (f_setup.undo_slots == 0) /* undo feature unavailable */ @@ -860,7 +861,7 @@ int restore_undo (void) /* undo possible */ memcpy (zmp, prev_zmp, h_dynamic_size); - SET_PC (curr_undo->pc) + SET_PC (pc); sp = stack + STACK_SIZE - curr_undo->stack_size; fp = stack + curr_undo->frame_offset; frame_count = curr_undo->frame_count; @@ -961,7 +962,7 @@ void z_save (void) fputc ((int) hi (h_checksum), gfp); fputc ((int) lo (h_checksum), gfp); - GET_PC (pc) + GET_PC (pc); fputc ((int) (pc >> 16) & 0xff, gfp); fputc ((int) (pc >> 8) & 0xff, gfp); @@ -1024,6 +1025,7 @@ int save_undo (void) long diff_size; zword stack_size; undo_t *p; + long pc = p->pc; if (f_setup.undo_slots == 0) /* undo feature unavailable */ return -1; @@ -1053,7 +1055,8 @@ int save_undo (void) } while (!p && undo_count); if (p == NULL) return -1; - GET_PC (p->pc) + GET_PC (pc); /* Turbo C doesn't like seeing p->pc here */ + p->pc = pc; p->frame_count = frame_count; p->diff_size = diff_size; p->stack_size = stack_size; diff --git a/src/common/files.c b/src/common/files.c index 0e864d5..6ac05c0 100644 --- a/src/common/files.c +++ b/src/common/files.c @@ -95,7 +95,7 @@ void script_open (void) done: - SET_WORD (H_FLAGS, h_flags) + SET_WORD (H_FLAGS, h_flags); }/* script_open */ @@ -110,7 +110,7 @@ void script_close (void) { h_flags &= ~SCRIPTING_FLAG; - SET_WORD (H_FLAGS, h_flags) + SET_WORD (H_FLAGS, h_flags); fclose (sfp); ostream_script = FALSE; diff --git a/src/common/frotz.h b/src/common/frotz.h index 7412430..6fc03a7 100644 --- a/src/common/frotz.h +++ b/src/common/frotz.h @@ -276,7 +276,79 @@ extern zbyte *zmp; #endif -/* A bunch of x86 assembly code previously appeared here. */ +#if defined (MSDOS_16BIT) +extern zbyte *pcp; +extern zbyte *zmp; + +#define lo(v) ((zbyte *)&v)[0] +#define hi(v) ((zbyte *)&v)[1] + +#define SET_WORD(addr,v) asm {\ + les bx,zmp;\ + add bx,addr;\ + mov ax,v;\ + xchg al,ah;\ + mov es:[bx],ax } + +#define LOW_WORD(addr,v) asm {\ + les bx,zmp;\ + add bx,addr;\ + mov ax,es:[bx];\ + xchg al,ah;\ + mov v,ax } + +#define HIGH_WORD(addr,v) asm {\ + mov bx,word ptr zmp;\ + add bx,word ptr addr;\ + mov al,bh;\ + mov bh,0;\ + mov ah,0;\ + adc ah,byte ptr addr+2;\ + mov cl,4;\ + shl ax,cl;\ + add ax,word ptr zmp+2;\ + mov es,ax;\ + mov ax,es:[bx];\ + xchg al,ah;\ + mov v,ax } + +#define CODE_WORD(v) asm {\ + les bx,pcp;\ + mov ax,es:[bx];\ + xchg al,ah;\ + mov v,ax;\ + add word ptr pcp,2 } + +#define GET_PC(v) asm {\ + mov bx,word ptr pcp+2;\ + sub bx,word ptr zmp+2;\ + mov ax,bx;\ + mov cl,4;\ + shl bx,cl;\ + mov cl,12;\ + shr ax,cl;\ + add bx,word ptr pcp;\ + adc al,0;\ + sub bx,word ptr zmp;\ + sbb al,0;\ + mov word ptr v,bx;\ + mov word ptr v+2,ax } + +#define SET_PC(v) asm {\ + mov bx,word ptr zmp;\ + add bx,word ptr v;\ + mov al,bh;\ + mov bh,0;\ + mov ah,0;\ + adc ah,byte ptr v+2;\ + mov cl,4;\ + shl ax,cl;\ + add ax,word ptr zmp+2;\ + mov word ptr pcp,bx;\ + mov word ptr pcp+2,ax } + +#endif /* MSDOS_16BIT */ + #if !defined (AMIGA) && !defined (MSDOS_16BIT) @@ -501,7 +573,7 @@ void z_window_style (void); void init_err (void); void runtime_error (int); - + /* Error codes */ #define ERR_TEXT_BUF_OVF 1 /* Text buffer overflow */ #define ERR_STORE_RANGE 2 /* Store out of dynamic memory */ @@ -539,7 +611,7 @@ void runtime_error (int); #define ERR_REMOVE_OBJECT_0 31 /* @remove_object called with object 0 */ #define ERR_GET_NEXT_PROP_0 32 /* @get_next_prop called with object 0 */ #define ERR_NUM_ERRORS (32) - + /* There are four error reporting modes: never report errors; report only the first time a given error type occurs; report every time an error occurs; or treat all errors as fatal @@ -589,7 +661,7 @@ void os_display_string (const zchar *); void os_draw_picture (int, int, int); void os_erase_area (int, int, int, int); void os_fatal (const char *); -void os_finish_with_sample (int); +void os_finish_with_sample (); int os_font_data (int, int *, int *); void os_init_screen (void); void os_more_prompt (void); @@ -609,7 +681,7 @@ void os_set_cursor (int, int); void os_set_font (int); void os_set_text_style (int); void os_start_sample (int, int, int, zword); -void os_stop_sample (int); +void os_stop_sample (); int os_string_width (const zchar *); void os_init_setup (void); int os_speech_output(const zchar *); diff --git a/src/common/input.c b/src/common/input.c index e4dad62..370d554 100644 --- a/src/common/input.c +++ b/src/common/input.c @@ -52,7 +52,7 @@ bool is_terminator (zchar key) zbyte c; do { - LOW_BYTE (addr, c) + LOW_BYTE (addr, c); if (c == 255 || key == translate_from_zscii (c)) return TRUE; addr++; @@ -181,7 +181,7 @@ void z_read (void) addr = zargs[0]; - LOW_BYTE (addr, max) + LOW_BYTE (addr, max); if (h_version <= V4) max--; @@ -193,14 +193,14 @@ void z_read (void) if (h_version >= V5) { addr++; - LOW_BYTE (addr, size) + LOW_BYTE (addr, size); } else size = 0; /* Copy initial input to local buffer */ for (i = 0; i < size; i++) { addr++; - LOW_BYTE (addr, c) + LOW_BYTE (addr, c); buffer[i] = translate_from_zscii (c); } @@ -309,12 +309,15 @@ void z_read_mouse (void) { zword btn; - /* Read the mouse position and which buttons are down */ + btn = 1; + /** I don't remember what was going on here */ + /* Read the mouse position and which buttons are down */ +/* btn = os_read_mouse (); hx_mouse_y = mouse_y; hx_mouse_x = mouse_x; - +*/ storew ((zword) (zargs[0] + 0), hx_mouse_y); storew ((zword) (zargs[0] + 2), hx_mouse_x); storew ((zword) (zargs[0] + 4), btn); /* mouse button bits */ diff --git a/src/common/quetzal.c b/src/common/quetzal.c index f7ccacd..ce78b36 100644 --- a/src/common/quetzal.c +++ b/src/common/quetzal.c @@ -61,7 +61,7 @@ static zword frames[STACK_SIZE/4+1]; * ID types. */ -#define makeid(a,b,c,d) ((zlong) (((a)<<24) | ((b)<<16) | ((c)<<8) | (d))) +#define makeid(a,b,c,d) ((zlong) (((zlong)(a)<<24) | ((zlong)(b)<<16) | ((zlong)(c)<<8) | (zlong)(d))) #define ID_FORM makeid ('F','O','R','M') #define ID_IFZS makeid ('I','F','Z','S') @@ -175,8 +175,8 @@ zword restore_quetzal (FILE *svf, FILE *stf) return fatal; } progress |= GOT_HEADER; - if (currlen < 13 - || !read_word (svf, &tmpw)) return fatal; + if (currlen < 13 || !read_word (svf, &tmpw)) + return fatal; if (tmpw != h_release) progress = GOT_ERROR; diff --git a/src/common/sound.c b/src/common/sound.c index ea0e357..37c98e9 100644 --- a/src/common/sound.c +++ b/src/common/sound.c @@ -189,10 +189,10 @@ void z_sound_effect (void) start_sample (number, lo (volume), hi (volume), (zargc == 4) ? zargs[3] : 0); break; case EFFECT_STOP: - os_stop_sample (number); + os_stop_sample (); break; case EFFECT_FINISH_WITH: - os_finish_with_sample (number); + os_finish_with_sample (); break; } diff --git a/src/dos/bcfrotz.h b/src/dos/bcfrotz.h new file mode 100644 index 0000000..fe5f00e --- /dev/null +++ b/src/dos/bcfrotz.h @@ -0,0 +1,99 @@ +/* + * "BCfrotz.h" + * + * Borland C interface, declarations + * + */ + +#define MASK_LINEAR(addr) (addr & 0x000FFFFF) +#define RM_TO_LINEAR(addr) (((addr & 0xFFFF0000) >> 12) + (addr & 0xFFFF)) +#define RM_OFFSET(addr) (addr & 0xF) +#define RM_SEGMENT(addr) ((addr >> 4) & 0xFFFF) + +#define OS_PATHSEP ';' + +#define byte0(v) ((byte *)&v)[0] +#define byte1(v) ((byte *)&v)[1] +#define byte2(v) ((byte *)&v)[2] +#define byte3(v) ((byte *)&v)[3] +#define word0(v) ((word *)&v)[0] +#define word1(v) ((word *)&v)[1] + +#ifndef HISTORY_MIN_ENTRY +#define HISTORY_MIN_ENTRY 1 +#endif + +#define SPECIAL_KEY_MIN 256 +#define SPECIAL_KEY_HOME 256 +#define SPECIAL_KEY_END 257 +#define SPECIAL_KEY_WORD_LEFT 258 +#define SPECIAL_KEY_WORD_RIGHT 259 +#define SPECIAL_KEY_DELETE 260 +#define SPECIAL_KEY_INSERT 261 +#define SPECIAL_KEY_PAGE_UP 262 +#define SPECIAL_KEY_PAGE_DOWN 263 +#define SPECIAL_KEY_TAB 264 +#define SPECIAL_KEY_MAX 264 + +#define _MONO_ 0 +#define _TEXT_ 1 +#define _CGA_ 2 +#define _MCGA_ 3 +#define _EGA_ 4 +#define _AMIGA_ 5 + +typedef unsigned char byte; +typedef unsigned short word; + +extern display; + +extern cursor_x; +extern cursor_y; + +extern char latin1_to_ibm[]; +extern char latin1_to_ascii[]; + +extern byte text_bg; +extern byte text_fg; + +extern byte scrn_attr; + +extern user_background; +extern user_foreground; +extern user_emphasis; +extern user_reverse_bg; +extern user_reverse_fg; +extern user_screen_height; +extern user_screen_width; +extern user_tandy_bit; +extern user_bold_typing; +extern user_random_seed; +extern user_font; + +extern char stripped_story_name[]; +extern char *prog_name; + +extern current_bg; +extern current_fg; +extern current_style; +extern current_font; + +extern scaler; + +#ifdef SOUND_SUPPORT +extern volatile int end_of_sound_flag; +#endif + +/* BCinit */ int dectoi (const char *); +/* BCinit */ int hextoi (const char *); +/* BCmouse */ bool detect_mouse (void); +/* BCmouse */ int read_mouse (void); +/* BCpic */ bool init_pictures (void); +/* BCpic */ void reset_pictures (void); + +#ifdef SOUND_SUPPORT +/* BCsmpl */ bool init_sound (void); +/* BCsmpl */ void reset_sound (void); +#endif +/* BCtext */ void switch_scrn_attr (bool); +/* BCtext */ void load_fonts (void); diff --git a/src/dos/bcinit.c b/src/dos/bcinit.c new file mode 100644 index 0000000..db952d0 --- /dev/null +++ b/src/dos/bcinit.c @@ -0,0 +1,849 @@ +/* + * file "BCinit.c" + * + * Borland C front end, initialisation + * + */ + +#include +#include +#include +#include +#include +#include "frotz.h" +#include "bcfrotz.h" + +f_setup_t f_setup; + +static char information[] = +"FROTZ V2.43 - interpreter for all Infocom games. Complies with standard\n" +"1.0 of Graham Nelson's specification. Written by Stefan Jokisch in 1995-7\n" +"\n" +"Syntax: frotz [options] story-file\n" +"\n" +" -a watch attribute setting \t -o watch object movement\n" +" -A watch attribute testing \t -O watch object locating\n" +" -b # background colour \t -p alter piracy opcode\n" +" -B # reverse background colour\t -Q use old-style save format\n" +" -c # context lines \t -r # right margin\n" +" -d # display mode (see below) \t -s # random number seed value\n" +" -e # emphasis colour [mode 1] \t -S # transscript width\n" +" -f # foreground colour \t -t set Tandy bit\n" +" -F # reverse foreground colour\t -T bold typing [modes 2+4+5]\n" +" -g # font [mode 5] (see below)\t -u # slots for multiple undo\n" +" -h # screen height \t -w # screen width\n" +" -i ignore runtime errors \t -x expand abbreviations g/x/z\n" +" -l # left margin" +" \t -Z # error checking (see below)" +"\n" +"Fonts are 0 (fixed), 1 (sans serif), 2 (comic), 3 (times), 4 (serif).\n" +"Display modes are 0 (mono), 1 (text), 2 (CGA), 3 (MCGA), 4 (EGA), 5 (Amiga)." +"\n\n" +"Error checking is 0 (none), 1 (report first error (default)),\n" +" 2 (report all errors), 3 (exit after any error)."; + +/* in bcinit.c only. What is its significance? */ +extern unsigned cdecl _heaplen = 0x800 + 4 * BUFSIZ; +extern unsigned cdecl _stklen = 0x800; + +extern const char *optarg; +extern int optind; + +int cdecl getopt (int, char *[], const char *); + +static const char *progname = NULL; + +extern char script_name[]; +extern char command_name[]; +extern char save_name[]; +extern char auxilary_name[]; + +char stripped_story_name[10]; + +int display = -1; + +int user_background = -1; +int user_foreground = -1; +int user_emphasis = -1; +int user_bold_typing = -1; +int user_reverse_bg = -1; +int user_reverse_fg = -1; +int user_screen_height = -1; +int user_screen_width = -1; +int user_tandy_bit = -1; +int user_random_seed = -1; +int user_font = 1; + +static byte old_video_mode = 0; + +static void interrupt (*oldvect) () = NULL; + + + +/* + * os_init_setup + * + * Set or reset various configuration variables. + * + */ +void os_init_setup(void) +{ + f_setup.attribute_assignment = 0; + f_setup.attribute_testing = 0; + f_setup.context_lines = 0; + f_setup.object_locating = 0; + f_setup.object_movement = 0; + f_setup.left_margin = 0; + f_setup.right_margin = 0; + f_setup.ignore_errors = 0; + f_setup.piracy = 0; + f_setup.undo_slots = MAX_UNDO_SLOTS; + f_setup.expand_abbreviations = 0; + f_setup.script_cols = 80; + f_setup.save_quetzal = 1; + f_setup.sound = 1; + f_setup.err_report_mode = ERR_DEFAULT_REPORT_MODE; + +}/* os_init_setup */ + +/* + * dectoi + * + * Convert a string containing a decimal number to integer. The string may + * be NULL, but it must not be empty. + * + */ + +int dectoi (const char *s) +{ + int n = 0; + + if (s != NULL) + + do { + + n = 10 * n + (*s & 15); + + } while (*++s > ' '); + + return n; + +}/* dectoi */ + +/* + * hextoi + * + * Convert a string containing a hex number to integer. The string may be + * NULL, but it must not be empty. + * + */ + +int hextoi (const char *s) +{ + int n = 0; + + if (s != NULL) + + do { + + n = 16 * n + (*s & 15); + + if (*s > '9') + n += 9; + + } while (*++s > ' '); + + return n; + +}/* hextoi */ + +/* + * cleanup + * + * Shut down the IO interface: free memory, close files, restore + * interrupt pointers and return to the previous video mode. + * + */ + +static void cleanup (void) +{ + +#ifdef SOUND_SUPPORT + reset_sound (); +#endif + reset_pictures (); + + asm mov ah,0 + asm mov al,old_video_mode + asm int 0x10 + + setvect (0x1b, oldvect); + +}/* cleanup */ + +/* + * fast_exit + * + * Handler routine to be called when the crtl-break key is pressed. + * + */ + +static void interrupt fast_exit () +{ + + cleanup (); exit (EXIT_FAILURE); + +}/* fast_exit */ + +/* + * os_fatal + * + * Display error message and exit program. + * + */ + +void os_fatal (const char *s) +{ + + if (h_interpreter_number) + os_reset_screen (); + + /* Display error message */ + + fputs ("\nFatal error: ", stderr); + fputs (s, stderr); + fputs ("\n", stderr); + + /* Abort program */ + + exit (EXIT_FAILURE); + +}/* os_fatal */ + +/* + * parse_options + * + * Parse program options and set global flags accordingly. + * + */ + +static void parse_options (int argc, char **argv) +{ + int c; + + do { + + int num = 0; + + c = getopt (argc, argv, "aAb:B:c:d:e:f:F:g:h:il:oOpQr:s:S:tTu:w:xZ:"); + + if (optarg != NULL) + num = dectoi (optarg); + + if (c == 'a') + f_setup.attribute_assignment = 1; + if (c == 'A') + f_setup.attribute_testing = 1; + if (c == 'b') + user_background = num; + if (c == 'B') + user_reverse_bg = num; + if (c == 'c') + f_setup.context_lines = num; + if (c == 'd') { + display = optarg[0] | 32; + if ((display < '0' || display > '5') + && (display < 'a' || display > 'e')) { + display = -1; + } + } + if (c == 'e') + user_emphasis = num; + if (c == 'T') + user_bold_typing = 1; + if (c == 'f') + user_foreground = num; + if (c == 'F') + user_reverse_fg = num; + if (c == 'g') { + if (num >= 0 && num <= 4) + user_font = num; + } + if (c == 'h') + user_screen_height = num; + if (c == 'i') + f_setup.ignore_errors = 1; + if (c == 'l') + f_setup.left_margin = num; + if (c == 'o') + f_setup.object_movement = 1; + if (c == 'O') + f_setup.object_locating = 1; + if (c == 'p') + f_setup.piracy = 1; + if (c == 'Q') + f_setup.save_quetzal = 0; + if (c == 'r') + f_setup.right_margin = num; + if (c == 's') + user_random_seed = num; + if (c == 'S') + f_setup.script_cols = num; + if (c == 't') + user_tandy_bit = 1; + if (c == 'u') + f_setup.undo_slots = num; + if (c == 'w') + user_screen_width = num; + if (c == 'x') + f_setup.expand_abbreviations = 1; + if (c == 'Z') { + if (num >= ERR_REPORT_NEVER && num <= ERR_REPORT_FATAL) + f_setup.err_report_mode = num; + } + if (c == '?') + optind = argc; + } while (c != EOF && c != '?'); + +}/* parse_options */ + +/* + * os_process_arguments + * + * Handle command line switches. Some variables may be set to activate + * special features of Frotz: + * + * option_attribute_assignment + * option_attribute_testing + * option_context_lines + * option_object_locating + * option_object_movement + * option_left_margin + * option_right_margin + * option_ignore_errors + * option_piracy + * option_undo_slots + * option_expand_abbreviations + * option_script_cols + * + * The global pointer "story_name" is set to the story file name. + * + */ + +void os_process_arguments (int argc, char *argv[]) +{ + const char *p; + int i; + + /* Parse command line options */ + + parse_options (argc, argv); + + if (optind != argc - 1) { + puts (information); + exit (EXIT_FAILURE); + } + + /* Set the story file name */ + + story_name = argv[optind]; + + /* Strip path and extension off the story file name */ + + p = story_name; + + for (i = 0; story_name[i] != 0; i++) + if (story_name[i] == '\\' || story_name[i] == '/' + || story_name[i] == ':') + p = story_name + i + 1; + + for (i = 0; p[i] != 0 && p[i] != '.'; i++) + stripped_story_name[i] = p[i]; + + stripped_story_name[i] = 0; + + /* Create nice default file names */ + + strcpy (script_name, stripped_story_name); + strcpy (command_name, stripped_story_name); + strcpy (save_name, stripped_story_name); + strcpy (auxilary_name, stripped_story_name); + + strcat (script_name, ".scr"); + strcat (command_name, ".rec"); + strcat (save_name, ".sav"); + strcat (auxilary_name, ".aux"); + + /* Save the executable file name */ + + progname = argv[0]; + +}/* os_process_arguments */ + +/* + * standard_palette + * + * Set palette registers to EGA default values and call VGA BIOS to + * use DAC registers #0 to #63. + * + */ + +static void standard_palette (void) +{ + + static byte palette[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x14, 0x07, + 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, + 0x00 /* last one is the overscan register */ + }; + + if (display == _AMIGA_) { + asm mov ax,0x1002 + asm lea dx,palette + asm push ds + asm pop es + asm int 0x10 + asm mov ax,0x1013 + asm mov bx,0x0001 + asm int 0x10 + } + +}/* standard_palette */ + +/* + * special_palette + * + * Set palette register #i to value i and call VGA BIOS to use DAC + * registers #64 to #127. + * + */ + +static void special_palette (void) +{ + + static byte palette[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x00 /* last one is the overscan register */ + }; + + if (display == _AMIGA_) { + asm mov ax,0x1002 + asm mov dx,offset palette + asm push ds + asm pop es + asm int 0x10 + asm mov ax,0x1013 + asm mov bx,0x0101 + asm int 0x10 + } + +}/* special_palette */ + +/* + * os_init_screen + * + * Initialise the IO interface. Prepare the screen and other devices + * (mouse, sound board). Set various OS depending story file header + * entries: + * + * h_config (aka flags 1) + * h_flags (aka flags 2) + * h_screen_cols (aka screen width in characters) + * h_screen_rows (aka screen height in lines) + * h_screen_width + * h_screen_height + * h_font_height (defaults to 1) + * h_font_width (defaults to 1) + * h_default_foreground + * h_default_background + * h_interpreter_number + * h_interpreter_version + * h_user_name (optional; not used by any game) + * + * Finally, set reserve_mem to the amount of memory (in bytes) that + * should not be used for multiple undo and reserved for later use. + * + */ + +void os_init_screen (void) +{ + static byte zcolour[] = { + BLACK_COLOUR, + BLUE_COLOUR, + GREEN_COLOUR, + CYAN_COLOUR, + RED_COLOUR, + MAGENTA_COLOUR, + BROWN + 16, + LIGHTGRAY + 16, + GREY_COLOUR, + LIGHTBLUE + 16, + LIGHTGREEN + 16, + LIGHTCYAN + 16, + LIGHTRED + 16, + LIGHTMAGENTA + 16, + YELLOW_COLOUR, + WHITE_COLOUR + }; + + static struct { /* information on modes 0 to 5 */ + byte vmode; + word width; + word height; + byte font_width; + byte font_height; + byte fg; + byte bg; + } info[] = { + { 0x07, 80, 25, 1, 1, LIGHTGRAY + 16, BLACK_COLOUR }, /* MONO */ + { 0x03, 80, 25, 1, 1, LIGHTGRAY + 16, BLUE_COLOUR }, /* TEXT */ + { 0x06, 640, 200, 8, 8, WHITE_COLOUR, BLACK_COLOUR }, /* CGA */ + { 0x13, 320, 200, 5, 8, WHITE_COLOUR, GREY_COLOUR }, /* MCGA */ + { 0x0e, 640, 200, 8, 8, WHITE_COLOUR, BLUE_COLOUR }, /* EGA */ + { 0x12, 640, 400, 8, 16, WHITE_COLOUR, BLACK_COLOUR } /* AMIGA */ + }; + + static struct { /* information on modes A to E */ + word vesamode; + word width; + word height; + } subinfo[] = { + { 0x001, 40, 25 }, + { 0x109, 132, 25 }, + { 0x10b, 132, 50 }, + { 0x108, 80, 60 }, + { 0x10c, 132, 60 } + }; + + int subdisplay; + + /* Get the current video mode. This video mode will be selected + when the program terminates. It's also useful to auto-detect + monochrome boards. */ + + asm mov ah,15 + asm int 0x10 + asm mov old_video_mode,al + + /* If the display mode has not already been set by the user then see + if this is a monochrome board. If so, set the display mode to 0. + Otherwise check the graphics flag of the story. Select a graphic + mode if it is set or if this is a V6 game. Select text mode if it + is not. */ + + if (display == -1) + + if (old_video_mode == 7) + display = '0'; + else if (h_version == V6 || (h_flags & GRAPHICS_FLAG)) + display = '5'; + else + display = '1'; + + /* Activate the desired display mode. All VESA text modes are very + similar to the standard text mode; in fact, only here we need to + know which VESA mode is used. */ + + if (display >= '0' && display <= '5') { + subdisplay = -1; + display -= '0'; + _AL = info[display].vmode; + _AH = 0; + } else if (display == 'a') { + subdisplay = 0; + display = 1; + _AL = 0x01; + _AH = 0; + } else if (display >= 'b' && display <= 'e') { + subdisplay = display - 'a'; + display = 1; + _BX = subinfo[subdisplay].vesamode; + _AX = 0x4f02; + } + + geninterrupt (0x10); + + /* Make various preparations */ + + if (display <= _TEXT_) { + + /* Enable bright background colours */ + + asm mov ax,0x1003 + asm mov bl,0 + asm int 0x10 + + /* Turn off hardware cursor */ + + asm mov ah,1 + asm mov cx,0xffff + asm int 0x10 + + } else { + + load_fonts (); + + if (display == _AMIGA_) { + + scaler = 2; + + /* Use resolution 640 x 400 instead of 640 x 480. BIOS doesn't + help us here since this is not a standard resolution. */ + + outportb (0x03c2, 0x63); + + outport (0x03d4, 0x0e11); + outport (0x03d4, 0xbf06); + outport (0x03d4, 0x1f07); + outport (0x03d4, 0x9c10); + outport (0x03d4, 0x8f12); + outport (0x03d4, 0x9615); + outport (0x03d4, 0xb916); + + } + + } + +#if !defined(__SMALL__) && !defined (__TINY__) && !defined (__MEDIUM__) + + /* Set the amount of memory to reserve for later use. It takes + some memory to open command, script and game files. If Frotz + is compiled in a small memory model then memory for opening + files is allocated on the "near heap" while other allocations + are made on the "far heap", i.e. we need not reserve memory + in this case. */ + + reserve_mem = 4 * BUFSIZ; + +#endif + + /* Amiga emulation under V6 needs special preparation. */ + + if (display == _AMIGA_ && h_version == V6) { + + user_reverse_fg = -1; + user_reverse_bg = -1; + zcolour[LIGHTGRAY] = LIGHTGREY_COLOUR; + zcolour[DARKGRAY] = DARKGREY_COLOUR; + + special_palette (); + + } + + /* Set various bits in the configuration byte. These bits tell + the game which features are supported by the interpreter. */ + + if (h_version == V3 && user_tandy_bit != -1) + h_config |= CONFIG_TANDY; + if (h_version == V3) + h_config |= CONFIG_SPLITSCREEN; + if (h_version == V3 && (display == _MCGA_ || (display == _AMIGA_ && user_font != 0))) + h_config |= CONFIG_PROPORTIONAL; + if (h_version >= V4 && display != _MCGA_ && (user_bold_typing != -1 || display <= _TEXT_)) + h_config |= CONFIG_BOLDFACE; + if (h_version >= V4) + h_config |= CONFIG_EMPHASIS | CONFIG_FIXED | CONFIG_TIMEDINPUT; + if (h_version >= V5 && display != _MONO_ && display != _CGA_) + h_config |= CONFIG_COLOUR; + if (h_version >= V5 && display >= _CGA_ && init_pictures ()) + h_config |= CONFIG_PICTURES; + + /* Handle various game flags. These flags are set if the game wants + to use certain features. The flags must be cleared if the feature + is not available. */ + + if (h_flags & GRAPHICS_FLAG) + if (display <= _TEXT_) + h_flags &= ~GRAPHICS_FLAG; + if (h_version == V3 && (h_flags & OLD_SOUND_FLAG)) +#ifdef SOUND_SUPPORT + if (!dos_init_sound ()) +#endif + h_flags &= ~OLD_SOUND_FLAG; + if (h_flags & SOUND_FLAG) +#ifdef SOUND_SUPPORT + if (!dos_init_sound ()) +#endif + h_flags &= ~SOUND_FLAG; + if (h_version >= V5 && (h_flags & UNDO_FLAG)) + if (!f_setup.undo_slots) + h_flags &= ~UNDO_FLAG; + if (h_flags & MOUSE_FLAG) + if (subdisplay != -1 || !detect_mouse ()) + h_flags &= ~MOUSE_FLAG; + if (h_flags & COLOUR_FLAG) + if (display == _MONO_ || display == _CGA_) + h_flags &= ~COLOUR_FLAG; + h_flags &= ~MENU_FLAG; + + /* Set the screen dimensions, font size and default colour */ + + h_screen_width = info[display].width; + h_screen_height = info[display].height; + h_font_height = info[display].font_height; + h_font_width = info[display].font_width; + h_default_foreground = info[display].fg; + h_default_background = info[display].bg; + + if (subdisplay != -1) { + h_screen_width = subinfo[subdisplay].width; + h_screen_height = subinfo[subdisplay].height; + } + + if (user_screen_width != -1) + h_screen_width = user_screen_width; + if (user_screen_height != -1) + h_screen_height = user_screen_height; + + h_screen_cols = h_screen_width / h_font_width; + h_screen_rows = h_screen_height / h_font_height; + + if (user_foreground != -1) + h_default_foreground = zcolour[user_foreground]; + if (user_background != -1) + h_default_background = zcolour[user_background]; + + /* Set the interpreter number (a constant telling the game which + operating system it runs on) and the interpreter version. The + interpreter number has effect on V6 games and "Beyond Zork". */ + + h_interpreter_number = INTERP_MSDOS; + h_interpreter_version = 'F'; + + if (display == _AMIGA_) + h_interpreter_number = INTERP_AMIGA; + + /* Install the fast_exit routine to handle the ctrl-break key */ + + oldvect = getvect (0x1b); setvect (0x1b, fast_exit); + +}/* os_init_screen */ + +/* + * os_reset_screen + * + * Reset the screen before the program stops. + * + */ + +void os_reset_screen (void) +{ + + os_set_font (TEXT_FONT); + os_set_text_style (0); + os_display_string ((zchar *) "[Hit any key to exit.]"); + os_read_key (0, TRUE); + + cleanup (); + +}/* os_reset_screen */ + +/* + * os_restart_game + * + * This routine allows the interface to interfere with the process of + * restarting a game at various stages: + * + * RESTART_BEGIN - restart has just begun + * RESTART_WPROP_SET - window properties have been initialised + * RESTART_END - restart is complete + * + */ + +void os_restart_game (int stage) +{ + int x, y; + + if (story_id == BEYOND_ZORK) + + if (stage == RESTART_BEGIN) + + if ((display == _MCGA_ || display == _AMIGA_) && os_picture_data (1, &x, &y)) { + + special_palette (); + + asm mov ax,0x1010 + asm mov bx,64 + asm mov dh,0 + asm mov ch,0 + asm mov cl,0 + asm int 0x10 + asm mov ax,0x1010 + asm mov bx,79 + asm mov dh,0xff + asm mov ch,0xff + asm mov cl,0xff + asm int 0x10 + + os_draw_picture (1, 1, 1); + os_read_key (0, FALSE); + + standard_palette (); + + } + +}/* os_restart_game */ + +/* + * os_random_seed + * + * Return an appropriate random seed value in the range from 0 to + * 32767, possibly by using the current system time. + * + */ + +int os_random_seed (void) +{ + + if (user_random_seed == -1) { + + /* Use the time of day as seed value */ + + asm mov ah,0 + asm int 0x1a + + return _DX & 0x7fff; + + } else return user_random_seed; + +}/* os_random_seed */ + + + +/* + * os_path_open + * + * Open a file in the current directory. If this fails then + * search the directories in the ZCODE_PATH environment variable, + * if it is defined, otherwise search INFOCOM_PATH. + * + */ + +FILE *os_path_open (const char *name, const char *mode) +{ + FILE *fp; + char buf[MAX_FILE_NAME + 1]; + char *p, *bp, lastch; + + if ((fp = fopen (name, mode)) != NULL) + return fp; + if ((p = getenv ("ZCODE_PATH")) == NULL) + p = getenv ("INFOCOM_PATH"); + if (p != NULL) { + while (*p) { + bp = buf; + while (*p && *p != OS_PATHSEP) + lastch = *bp++ = *p++; + if (lastch != '\\' && lastch != '/') + *bp++ = '\\'; + strcpy (bp, name); + if ((fp = fopen (buf, mode)) != NULL) + return fp; + if (*p) + p++; + } + } + return NULL; +}/* os_path_open */ + diff --git a/src/dos/bcinput.c b/src/dos/bcinput.c new file mode 100644 index 0000000..3ccca00 --- /dev/null +++ b/src/dos/bcinput.c @@ -0,0 +1,999 @@ +/* + * file "BCinput.c" + * + * Borland C front end, input functions + * + */ + +#include +#include +#include +#include "frotz.h" +#include "bcfrotz.h" + +#ifndef HISTORY_BUFSIZE +#define HISTORY_BUFSIZE 500 +#endif + +extern bool is_terminator (zchar); + +extern bool read_yes_or_no (const char *); +extern void read_string (int, zchar *); + +extern int completion (const zchar *, zchar *); + +static long limit = 0; + +static struct { + zchar buffer[HISTORY_BUFSIZE]; + int latest; + int current; + int prefix_len; +} history; + +static struct { + zchar *buffer; + int pos; + int length; + int max_length; + int width; + int max_width; +} input; + +static bool overwrite = FALSE; + +int end_of_sound_flag; + +/* + * swap_colours + * + * This is a small helper function for switch_cursor. It swaps the + * current background and foreground colours. + * + */ + +static void swap_colours (void) +{ + byte temp; + + temp = text_fg; + text_fg = text_bg; + text_bg = temp; + +}/* swap_colours */ + +/* + * switch_cursor + * + * Turn cursor on/off. If there is mouse support then turn the mouse + * pointer on/off as well. The cursor should not be moved and the + * contents of the screen should not be changed while the cursor is + * visible (because of the primitive cursor emulation we use here). + * + */ + +static void switch_cursor (bool cursor) +{ + + if (display <= _TEXT_) { + + /* Use hardware cursor in text mode */ + + if (display == _MONO_) + _CX = overwrite ? 0x080f : 0x0a0b; + else + _CX = overwrite ? 0x0408 : 0x0506; + + if (!cursor) + _CX = 0xffff; + + asm mov ah,2 + asm mov bh,0 + asm mov dh,byte ptr cursor_y + asm mov dl,byte ptr cursor_x + asm int 0x10 + asm mov ah,1 + asm int 0x10 + + } else { + + int saved_x = cursor_x; + + if (cursor) + swap_colours (); + + if (input.pos < input.length) + os_display_char (input.buffer[input.pos]); + else + os_display_char (' '); + + if (cursor) + swap_colours (); + + cursor_x = saved_x; + + } + +}/* switch_cursor */ + +/* + * get_current_time + * + * Return the current system time in 1/10 seconds. + * + */ + +static long get_current_time (void) +{ + long time; + + /* Get the current time of day measured in + 65536 / 1,193,180 = 0.054925493 + seconds. Multiply this value with + 959 / 1746 = 0.54925544 + to get the current time in 0.1 seconds. */ + + asm mov ah,0 + asm int 0x1a + asm mov word ptr time,dx + asm mov word ptr time + 2,cx + + return time * 959 / 1746; + +}/* get_current_time */ + +/* + * set_timer + * + * Set a time limit of timeout/10 seconds if timeout is not zero; + * otherwise clear the time limit. + * + */ + +static void set_timer (int timeout) +{ + + limit = (timeout != 0) ? get_current_time () + timeout : 0; + +}/* set_timer */ + +/* + * time_limit_hit + * + * Return true if a previously set time limit has been exceeded. + * + */ + +static bool out_of_time (void) +{ + + if (limit != 0) { + + long now = get_current_time (); + + if (now < 1L * 3600 * 10 && limit > 23L * 3600 * 10) + now += 24L * 3600 * 10; + + return now >= limit; + + } else return FALSE; + +}/* out_of_time */ + +/* + * get_key + * + * Read a keypress or a mouse click. Returns... + * + * ZC_TIME_OUT = time limit exceeded, + * ZC_BACKSPACE = the backspace key, + * ZC_RETURN = the return key, + * ZC_HKEY_MIN...ZC_HKEY_MAX = a hot key, + * ZC_ESCAPE = the escape key, + * ZC_ASCII_MIN...ZC_ASCII_MAX = ASCII character, + * ZC_ARROW_MIN...ZC_ARROW_MAX = an arrow key, + * ZC_FKEY_MIN...ZC_FKEY_MAX = a function key, + * ZC_NUMPAD_MIN...ZC_NUMPAD_MAX = a number pad key, + * ZC_SINGLE_CLICK = single mouse click, + * ZC_DOUBLE_CLICK = double mouse click, + * ZC_LATIN1_MIN+1...ZC_LATIN1_MAX = ISO Latin-1 character, + * SPECIAL_KEY_MIN...SPECIAL_KEY_MAX = a special editing key. + * + */ + +static int get_key (bool cursor) +{ + static byte arrow_key_map[] = { + 0x48, 0x50, 0x4b, 0x4d + }; + static byte special_key_map[] = { + 0x47, 0x4f, 0x73, 0x74, 0x53, 0x52, 0x49, 0x51, 0x0f + }; + static byte hot_key_map[] = { + 0x13, 0x19, 0x1f, 0x16, 0x31, 0x2d, 0x20, 0x23 + }; + + int key; + + /* Loop until a key was pressed */ + + if (cursor) + switch_cursor (TRUE); + + if (h_flags & MOUSE_FLAG) { + asm mov ax,1 + asm int 0x33 + } + + do { + +#ifdef SOUND_SUPPORT + if (end_of_sound_flag) + end_of_sound (); +#endif + + if (_bios_keybrd (_KEYBRD_READY)) { + + word code = _bios_keybrd (_KEYBRD_READ); + byte code0 = code; + byte code1 = code >> 8; + + if (code0 != 0 && code0 != 9) { + + key = code0 - '0' + ZC_NUMPAD_MIN; + if (key >= ZC_NUMPAD_MIN && key <= ZC_NUMPAD_MAX + && code1 >= 0x10) + goto exit_loop; + + for (key = ZC_LATIN1_MIN + 1; key <= ZC_LATIN1_MAX; key++) + if (code0 == latin1_to_ibm[key - ZC_LATIN1_MIN]) + goto exit_loop; + + key = code0; + + if (key == ZC_BACKSPACE) + goto exit_loop; + if (key == ZC_RETURN) + goto exit_loop; + if (key == ZC_ESCAPE) + goto exit_loop; + if (key >= ZC_ASCII_MIN && key <= ZC_ASCII_MAX) + goto exit_loop; + + } else { + + for (key = ZC_ARROW_MIN; key <= ZC_ARROW_MAX; key++) + if (code1 == arrow_key_map[key - ZC_ARROW_MIN]) + goto exit_loop; + + key = code1 - 0x3b + ZC_FKEY_MIN; + if (key >= ZC_FKEY_MIN && key <= ZC_FKEY_MAX - 2) + goto exit_loop; + + for (key = ZC_HKEY_MIN; key <= ZC_HKEY_MAX; key++) + if (code1 == hot_key_map[key - ZC_HKEY_MIN]) + goto exit_loop; + + for (key = SPECIAL_KEY_MIN; key <= SPECIAL_KEY_MAX; key++) + if (code1 == special_key_map[key - SPECIAL_KEY_MIN]) + goto exit_loop; + + } + + } else { + + int clicks = read_mouse (); + + if (clicks == 1) + { key = ZC_SINGLE_CLICK; goto exit_loop; } + if (clicks == 2) + { key = ZC_DOUBLE_CLICK; goto exit_loop; } + + } + + key = ZC_TIME_OUT; + + } while (!out_of_time ()); + +exit_loop: + + if (h_flags & MOUSE_FLAG) { + asm mov ax,2 + asm int 0x33 + } + + if (cursor) + switch_cursor (FALSE); + + return key; + +}/* get_key */ + +/* + * cursor_left + * + * Move the cursor one character to the left. + * + */ + +static void cursor_left (void) +{ + + if (input.pos > 0) + cursor_x -= os_char_width (input.buffer[--input.pos]); + +}/* cursor_left */ + +/* + * cursor_right + * + * Move the cursor one character to the right. + * + */ + +static void cursor_right (void) +{ + + if (input.pos < input.length) + cursor_x += os_char_width (input.buffer[input.pos++]); + +}/* cursor_right */ + +/* + * first_char + * + * Move the cursor to the beginning of the input line. + * + */ + +static void first_char (void) +{ + + while (input.pos > 0) + cursor_left (); + +}/* first_char */ + +/* + * last_char + * + * Move the cursor to the end of the input line. + * + */ + +static void last_char (void) +{ + + while (input.pos < input.length) + cursor_right (); + +}/* last_char */ + +/* + * prev_word + * + * Move the cursor to the start of the previous word. + * + */ + +static void prev_word (void) +{ + + do { + + cursor_left (); + + if (input.pos == 0) + return; + + } while (input.buffer[input.pos] == ' ' || input.buffer[input.pos - 1] != ' '); + +}/* prev_word */ + +/* + * next_word + * + * Move the cursor to the start of the next word. + * + */ + +static void next_word (void) +{ + + do { + + cursor_right (); + + if (input.pos == input.length) + return; + + } while (input.buffer[input.pos] == ' ' || input.buffer[input.pos - 1] != ' '); + +}/* next_word */ + +/* + * input_move + * + * Helper function to move parts of the input buffer: + * + * newc != 0, oldc == 0: INSERT + * newc != 0, oldc != 0: OVERWRITE + * newc == 0, oldc != 0: DELETE + * newc == 0, oldc == 0: NO OPERATION + * + */ + +#define H(x) (x ? 1 : 0) + +static void input_move (zchar newc, zchar oldc) +{ + int newwidth = (newc != 0) ? os_char_width (newc) : 0; + int oldwidth = (oldc != 0) ? os_char_width (oldc) : 0; + + zchar *p = input.buffer + input.pos; + + int saved_x = cursor_x; + + int updated_width = input.width + newwidth - oldwidth; + int updated_length = input.length + H (newc) - H (oldc); + + if (updated_width > input.max_width) + return; + if (updated_length > input.max_length) + return; + + input.width = updated_width; + input.length = updated_length; + + if (oldc != 0 && newc == 0) + memmove (p, p + 1, updated_length - input.pos + 1); + if (newc != 0 && oldc == 0) + memmove (p + 1, p, updated_length - input.pos); + + if (newc != 0) + *p = newc; + + os_display_string (p); + + switch_scrn_attr (TRUE); + + if (oldwidth > newwidth) + + os_erase_area ( + cursor_y + 1, + cursor_x + 1, + cursor_y + h_font_height, + cursor_x + oldwidth - newwidth); + + switch_scrn_attr (FALSE); + + cursor_x = saved_x; + + if (newc != 0) + cursor_right (); + +}/* input_move */ + +#undef H(x) + +/* + * delete_char + * + * Delete the character below the cursor. + * + */ + +static void delete_char (void) +{ + + input_move (0, input.buffer[input.pos]); + +}/* delete_char */ + +/* + * delete_left + * + * Delete the character to the left of the cursor. + * + */ + +static void delete_left (void) +{ + + if (input.pos > 0) { + cursor_left (); + delete_char (); + } + +}/* delete_left */ + +/* + * truncate_line + * + * Truncate the input line to n characters. + * + */ + +static void truncate_line (int n) +{ + + last_char (); + + while (input.length > n) + delete_left (); + +}/* truncate_line */ + +/* + * insert_char + * + * Insert a character into the input buffer. + * + */ + +static void insert_char (zchar newc) +{ + zchar oldc = 0; + + if (overwrite) + oldc = input.buffer[input.pos]; + + input_move (newc, oldc); + +}/* insert_char */ + +/* + * insert_string + * + * Add a string of characters to the input line. + * + */ + +static void insert_string (const zchar *s) +{ + + while (*s != 0) { + + if (input.length + 1 > input.max_length) + break; + if (input.width + os_char_width (*s) > input.max_width) + break; + + insert_char (*s++); + + } + +}/* insert_string */ + +/* + * tabulator_key + * + * Complete the word at the end of the input line, if possible. + * + */ + +static void tabulator_key (void) +{ + int status; + + if (input.pos == input.length) { + + zchar extension[10]; + + status = completion (input.buffer, extension); + insert_string (extension); + + } else status = 2; + + /* Beep if the completion was impossible or ambiguous */ + + if (status != 0) + os_beep (status); + +}/* tabulator_key */ + +/* + * store_input + * + * Copy the current input line to the history buffer. + * + */ + +static void store_input (void) +{ + + if (input.length >= HISTORY_MIN_ENTRY) { + + const zchar *ptr = input.buffer; + + do { + + if (history.latest++ == HISTORY_BUFSIZE - 1) + history.latest = 0; + + history.buffer[history.latest] = *ptr; + + } while (*ptr++ != 0); + + } + +}/* store_input */ + +/* + * fetch_entry + * + * Copy the current history entry to the input buffer and check if it + * matches the prefix in the input buffer. + * + */ + +static bool fetch_entry (zchar *buf, int entry) +{ + int i = 0; + + zchar c; + + do { + + if (entry++ == HISTORY_BUFSIZE - 1) + entry = 0; + + c = history.buffer[entry]; + + if (i < history.prefix_len && input.buffer[i] != c) + return FALSE; + + buf[i++] = c; + + } while (c != 0); + + return (i > history.prefix_len) && (i > 1); + +}/* fetch_entry */ + +/* + * get_prev_entry + * + * Copy the previous history entry to the input buffer. + * + */ + +static void get_prev_entry (void) +{ + zchar buf[INPUT_BUFFER_SIZE]; + + int i = history.current; + + do { + + do { + + if (i-- == 0) + i = HISTORY_BUFSIZE - 1; + + if (i == history.latest) + return; + + } while (history.buffer[i] != 0); + + } while (!fetch_entry (buf, i)); + + truncate_line (history.prefix_len); + + insert_string (buf + history.prefix_len); + + history.current = i; + +}/* get_prev_entry */ + +/* + * get_next_entry + * + * Copy the next history entry to the input buffer. + * + */ + +static void get_next_entry (void) +{ + zchar buf[INPUT_BUFFER_SIZE]; + + int i = history.current; + + truncate_line (history.prefix_len); + + do { + + do { + + if (i == history.latest) + return; + + if (i++ == HISTORY_BUFSIZE - 1) + i = 0; + + } while (history.buffer[i] != 0); + + if (i == history.latest) + goto no_further; + + } while (!fetch_entry (buf, i)); + + insert_string (buf + history.prefix_len); + +no_further: + + history.current = i; + +}/* get_next_entry */ + +/* + * os_read_line + * + * Read a line of input from the keyboard into a buffer. The buffer + * may already be primed with some text. In this case, the "initial" + * text is already displayed on the screen. After the input action + * is complete, the function returns with the terminating key value. + * The length of the input should not exceed "max" characters plus + * an extra 0 terminator. + * + * Terminating keys are the return key (13) and all function keys + * (see the Specification of the Z-machine) which are accepted by + * the is_terminator function. Mouse clicks behave like function + * keys except that the mouse position is stored in global variables + * "mouse_x" and "mouse_y" (top left coordinates are (1,1)). + * + * Furthermore, Frotz introduces some special terminating keys: + * + * ZC_HKEY_PLAYBACK (Alt-P) + * ZC_HKEY_RECORD (Alt-R) + * ZC_HKEY_SEED (Alt-S) + * ZC_HKEY_UNDO (Alt-U) + * ZC_HKEY_RESTART (Alt-N, "new game") + * ZC_HKEY_QUIT (Alt-X, "exit game") + * ZC_HKEY_DEBUGGING (Alt-D) + * ZC_HKEY_HELP (Alt-H) + * + * If the timeout argument is not zero, the input gets interrupted + * after timeout/10 seconds (and the return value is 0). + * + * The complete input line including the cursor must fit in "width" + * screen units. + * + * The function may be called once again to continue after timeouts, + * misplaced mouse clicks or hot keys. In this case the "continued" + * flag will be set. This information can be useful if the interface + * implements input line history. + * + * The screen is not scrolled after the return key was pressed. The + * cursor is at the end of the input line when the function returns. + * + * Since Inform 2.2 the helper function "completion" can be called + * to implement word completion (similar to tcsh under Unix). + * + */ + +#define new_history_search() \ + { history.prefix_len = input.pos; history.current = history.latest; } + +zchar os_read_line (int max, zchar *buf, int timeout, int width, int continued) +{ + int key = continued ? 9999 : 0; + + /* Initialise input variables */ + + input.buffer = buf; + input.pos = strlen ((char *) buf); + input.length = strlen ((char *) buf); + input.max_length = max; + input.width = os_string_width (buf); + input.max_width = width - os_char_width (' '); + + /* Calculate time limit */ + + set_timer (timeout); + + /* Loop until a terminator is found */ + + do { + + if (key != 9999) + new_history_search (); + + /* Get next key from mouse or keyboard */ + + key = get_key (TRUE); + + if (key < ZC_ASCII_MIN || key > ZC_ASCII_MAX && key < ZC_LATIN1_MIN || key > ZC_LATIN1_MAX) { + + /* Ignore time-outs if the cursor is not at end of the line */ + + if (key == ZC_TIME_OUT && input.pos < input.length) + key = 9999; + + /* Backspace, return and escape keys */ + + if (key == ZC_BACKSPACE) + delete_left (); + if (key == ZC_RETURN) + store_input (); + if (key == ZC_ESCAPE) + truncate_line (0); + + /* Editing keys */ + + if (cwin == 0) { + + if (key == ZC_ARROW_UP) + get_prev_entry (); + if (key == ZC_ARROW_DOWN) + get_next_entry (); + if (key == ZC_ARROW_LEFT) + cursor_left (); + if (key == ZC_ARROW_RIGHT) + cursor_right (); + + if (key >= ZC_ARROW_MIN && key <= ZC_ARROW_MAX) + key = 9999; + + if (key == SPECIAL_KEY_HOME) + first_char (); + if (key == SPECIAL_KEY_END) + last_char (); + if (key == SPECIAL_KEY_WORD_LEFT) + prev_word (); + if (key == SPECIAL_KEY_WORD_RIGHT) + next_word (); + if (key == SPECIAL_KEY_DELETE) + delete_char (); + if (key == SPECIAL_KEY_INSERT) + overwrite = !overwrite; + if (key == SPECIAL_KEY_TAB) + tabulator_key (); + + } + + if (key == SPECIAL_KEY_PAGE_UP) + key = ZC_ARROW_UP; + if (key == SPECIAL_KEY_PAGE_DOWN) + key = ZC_ARROW_DOWN; + + } else insert_char (key); + + } while (key > 0xff || !is_terminator (key)); + + last_char (); + + overwrite = FALSE; + + /* Return terminating key */ + + return key; + +}/* os_read_line */ + +#undef new_history_search() + +/* + * os_read_key + * + * Read a single character from the keyboard (or a mouse click) and + * return it. Input aborts after timeout/10 seconds. + * + */ + +zchar os_read_key (int timeout, bool cursor) +{ + int key; + + set_timer (timeout); + + do { + + key = get_key (cursor); + + } while (key > 0xff); + + return key; + +}/* os_read_key */ + +/* + * os_read_file_name + * + * Return the name of a file. Flag can be one of: + * + * FILE_SAVE - Save game file + * FILE_RESTORE - Restore game file + * FILE_SCRIPT - Transscript file + * FILE_RECORD - Command file for recording + * FILE_PLAYBACK - Command file for playback + * FILE_SAVE_AUX - Save auxilary ("preferred settings") file + * FILE_LOAD_AUX - Load auxilary ("preferred settings") file + * + * The length of the file name is limited by MAX_FILE_NAME. Ideally + * an interpreter should open a file requester to ask for the file + * name. If it is unable to do that then this function should call + * print_string and read_string to ask for a file name. + * + */ + +int os_read_file_name (char *file_name, const char *default_name, int flag) +{ + char *extension; + FILE *fp; + bool terminal; + bool result; + + bool saved_replay = istream_replay; + bool saved_record = ostream_record; + + /* Turn off playback and recording temporarily */ + + istream_replay = FALSE; + ostream_record = FALSE; + + /* Select appropriate extension */ + + extension = ".aux"; + + if (flag == FILE_SAVE || flag == FILE_RESTORE) + extension = ".sav"; + if (flag == FILE_SCRIPT) + extension = ".scr"; + if (flag == FILE_RECORD || flag == FILE_PLAYBACK) + extension = ".rec"; + + /* Input file name (reserve four bytes for a file name extension) */ + + print_string ("Enter file name (\""); + print_string (extension); + print_string ("\" will be added).\nDefault is \""); + print_string (default_name); + print_string ("\": "); + + read_string (MAX_FILE_NAME - 4, (zchar *) file_name); + + /* Use the default name if nothing was typed */ + + if (file_name[0] == 0) + strcpy (file_name, default_name); + if (strchr (file_name, '.') == NULL) + strcat (file_name, extension); + + /* Make sure it is safe to use this file name */ + + result = TRUE; + + /* OK if the file is opened for reading */ + + if (flag != FILE_SAVE && flag != FILE_SAVE_AUX && flag != FILE_RECORD) + goto finished; + + /* OK if the file does not exist */ + + if ((fp = fopen (file_name, "rb")) == NULL) + goto finished; + + /* OK if this is a pseudo-file (like PRN, CON, NUL) */ + + terminal = fp->flags & _F_TERM; + + fclose (fp); + + if (terminal) + goto finished; + + /* OK if user wants to overwrite */ + + result = read_yes_or_no ("Overwrite existing file"); + +finished: + + /* Restore state of playback and recording */ + + istream_replay = saved_replay; + ostream_record = saved_record; + + return result; + +}/* os_read_file_name */ diff --git a/src/dos/bcmouse.c b/src/dos/bcmouse.c new file mode 100644 index 0000000..0a38ce2 --- /dev/null +++ b/src/dos/bcmouse.c @@ -0,0 +1,75 @@ +/* + * file "BCmouse.c" + * + * Borland C front end, mouse support + * + */ + +#include +#include "frotz.h" +#include "bcfrotz.h" + +/* + * detect_mouse + * + * Return true if a mouse driver is present. + * + */ + +bool detect_mouse (void) +{ + + asm xor ax,ax + asm int 0x33 + + return _AX; + +}/* detect_mouse */ + +/* + * read_mouse + * + * Report any mouse clicks. Return 2 for a double click, 1 for a single + * click or 0 if there was no mouse activity at all. + * + */ + +int read_mouse (void) +{ + int click; + + /* Read the current mouse status */ + + for (click = 0; click < 2; click++) { + + if (click == 1) + delay (222); + + asm mov ax,6 + asm xor bx,bx + asm int 0x33 + + if (_BX == 0) + break; + + mouse_x = _CX; + mouse_y = _DX; + + if (display <= _TEXT_) { + mouse_x /= 8; + mouse_y /= 8; + } + + if (display == _MCGA_) + mouse_x /= 2; + + mouse_x++; + mouse_y++; + + } + + /* Return single or double click */ + + return click; + +}/* read_mouse */ diff --git a/src/dos/bcpic.c b/src/dos/bcpic.c new file mode 100644 index 0000000..bd42fc3 --- /dev/null +++ b/src/dos/bcpic.c @@ -0,0 +1,683 @@ +/* + * "BCpic.c" + * + * Borland C front end, picture functions + * + */ + +#include +#include +#include +#include +#include "frotz.h" +#include "BCfrotz.h" + +#define PIC_NUMBER 0 +#define PIC_WIDTH 2 +#define PIC_HEIGHT 4 +#define PIC_FLAGS 6 +#define PIC_DATA 8 +#define PIC_COLOUR 11 + +#define READ_BYTE(v,p,o) v = *(byte far *)(p+o) +#define READ_WORD(v,p,o) v = *(word far *)(p+o) + +/* This may be troublesome later */ +/* extern byte far *get_scrnptr (int); */ +extern unsigned long get_scrnptr (int); + +extern FILE *os_path_open (const char *, const char *); + +static struct { + byte fileno; + byte flags; + word unused1; + word images; + word link; + byte entry_size; + byte padding; + word checksum; + word unused2; + word version; +} gheader; + +int scaler = 1; + +static word pic_width = 0; +static word pic_height = 0; +static word pic_flags = 0; +static long pic_data = 0; +static long pic_colour = 0; + +static byte far *table_val = NULL; +static word far *table_ref = NULL; + +static FILE *file = NULL; +static byte far *info = NULL; + +/* + * open_graphics_file + * + * Open a graphics file. EGA pictures may be stored in two separate + * graphics files. + * + */ + +static bool open_graphics_file (int number) +{ + char fname[MAX_FILE_NAME + 1]; + char extension[4 + 1]; + + /* Build graphics file name */ + + extension[0] = '.'; + extension[1] = "cmem"[display - 2]; + extension[2] = 'g'; + extension[3] = '0' + number; + extension[4] = 0; + + /* Why does DOS not like "graphics\\" anymore? */ + strcpy (fname, "graphics/"); + strcat (fname, stripped_story_name); + strcat (fname, extension); + + /* Open file, load header, allocate memory, load picture directory */ + + if ((file = fopen (fname, "rb")) == NULL) + goto failure1; + if (fread (&gheader, sizeof (gheader), 1, file) != 1) + goto failure2; + if ((info = farmalloc (gheader.images * gheader.entry_size)) == NULL) + goto failure2; + if (fread (info, gheader.entry_size, gheader.images, file) != gheader.images) + goto failure3; + return TRUE; + +failure3: + farfree (info); info = NULL; +failure2: + fclose (file); file = NULL; +failure1: + return FALSE; + +}/* open_graphics_file */ + +/* + * close_graphics_file + * + * Free resources allocated for pictures. + * + */ + +static void close_graphics_file (void) +{ + + if (file != NULL) + { fclose (file); file = NULL; } + if (info != NULL) + { farfree (info); info = NULL; } + +}/* close_graphics_file */ + +/* + * init_pictures + * + * Prepare to draw pictures. Return true if pictures are available. + * + */ + +bool init_pictures (void) +{ + + /* Allocate memory for decompression */ + + table_val = (byte far *) farmalloc (3 * 3840); + table_ref = (word far *) (table_val + 3840); + + if (table_val == NULL) + return FALSE; + + /* Open the [first of two] graphics file[s] */ + + return open_graphics_file (1); + +}/* init_pictures */ + +/* + * reset_pictures + * + * Free resources allocated for decompression of pictures. + * + */ + +void reset_pictures (void) +{ + + if (table_val != NULL) + { farfree (table_val); table_val = NULL; } + if (file != NULL) + { fclose (file); file = NULL; } + if (info != NULL) + { farfree (info); info = NULL; } + +}/* reset_pictures */ + +/* + * load_picture_info + * + * Helper function for os_picture_data. Load all information about + * the given picture from the graphics file and store it in global + * variables. + * + */ + +static bool load_picture_info (int picture) +{ + byte far *ptr; + byte fileno; + + fileno = gheader.fileno; + + do { + + int i; + + /* Abort if there is a problem with the graphics file */ + + if (file == NULL) + return FALSE; + + /* Scan the directory of the current graphics file */ + + ptr = info; + + for (i = 0; i < gheader.images; i++) { + + if (picture == * (int far *) ptr) { + + READ_WORD (pic_width, ptr, PIC_WIDTH); + READ_WORD (pic_height, ptr, PIC_HEIGHT); + READ_WORD (pic_flags, ptr, PIC_FLAGS); + + pic_height *= scaler; + pic_width *= scaler; + + READ_BYTE (byte0 (pic_data), ptr, PIC_DATA + 2); + READ_BYTE (byte1 (pic_data), ptr, PIC_DATA + 1); + READ_BYTE (byte2 (pic_data), ptr, PIC_DATA); + + if (gheader.entry_size > PIC_COLOUR + 2) { + + READ_BYTE (byte0 (pic_colour), ptr, PIC_COLOUR + 2); + READ_BYTE (byte1 (pic_colour), ptr, PIC_COLOUR + 1); + READ_BYTE (byte2 (pic_colour), ptr, PIC_COLOUR); + + } else pic_colour = 0; + + return TRUE; + + } + + ptr += gheader.entry_size; + + } + + /* Close current graphics file */ + + close_graphics_file (); + + /* Open next graphics file */ + + open_graphics_file ((gheader.link != 0) ? gheader.fileno + 1 : 1); + + } while (fileno != gheader.fileno); + + return FALSE; + +}/* load_picture_info */ + +/* + * load_colour_map + * + * Helper function for os_draw_picture. Load a colour map from the + * graphics file then copy it to the palette registers. + * + */ + +static void load_colour_map (int first_colour) +{ + byte rgb[42]; + int n, i; + + fseek (file, pic_colour, SEEK_SET); + + /* Some pictures from Arthur mistakenly claim to have 16 colours */ + + if ((n = fgetc (file)) == 16) + n = 14; + + /* Each colour is stored in three bytes R-G-B */ + + fread (rgb, 3, n, file); + + /* MCGA boards can only handle R-G-B values from 0 to 63 */ + + for (i = 0; i < 42; i++) + rgb[i] = (rgb[i] * 63 + 128) / 255; + + /* Synchronise with vertical retrace */ + + while ((inportb (0x03da) & 8) == 0); + while ((inportb (0x03da) & 8) == 8); + + /* Copy colours to palette registers */ + + asm mov ax,0x1012 + asm mov bx,first_colour + asm mov cx,n + asm lea dx,rgb + asm push ss + asm pop es + asm int 0x10 + +}/* load_colour_map */ + +/* + * draw_picture + * + * Helper function for os_draw_picture. The real work of drawing a + * picture happens here. + * + */ + +#pragma warn -def + +static void pascal draw_picture (int y, int x) +{ + static int raise_bits[4] = { + 0x0100, 0x0300, 0x0700, 0x0000 + }; + + byte buf[512]; + unsigned long screen; + byte transparent; + byte colour_shift; + int first_colour; + int code, prev_code; + int next_entry; + int bits_per_code; + int bits_shift; + int bits; + int current_y; + int current_x; + int bufpos; + int pixels; + int i; + + bufpos = 0; + + /* When the given picture provides a colour map then activate it. + This is only used for MCGA pictures; the colour map affects + every picture on the screen. The first colour to be defined is + colour 2. Every map defines up to 14 colours (colour 2 to 15). + These colours are not related to the standard Z-machine colour + scheme which remains unchanged. (This is based on the Amiga + interpreter which had to work with 16 colours. Colours 0 and 1 + were used for text; changing the text colours actually changed + palette entries 0 and 1. This interface uses the same trick in + Amiga mode.) */ + + if (display == _CGA_) + colour_shift = -2; + if (display == _EGA_) + colour_shift = 0; + if (display == _MCGA_) + { colour_shift = 32; first_colour = 34; } + if (display == _AMIGA_) + { colour_shift = -1; first_colour = 65; } + + if (pic_colour != 0) + load_colour_map (first_colour); + + fseek (file, pic_data, SEEK_SET); + + /* Bit 0 of "flags" indicates that the picture uses a transparent + colour, the top four bits tell us which colour it is. For CGA + and MCGA pictures this is always 0; for EGA pictures it can be + any colour between 0 and 15. */ + + transparent = 0xff; + + if (pic_flags & 1) + transparent = pic_flags >> 12; + + /* Prepare EGA hardware for setting pixels */ + + if (display >= _EGA_) { + outport (0x03ce, 0x0205); + outport (0x03ce, 0xff08); + } + + /* The uncompressed picture is a long sequence of bytes. Every + byte holds the colour of a pixel, starting at the top left, + stopping at the bottom right. We keep track of our position + in the current line. (There is a special case: CGA pictures + with no transparent colour are stored as bit patterns, i.e. + every byte holds the pattern for eight pixels. A pixel must + be white if the corresponding bit is set, otherwise it must + be black.) */ + + current_x = x + pic_width; + current_y = y - 1; + + /* The compressed picture is a stream of bits. We read the file + byte-wise, storing the current byte in the variable "bits". + Several bits make one code; the variable "bits_shift" helps + us to build the next code. */ + + bits_shift = 0; + bits = 0; + +reset_table: + + /* Clear the table. We use a table of 3840 entries. Each entry + consists of both a value and a reference to another table + entry. Following these references we get a sequence of + values. At the start of decompression all table entries are + undefined. Later we see how entries are set and used. */ + + next_entry = 1; + + /* At the start of decompression 9 bits make one code; during + the process this can rise to 12 bits per code. 9 bits are + sufficient to address both 256 literal values and 256 table + entries; 12 bits are sufficient to address both 256 literal + values and all 3840 table entries. The number of bits per + code rises with the number of table entries. When the table + is cleared, the number of bits per code drops back to 9. */ + + bits_per_code = 9; + +next_code: + + /* Read the next code from the graphics file. This requires + some confusing bit operations. Note that low bits always + come first. Usually there are a few bits left over from + the previous code; these bits must be used before further + bits are read from the graphics file. */ + + code = bits >> (8 - bits_shift); + + do { + + bits = fgetc (file); + + code |= bits << bits_shift; + + bits_shift += 8; + + } while (bits_shift < bits_per_code); + + bits_shift -= bits_per_code; + + code &= 0xfff >> (12 - bits_per_code); + + /* There are two codes with a special meaning. The first one + is 256 which clears the table and sets the number of bits + per code to 9. (This is necessary when the table is full.) + The second one is 257 which marks the end of the picture. + For the sake of efficiency, we drecement the code by 256. */ + + code -= 256; + + if (code == 0) + goto reset_table; + if (code == 1) + return; + + /* Codes from 0 to 255 are literals, i.e. they represent a + plain byte value. Codes from 258 onwards are references + to table entries, i.e. they represent a sequence of byte + values (see the remarks on the table above). This means + that for each code one or several byte values are added + to the decompressed picture. But there is yet more work + to do: Every time we read a code one table entry is set. + As we said above, a table entry consist of both a value + and a reference to another table entry. If the current + code is a literal, then the value has to be set to this + literal; but if the code refers to a sequence of byte + values, then the value has to be set to the last byte of + this sequence. In any case, the reference is set to the + previous code. Finally, one should be aware that a code + may legally refer to the table entry which is currently + being set. This requires some extra care. */ + + table_ref[next_entry] = prev_code; + + prev_code = code; + + while (code >= 0) { + buf[bufpos++] = table_val[code]; + code = (short) table_ref[code]; + } + + if (next_entry == prev_code) + buf[0] = code; + + table_val[next_entry] = code; + + /* The number of bits per code is incremented when the current + number of bits no longer suffices to address all defined + table entries; but in any case the number of bits may never + be greater than 12. */ + + next_entry++; + + if (next_entry == raise_bits[bits_per_code - 9]) + bits_per_code++; + +reverse_buffer: + + /* Append the sequence of byte values (pixels) to the picture. + The order of the sequence must be reversed. (This is why we + have stored the sequence in a buffer; experiments show that + a buffer of 512 bytes suffices.) The sequence of values may + spread over several lines of the picture, so we must take + care to start a new line when we reach the right border of + the picture. */ + + if (current_x == x + pic_width) { + + screen = get_scrnptr (current_y); + + current_x -= pic_width; + current_y += scaler; + + } + + /* Either add a single pixel or a pattern of eight bits (b/w + CGA pictures without a transparent colour) to the current + line. Increment our position by 1 or 8 respectively. The + pixel may have to be painted several times if the scaling + factor is greater than one. */ + + if (display == _CGA_ && transparent == 0xff) { + + pixels = x + pic_width - current_x; + + if (pixels > 8) + pixels = 8; + + asm les bx,screen + asm mov dx,current_x + asm dec dx + asm push dx + asm mov cl,3 + asm shr dx,cl + asm add bx,dx + asm mov ax,es:[bx] + asm mov dx,0xffff + asm mov cl,byte ptr pixels + asm shr dl,cl + asm pop cx + asm and cl,7 + asm ror dx,cl + asm and ax,dx + asm mov dx,code + asm inc dh + asm ror dx,cl + asm or ax,dx + asm mov es:[bx],ax + + current_x += pixels; + + } else for (i = 0; i < scaler; i++) { + + _AH = code; + + if (_AH != transparent) { + + asm add ah,colour_shift + asm les bx,screen + asm mov dx,current_x + asm dec dx + + if (display != _MCGA_) { + + asm push dx + asm mov cl,3 + asm shr dx,cl + asm pop cx + asm and cl,7 + asm add bx,dx + asm mov al,es:[bx] + + if (display == _CGA_) { + asm mov dl,0x7f + asm ror dl,cl + asm and al,dl + asm xor ah,1 + asm ror ah,1 + asm shr ah,cl + asm or ah,al + } else { + asm mov al,0x80 + asm shr al,cl + asm mov dx,0x03cf + asm out dx,al + } + + } else asm add bx,dx + + asm mov es:[bx],ah + + if (display == _AMIGA_) { + asm add bx,80 + asm mov al,es:[bx] + asm mov es:[bx],ah + } + + } + + current_x++; + + } + + /* If there are no more values in the buffer then read the + next code from the file. Otherwise fetch the next byte + value from the buffer and continue painting the picture. */ + + if (bufpos == 0) + goto next_code; + + byte0 (code) = buf[--bufpos]; + + goto reverse_buffer; + +}/* draw_picture */ + +#pragma warn +def + +/* + * os_draw_picture + * + * Display a picture at the given coordinates. Top left is (1,1). + * + */ + +void os_draw_picture (int picture, int y, int x) +{ + + if (load_picture_info (picture)) + draw_picture (y, x); + +}/* os_draw_picture */ + +/* + * os_peek_colour + * + * Return the colour of the pixel below the cursor. This is used + * by V6 games to print text on top of pictures. The coulor need + * not be in the standard set of Z-machine colours. To handle + * this situation, Frotz extends the colour scheme: Values above + * 15 (and below 256) may be used by the interface to refer to + * non-standard colours. Of course, os_set_colour must be able to + * deal with these colours. Interfaces which refer to characters + * instead of pixels might return the current background colour + * instead. + * + */ + +int os_peek_colour (void) +{ + + if (display >= _CGA_) { + + asm mov ah,13 + asm mov bh,0 + asm mov cx,cursor_x + asm mov dx,cursor_y + asm int 0x10 + asm mov ah,0 + + return _AX + 16; + + } else return current_bg; + +}/* os_peek_colour */ + +/* + * os_picture_data + * + * Return true if the given picture is available. If so, write the + * width and height of the picture into the appropriate variables. + * Only when picture 0 is asked for, write the number of available + * pictures and the release number instead. + * + */ + +bool os_picture_data (int picture, int *height, int *width) +{ + bool avail; + + if (picture == 0) { + + avail = FALSE; + + /* This is the special case mentioned above. In practice, only + the release number is used; and even this is only used by + the DOS version of "Zork Zero". Infocom's Amiga interpreter + could not handle this feature, and the Amiga version of the + story file does not use it. */ + + pic_height = gheader.images; + pic_width = gheader.version; + + } else avail = load_picture_info (picture); + + *height = pic_height; + *width = pic_width; + + return avail; + +}/* os_picture_data */ diff --git a/src/dos/bcsample.c b/src/dos/bcsample.c new file mode 100644 index 0000000..fd1c44f --- /dev/null +++ b/src/dos/bcsample.c @@ -0,0 +1,429 @@ +/* + * file "BCsample.c" + * + * Borland C front end, sound support + * + */ + +#include +#include +#include +#include +#include +#include "frotz.h" +#include "BCfrotz.h" + +#ifdef SOUND_SUPPORT + +#define SWAP_BYTES(v) {_AX=v;asm xchg al,ah;v=_AX;} + +#define READ_DSP(v) {while(!inportb(sound_adr+14)&0x80);v=inportb(sound_adr+10);} +#define WRITE_DSP(v) {while(inportb(sound_adr+12)&0x80);outportb(sound_adr+12,v);} + +extern void end_of_sound (void); + +static struct { + word prefix; + byte repeats; + byte base_note; + word frequency; + word unused; + word length; +} sheader; + +static current_sample = 0; + +static void interrupt (*vect) (void) = NULL; + +static play_part = 0; +static play_count = 0; + +static word sound_adr = 0; +static word sound_irq = 0; +static word sound_dma = 0; +static word sound_int = 0; +static word sound_ver = 0; + +static byte far *sample_data = NULL; + +static long sample_adr1 = 0; +static long sample_adr2 = 0; +static word sample_len1 = 0; +static word sample_len2 = 0; + +/* + * start_of_dma + * + * Start the DMA transfer to the sound board. + * + */ + +static void start_of_dma (long address, unsigned length) +{ + static unsigned dma_page_port[] = { + 0x87, 0x83, 0x81, 0x82 + }; + + length--; + + /* Set up DMA chip */ + + outportb (0x0a, 0x04 | sound_dma); + outportb (0x0c, 0x00); + outportb (0x0b, 0x48 | sound_dma); + outportb (2 * sound_dma, byte0 (address)); + outportb (2 * sound_dma, byte1 (address)); + outportb (dma_page_port[sound_dma], byte2 (address)); + outportb (2 * sound_dma + 1, byte0 (length)); + outportb (2 * sound_dma + 1, byte1 (length)); + outportb (0x0a, sound_dma); + + /* Play 8-bit mono sample */ + + WRITE_DSP (0x14) + WRITE_DSP (byte0 (length)) + WRITE_DSP (byte1 (length)) + +}/* start_of_dma */ + +/* + * end_of_dma + * + * This function is called when a hardware interrupt signals the + * end of the current sound. We may have to play the second half + * of the sound effect, or we may have to repeat it, or call the + * end_of_sound function when we are finished. + * + */ + +static void interrupt end_of_dma (void) +{ + + /* Play the second half, play another cycle or finish */ + + if (play_part == 1 && sample_len2 != 0) { + play_part = 2; + start_of_dma (sample_adr2, sample_len2); + } else if (play_count == 255 || --play_count != 0) { + play_part = 1; + start_of_dma (sample_adr1, sample_len1); + } else { + play_part = 0; + end_of_sound (); + } + + /* Tell interrupt controller(s) + sound board we are done */ + + outportb (0x20, 0x20); + + if (sound_irq >= 8) + outportb (0xa0, 0x20); + + inportb (sound_adr + 14); + +}/* end_of_dma */ + +/* + * dos_init_sound + * + * Initialise the sound board and various sound related variables. + * + */ + +bool dos_init_sound (void) +{ + const char *settings; + word irc_mask_port; + + /* Read the IRQ, port address, DMA channel and SB version */ + + if ((settings = getenv ("BLASTER")) == NULL) + return FALSE; + + sound_irq = dectoi (strchr (settings, 'I') + 1); + sound_adr = hextoi (strchr (settings, 'A') + 1); + sound_dma = dectoi (strchr (settings, 'D') + 1); + sound_ver = dectoi (strchr (settings, 'T') + 1); + + /* Reset mixer chip and DSP */ + + outportb (sound_adr + 4, 0); + outportb (sound_adr + 5, 0); + + outportb (sound_adr + 6, 1); + inportb (sound_adr + 6); + inportb (sound_adr + 6); + inportb (sound_adr + 6); + outportb (sound_adr + 6, 0); + + /* Turn on speakers */ + + WRITE_DSP (0xd1) + + /* Install the end_of_dma interrupt */ + + if (sound_irq < 8) { + irc_mask_port = 0x21; + sound_int = 0x08 + sound_irq; + } else { + irc_mask_port = 0xa1; + sound_int = 0x68 + sound_irq; + } + + vect = getvect (sound_int); setvect (sound_int, end_of_dma); + + /* Allocate 64KB RAM for sample data */ + + if ((sample_data = (byte far *) farmalloc (0x10000L)) == NULL) + return FALSE; + + word0 (sample_adr1) = FP_OFF (sample_data) | (FP_SEG (sample_data) << 4); + word1 (sample_adr1) = FP_SEG (sample_data) >> 12; + word0 (sample_adr2) = 0; + word1 (sample_adr2) = word1 (sample_adr1) + 1; + + /* Enable the end_of_dma interrupt */ + + outportb (0x20, 0x20); + + if (sound_irq >= 8) + outportb (0xa0, 0x20); + + outportb (irc_mask_port, inportb (irc_mask_port) & ~(1 << (sound_irq & 7))); + + /* Indicate success */ + + return TRUE; + +}/* init_sound */ + +/* + * reset_sound + * + * Free resources allocated for playing samples. + * + */ + +void reset_sound (void) +{ + + os_stop_sample (); + + if (sample_data != NULL) { + farfree (sample_data); + sample_data = NULL; + } + if (sound_adr != 0) { + setvect (sound_int, vect); + sound_adr = 0; + } + +}/* reset_sound */ + +#endif /* SOUND_SUPPORT */ + +/* + * os_beep + * + * Play a beep sound. Ideally, the sound should be high- (number == 1) + * or low-pitched (number == 2). + * + */ + +void os_beep (int number) +{ + word T = 888 * number; + + outportb (0x43, 0xb6); + outportb (0x42, lo (T)); + outportb (0x42, hi (T)); + outportb (0x61, inportb (0x61) | 3); + + delay (75); + + outportb (0x61, inportb (0x61) & ~3); + +}/* os_beep */ + +/* + * os_prepare_sample + * + * Load the sample from the disk. + * + */ + +void os_prepare_sample (int number) +{ +#ifdef SOUND_SUPPORT + + os_stop_sample (); + + /* Exit if the sound board isn't set up properly */ + + if (sample_data == NULL) + return; + if (sound_adr == 0) + return; + + /* Continue only if the desired sample is not already present */ + + if (current_sample != number) { + + char sample_name[MAX_FILE_NAME + 1]; + char numstr[2]; + FILE *fp; + + /* Build sample file name */ + + strcpy (sample_name, "sound/"); + + numstr[0] = '0' + number / 10; + numstr[1] = '0' + number % 10; + + strncat (sample_name, stripped_story_name, 6); + strncat (sample_name, numstr, 2); + strncat (sample_name, ".snd", 4); + + /* Open sample file */ + + if ((fp = fopen (sample_name, "rb")) == NULL) + return; + + /* Load header and sample data */ + + fread (&sheader, sizeof (sheader), 1, fp); + + SWAP_BYTES (sheader.frequency) + SWAP_BYTES (sheader.length) + + fread (sample_data, 1, sheader.length, fp); + + sample_len1 = -word0 (sample_adr1); + + if (sample_len1 > sheader.length || sample_len1 == 0) + sample_len1 = sheader.length; + + sample_len2 = sheader.length - sample_len1; + + WRITE_DSP (0x40) + WRITE_DSP (256 - 1000000L / sheader.frequency) + + current_sample = number; + + /* Close sample file */ + + fclose (fp); + + } +#endif /* SOUND_SUPPORT */ +}/* os_prepare_sample */ + +/* + * os_start_sample + * + * Play the given sample at the given volume (ranging from 1 to 8 and + * 255 meaning a default volume). The sound is played once or several + * times in the background (255 meaning forever). The end_of_sound + * function is called as soon as the sound finishes. + * + */ + +void os_start_sample (int number, int volume, int repeats, zword eos) +{ +#ifdef SOUND_SUPPORT + + os_stop_sample (); + + /* Exit if the sound board isn't set up properly */ + + if (sample_data == NULL) + return; + if (sound_adr == 0) + return; + + /* Load new sample */ + + os_prepare_sample (number); + + /* Continue only if the sample's in memory now */ + + if (current_sample == number) { + + play_count = repeats; + + if (sound_ver < 6) { /* Set up SB pro mixer chip */ + + volume = (volume != 255) ? 7 + volume : 15; + + outportb (sound_adr + 4, 0x04); + outportb (sound_adr + 5, (volume << 4) | volume); + outportb (sound_adr + 4, 0x22); + outportb (sound_adr + 5, 0xff); + + } else { /* Set up SB16 mixer chip */ + + /* Many thanks to Linards Ticmanis for writing this part! */ + + volume = (volume != 255) ? 127 + 16 * volume : 255; + + outportb (sound_adr + 4, 0x32); + outportb (sound_adr + 5, volume); + outportb (sound_adr + 4, 0x33); + outportb (sound_adr + 5, volume); + outportb (sound_adr + 4, 0x30); + outportb (sound_adr + 5, 0xff); + outportb (sound_adr + 4, 0x31); + outportb (sound_adr + 5, 0xff); + + } + + play_part = 1; + start_of_dma (sample_adr1, sample_len1); + + } + +#endif /* SOUND_SUPPORT */ +}/* os_start_sample */ + +/* + * os_stop_sample + * + * Turn off the current sample. + * + */ + +void os_stop_sample (void) +{ +#ifdef SOUND_SUPPORT + + play_part = 0; + + /* Exit if the sound board isn't set up properly */ + + if (sample_data == NULL) + return; + if (sound_adr == 0) + return; + + /* Tell DSP to stop the current sample */ + + WRITE_DSP (0xd0) + +#endif /* SOUND_SUPPORT */ +}/* os_stop_sample */ + +/* + * os_finish_with_sample + * + * Remove the current sample from memory (if any). + * + */ + +void os_finish_with_sample (void) +{ +#ifdef SOUND_SUPPORT + + os_stop_sample (); /* we keep 64KB allocated all the time */ + +#endif /* SOUND_SUPPORT */ +}/* os_finish_with_sample */ diff --git a/src/dos/bcscreen.c b/src/dos/bcscreen.c new file mode 100644 index 0000000..ed42e2e --- /dev/null +++ b/src/dos/bcscreen.c @@ -0,0 +1,298 @@ +/* + * file "BCscreen.c" + * + * Borland C front end, screen manipulation + * + */ + +#include +#include +#include "frotz.h" +#include "BCfrotz.h" + +/* + * get_scrnptr + * + * Return a pointer to the given line in video RAM. + * + */ + +byte far *get_scrnptr (int y) +{ + + if (display == _CGA_) + return MK_FP ((y & 1) ? 0xba00 : 0xb800, 40 * (y & ~1)); + else if (display == _MCGA_) + return MK_FP (0xa000, 320 * y); + else + return MK_FP (0xa000, 80 * y); + +}/* get_scrnptr */ + +/* + * clear_byte + * + * Helper function for clear_line. + * + */ + +static void clear_byte (byte far *scrn, word mask) +{ + + if (display == _CGA_) + + if (scrn_attr == 0) + *scrn &= ~mask; + else + *scrn |= mask; + + else { + + outport (0x03ce, 0x0205); + + outportb (0x03ce, 0x08); + outportb (0x03cf, mask); + + asm les bx,scrn + asm mov al,es:[bx] + asm mov al,scrn_attr + asm mov es:[bx],al + + } + +}/* clear_byte */ + +/* + * clear_line + * + * Helper function for os_erase_area. + * + */ + +static void clear_line (int y, int left, int right) +{ + byte far *scrn = get_scrnptr (y); + + if (display == _MCGA_) + + _fmemset (scrn + left, scrn_attr, right - left + 1); + + else { + + word mask1 = 0x00ff >> (left & 7); + word mask2 = 0xff80 >> (right & 7); + + int x = right / 8 - left / 8; + + scrn += left / 8; + + if (x == 0) { + mask1 &= mask2; + mask2 = 0; + } + + /* Clear first byte */ + + clear_byte (scrn++, mask1); + + /* Clear middle bytes */ + + if (display >= _EGA_) + outport (0x03ce, 0xff08); + + while (--x > 0) + *scrn++ = scrn_attr; + + /* Clear last byte */ + + clear_byte (scrn, mask2); + + } + +}/* clear_line */ + +/* + * os_erase_area + * + * Fill a rectangular area of the screen with the current background + * colour. Top left coordinates are (1,1). The cursor does not move. + * + */ + +void os_erase_area (int top, int left, int bottom, int right) +{ + int y; + + top--; + left--; + bottom--; + right--; + + if (display <= _TEXT_) { + + asm mov ax,0x0600 + asm mov ch,byte ptr top + asm mov cl,byte ptr left + asm mov dh,byte ptr bottom + asm mov dl,byte ptr right + asm mov bh,scrn_attr + asm int 0x10 + + } else + + for (y = top; y <= bottom; y++) + clear_line (y, left, right); + +}/* os_erase_area */ + +/* + * copy_byte + * + * Helper function for copy_line. + * + */ + +static void copy_byte (byte far *scrn1, byte far *scrn2, byte mask) +{ + int i; + + if (display == _CGA_) + + *scrn1 = (*scrn1 & ~mask) | (*scrn2 & mask); + + else { + + outport (0x03ce, 0x0005); + + outportb (0x03ce, 0x08); + outportb (0x03cf, mask); + + outportb (0x03ce, 0x04); + outportb (0x03c4, 0x02); + + for (i = 0; i < 4; i++) { + + outportb (0x03cf, i); + outportb (0x03c5, 1 << i); + + asm les bx,scrn2 + asm mov ah,es:[bx] + asm les bx,scrn1 + asm mov al,es:[bx] + asm mov es:[bx],ah + + } + + outportb (0x03c5, 0x0f); + + } + +}/* copy_byte */ + +/* + * copy_line + * + * Helper function for os_scroll_area. + * + */ + +static void copy_line (int y1, int y2, int left, int right) +{ + byte far *scrn1 = get_scrnptr (y1); + byte far *scrn2 = get_scrnptr (y2); + + if (display == _MCGA_) + + _fmemcpy (scrn1 + left, scrn2 + left, right - left + 1); + + else { + + word mask1 = 0x00ff >> (left & 7); + word mask2 = 0xff80 >> (right & 7); + + int x = right / 8 - left / 8; + + scrn1 += left / 8; + scrn2 += left / 8; + + if (x == 0) { + mask1 &= mask2; + mask2 = 0; + } + + /* Copy first byte */ + + copy_byte (scrn1++, scrn2++, mask1); + + /* Copy middle bytes */ + + if (display >= _EGA_) + outport (0x03ce, 0x0105); + + while (--x > 0) + *scrn1++ = *scrn2++; + + /* Copy last byte */ + + copy_byte (scrn1, scrn2, mask2); + + } + +}/* copy_line */ + +/* + * os_scroll_area + * + * Scroll a rectangular area of the screen up (units > 0) or down + * (units < 0) and fill the empty space with the current background + * colour. Top left coordinates are (1,1). The cursor stays put. + * + */ + +void os_scroll_area (int top, int left, int bottom, int right, int units) +{ + int y; + + top--; + left--; + bottom--; + right--; + + if (display <= _TEXT_) { + + asm mov ah,6 + asm mov bx,units + asm cmp bx,0 + asm jg scroll + asm mov ah,7 + asm neg bx + scroll: + asm mov al,bl + asm mov ch,byte ptr top + asm mov cl,byte ptr left + asm mov dh,byte ptr bottom + asm mov dl,byte ptr right + asm mov bh,scrn_attr + asm int 0x10 + + } else + + if (units > 0) + + for (y = top; y <= bottom; y++) + + if (y <= bottom - units) + copy_line (y, y + units, left, right); + else + clear_line (y, left, right); + + else + + for (y = bottom; y >= top; y--) + + if (y >= top - units) + copy_line (y, y + units, left, right); + else + clear_line (y, left, right); + +}/* os_scroll_area */ diff --git a/src/dos/bctext.c b/src/dos/bctext.c new file mode 100644 index 0000000..1d4e20f --- /dev/null +++ b/src/dos/bctext.c @@ -0,0 +1,807 @@ +/* + * file "BCtext.c" + * + * Borland C front end, text functions + * + */ + +#include +#include +#include +#include +#include +#include "frotz.h" +#include "BCfrotz.h" +#include "fontdata.h" + +extern byte far *get_scrnptr (int); + +int current_bg = 0; +int current_fg = 0; +int current_style = 0; +int current_font = 0; + +byte text_bg = 0; +byte text_fg = 0; +byte bg = 0; +byte fg = 0; +byte scrn_attr = 0; + +int cursor_x = 0; +int cursor_y = 0; + +char latin1_to_ascii[] = + " ! c L >o> 1/41/23/4? " + "A A A A Ae A AE C E E E E I I I I " + "Th N O O O O Oe * O U U U Ue Y Th ss " + "a a a a ae a ae c e e e e i i i i " + "th n o o o o oe : o u u u ue y th y "; + +char latin1_to_ibm[] = { + 0x20, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, + 0xf9, 0xb8, 0xa6, 0xae, 0xaa, 0xf0, 0xa9, 0xee, + 0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, + 0xf7, 0xfb, 0xa7, 0xaf, 0xac, 0xab, 0xf3, 0xa8, + 0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, + 0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, + 0xd1, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0x9e, + 0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0xed, 0xe8, 0xe1, + 0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87, + 0x8a, 0x82, 0x88, 0x89, 0x8d, 0xa1, 0x8c, 0x8b, + 0xd0, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6, + 0x9b, 0x97, 0xa3, 0x96, 0x81, 0xec, 0xe7, 0x98 +}; + +static byte far *graphics_font = NULL; +static byte far *mcga_font = NULL; +static byte far *mcga_width = NULL; +static word far *serif_font = NULL; +static byte far *serif_width = NULL; + +/* + * load_fonts + * + * Load the proportional and graphics fonts. In the release version all + * font data is appended to the end of the executable. + * + */ + +void load_fonts (void) +{ + static chunk_offset[] = { + 0x6660, + 0x6300, + 0x4A40, + 0x3180, + 0x18C0, + 0x00 + }; + + if (display == _MCGA_) { + mcga_font = font_data + chunk_offset[1]; + mcga_width = (byte *) mcga_font + 0x300; + } else + graphics_font = font_data + chunk_offset[0]; + + if (display == _AMIGA_ && user_font != 0) { + serif_font = (word *)(font_data + chunk_offset[1 + user_font]); + serif_width = (byte *) serif_font + 0x1800; + } + +}/* load_fonts */ + +/* + * os_font_data + * + * Return true if the given font is available. The font can be + * + * TEXT_FONT + * PICTURE_FONT + * GRAPHICS_FONT + * FIXED_WIDTH_FONT + * + * The font size should be stored in "height" and "width". If the given + * font is unavailable then these values must _not_ be changed. + * + */ + +int os_font_data (int font, int *height, int *width) +{ + + /* All fonts of this interface have the same size */ + + *height = h_font_height; + *width = h_font_width; + + /* Not every font is available in every mode */ + + if (font == TEXT_FONT) + return TRUE; + if (font == GRAPHICS_FONT && (display == _CGA_ || display >= _EGA_)) + return TRUE; + if (font == FIXED_WIDTH_FONT) + return TRUE; + + /* Unavailable font */ + + return FALSE; + +}/* os_font_data */ + +/* + * switch_scrn_attr + * + * Parts of the screen are usually erased to background colour. However, + * for deleting text in the input routine it can be useful to erase to + * the current text background colour. The two colours can be different, + * for example when the reverse text style is used. This helper function + * toggles between the two possible behaviours. + * + */ + +void switch_scrn_attr (bool flag) +{ + byte scrn_bg; + byte scrn_fg; + + if (flag) { + scrn_bg = text_bg; + scrn_fg = text_fg; + } else { + scrn_bg = bg; + scrn_fg = fg; + } + + if (display <= _TEXT_) + scrn_attr = (scrn_bg << 4) | scrn_fg; + else if (display == _CGA_) + scrn_attr = (scrn_bg != BLACK) ? 0xff : 0x00; + else + scrn_attr = scrn_bg; + +}/* switch_scrn_attr */ + +/* + * adjust_style + * + * Set the current colours. This combines the current colour selection + * and the current text style. + * + */ + +static void adjust_style (void) +{ + static byte amiga_palette[][3] = { + { 0x00, 0x00, 0x00 }, + { 0x2a, 0x00, 0x00 }, + { 0x00, 0x2a, 0x00 }, + { 0x3f, 0x3f, 0x15 }, + { 0x00, 0x00, 0x2a }, + { 0x2a, 0x00, 0x2a }, + { 0x00, 0x2a, 0x2a }, + { 0x3f, 0x3f, 0x3f }, + { 0x30, 0x30, 0x30 }, + { 0x20, 0x20, 0x20 }, + { 0x10, 0x10, 0x10 }, + }; + + static byte pc_colour[] = { + BLACK, + RED, + GREEN, + YELLOW, + BLUE, + MAGENTA, + CYAN, + WHITE, + DARKGRAY + }; + + static byte palette_bg = 0xff; + static byte palette_fg = 0xff; + + fg = current_fg; + bg = current_bg; + + /* V6 game, Amiga mode: Alter the palette registers if the colours + of window 0 have changed. DAC register #79 holds the foreground, + DAC register #64 the background colour. */ + + if (display == _AMIGA_ && h_version == V6 && cwin == 0) { + + if (fg < 16 && fg != palette_fg) { + + byte R = amiga_palette[fg - 2][0]; + byte G = amiga_palette[fg - 2][1]; + byte B = amiga_palette[fg - 2][2]; + + asm mov ax,0x1010 + asm mov bx,79 + asm mov dh,R + asm mov ch,G + asm mov cl,B + asm int 0x10 + + palette_fg = fg; + + } + + if (bg < 16 && bg != palette_bg) { + + byte R = amiga_palette[bg - 2][0]; + byte G = amiga_palette[bg - 2][1]; + byte B = amiga_palette[bg - 2][2]; + + asm mov ax,0x1010 + asm mov bx,64 + asm mov dh,R + asm mov ch,G + asm mov cl,B + asm int 0x10 + + palette_bg = bg; + + } + + } + + /* Handle colours */ + + if (fg < 16) + + if (display == _MONO_) + fg = (fg == WHITE_COLOUR) ? LIGHTGRAY : BLACK; + else if (h_version == V6 && display == _AMIGA_) + fg = (palette_fg == fg) ? 15 : 0; + else + fg = pc_colour[fg - 2]; + + else fg -= 16; + + if (bg < 16) + + if (display == _MONO_) + bg = (bg == WHITE_COLOUR) ? LIGHTGRAY : BLACK; + else if (h_version == V6 && display == _AMIGA_) + bg = (palette_bg == bg) ? 0 : 15; + else + bg = pc_colour[bg - 2]; + + else bg -= 16; + + /* Handle reverse text style */ + + if (current_style & REVERSE_STYLE) { + text_fg = (user_reverse_fg != -1) ? user_reverse_fg : bg; + text_bg = (user_reverse_bg != -1) ? user_reverse_bg : fg; + } else { + text_fg = fg; + text_bg = bg; + } + + /* Handle emphasis style */ + + if (current_style & EMPHASIS_STYLE) { + + if (display == _MONO_ && text_bg == BLACK) + text_fg = BLUE; /* blue in monochrome mode is underlined */ + if (display == _TEXT_) + text_fg = (user_emphasis != -1) ? user_emphasis : YELLOW; + + } + + /* Handle boldface style */ + + if (current_style & BOLDFACE_STYLE) { + + if (display == _MONO_) + text_fg = WHITE; + if (display == _TEXT_) + text_fg ^= 8; + + } + + /* Set the screen attribute for scrolling and erasing */ + + switch_scrn_attr (FALSE); + +}/* adjust_style */ + +/* + * os_set_colour + * + * Set the foreground and background colours which can be: + * + * DEFAULT_COLOUR + * BLACK_COLOUR + * RED_COLOUR + * GREEN_COLOUR + * YELLOW_COLOUR + * BLUE_COLOUR + * MAGENTA_COLOUR + * CYAN_COLOUR + * WHITE_COLOUR + * + * MS-DOS 320 columns MCGA mode only: + * + * GREY_COLOUR + * + * Amiga only: + * + * LIGHTGREY_COLOUR + * MEDIUMGREY_COLOUR + * DARKGREY_COLOUR + * + * There may be more colours in the range from 16 to 255; see the remarks + * on os_peek_colour. + * + */ + +void os_set_colour (int new_foreground, int new_background) +{ + + current_fg = new_foreground; + current_bg = new_background; + + /* Apply changes */ + + adjust_style (); + +}/* os_set_colour */ + +/* + * os_set_text_style + * + * Set the current text style. Following flags can be set: + * + * REVERSE_STYLE + * BOLDFACE_STYLE + * EMPHASIS_STYLE (aka underline aka italics) + * FIXED_WIDTH_STYLE + * + */ + +void os_set_text_style (int new_style) +{ + + current_style = new_style; + + /* Apply changes */ + + adjust_style (); + +}/* os_set_text_style */ + +/* + * os_set_font + * + * Set the font for text output. The interpreter takes care not to + * choose fonts which aren't supported by the interface. + * + */ + +void os_set_font (int new_font) +{ + + current_font = new_font; + +}/* os_set_font */ + +/* + * write_pattern + * + * Helper function for drawing characters in EGA and Amiga mode. + * + */ + +void write_pattern (byte far *screen, byte val, byte mask) +{ + + if (mask != 0) { + + if (display == _CGA_) { + + if (text_bg == BLACK) + *screen &= ~mask; + if (text_bg == WHITE) + *screen |= mask; + if (text_fg != text_bg) + *screen ^= val; + + } else if (display == _MCGA_) { + + byte i; + + for (i = 0x80; (mask & i) != 0; i >>= 1) + *screen++ = (val & i) ? text_fg : text_bg; + + } else { + + asm mov dx,0x03cf + asm mov al,mask + asm out dx,al + asm les bx,screen + asm mov ch,text_bg + asm mov al,es:[bx] + asm mov es:[bx],ch + asm mov al,val + asm out dx,al + asm mov ch,text_fg + asm mov al,es:[bx] + asm mov es:[bx],ch + + } + + } + +}/* write_pattern */ + +/* + * os_display_char + * + * Display a character of the current font using the current colours and + * text style. The cursor moves to the next position. Printable codes are + * all ASCII values from 32 to 126, ISO Latin-1 characters from 160 to + * 255, ZC_GAP (gap between two sentences) and ZC_INDENT (paragraph + * indentation). The screen should not be scrolled after printing to the + * bottom right corner. + * + */ + +void os_display_char (zchar c) +{ + int width = os_char_width (c); + + /* Handle accented characters */ + + if (c >= ZC_LATIN1_MIN && (story_id != BEYOND_ZORK || (h_flags & GRAPHICS_FLAG))) + + if (display == _CGA_ || display == _MCGA_) { + + char *ptr = latin1_to_ascii + 3 * (c - ZC_LATIN1_MIN); + + char c1 = *ptr++; + char c2 = *ptr++; + char c3 = *ptr++; + + os_display_char (c1); + + if (c2 != ' ') + os_display_char (c2); + if (c3 != ' ') + os_display_char (c3); + + return; + + } else if (display == _AMIGA_ && current_font == TEXT_FONT && !(current_style & FIXED_WIDTH_STYLE) && user_font != 0) { + + if (c >= ZC_LATIN1_MIN) + c -= 32; + + } else c = latin1_to_ibm[c - ZC_LATIN1_MIN]; + + /* Handle special indentations */ + + if (c == ZC_INDENT) + { os_display_char (' '); os_display_char (' '); os_display_char (' '); return; } + if (c == ZC_GAP) + { os_display_char (' '); os_display_char (' '); return; } + + /* Display character */ + + if (display <= _TEXT_) { + + asm mov ah,2 + asm mov bh,0 + asm mov dh,byte ptr cursor_y + asm mov dl,byte ptr cursor_x + asm int 0x10 + asm mov ah,9 + asm mov bh,0 + asm mov bl,byte ptr text_bg + asm mov cl,4 + asm shl bl,cl + asm or bl,byte ptr text_fg + asm mov cx,1 + asm mov al,byte ptr c + asm int 0x10 + + } else { + + void far *table; + word mask; + word val; + byte mask0; + byte mask1; + int align; + int underline; + int boldface; + int type; + + int shift = (display != _MCGA_) ? cursor_x % 8 : 0; + int offset = (display != _MCGA_) ? cursor_x / 8 : cursor_x; + + int i; + + if (current_font == GRAPHICS_FONT) { + table = graphics_font + 8 * (c - 32); + mask = 0xff; + underline = -1; + boldface = -1; + align = 0; + type = 1; + } else if (display == _AMIGA_ && current_font == TEXT_FONT && !(current_style & FIXED_WIDTH_STYLE) && user_font != 0) { + table = serif_font + 16 * (c - 32); + mask = 0xffff << (16 - width); + underline = 14; + boldface = 1; + align = 0; + type = 2; + } else if (display == _CGA_) { + table = (byte far *) MK_FP (0xf000, 0xfa6e) + 8 * c; + mask = 0xff; + underline = 7; + boldface = (user_bold_typing != -1) ? 1 : -1; + align = 0; + type = 3; + } else if (display >= _EGA_) { + table = (byte far *) getvect (0x43) + h_font_height * c; + mask = 0xff; + underline = h_font_height - 1; + boldface = (user_bold_typing != -1) ? 1 : -1; + align = 0; + type = 3; + } else { + table = mcga_font + 8 * (c - 32); + mask = 0xff & (0xff << (8 - width)); + underline = 7; + boldface = -1; + align = (width + 1 - mcga_width[c - 32]) / 2; + type = 3; + } + + mask0 = mask >> shift; + mask1 = mask << (8 - shift); + + if (!(current_style & BOLDFACE_STYLE)) + boldface = -1; + if (!(current_style & EMPHASIS_STYLE)) + underline = -1; + + if (display >= _EGA_) { + outport (0x03ce, 0x0205); + outport (0x03ce, 0xff08); + } + + for (i = 0; i < h_font_height; i++) { + + byte far *screen = get_scrnptr (cursor_y + i) + offset; + + if (type == 1) + val = *((byte far *) table + 8 * i / h_font_height); + if (type == 2) + val = *((word far *) table + i); + if (type == 3) + val = *((byte far *) table + i); + + if (align != 0) + val >>= align; + + if (boldface == 1) + val |= val >> 1; + if (underline == i) + val ^= mask; + + if (type == 2) + write_pattern (screen++, val >> (8 + shift), mask >> (8 + shift)); + + write_pattern (screen + 0, val >> shift, mask0); + write_pattern (screen + 1, val << (8 - shift), mask1); + + } + + } + + /* Move cursor to next position */ + + cursor_x += width; + +}/* os_display_char */ + +/* + * os_display_string + * + * Pass a string of characters to os_display_char. + * + */ + +void os_display_string (const zchar *s) +{ + + zchar c; + + while ((c = *s++) != 0) + + if (c == ZC_NEW_FONT || c == ZC_NEW_STYLE) { + + int arg = *s++; + + if (c == ZC_NEW_FONT) + os_set_font (arg); + if (c == ZC_NEW_STYLE) + os_set_text_style (arg); + + } else os_display_char (c); + +}/* os_display_string */ + +/* + * os_char_width + * + * Return the width of the character in screen units. + * + */ + +int os_char_width (zchar c) +{ + + /* Handle accented characters */ + + if (c >= ZC_LATIN1_MIN && (story_id != BEYOND_ZORK || (h_flags & GRAPHICS_FLAG))) + + if (display == _CGA_ || display == _MCGA_) { + + const char *ptr = latin1_to_ascii + 3 * (c - ZC_LATIN1_MIN); + + int width = 0; + + char c1 = *ptr++; + char c2 = *ptr++; + char c3 = *ptr++; + + width = os_char_width (c1); + + if (c2 != ' ') + width += os_char_width (c2); + if (c3 != ' ') + width += os_char_width (c3); + + return width; + + } else if (display == _AMIGA_ && current_font == TEXT_FONT && !(current_style & FIXED_WIDTH_STYLE) && user_font != 0) + + if (c >= ZC_LATIN1_MIN) + c -= 32; + + /* Handle special indentations */ + + if (c == ZC_INDENT) + return 3 * os_char_width (' '); + if (c == ZC_GAP) + return 2 * os_char_width (' '); + + /* Calculate width */ + + if (display <= _TEXT_) + return 1; + if (display == _CGA_) + return 8; + if (display == _EGA_) + return 8; + + if (current_font == GRAPHICS_FONT) + return 8; + if (current_font == FIXED_WIDTH_FONT || (current_style & FIXED_WIDTH_STYLE) || (display == _AMIGA_ && user_font == 0)) + return (display == _AMIGA_) ? 8 : 5; + + if (display == _MCGA_) + return mcga_width[c - 32]; + if (display == _AMIGA_) + return serif_width[c - 32] + ((current_style & BOLDFACE_STYLE) ? 1 : 0); + + return 0; + +}/* os_char_width */ + +/* + * os_string_width + * + * Calculate the length of a word in screen units. Apart from letters, + * the word may contain special codes: + * + * ZC_NEW_STYLE - next character is a new text style + * ZC_NEW_FONT - next character is a new font + * + */ + +int os_string_width (const zchar *s) +{ + int width = 0; + + int saved_font = current_font; + int saved_style = current_style; + + zchar c; + + while ((c = *s++) != 0) + + if (c == ZC_NEW_STYLE || c == ZC_NEW_FONT) { + + int arg = *s++; + + if (c == ZC_NEW_FONT) + current_font = arg; + if (c == ZC_NEW_STYLE) + current_style = arg; + + } else width += os_char_width (c); + + current_font = saved_font; + current_style = saved_style; + + return width; + +}/* os_string_width */ + +/* + * os_set_cursor + * + * Place the text cursor at the given coordinates. Top left is (1,1). + * + */ + +void os_set_cursor (int y, int x) +{ + + cursor_y = y - 1; + cursor_x = x - 1; + +}/* os_set_cursor */ + +/* + * os_more_prompt + * + * Display a MORE prompt, wait for a keypress and remove the MORE + * prompt from the screen. + * + */ + +void os_more_prompt (void) +{ + int saved_x; + + /* Save text font and style */ + + int saved_font = current_font; + int saved_style = current_style; + + /* Choose plain text style */ + + current_font = TEXT_FONT; + current_style = 0; + + adjust_style (); + + /* Wait until the user presses a key */ + + saved_x = cursor_x; + + os_display_string ((zchar *) "[MORE]"); + os_read_key (0, TRUE); + + os_erase_area (cursor_y + 1, + saved_x + 1, + cursor_y + h_font_height, + cursor_x + 1); + + cursor_x = saved_x; + + /* Restore text font and style */ + + current_font = saved_font; + current_style = saved_style; + + adjust_style (); + +}/* os_more_prompt */ diff --git a/src/dos/fontdata.h b/src/dos/fontdata.h new file mode 100644 index 0000000..58ffea7 --- /dev/null +++ b/src/dos/fontdata.h @@ -0,0 +1,2250 @@ +static unsigned char font_data[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, + 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, + 0x00, 0x7e, 0x00, 0x28, 0x00, 0x28, 0x00, 0xfc, 0x00, 0x50, 0x00, 0x50, + 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x40, + 0x00, 0x30, 0x00, 0x08, 0x00, 0x08, 0x00, 0x48, 0x00, 0x30, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x30, + 0x40, 0x48, 0x80, 0x48, 0x00, 0x31, 0x00, 0x02, 0x00, 0x04, 0xc0, 0x08, + 0x20, 0x11, 0x20, 0x21, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x28, + 0x00, 0x28, 0x80, 0x13, 0x00, 0x29, 0x00, 0x45, 0x00, 0x42, 0x00, 0x45, + 0x80, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x54, 0x00, 0x38, 0x00, 0x54, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, + 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x30, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x48, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x08, 0x00, 0x08, 0x00, 0x30, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x48, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x18, 0x00, 0x18, 0x00, 0x28, 0x00, 0x28, 0x00, 0x48, 0x00, 0x78, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x70, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x48, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70, + 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x48, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, + 0x00, 0x48, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, + 0x00, 0x38, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 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, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, + 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, + 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, + 0x40, 0x20, 0x20, 0x47, 0x20, 0x49, 0x20, 0x49, 0x20, 0x49, 0x20, 0x49, + 0x20, 0x47, 0xc0, 0x20, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, + 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41, + 0x80, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x3e, + 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, + 0x80, 0x21, 0x80, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x23, 0x00, 0x21, + 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x23, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x22, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, + 0x00, 0x24, 0x00, 0x20, 0x00, 0x20, 0x00, 0x22, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, + 0x00, 0x22, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, 0x80, 0x21, 0x80, 0x40, + 0x00, 0x40, 0x00, 0x40, 0xc0, 0x41, 0x80, 0x40, 0x80, 0x40, 0x80, 0x20, + 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x73, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x3f, + 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x80, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x90, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x77, 0x00, 0x22, 0x00, 0x24, 0x00, 0x28, 0x00, 0x30, + 0x00, 0x28, 0x00, 0x24, 0x00, 0x22, 0x00, 0x21, 0x80, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x80, 0x31, 0x80, 0x31, + 0x80, 0x31, 0x80, 0x2a, 0x80, 0x2a, 0x80, 0x2a, 0x80, 0x24, 0x80, 0x24, + 0xc0, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x63, 0x00, 0x31, 0x00, 0x31, 0x00, 0x29, 0x00, 0x29, + 0x00, 0x25, 0x00, 0x25, 0x00, 0x23, 0x00, 0x23, 0x00, 0x71, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x22, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x22, 0x00, 0x3c, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x06, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, + 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3c, 0x00, 0x24, + 0x00, 0x22, 0x00, 0x21, 0x80, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x4c, 0x00, 0x44, + 0x00, 0x40, 0x00, 0x30, 0x00, 0x08, 0x00, 0x04, 0x00, 0x44, 0x00, 0x64, + 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0x80, 0x88, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x73, + 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, + 0x00, 0x21, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0x00, 0x41, 0x00, 0x41, + 0x00, 0x22, 0x00, 0x22, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xb8, 0xed, 0x10, 0x45, 0x10, 0x45, 0x20, 0x22, 0x20, 0x22, + 0x40, 0x15, 0x40, 0x15, 0x40, 0x15, 0x80, 0x08, 0x80, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x12, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x12, + 0x00, 0x21, 0x80, 0x40, 0xc0, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0x00, 0x41, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x14, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x82, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x41, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28, + 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48, + 0x00, 0x48, 0x00, 0x48, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x40, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x4c, 0x00, 0x48, 0x00, 0x50, 0x00, 0x70, 0x00, 0x48, 0x00, 0x44, + 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x00, 0x6d, 0x00, 0x49, 0x00, 0x49, + 0x00, 0x49, 0x00, 0x49, 0x80, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xd8, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x78, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x3c, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x00, 0x60, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, + 0x00, 0xe0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, + 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xdd, 0x80, 0x88, 0x80, 0x88, 0x00, 0x55, 0x00, 0x55, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, + 0x00, 0x28, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0xee, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, + 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xa0, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x44, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x44, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x10, 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, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x32, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x38, 0x00, 0x4c, 0x00, 0x50, + 0x00, 0x50, 0x00, 0x64, 0x00, 0x38, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x20, 0x00, 0x78, 0x00, 0x20, 0x00, 0x20, 0x00, 0x24, + 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xb4, 0x00, 0x48, 0x00, 0x48, 0x00, 0xb4, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, + 0x00, 0x88, 0x00, 0xf8, 0x00, 0x50, 0x00, 0xf8, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x40, 0x00, 0x20, 0x00, 0x50, + 0x00, 0x48, 0x00, 0x48, 0x00, 0x28, 0x00, 0x10, 0x00, 0x08, 0x00, 0x48, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x20, 0x40, 0x4e, + 0x40, 0x51, 0x40, 0x50, 0x40, 0x50, 0x40, 0x51, 0x40, 0x4e, 0x80, 0x20, + 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x28, + 0x00, 0x50, 0x00, 0x28, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0x80, 0x20, 0x40, 0x5e, 0x40, 0x51, 0x40, 0x51, 0x40, 0x5e, 0x40, 0x52, + 0x40, 0x51, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xa0, 0x00, 0x20, + 0x00, 0x40, 0x00, 0x80, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x00, 0x20, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x7b, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0x00, 0x38, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x00, 0x60, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x28, 0x00, 0x14, 0x00, 0x28, + 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x40, 0x00, 0xc1, 0x00, 0x42, 0x00, 0x44, 0x80, 0x48, + 0x80, 0xe9, 0x80, 0x12, 0x80, 0x22, 0x80, 0x43, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, + 0x00, 0xc1, 0x00, 0x42, 0x00, 0x44, 0x00, 0x49, 0x80, 0xea, 0x80, 0x10, + 0x00, 0x21, 0x00, 0x42, 0x80, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x00, 0x21, 0x00, 0x42, + 0x00, 0x24, 0x80, 0x28, 0x80, 0xc9, 0x80, 0x12, 0x80, 0x22, 0x80, 0x43, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x48, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e, + 0x00, 0x41, 0x00, 0x41, 0x80, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, + 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41, + 0x80, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x14, + 0x00, 0x22, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41, 0x80, 0xe3, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x2c, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e, + 0x00, 0x41, 0x00, 0x41, 0x80, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, + 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41, + 0x80, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x14, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41, 0x80, 0xe3, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, + 0x20, 0x0a, 0x00, 0x0a, 0x40, 0x12, 0xc0, 0x13, 0x40, 0x22, 0x00, 0x3e, + 0x00, 0x42, 0x20, 0x42, 0xe0, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, 0x80, 0x21, 0x80, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x80, 0x40, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x08, + 0x00, 0x04, 0x00, 0x7e, 0x00, 0x22, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, + 0x00, 0x24, 0x00, 0x20, 0x00, 0x20, 0x00, 0x22, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x7e, + 0x00, 0x22, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x22, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x14, 0x00, 0x22, 0x00, 0x7e, 0x00, 0x22, 0x00, 0x20, + 0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20, 0x00, 0x20, 0x00, 0x22, + 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x22, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, + 0x00, 0x24, 0x00, 0x20, 0x00, 0x20, 0x00, 0x22, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x70, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x70, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x50, + 0x00, 0x88, 0x00, 0x70, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x23, 0x00, 0x21, + 0x80, 0x20, 0x80, 0x70, 0x80, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x23, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x26, + 0x00, 0x00, 0x80, 0x63, 0x00, 0x31, 0x00, 0x31, 0x00, 0x29, 0x00, 0x29, + 0x00, 0x25, 0x00, 0x25, 0x00, 0x23, 0x00, 0x23, 0x00, 0x71, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x1e, + 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x12, + 0x00, 0x21, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x28, + 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1e, + 0x80, 0x21, 0x80, 0x41, 0x80, 0x42, 0x80, 0x44, 0x80, 0x48, 0x80, 0x50, + 0x80, 0x60, 0x00, 0x61, 0x00, 0x9e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x80, 0x73, 0x00, 0x21, 0x00, 0x21, + 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, + 0x00, 0x08, 0x80, 0x73, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, + 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x12, 0x00, 0x21, 0x80, 0x73, + 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, + 0x00, 0x21, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x80, 0x73, 0x00, 0x21, 0x00, 0x21, + 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x10, 0x80, 0xe3, 0x00, 0x41, 0x00, 0x22, 0x00, 0x22, 0x00, 0x14, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x20, 0x00, 0x3c, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, + 0x00, 0x3c, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x48, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, + 0x00, 0x38, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x34, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48, + 0x00, 0x48, 0x00, 0x48, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, + 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, + 0x00, 0x38, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x34, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x48, 0x00, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48, + 0x00, 0x48, 0x00, 0x48, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, + 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x09, + 0x00, 0x3f, 0x00, 0x48, 0x00, 0x48, 0x00, 0x49, 0x00, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28, + 0x00, 0x44, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x40, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xa0, 0x00, 0x00, + 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, + 0x00, 0x20, 0x00, 0x50, 0x00, 0x08, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00, + 0x00, 0xd8, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x4c, + 0x00, 0x54, 0x00, 0x54, 0x00, 0x54, 0x00, 0x64, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, + 0x00, 0x08, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x4c, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, + 0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, + 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x36, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x4c, 0x00, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, + 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, 0x00, 0x28, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x20, 0x00, 0xa0, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x58, 0x00, 0x64, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x78, 0x00, 0x40, + 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, + 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xa0, 0x00, 0xc0, + 0x03, 0x03, 0x05, 0x07, 0x06, 0x0c, 0x0a, 0x03, 0x04, 0x04, 0x07, 0x07, + 0x03, 0x04, 0x03, 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x03, 0x03, 0x07, 0x07, 0x07, 0x06, 0x0c, 0x09, 0x09, 0x09, + 0x0a, 0x08, 0x07, 0x0a, 0x0a, 0x05, 0x06, 0x09, 0x08, 0x0b, 0x0a, 0x0a, + 0x08, 0x0a, 0x09, 0x07, 0x09, 0x0a, 0x09, 0x0d, 0x0a, 0x09, 0x08, 0x04, + 0x04, 0x04, 0x07, 0x06, 0x04, 0x06, 0x07, 0x06, 0x07, 0x07, 0x04, 0x07, + 0x07, 0x03, 0x03, 0x07, 0x03, 0x09, 0x07, 0x07, 0x07, 0x07, 0x05, 0x05, + 0x03, 0x07, 0x07, 0x09, 0x07, 0x07, 0x07, 0x05, 0x03, 0x05, 0x08, 0x00, + 0x03, 0x03, 0x06, 0x06, 0x06, 0x06, 0x03, 0x06, 0x05, 0x0b, 0x04, 0x07, + 0x07, 0x04, 0x0b, 0x06, 0x04, 0x07, 0x03, 0x03, 0x04, 0x08, 0x06, 0x03, + 0x04, 0x03, 0x04, 0x07, 0x09, 0x09, 0x09, 0x06, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x0c, 0x09, 0x08, 0x08, 0x08, 0x08, 0x05, 0x05, 0x05, 0x05, + 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x07, 0x0a, 0x0a, 0x0a, 0x0a, + 0x0a, 0x09, 0x08, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x09, 0x06, + 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, + 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x24, + 0x00, 0xff, 0x00, 0x24, 0x00, 0x24, 0x00, 0xff, 0x00, 0x48, 0x00, 0x48, + 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x38, 0x00, 0x54, 0x00, 0x54, 0x00, 0x50, 0x00, 0x30, + 0x00, 0x18, 0x00, 0x14, 0x00, 0x54, 0x00, 0x54, 0x00, 0x38, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60, + 0x80, 0x90, 0x00, 0x91, 0x00, 0x91, 0x00, 0x62, 0x60, 0x04, 0x90, 0x08, + 0x90, 0x10, 0x90, 0x10, 0x60, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x09, 0x00, 0x09, + 0x00, 0x0a, 0xe0, 0x0c, 0x40, 0x34, 0x80, 0x44, 0x00, 0x43, 0x10, 0x62, + 0xe0, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x54, 0x00, 0x38, 0x00, 0x38, 0x00, 0x54, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xfe, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x30, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, + 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x44, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08, 0x00, 0x18, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x18, 0x00, 0x28, 0x00, 0x28, 0x00, 0x48, 0x00, 0x88, 0x00, 0xfc, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x70, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x20, 0x00, 0x58, 0x00, 0x64, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, + 0x00, 0x82, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x28, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x3c, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x30, 0x00, 0x40, + 0x00, 0x30, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x30, + 0x00, 0x0c, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x30, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x10, 0x08, 0x08, 0x10, + 0xa8, 0x23, 0x68, 0x44, 0x48, 0x48, 0x48, 0x48, 0x88, 0x48, 0x88, 0x48, + 0x90, 0x49, 0x64, 0x46, 0x08, 0x20, 0x10, 0x10, 0x20, 0x08, 0xc0, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0a, + 0x00, 0x0a, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x80, 0x20, 0x80, 0x20, + 0xe0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x3e, + 0x00, 0x21, 0x80, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, + 0x80, 0x21, 0x80, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x21, 0x80, 0x20, + 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x40, 0x20, 0x80, 0x20, 0x00, 0x21, + 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x21, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, + 0x00, 0x24, 0x00, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, + 0x00, 0x21, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, 0x80, 0x21, 0x80, 0x40, + 0x00, 0x40, 0x00, 0x40, 0xc0, 0x41, 0x80, 0x40, 0x80, 0x40, 0x80, 0x20, + 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x71, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x3f, + 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0xc0, 0x71, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x90, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x73, 0x00, 0x21, 0x00, 0x22, 0x00, 0x24, 0x00, 0x38, + 0x00, 0x28, 0x00, 0x24, 0x00, 0x22, 0x00, 0x21, 0xc0, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x80, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x60, 0x30, 0xa0, 0x28, + 0xa0, 0x28, 0xa0, 0x28, 0x20, 0x25, 0x20, 0x25, 0x20, 0x25, 0x20, 0x22, + 0x70, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x61, 0x80, 0x20, 0x80, 0x30, 0x80, 0x28, 0x80, 0x24, + 0x80, 0x24, 0x80, 0x22, 0x80, 0x21, 0x80, 0x20, 0x80, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0x80, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x21, 0x00, 0x21, + 0x00, 0x21, 0x00, 0x21, 0x00, 0x3e, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x80, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x04, + 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, + 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x3e, 0x00, 0x24, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x21, 0xc0, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x46, 0x00, 0x42, + 0x00, 0x40, 0x00, 0x30, 0x00, 0x0c, 0x00, 0x02, 0x00, 0x42, 0x00, 0x62, + 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0x80, 0x88, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x71, + 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, + 0x80, 0x20, 0x00, 0x11, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf1, 0x80, 0x20, 0x80, 0x20, + 0x00, 0x11, 0x00, 0x11, 0x00, 0x11, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x0c, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xbc, 0xf7, 0x08, 0x21, 0x10, 0x21, 0x10, 0x23, 0x90, 0x12, + 0xa0, 0x14, 0xa0, 0x14, 0xa0, 0x14, 0x40, 0x08, 0x40, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfb, + 0x80, 0x20, 0x00, 0x11, 0x00, 0x0a, 0x00, 0x0c, 0x00, 0x04, 0x00, 0x0a, + 0x00, 0x12, 0x00, 0x21, 0xc0, 0xf3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x79, 0x80, 0x10, 0x00, 0x11, + 0x00, 0x09, 0x00, 0x0a, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x42, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x20, 0x80, 0x20, 0x00, 0x41, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x48, 0x00, 0x48, 0x00, 0x84, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x3c, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0c, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x34, 0x00, 0x4c, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x4e, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x48, 0x00, 0x40, 0x00, 0x40, 0x00, 0xf0, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x8c, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x70, 0x00, 0x80, 0x00, 0x78, 0x00, 0x84, 0x00, 0x84, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x4e, 0x00, 0x48, 0x00, 0x50, 0x00, 0x70, 0x00, 0x48, 0x00, 0x44, + 0x00, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x59, 0x40, 0xe6, 0x40, 0x44, 0x40, 0x44, + 0x40, 0x44, 0x40, 0x44, 0xe0, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x58, 0x00, 0xe4, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0xe4, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x64, 0x00, 0x58, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x34, 0x00, 0x4c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, + 0x00, 0x34, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x00, 0xe0, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x40, 0x00, 0x30, + 0x00, 0x08, 0x00, 0x48, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, + 0x00, 0xf0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x50, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4e, 0x00, 0x34, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, + 0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xee, 0x40, 0x44, 0x40, 0x44, 0x80, 0x2a, 0x80, 0x2a, 0x00, 0x33, + 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, + 0x00, 0x28, 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0xee, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, + 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x48, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x44, + 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x30, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x71, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x46, 0x00, 0x48, 0x00, 0x48, + 0x00, 0x52, 0x00, 0x32, 0x00, 0x3c, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x78, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x62, + 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x00, 0x24, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x24, 0x00, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, + 0x00, 0x22, 0x00, 0x14, 0x00, 0x14, 0x00, 0x7f, 0x00, 0x08, 0x00, 0x7f, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x24, 0x00, 0x20, 0x00, 0x10, 0x00, 0x28, + 0x00, 0x44, 0x00, 0x42, 0x00, 0x22, 0x00, 0x14, 0x00, 0x08, 0x00, 0x04, + 0x00, 0x24, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x80, 0x40, 0x40, 0x9f, + 0x40, 0xa1, 0x40, 0xa0, 0x40, 0xa0, 0x40, 0xa1, 0x40, 0x9e, 0x80, 0x40, + 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0xa0, 0x00, 0x60, 0x00, 0xa0, 0x00, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x48, 0x00, 0x48, 0x00, 0x90, + 0x00, 0x48, 0x00, 0x48, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x00, 0x02, 0x00, 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, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, + 0x80, 0x40, 0x40, 0xbc, 0x40, 0x92, 0x40, 0x9c, 0x40, 0x94, 0x40, 0x92, + 0x40, 0xb9, 0x80, 0x40, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0xfe, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x90, 0x00, 0x20, + 0x00, 0x40, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x10, 0x00, 0x60, 0x00, 0x10, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0xf4, 0x00, 0xf4, 0x00, 0xf4, 0x00, 0xf4, + 0x00, 0x74, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, + 0x00, 0x14, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, + 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, 0x90, 0x00, 0x90, 0x00, 0x90, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x00, 0x48, 0x00, 0x48, 0x00, 0x24, 0x00, 0x48, 0x00, 0x48, + 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x20, 0x80, 0x60, 0x00, 0x21, 0x00, 0x22, 0x00, 0x72, + 0x40, 0x04, 0xc0, 0x08, 0x40, 0x09, 0xe0, 0x11, 0x40, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x20, + 0x00, 0x61, 0x00, 0x22, 0x00, 0x22, 0x00, 0x74, 0xe0, 0x08, 0x20, 0x09, + 0x40, 0x10, 0x80, 0x20, 0xe0, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0x00, 0x11, 0x00, 0x62, + 0x00, 0x12, 0x00, 0xe4, 0x40, 0x08, 0xc0, 0x08, 0x40, 0x11, 0xe0, 0x21, + 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x38, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x04, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, + 0x80, 0x20, 0x80, 0x20, 0xe0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0a, + 0x00, 0x0a, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x80, 0x20, 0x80, 0x20, + 0xe0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x11, + 0x00, 0x11, 0x00, 0x1f, 0x80, 0x20, 0x80, 0x20, 0xe0, 0xf1, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x16, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x04, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, + 0x80, 0x20, 0x80, 0x20, 0xe0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0a, + 0x00, 0x0a, 0x00, 0x11, 0x00, 0x11, 0x00, 0x1f, 0x80, 0x20, 0x80, 0x20, + 0xe0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, + 0x00, 0x09, 0x00, 0x06, 0x00, 0x04, 0x00, 0x0a, 0x00, 0x0a, 0x00, 0x11, + 0x00, 0x11, 0x00, 0x1f, 0x80, 0x20, 0x80, 0x20, 0xe0, 0xf1, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, + 0x08, 0x06, 0x00, 0x0a, 0x20, 0x0a, 0xe0, 0x13, 0x20, 0x3e, 0x00, 0x22, + 0x08, 0x42, 0x18, 0x42, 0xf0, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, 0x80, 0x21, 0x80, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x80, 0x40, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x08, 0x00, 0x08, 0x00, 0x18, 0x00, 0x10, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x21, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, + 0x00, 0x24, 0x00, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x7f, + 0x00, 0x21, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20, + 0x80, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x12, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x21, 0x00, 0x20, + 0x00, 0x24, 0x00, 0x3c, 0x00, 0x24, 0x00, 0x20, 0x80, 0x20, 0x00, 0x21, + 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x21, 0x00, 0x20, 0x00, 0x24, 0x00, 0x3c, + 0x00, 0x24, 0x00, 0x20, 0x80, 0x20, 0x00, 0x21, 0x00, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0x20, 0x40, 0x20, + 0x20, 0x20, 0x20, 0xfe, 0x20, 0x20, 0x20, 0x20, 0x40, 0x20, 0x80, 0x20, + 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x16, + 0x00, 0x00, 0xc0, 0x61, 0x80, 0x20, 0x80, 0x30, 0x80, 0x28, 0x80, 0x24, + 0x80, 0x24, 0x80, 0x22, 0x80, 0x21, 0x80, 0x20, 0x80, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1f, + 0x80, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x20, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x20, + 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, + 0x00, 0x00, 0x00, 0x1f, 0x80, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x16, 0x00, 0x00, 0x00, 0x1f, + 0x80, 0x20, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, + 0x40, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x1f, 0x80, 0x20, 0x40, 0x40, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x20, + 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x24, 0x00, 0x18, + 0x00, 0x18, 0x00, 0x24, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1f, + 0x80, 0x21, 0x80, 0x41, 0x40, 0x42, 0x40, 0x44, 0x40, 0x48, 0x40, 0x48, + 0x40, 0x30, 0x80, 0x30, 0x00, 0x5f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0xc0, 0x71, 0x80, 0x20, 0x80, 0x20, + 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x00, 0x11, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, + 0x00, 0x00, 0xc0, 0x71, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, + 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x00, 0x11, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x09, 0x00, 0x00, 0xc0, 0x71, + 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, + 0x80, 0x20, 0x00, 0x11, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0xc0, 0x71, 0x80, 0x20, 0x80, 0x20, + 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0x00, 0x11, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, + 0x00, 0x00, 0xe0, 0x79, 0x80, 0x10, 0x00, 0x11, 0x00, 0x09, 0x00, 0x0a, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x20, 0x00, 0x3e, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, 0x00, 0x21, + 0x00, 0x3e, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x4c, 0x00, 0x46, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, + 0x00, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x04, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x3c, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x04, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x3c, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x24, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x80, 0x48, + 0x80, 0x1f, 0x00, 0x28, 0x00, 0x48, 0x80, 0x48, 0x00, 0x77, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x10, 0x00, 0x10, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x00, 0x24, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x44, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x90, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x40, 0x00, 0xc0, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x18, + 0x00, 0x28, 0x00, 0x04, 0x00, 0x3c, 0x00, 0x46, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00, + 0x00, 0x58, 0x00, 0xe4, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0xee, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x46, + 0x00, 0x46, 0x00, 0x4a, 0x00, 0x52, 0x00, 0x22, 0x00, 0x5c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x10, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x4e, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, + 0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4e, + 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4e, 0x00, 0x34, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x00, 0x00, 0x00, 0xcc, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x4e, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, + 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, 0x00, 0x28, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x5c, 0x00, 0x62, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7c, 0x00, 0x40, + 0x00, 0x40, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x28, 0x00, 0x00, 0x00, 0xee, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, + 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0, + 0x04, 0x03, 0x05, 0x08, 0x07, 0x0d, 0x0c, 0x03, 0x05, 0x05, 0x07, 0x08, + 0x03, 0x05, 0x04, 0x04, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x03, 0x04, 0x08, 0x08, 0x08, 0x07, 0x0e, 0x0b, 0x0a, 0x0a, + 0x0b, 0x09, 0x08, 0x0a, 0x0b, 0x05, 0x06, 0x0b, 0x09, 0x0d, 0x0b, 0x0b, + 0x09, 0x0b, 0x0a, 0x08, 0x09, 0x0b, 0x0b, 0x0e, 0x0a, 0x0b, 0x09, 0x05, + 0x04, 0x04, 0x06, 0x08, 0x04, 0x07, 0x07, 0x07, 0x07, 0x07, 0x05, 0x07, + 0x07, 0x03, 0x04, 0x07, 0x03, 0x0b, 0x07, 0x07, 0x07, 0x07, 0x05, 0x06, + 0x04, 0x07, 0x07, 0x0b, 0x07, 0x07, 0x06, 0x07, 0x03, 0x07, 0x08, 0x00, + 0x04, 0x03, 0x08, 0x08, 0x08, 0x09, 0x03, 0x08, 0x05, 0x0b, 0x04, 0x07, + 0x08, 0x05, 0x0b, 0x08, 0x06, 0x08, 0x05, 0x05, 0x04, 0x07, 0x07, 0x04, + 0x04, 0x05, 0x04, 0x07, 0x0b, 0x0b, 0x0b, 0x07, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x0d, 0x0a, 0x09, 0x09, 0x09, 0x09, 0x05, 0x05, 0x05, 0x05, + 0x0c, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x08, 0x0b, 0x0b, 0x0b, 0x0b, + 0x0b, 0x0b, 0x09, 0x08, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0a, 0x07, + 0x07, 0x07, 0x07, 0x07, 0x03, 0x03, 0x04, 0x03, 0x08, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x07, 0x08, 0x08, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x11, + 0x80, 0x7f, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, 0x00, 0xff, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x3e, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, + 0x00, 0x3c, 0x00, 0x12, 0x00, 0x12, 0x00, 0x12, 0x00, 0x7c, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x32, 0x00, 0x4c, 0x00, 0x4c, 0x00, 0x38, 0x00, 0x08, 0x00, 0x13, + 0x80, 0x14, 0x80, 0x34, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x14, + 0x00, 0x1c, 0x00, 0x18, 0x00, 0x2a, 0x00, 0x4a, 0x00, 0x46, 0x00, 0x44, + 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0xf8, 0x00, 0x30, 0x00, 0x48, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xf8, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x04, + 0x00, 0x38, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x18, 0x00, 0x28, 0x00, 0x48, 0x00, 0x88, 0x00, 0xfc, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x04, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x78, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x3c, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x60, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x80, 0x61, 0x40, 0x4c, 0x40, 0x98, 0x40, 0xa6, 0x40, 0xa6, 0x80, 0x9d, + 0x00, 0x40, 0x80, 0x20, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x22, 0x00, 0x22, 0x00, 0x22, + 0x00, 0x3c, 0x00, 0x24, 0x00, 0x22, 0x00, 0x22, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x24, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, + 0x00, 0x80, 0x00, 0x84, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x58, + 0x00, 0x44, 0x00, 0x42, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7c, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x40, 0x00, 0x80, 0x00, 0xbe, 0x00, 0x82, 0x00, 0x82, 0x00, 0x84, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, + 0x00, 0x7f, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x04, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x00, 0x44, 0x00, 0x48, 0x00, 0x70, + 0x00, 0x60, 0x00, 0x60, 0x00, 0x50, 0x00, 0x48, 0x00, 0x46, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x56, 0x00, 0x55, 0x00, 0x55, 0x00, 0x55, 0x80, 0x88, + 0x80, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x60, 0x80, 0x50, 0x80, 0x48, + 0x80, 0x48, 0x80, 0x44, 0x80, 0x42, 0x80, 0x41, 0x80, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x11, 0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x00, 0x41, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x48, + 0x00, 0x48, 0x00, 0x48, 0x00, 0x48, 0x00, 0x70, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x44, 0x80, 0x23, 0x00, 0x1f, 0x80, 0x01, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x48, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x78, + 0x00, 0x50, 0x00, 0x48, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x20, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x3c, 0x00, 0x02, 0x00, 0x02, 0x00, 0x84, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, + 0x00, 0x41, 0x00, 0x22, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x82, + 0x00, 0x84, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, 0x00, 0x28, 0x00, 0x30, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x84, 0x20, 0x84, 0x40, 0x44, 0x40, 0x4a, + 0x40, 0x4a, 0x80, 0x52, 0x80, 0x52, 0x80, 0x22, 0x00, 0x21, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x81, 0x00, 0x42, 0x00, 0x24, 0x00, 0x18, 0x00, 0x18, 0x00, 0x18, + 0x00, 0x24, 0x00, 0x42, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x24, 0x00, 0x28, 0x00, 0x18, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xc0, + 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x70, 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, + 0x00, 0x80, 0x00, 0xf0, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x48, 0x00, 0x80, 0x00, 0x80, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x78, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x90, 0x00, 0xe0, 0x00, 0x88, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xf8, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x08, 0x00, 0x08, 0x00, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, + 0x00, 0x80, 0x00, 0xb0, 0x00, 0xc8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, + 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x90, 0x00, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, + 0x00, 0x80, 0x00, 0x90, 0x00, 0xa0, 0x00, 0xe0, 0x00, 0xd0, 0x00, 0x90, + 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, + 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0xda, 0x00, 0x92, + 0x00, 0x92, 0x00, 0x92, 0x00, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xb0, 0x00, 0xc8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0xf0, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x78, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, + 0x00, 0xd0, 0x00, 0x90, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x88, 0x00, 0x60, + 0x00, 0x10, 0x00, 0x08, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x20, 0x00, 0xf8, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0x00, 0x50, + 0x00, 0x50, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x92, 0x00, 0x92, 0x00, 0xb4, 0x00, 0xb4, 0x00, 0x54, + 0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, + 0x00, 0x48, 0x00, 0x30, 0x00, 0x30, 0x00, 0x48, 0x00, 0x84, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x48, 0x00, 0x48, + 0x00, 0x30, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0xc0, 0x00, 0xc0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x30, 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, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x30, 0x00, 0x30, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, + 0x00, 0xe4, 0x00, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x78, 0x00, 0x68, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xa8, + 0x00, 0xa8, 0x00, 0x70, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x30, 0x00, 0x20, + 0x00, 0x20, 0x00, 0xfc, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x21, + 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x7c, + 0x00, 0x48, 0x00, 0x48, 0x00, 0x78, 0x00, 0x84, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x82, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, 0x00, 0x7c, 0x00, 0x10, + 0x00, 0x38, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x22, 0x00, 0x20, 0x00, 0x3c, + 0x00, 0x22, 0x00, 0x1e, 0x00, 0x02, 0x00, 0x22, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x62, 0x00, 0x9d, + 0x00, 0xa1, 0x00, 0xa5, 0x00, 0x9b, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x90, 0x00, 0x98, 0x00, 0x68, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x50, 0x00, 0xa0, + 0x00, 0x50, 0x00, 0x28, 0x00, 0x00, 0x00, 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, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, + 0x00, 0x42, 0x00, 0x9d, 0x00, 0x95, 0x00, 0x9d, 0x00, 0xa9, 0x00, 0xa7, + 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x60, 0x00, 0x90, 0x00, 0x90, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0xf8, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x28, 0x00, 0x18, + 0x00, 0x20, 0x00, 0x38, 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, 0x04, 0x00, 0x08, 0x00, 0x04, 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, 0x20, + 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x22, 0x00, 0x22, 0x00, 0x46, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x7c, 0x00, 0xc0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x3a, 0x00, 0x4a, 0x00, 0x4a, + 0x00, 0x4a, 0x00, 0x4a, 0x00, 0x3a, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x60, 0x00, 0x20, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x08, 0x00, 0x08, 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, 0x38, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x28, 0x00, 0x14, 0x00, 0x28, 0x00, 0x50, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x08, 0x00, 0x18, 0x00, 0x28, + 0x00, 0x7c, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x18, 0x00, 0x08, 0x00, 0x08, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x7e, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x14, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x08, 0x00, 0x18, + 0x00, 0x08, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x18, 0x00, 0x28, 0x00, 0x7c, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x30, 0x00, 0x40, + 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xc8, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x3c, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x12, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, + 0x00, 0x24, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x82, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x2e, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x3c, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x12, 0x00, 0x12, 0x00, 0x0c, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, + 0x00, 0x24, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x82, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, + 0x00, 0x03, 0x00, 0x05, 0x00, 0x09, 0x00, 0x11, 0xf8, 0x1f, 0x00, 0x21, + 0x00, 0x41, 0x00, 0x81, 0xf8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x24, + 0x00, 0x44, 0x00, 0x40, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xcc, + 0x00, 0x78, 0x00, 0x08, 0x00, 0x38, 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x24, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x48, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x58, + 0x00, 0x44, 0x00, 0x42, 0x00, 0x41, 0x00, 0xf1, 0x00, 0x41, 0x00, 0x41, + 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, + 0x00, 0x2e, 0x00, 0x00, 0x80, 0x40, 0x80, 0x60, 0x80, 0x50, 0x80, 0x48, + 0x80, 0x48, 0x80, 0x44, 0x80, 0x42, 0x80, 0x41, 0x80, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x04, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x11, 0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x00, 0x41, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x11, + 0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x41, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, + 0x00, 0x09, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x11, 0x80, 0x20, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x00, 0x41, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0x00, 0x17, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x11, 0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x00, 0x41, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x11, + 0x80, 0x20, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x41, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, + 0x00, 0xe0, 0x00, 0x60, 0x00, 0xf0, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x1e, 0x80, 0x61, 0x80, 0x42, 0x80, 0x84, 0x80, 0x88, 0x80, 0x91, + 0x00, 0xe1, 0x00, 0x43, 0x00, 0xbc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x41, 0x00, 0x41, + 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x22, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, + 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x22, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00, + 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, + 0x00, 0x41, 0x00, 0x22, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x41, 0x00, 0x41, + 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x22, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x82, 0x00, 0x44, 0x00, 0x44, 0x00, 0x24, + 0x00, 0x28, 0x00, 0x18, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x78, 0x00, 0x4c, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, + 0x00, 0x78, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x90, 0x00, 0xa0, 0x00, 0x90, 0x00, 0x88, 0x00, 0x88, + 0x00, 0xf0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x48, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x74, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x48, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x74, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x48, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, + 0x80, 0x24, 0x00, 0x45, 0x00, 0x46, 0x40, 0x64, 0x80, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x80, + 0x00, 0x80, 0x00, 0x88, 0x00, 0x78, 0x00, 0x10, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x90, 0x00, 0xe0, 0x00, 0x88, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x88, 0x00, 0x90, 0x00, 0xe0, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x48, 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x90, + 0x00, 0xe0, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x90, 0x00, 0xe0, 0x00, 0x88, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x90, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x78, 0x00, 0x30, 0x00, 0xf0, 0x00, 0x08, 0x00, 0x38, 0x00, 0x48, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x00, 0xb8, + 0x00, 0x00, 0x00, 0xb0, 0x00, 0xc8, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x00, 0xb8, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x70, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0xc8, 0x00, 0xb8, 0x00, 0xa8, 0x00, 0xc8, 0x00, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x20, 0x00, 0x10, 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x90, 0x00, 0x00, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x84, 0x00, 0x48, 0x00, 0x48, 0x00, 0x30, 0x00, 0x30, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0xf0, + 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0x88, 0x00, 0xf0, 0x00, 0x80, + 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x84, 0x00, 0x48, 0x00, 0x48, + 0x00, 0x30, 0x00, 0x30, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, + 0x04, 0x03, 0x05, 0x0a, 0x08, 0x0a, 0x08, 0x05, 0x04, 0x04, 0x06, 0x06, + 0x03, 0x05, 0x03, 0x06, 0x07, 0x05, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x04, 0x04, 0x05, 0x06, 0x04, 0x06, 0x0b, 0x08, 0x08, 0x07, + 0x09, 0x08, 0x07, 0x08, 0x09, 0x07, 0x08, 0x07, 0x07, 0x0a, 0x0a, 0x0a, + 0x06, 0x0b, 0x07, 0x08, 0x08, 0x09, 0x08, 0x0c, 0x09, 0x08, 0x09, 0x05, + 0x06, 0x05, 0x06, 0x08, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x02, 0x05, 0x06, 0x02, 0x08, 0x06, 0x06, 0x06, 0x06, 0x05, 0x06, + 0x06, 0x06, 0x06, 0x08, 0x07, 0x06, 0x06, 0x04, 0x05, 0x04, 0x07, 0x00, + 0x04, 0x03, 0x06, 0x09, 0x07, 0x08, 0x05, 0x08, 0x07, 0x09, 0x06, 0x07, + 0x06, 0x05, 0x09, 0x07, 0x05, 0x06, 0x08, 0x08, 0x07, 0x07, 0x08, 0x03, + 0x07, 0x08, 0x08, 0x07, 0x08, 0x08, 0x08, 0x06, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x0e, 0x07, 0x08, 0x08, 0x08, 0x08, 0x07, 0x07, 0x07, 0x07, + 0x09, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x06, 0x0a, 0x09, 0x09, 0x09, + 0x09, 0x08, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x0b, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x03, 0x03, 0x04, 0x04, 0x06, 0x06, 0x06, 0x06, + 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 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, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, + 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, + 0x00, 0x7e, 0x00, 0x28, 0x00, 0x28, 0x00, 0xfc, 0x00, 0x50, 0x00, 0x50, + 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x38, 0x00, 0x54, 0x00, 0x54, 0x00, 0x50, + 0x00, 0x38, 0x00, 0x14, 0x00, 0x14, 0x00, 0x54, 0x00, 0x38, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x40, 0x48, 0x80, 0x48, 0x00, 0x31, 0x00, 0x02, 0x00, 0x04, 0xc0, 0x08, + 0x20, 0x11, 0x20, 0x21, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x24, + 0x00, 0x24, 0x00, 0x18, 0x00, 0x28, 0x00, 0x44, 0x00, 0x45, 0x00, 0x42, + 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0xa8, 0x00, 0x70, 0x00, 0xd8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x70, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x04, 0x00, 0x04, 0x00, 0x18, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, + 0x00, 0x0c, 0x00, 0x14, 0x00, 0x14, 0x00, 0x24, 0x00, 0x44, 0x00, 0x7c, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x78, 0x00, 0x44, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x40, 0x00, 0x40, 0x00, 0x58, + 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x10, 0x00, 0x10, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, + 0x00, 0x34, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x18, 0x00, 0x30, + 0x00, 0x60, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 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, 0x60, + 0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x18, 0x00, 0x30, 0x00, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x44, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x60, 0x18, + 0x10, 0x20, 0x10, 0x20, 0xc8, 0x43, 0x48, 0x44, 0x48, 0x44, 0x88, 0x44, + 0x70, 0x23, 0x00, 0x20, 0x30, 0x18, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, + 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x7f, 0x00, 0x41, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x7e, + 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x21, 0x80, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x41, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x41, + 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x80, 0x43, 0x80, 0x40, 0x80, 0x40, 0x80, 0x21, + 0x80, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x7f, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x42, 0x00, 0x44, 0x00, 0x48, 0x00, 0x50, 0x00, 0x60, + 0x00, 0x50, 0x00, 0x48, 0x00, 0x44, 0x00, 0x42, 0x00, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0x40, 0xc0, 0x60, + 0xc0, 0x60, 0x40, 0x51, 0x40, 0x51, 0x40, 0x4a, 0x40, 0x4a, 0x40, 0x44, + 0x40, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x40, 0x80, 0x60, 0x80, 0x50, 0x80, 0x50, 0x80, 0x48, + 0x80, 0x44, 0x80, 0x42, 0x80, 0x42, 0x80, 0x41, 0x80, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x41, 0x80, 0x40, + 0x80, 0x40, 0x00, 0x41, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x42, 0x00, 0x21, 0x80, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, + 0x00, 0x41, 0x80, 0x40, 0x80, 0x40, 0x00, 0x41, 0x00, 0x7f, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x41, 0x00, 0x41, + 0x00, 0x40, 0x00, 0x38, 0x00, 0x06, 0x00, 0x01, 0x00, 0x41, 0x00, 0x41, + 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x41, + 0x00, 0x41, 0x00, 0x22, 0x00, 0x22, 0x00, 0x14, 0x00, 0x14, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x82, 0x08, 0x82, 0x08, 0x82, 0x10, 0x45, 0x10, 0x45, + 0xa0, 0x28, 0xa0, 0x28, 0xa0, 0x28, 0x40, 0x10, 0x40, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, + 0x00, 0x81, 0x00, 0x42, 0x00, 0x24, 0x00, 0x18, 0x00, 0x18, 0x00, 0x24, + 0x00, 0x42, 0x00, 0x81, 0x00, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x41, + 0x00, 0x22, 0x00, 0x14, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x28, + 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x3e, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x5c, 0x00, 0x62, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x62, + 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, + 0x00, 0x02, 0x00, 0x02, 0x00, 0x3a, 0x00, 0x46, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x46, 0x00, 0x3a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x42, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x40, 0x00, 0x40, 0x00, 0xe0, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x00, 0x46, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x46, 0x00, 0x3a, 0x00, 0x02, 0x00, 0x02, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x44, 0x00, 0x48, 0x00, 0x50, 0x00, 0x70, 0x00, 0x48, 0x00, 0x44, + 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x59, 0x40, 0x66, 0x40, 0x44, 0x40, 0x44, + 0x40, 0x44, 0x40, 0x44, 0x40, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x00, 0x62, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x62, 0x00, 0x5c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3a, 0x00, 0x46, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x46, + 0x00, 0x3a, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x60, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x40, 0x00, 0x38, + 0x00, 0x04, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, + 0x00, 0xe0, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x34, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x82, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x88, 0x80, 0x88, 0x00, 0x55, 0x00, 0x55, 0x00, 0x55, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x00, 0x48, + 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x48, 0x00, 0x84, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x82, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0xc0, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x18, 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, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x18, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x31, 0x00, 0x49, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x04, 0x00, 0x38, 0x00, 0x4c, 0x00, 0x48, 0x00, 0x50, + 0x00, 0x50, 0x00, 0x64, 0x00, 0x38, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x48, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x20, 0x00, 0x78, 0x00, 0x20, 0x00, 0x20, 0x00, 0x40, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x44, 0x00, 0x38, 0x00, 0x28, 0x00, 0x38, 0x00, 0x44, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, + 0x00, 0x82, 0x00, 0x44, 0x00, 0x28, 0x00, 0xfe, 0x00, 0x10, 0x00, 0xfe, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x44, 0x00, 0x20, 0x00, 0x30, 0x00, 0x48, + 0x00, 0x24, 0x00, 0x18, 0x00, 0x08, 0x00, 0x44, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x9d, + 0x00, 0xa1, 0x00, 0xa1, 0x00, 0x9d, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x30, 0x00, 0x50, 0x00, 0x30, + 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x28, 0x00, 0x50, + 0x00, 0x28, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7c, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, + 0x00, 0x42, 0x00, 0xb9, 0x00, 0xa5, 0x00, 0xb9, 0x00, 0xa5, 0x00, 0x42, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x50, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x7c, 0x00, 0x10, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x90, 0x00, 0x20, + 0x00, 0x40, 0x00, 0xf0, 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, 0x90, 0x00, 0x20, 0x00, 0x90, 0x00, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x7a, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x74, 0x00, 0x74, 0x00, 0x74, 0x00, 0x74, + 0x00, 0x34, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x10, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x60, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x20, 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, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x28, 0x00, 0x14, 0x00, 0x28, 0x00, 0x50, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x42, 0x00, 0xc2, 0x00, 0x44, 0x00, 0x44, 0x00, 0x48, + 0x80, 0x08, 0x80, 0x11, 0x80, 0x12, 0x80, 0x27, 0x80, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, + 0x00, 0xc2, 0x00, 0x44, 0x00, 0x44, 0x00, 0x48, 0x00, 0x0b, 0x80, 0x14, + 0x00, 0x11, 0x00, 0x22, 0x80, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x00, 0x92, 0x00, 0x24, + 0x00, 0x94, 0x00, 0x68, 0x80, 0x08, 0x80, 0x11, 0x80, 0x12, 0x80, 0x27, + 0x80, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x38, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x7f, + 0x00, 0x41, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, + 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x7f, 0x00, 0x41, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x14, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x7f, 0x00, 0x41, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x00, 0x4e, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x7f, + 0x00, 0x41, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, + 0x00, 0x14, 0x00, 0x22, 0x00, 0x22, 0x00, 0x7f, 0x00, 0x41, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x14, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x14, 0x00, 0x14, 0x00, 0x22, + 0x00, 0x22, 0x00, 0x7f, 0x00, 0x41, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, + 0x00, 0x0c, 0x00, 0x14, 0x00, 0x14, 0xe0, 0x27, 0x00, 0x24, 0x00, 0x7c, + 0x00, 0x44, 0x00, 0x84, 0xf0, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x80, 0x40, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x04, 0x00, 0x02, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, 0x00, 0x00, 0x00, 0x7f, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x14, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7e, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, + 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, 0x20, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 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, 0xa0, + 0x00, 0x00, 0x00, 0x40, 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, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x42, 0x00, 0x41, + 0x00, 0x41, 0x00, 0xf1, 0x00, 0x41, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x26, + 0x00, 0x00, 0x80, 0x40, 0x80, 0x60, 0x80, 0x50, 0x80, 0x50, 0x80, 0x48, + 0x80, 0x44, 0x80, 0x42, 0x80, 0x42, 0x80, 0x41, 0x80, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x12, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x00, 0x26, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x21, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x21, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x28, + 0x00, 0x10, 0x00, 0x28, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1e, + 0x00, 0x21, 0x80, 0x42, 0x80, 0x42, 0x80, 0x44, 0x80, 0x48, 0x80, 0x50, + 0x80, 0x50, 0x00, 0x21, 0x00, 0x5e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x04, 0x00, 0x00, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x00, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x12, 0x00, 0x12, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x00, 0x21, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, + 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x80, 0x40, 0x00, 0x21, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x08, + 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x41, 0x00, 0x22, 0x00, 0x14, + 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x7c, 0x00, 0x42, 0x00, 0x41, 0x00, 0x41, 0x00, 0x42, + 0x00, 0x7c, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x5c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, + 0x00, 0x3e, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3d, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x3e, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x42, 0x00, 0x3e, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x32, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, + 0x00, 0x3e, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3d, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x3e, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x42, 0x00, 0x3e, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3d, 0x10, 0x42, + 0x10, 0x3e, 0xf0, 0x43, 0x00, 0x42, 0x10, 0x42, 0xe0, 0x3d, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x08, 0x00, 0x04, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x42, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x00, 0x24, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7e, + 0x00, 0x40, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x7e, 0x00, 0x40, 0x00, 0x42, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0xa0, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, + 0x00, 0x08, 0x00, 0x14, 0x00, 0x04, 0x00, 0x3e, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x00, 0x58, 0x00, 0x00, + 0x00, 0x58, 0x00, 0x64, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x24, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x32, 0x00, 0x4c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3c, 0x00, 0x46, + 0x00, 0x4a, 0x00, 0x4a, 0x00, 0x52, 0x00, 0x62, 0x00, 0x3c, 0x00, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x4c, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, + 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x28, 0x00, 0x00, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x4c, 0x00, 0x34, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x44, 0x00, 0x4c, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x82, 0x00, 0x82, 0x00, 0x44, 0x00, 0x44, 0x00, 0x28, 0x00, 0x28, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x5c, 0x00, 0x62, + 0x00, 0x42, 0x00, 0x42, 0x00, 0x42, 0x00, 0x62, 0x00, 0x5c, 0x00, 0x40, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x82, 0x00, 0x44, 0x00, 0x44, + 0x00, 0x28, 0x00, 0x28, 0x00, 0x10, 0x00, 0x10, 0x00, 0x20, 0x00, 0xc0, + 0x03, 0x03, 0x05, 0x07, 0x07, 0x0c, 0x09, 0x03, 0x04, 0x04, 0x05, 0x07, + 0x03, 0x04, 0x03, 0x04, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, + 0x07, 0x07, 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x0e, 0x09, 0x09, 0x09, + 0x0a, 0x09, 0x08, 0x0a, 0x0a, 0x03, 0x07, 0x08, 0x07, 0x0b, 0x0a, 0x0a, + 0x09, 0x0a, 0x0a, 0x09, 0x09, 0x0a, 0x09, 0x0d, 0x08, 0x09, 0x08, 0x04, + 0x04, 0x04, 0x07, 0x07, 0x04, 0x08, 0x08, 0x07, 0x08, 0x08, 0x03, 0x08, + 0x07, 0x03, 0x03, 0x07, 0x03, 0x0b, 0x07, 0x08, 0x08, 0x08, 0x04, 0x07, + 0x03, 0x07, 0x07, 0x09, 0x06, 0x07, 0x06, 0x05, 0x03, 0x05, 0x09, 0x00, + 0x03, 0x03, 0x07, 0x07, 0x07, 0x07, 0x03, 0x07, 0x04, 0x08, 0x05, 0x07, + 0x07, 0x04, 0x08, 0x07, 0x04, 0x07, 0x04, 0x04, 0x04, 0x07, 0x07, 0x03, + 0x04, 0x04, 0x05, 0x07, 0x09, 0x09, 0x09, 0x07, 0x09, 0x09, 0x09, 0x09, + 0x09, 0x09, 0x0d, 0x09, 0x09, 0x09, 0x09, 0x09, 0x03, 0x03, 0x03, 0x03, + 0x09, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x07, 0x0a, 0x0a, 0x0a, 0x0a, + 0x0a, 0x09, 0x09, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0d, 0x07, + 0x08, 0x08, 0x08, 0x08, 0x03, 0x03, 0x03, 0x03, 0x08, 0x07, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x07, 0x08, 0x07, 0x07, 0x07, 0x07, 0x07, 0x08, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, + 0x00, 0x80, 0x00, 0x00, 0xa0, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x50, 0xf8, 0x50, 0xf8, 0x50, 0x00, 0x00, 0x00, 0x20, 0xf8, 0xa0, 0xf8, + 0x28, 0xf8, 0x20, 0x00, 0x90, 0x10, 0x20, 0x40, 0x80, 0x90, 0x00, 0x00, + 0x40, 0xa0, 0x40, 0xa8, 0x90, 0x68, 0x00, 0x00, 0x40, 0x40, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x20, 0x40, 0x80, 0x80, 0x80, 0x40, 0x20, 0x00, + 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x90, 0x60, 0xf0, + 0x60, 0x90, 0x00, 0x00, 0x00, 0x20, 0x20, 0xf8, 0x20, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x10, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x60, 0x90, 0x90, 0x90, + 0x90, 0x60, 0x00, 0x00, 0x40, 0xc0, 0x40, 0x40, 0x40, 0xe0, 0x00, 0x00, + 0x60, 0x90, 0x20, 0x40, 0x80, 0xf0, 0x00, 0x00, 0x60, 0x90, 0x20, 0x10, + 0x90, 0x60, 0x00, 0x00, 0xa0, 0xa0, 0xf0, 0x20, 0x20, 0x20, 0x00, 0x00, + 0xf0, 0x80, 0xe0, 0x10, 0x10, 0xe0, 0x00, 0x00, 0x70, 0x80, 0xe0, 0x90, + 0x90, 0x60, 0x00, 0x00, 0xf0, 0x10, 0x20, 0x40, 0x40, 0x40, 0x00, 0x00, + 0x60, 0x90, 0x60, 0x90, 0x90, 0x60, 0x00, 0x00, 0x60, 0x90, 0x90, 0x70, + 0x10, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x40, 0x40, 0x80, 0x00, 0x00, 0x20, 0x40, 0x80, + 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x40, 0x20, 0x40, 0x80, 0x00, 0x00, 0x70, 0x88, 0x10, 0x20, + 0x00, 0x20, 0x00, 0x00, 0x60, 0x90, 0xb0, 0xb0, 0x80, 0x70, 0x00, 0x00, + 0x60, 0x90, 0x90, 0xf0, 0x90, 0x90, 0x00, 0x00, 0xe0, 0x90, 0xe0, 0x90, + 0x90, 0xe0, 0x00, 0x00, 0x70, 0x80, 0x80, 0x80, 0x80, 0x70, 0x00, 0x00, + 0xe0, 0x90, 0x90, 0x90, 0x90, 0xe0, 0x00, 0x00, 0xf0, 0x80, 0xe0, 0x80, + 0x80, 0xf0, 0x00, 0x00, 0xf0, 0x80, 0xe0, 0x80, 0x80, 0x80, 0x00, 0x00, + 0x70, 0x80, 0x80, 0xb0, 0x90, 0x70, 0x00, 0x00, 0x90, 0x90, 0x90, 0xf0, + 0x90, 0x90, 0x00, 0x00, 0xe0, 0x40, 0x40, 0x40, 0x40, 0xe0, 0x00, 0x00, + 0x10, 0x10, 0x10, 0x10, 0x90, 0x60, 0x00, 0x00, 0x90, 0xa0, 0xc0, 0xa0, + 0x90, 0x90, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0xf0, 0x00, 0x00, + 0x88, 0xd8, 0xa8, 0x88, 0x88, 0x88, 0x00, 0x00, 0x90, 0xd0, 0xb0, 0x90, + 0x90, 0x90, 0x00, 0x00, 0x60, 0x90, 0x90, 0x90, 0x90, 0x60, 0x00, 0x00, + 0xe0, 0x90, 0x90, 0xe0, 0x80, 0x80, 0x00, 0x00, 0x60, 0x90, 0x90, 0x90, + 0xb0, 0x70, 0x18, 0x00, 0xe0, 0x90, 0x90, 0xe0, 0xc0, 0xb0, 0x00, 0x00, + 0x70, 0x80, 0x60, 0x10, 0x90, 0x60, 0x00, 0x00, 0xf8, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x00, 0x00, 0x90, 0x90, 0x90, 0x90, 0x90, 0x60, 0x00, 0x00, + 0x88, 0x88, 0x88, 0x50, 0x50, 0x20, 0x00, 0x00, 0x88, 0x88, 0x88, 0xa8, + 0xd8, 0x88, 0x00, 0x00, 0x88, 0x50, 0x20, 0x20, 0x50, 0x88, 0x00, 0x00, + 0x88, 0x88, 0x50, 0x20, 0x20, 0x20, 0x00, 0x00, 0xf0, 0x10, 0x20, 0x40, + 0x80, 0xf0, 0x00, 0x00, 0xc0, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x00, 0x00, + 0x80, 0x80, 0x40, 0x20, 0x10, 0x10, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x40, + 0x40, 0xc0, 0x00, 0x00, 0x20, 0x50, 0x88, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x80, 0x80, 0x40, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x20, 0xe0, 0xa0, 0xe0, 0x00, 0x00, + 0x80, 0xe0, 0xa0, 0xa0, 0xa0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0x80, 0x80, + 0x80, 0xe0, 0x00, 0x00, 0x20, 0xe0, 0xa0, 0xa0, 0xa0, 0xe0, 0x00, 0x00, + 0x00, 0xe0, 0xa0, 0xe0, 0x80, 0xe0, 0x00, 0x00, 0x60, 0x40, 0xe0, 0x40, + 0x40, 0x40, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0xa0, 0xa0, 0xe0, 0x20, 0xe0, + 0x80, 0xe0, 0xa0, 0xa0, 0xa0, 0xa0, 0x00, 0x00, 0x80, 0x00, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x40, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0xc0, + 0x80, 0xa0, 0xa0, 0xc0, 0xa0, 0xa0, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0xf8, 0xa8, 0xa8, 0xa8, 0xa8, 0x00, 0x00, + 0x00, 0xe0, 0xa0, 0xa0, 0xa0, 0xa0, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0xa0, + 0xa0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0xa0, 0xa0, 0xe0, 0x80, 0x80, + 0x00, 0xe0, 0xa0, 0xa0, 0xa0, 0xe0, 0x20, 0x20, 0x00, 0xe0, 0x80, 0x80, + 0x80, 0x80, 0x00, 0x00, 0x00, 0xe0, 0x80, 0xe0, 0x20, 0xe0, 0x00, 0x00, + 0x40, 0xe0, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0xa0, + 0xa0, 0xe0, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0xa0, 0xa0, 0x40, 0x00, 0x00, + 0x00, 0xa8, 0xa8, 0xa8, 0xa8, 0xf8, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0x40, + 0xa0, 0xa0, 0x00, 0x00, 0x00, 0xa0, 0xa0, 0xa0, 0xa0, 0xe0, 0x20, 0xe0, + 0x00, 0xe0, 0x20, 0x40, 0x80, 0xe0, 0x00, 0x00, 0x20, 0x40, 0x40, 0x80, + 0x40, 0x40, 0x20, 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, + 0x80, 0x40, 0x40, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x40, 0xa8, + 0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x04, 0x02, 0x04, 0x06, 0x06, 0x05, 0x06, 0x03, 0x04, 0x04, 0x05, 0x06, + 0x03, 0x05, 0x02, 0x05, 0x05, 0x04, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x02, 0x03, 0x04, 0x05, 0x04, 0x06, 0x05, 0x05, 0x05, 0x05, + 0x05, 0x05, 0x05, 0x05, 0x05, 0x04, 0x05, 0x05, 0x05, 0x06, 0x05, 0x05, + 0x05, 0x06, 0x05, 0x05, 0x06, 0x05, 0x06, 0x06, 0x06, 0x06, 0x05, 0x03, + 0x05, 0x03, 0x06, 0x05, 0x03, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x02, 0x03, 0x04, 0x02, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, + 0x04, 0x04, 0x04, 0x06, 0x04, 0x04, 0x04, 0x04, 0x02, 0x04, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x70, 0xff, + 0x70, 0x30, 0x00, 0x00, 0x00, 0x0c, 0x0e, 0xff, 0x0e, 0x0c, 0x00, 0x00, + 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x40, 0x20, 0x10, + 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, + 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0x0f, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x10, + 0xf0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0xf8, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0xf8, 0x00, 0x00, 0x00, + 0x10, 0x10, 0x10, 0x10, 0x1f, 0x20, 0x40, 0x80, 0x80, 0x40, 0x20, 0x1f, + 0x10, 0x10, 0x10, 0x10, 0x01, 0x02, 0x04, 0xf8, 0x08, 0x08, 0x08, 0x08, + 0x08, 0x08, 0x08, 0x08, 0xf8, 0x04, 0x02, 0x01, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, + 0xf8, 0xf8, 0xf8, 0xf8, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, + 0x08, 0x08, 0x08, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x08, 0x08, 0x08, 0xf8, 0xf8, 0xf8, 0xf8, 0xff, 0xf8, 0xf8, 0xf8, + 0x1f, 0x1f, 0x1f, 0x1f, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, + 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xf8, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x20, 0x40, 0x80, + 0x80, 0x40, 0x20, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x01, 0x02, 0x04, 0xf8, + 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0x04, 0x02, 0x01, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, + 0x00, 0xff, 0x80, 0x80, 0x80, 0x80, 0xff, 0x00, 0x00, 0xff, 0xc0, 0xc0, + 0xc0, 0xc0, 0xff, 0x00, 0x00, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0x00, + 0x00, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0x00, 0x00, 0xff, 0xf8, 0xf8, + 0xf8, 0xf8, 0xff, 0x00, 0x00, 0xff, 0xfc, 0xfc, 0xfc, 0xfc, 0xff, 0x00, + 0x00, 0xff, 0xfe, 0xfe, 0xfe, 0xfe, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x81, 0x42, 0x24, 0x18, + 0x18, 0x24, 0x42, 0x81, 0x08, 0x08, 0x08, 0x08, 0xff, 0x08, 0x08, 0x08, + 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x18, + 0x18, 0x7e, 0x3c, 0x18, 0x18, 0x3c, 0x7e, 0x18, 0x18, 0x7e, 0x3c, 0x18, + 0xff, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xff, 0x00, 0x3c, 0x66, 0x06, + 0x18, 0x00, 0x18, 0x00, 0x63, 0x76, 0x5c, 0x60, 0x78, 0x66, 0x60, 0x00, + 0x78, 0x6e, 0x63, 0x7c, 0x63, 0x6e, 0x78, 0x00, 0x00, 0x1e, 0x1b, 0x18, + 0x18, 0xd8, 0x78, 0x00, 0x63, 0x63, 0x77, 0x49, 0x77, 0x63, 0x63, 0x00, + 0x63, 0x77, 0x6b, 0x6b, 0x63, 0x63, 0x63, 0x00, 0x49, 0x52, 0x64, 0x68, + 0x70, 0x60, 0x60, 0x00, 0x00, 0x63, 0x36, 0x1c, 0x1c, 0x36, 0x63, 0x00, + 0x63, 0x53, 0x4f, 0x63, 0x79, 0x65, 0x63, 0x00, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x00, 0x18, 0x18, 0x7e, 0x99, 0x7e, 0x18, 0x18, 0x00, + 0x60, 0x60, 0x78, 0x6c, 0x67, 0x63, 0x63, 0x00, 0x38, 0x3c, 0x36, 0x30, + 0x30, 0x30, 0x30, 0x00, 0x77, 0x6b, 0x77, 0x63, 0x63, 0x63, 0x63, 0x00, + 0x18, 0xd8, 0x78, 0x3c, 0x1e, 0x1b, 0x18, 0x00, 0x71, 0x6a, 0x64, 0x71, + 0x6a, 0x64, 0x60, 0x00, 0x60, 0x60, 0x63, 0x67, 0x6f, 0x7b, 0x73, 0x00, + 0x18, 0x18, 0x18, 0x18, 0x3c, 0x5a, 0xdb, 0x00, 0x7c, 0x63, 0x63, 0x7c, + 0x66, 0x63, 0x63, 0x00, 0x60, 0x63, 0x67, 0x6f, 0x7b, 0x73, 0x03, 0x00, + 0x18, 0x3c, 0x5a, 0x99, 0x18, 0x18, 0x18, 0x00, 0x70, 0x78, 0x6c, 0x66, + 0x63, 0x63, 0x63, 0x00, 0x7e, 0x03, 0x7e, 0x03, 0x03, 0x03, 0x7c, 0x00, + 0x70, 0x6c, 0x63, 0x6c, 0x78, 0x60, 0x60, 0x00, 0xdb, 0x5a, 0x3c, 0x18, + 0x18, 0x18, 0x18, 0x00, 0x78, 0x64, 0x52, 0x49, 0x4f, 0x49, 0x49, 0x00, + 0x60, 0x63, 0x66, 0x6c, 0x78, 0x60, 0x60, 0x00, 0xe7, 0xc3, 0x81, 0xe7, + 0xe7, 0xe7, 0xe7, 0xff, 0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0x81, 0xc3, 0xe7, + 0xe7, 0xc3, 0x81, 0xe7, 0xe7, 0x81, 0xc3, 0xe7, 0xff, 0xc3, 0x99, 0xf9, + 0xe7, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff +}; -- 2.34.1