From c1060fb449f920970fc56a93c6aa64f80aec82ae Mon Sep 17 00:00:00 2001 From: hkz Date: Tue, 7 Oct 2025 09:02:18 +0200 Subject: [PATCH] Squashed commit of the following: commit b29f27ab8d852ff575840060b9af7b62c1b69f68 Author: hkz Date: Tue Oct 7 09:01:06 2025 +0200 Removed unused loading_screen.c, Updated CHANGELOG, updated loading screen commit 2855ba5209fc6e88e4842ed22753e6d999bcedf0 Author: hkz Date: Thu Sep 11 15:42:46 2025 +0200 Restore correct offsets for disk writing commit e1216fa61643b411e210e07976c4a10c6ac8ad04 Author: hkz Date: Sat Sep 6 10:30:43 2025 +0200 Update the version number commit 8a4559d4f9c4d0db0f7d2bf4f6310fc5bbde1c6a Author: hkz Date: Sat Sep 6 09:58:24 2025 +0200 implement a demo mode commit 22790bdc44eb55dea2e6a4dbcdef8c613b2b4376 Author: hkz Date: Sat Sep 6 08:31:11 2025 +0200 Initial creation of demo module --- CHANGELOG.md | 58 +++++---- Makefile | 16 ++- data/LOADS.bin | Bin 8192 -> 8192 bytes graphics/loading_screen.aseprite | Bin 4337 -> 4310 bytes graphics/loading_screen.png | Bin 3392 -> 3369 bytes src/demo_main.c | 155 +++++++++++++++++++++++ src/disk2.s | 8 +- src/dlog_main.c | 11 +- src/game_graphics.c | 39 +++++- src/game_graphics_demo.c | 3 + src/loading_screen.c | 210 ------------------------------- src/master_main.c | 4 +- 12 files changed, 261 insertions(+), 243 deletions(-) create mode 100644 src/demo_main.c create mode 100644 src/game_graphics_demo.c delete mode 100644 src/loading_screen.c diff --git a/CHANGELOG.md b/CHANGELOG.md index 05bab1d..00ab961 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,23 +1,37 @@ -# Changelog - -## 2.0 - 2025-08-30 - -_This release removes the tape version of the game._ - -### Changed - -- Game code is now modularized so that only the current module plus a resident master is loaded into memory - -### Added - -- Simple sound effects (replacing the standard *BELL* from the monitor routines) -- Game save and load -- High score save - -### Removed - -- Tape variant of the game - -## 1.0 - 2025-08-20 - +# Changelog + +## 2.1 - 2025-10-07 + +### Changed + +- Show version number in dialogs and game screens + +### Added + +- Demo mode + +### Removed + +- Version from startup loading screen + +## 2.0 - 2025-08-30 + +_This release removes the tape version of the game._ + +### Changed + +- Game code is now modularized so that only the current module plus a resident master is loaded into memory + +### Added + +- Simple sound effects (replacing the standard *BELL* from the monitor routines) +- Game save and load +- High score save + +### Removed + +- Tape variant of the game + +## 1.0 - 2025-08-20 + _First release._ \ No newline at end of file diff --git a/Makefile b/Makefile index 7d2e5e3..53d346b 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,7 @@ MASTER_PRG=master INTRO_PRG=intro DLOG_PRG=dlog GAME_PRG=game +DEMO_PRG=demo # Libraries LIBS=clib-6502.a @@ -27,11 +28,15 @@ DLOG_C_SRCS = dlog_main.c input.c utility.c game_graphics.c line_data.c GAME_ASM_SRCS = tk2k_startup_module.s preserve_zero_pages.s input_asm.s sound.s GAME_C_SRCS = game_main.c input.c utility.c game_graphics.c line_data.c game_logic.c arrows_pic.c tiles.c graph_misc_data.c +DEMO_ASM_SRCS = tk2k_startup_module.s preserve_zero_pages.s input_asm.s sound.s +DEMO_C_SRCS = demo_main.c input.c utility.c game_graphics_demo.c line_data.c game_logic.c arrows_pic.c tiles.c graph_misc_data.c + # Object files MASTER_OBJS = $(MASTER_ASM_SRCS:%.s=%.o) $(MASTER_C_SRCS:%.c=%.o) INTRO_OBJS = $(INTRO_ASM_SRCS:%.s=%.o) $(INTRO_C_SRCS:%.c=%.o) DLOG_OBJS = $(DLOG_ASM_SRCS:%.s=%.o) $(DLOG_C_SRCS:%.c=%.o) GAME_OBJS = $(GAME_ASM_SRCS:%.s=%.o) $(GAME_C_SRCS:%.c=%.o) +DEMO_OBJS = $(DEMO_ASM_SRCS:%.s=%.o) $(DEMO_C_SRCS:%.c=%.o) all: $(SW_NAME).woz @@ -53,6 +58,9 @@ $(DLOG_PRG).hex: $(DLOG_OBJS) $(GAME_PRG).hex: $(GAME_OBJS) (cd obj ; ln6502 -g ../linker-files/module.scm $^ -o ../out/$@ $(LIBS) -l --cross-reference --cstartup=tk2k --no-automatic-placement-rules --output-format intel-hex --rom-code) +$(DEMO_PRG).hex: $(DEMO_OBJS) + (cd obj ; ln6502 -g ../linker-files/module.scm $^ -o ../out/$@ $(LIBS) -l --cross-reference --cstartup=tk2k --no-automatic-placement-rules --output-format intel-hex --rom-code) + $(MASTER_PRG).bin: $(MASTER_PRG).hex (cd out ; objcopy -I ihex -O binary $(MASTER_PRG).hex $(MASTER_PRG).bin) @@ -64,13 +72,17 @@ $(DLOG_PRG).bin: $(DLOG_PRG).hex $(GAME_PRG).bin: $(GAME_PRG).hex (cd out ; objcopy -I ihex -O binary $(GAME_PRG).hex $(GAME_PRG).bin) - -$(SW_NAME).dsk: $(MASTER_PRG).bin $(INTRO_PRG).bin $(DLOG_PRG).bin $(GAME_PRG).bin + +$(DEMO_PRG).bin: $(DEMO_PRG).hex + (cd out ; objcopy -I ihex -O binary $(DEMO_PRG).hex $(DEMO_PRG).bin) + +$(SW_NAME).dsk: $(MASTER_PRG).bin $(INTRO_PRG).bin $(DLOG_PRG).bin $(GAME_PRG).bin $(DEMO_PRG).bin (cd out ; cp ../dsk/TK2048_AUTO_BRUN.dsk ./$(SW_NAME).dsk; \ cat $(MASTER_PRG).bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk HELLO B 0x800; \ cat $(INTRO_PRG).bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk INTRO b; \ cat $(DLOG_PRG).bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk DLOG b; \ cat $(GAME_PRG).bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk GAME b; \ + cat $(DEMO_PRG).bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk DEMO b; \ cat ../data/LOADS.bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk LOADS b; \ cat ../data/STATE.bin | $(JAVA) -jar $(ACMD) -p $(SW_NAME).dsk STATE b;) diff --git a/data/LOADS.bin b/data/LOADS.bin index be529d4610b8a71a8be0478b80676012a7384ce9..b1ff9723b7e61f4a0df03f6f0b26e9c1f339a3d1 100644 GIT binary patch delta 75 zcmZp0XmHr@m3gusqwwScX4TEQEGJ+bmCZUFCt)0*3=dpJeY3v6G3Lp6%vPKAMclb3 L^7Bt_m9GW>no}2L delta 79 zcmZp0XmHr@m6=&UQDt%>v*~7CmJ=|J$z~mnlR%CnRE7sAqreK{m~Yk>IL6HEU?U0P Ph`4hz$w*ADknaEhW|9=} diff --git a/graphics/loading_screen.aseprite b/graphics/loading_screen.aseprite index 279674dc8bb9c15929fe891a9e83b6c43167c5cb..3aa15a16e82f57092b9ed18c3df084e6b8cdd0bf 100644 GIT binary patch literal 4310 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 literal 4337 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 diff --git a/graphics/loading_screen.png b/graphics/loading_screen.png index 1800be76cd27fa54094b655f230446771db016a7..20ac20a50ce5a220e06124396deac32e28b5d3b3 100644 GIT binary patch literal 3369 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 delta 3281 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 +#include + +#include + +#include "monitor_subroutines.h" +#include "utility.h" +#include "mem_map.h" +#include "shared_page.h" +#include "state_page.h" +#include "dlog_data.h" +#include "game_data.h" +#include "input.h" +#include "game_logic.h" +#include "game_graphics.h" +#include "monitor_subroutines.h" +#include "sound.h" + +// External initialization requirements +#pragma require __preserve_zp +#pragma require __data_initialization_needed + +#define MOVES_TEXT_X 32 +#define MOVES_TEXT_Y 61 +#define MOVES_TEXT_WIDTH 5 + +#define SCORE_TEXT_X 32 +#define SCORE_TEXT_Y 29 +#define SCORE_TEXT_WIDTH 5 + +#define HIGH_TEXT_X 32 +#define HIGH_TEXT_Y 107 + +#define KEY_LOOP_LEN 0x2FFF +#define MAX_DEMO_MOVES 30 + +static state_page_data* state_page = (state_page_data*)STATE_PAGE; +static shared_page_data *shared_page = (shared_page_data*)SHARED_PAGE; + +void main(void) { + uint16_t moves_count = 0; + uint16_t score = 0; + int8_t done = 0; + + // By default, once we return from this, return to the DLOG module and give the master no command to execute + shared_page->master_command = MASTER_COMMAND_NONE; + shared_page->next_module_idx = 3; // Go to the DLOG module + + dlog_data *dld = (dlog_data *)(shared_page->module_data); + dlog_data *gad = (dlog_data *)(shared_page->module_data); + + // Make sure the buffers are pointing to the correct memory and are clear + clear_display_buffers(); + + // Reset the game, calculate the initial score depending on which tiles we randomly get + score = reset_game(); + + // Draw the initial state of the game + draw_game_background(state_page->hi_score); + draw_number(moves_count, MOVES_TEXT_WIDTH, MOVES_TEXT_X, MOVES_TEXT_Y); + draw_number(score, SCORE_TEXT_WIDTH, SCORE_TEXT_X, SCORE_TEXT_Y); + draw_tiles(); + + // Swap graphical buffers + swap_display_buffers(); + + while(1) { // Game loop + uint16_t lfsr = lfsr_update(); + + // Any key will let us out of this, wait some time for a keypress + uint16_t k_loop_count = KEY_LOOP_LEN; + while(k_loop_count--) { + if(read_any_key()) { + snd_mod_button(); + done = 1; + break; + } + } + + if(!done) { + switch((lfsr & 0x0003) + 1) { + case K_UP: + SND_TAP(); + done = step_game(GAME_STEP_UP); + ddraw_direction_arrows(GRAPH_ARROW_UP); + break; + case K_DOWN: + SND_TAP(); + done = step_game(GAME_STEP_DOWN); + ddraw_direction_arrows(GRAPH_ARROW_DOWN); + break; + case K_LEFT: + SND_TAP(); + done = step_game(GAME_STEP_LEFT); + ddraw_direction_arrows(GRAPH_ARROW_LEFT); + break; + case K_RIGHT: + SND_TAP(); + done = step_game(GAME_STEP_RIGHT); + ddraw_direction_arrows(GRAPH_ARROW_RIGHT); + break; + default: + continue; // Do nothing, loop again + } + } + + + // Increase the count of moves we made (unless we lost or reset the game) + if(done >= 0) { + moves_count++; + done = done || (moves_count >= MAX_DEMO_MOVES); + } + + // Draw the number of moves + draw_number(moves_count, MOVES_TEXT_WIDTH, MOVES_TEXT_X, MOVES_TEXT_Y); + + // Draw the moved tiles + draw_tiles(); + + // If we have won, or we got a reset request, break out of this loop + if(done) { + draw_number(score, SCORE_TEXT_WIDTH, SCORE_TEXT_X, SCORE_TEXT_Y); + swap_display_buffers(); // Make sure we show the latest changes + break; + } + + // Unable to add a tile: we ran out of space and lost!!! + uint8_t random_tile_off = add_random_tile(); + if(!random_tile_off) { + done = -1; // Lost the game + break; + } + + score = calculate_score(); + + // Draw the score + draw_number(score, SCORE_TEXT_WIDTH, SCORE_TEXT_X, SCORE_TEXT_Y); + + swap_display_buffers(); + + // Draw the new tile directly on the front buffer, this way we make it appear with an "animation" + ddraw_single_tile(random_tile_off - 1); + } + + // Sync the display buffers + sync_display1_buffer(); + + // Always go back to the start dialog + dld->mode = DLOG_MODE_START; + dld->score = 0; + + clear_display_buffers(); + + return; +} diff --git a/src/disk2.s b/src/disk2.s index 320c135..e27c09c 100644 --- a/src/disk2.s +++ b/src/disk2.s @@ -523,11 +523,11 @@ wr_err_return: lda #0x10 ; This will be the error code rts dii_write_sector: -RETRIES$: .equ 0xff +RETRIES$: .equ 0xff ; Note that the following buffers MUST be at the start of a page for write timing to be respected -__BUF2S: .equ 0xBD00 ; Default to this, it'll be overwritten when modifying this code. 86 entries. -__BUF6S: .equ 0xBC00 ; 256 entries. -__NIBTAB: .equ 0xBD56 ; This will contain the translation table for writing nibbles. 63 entries. +__BUF2S: .equ 0x9D00 ; Default to this, it'll be overwritten when modifying this code. 86 entries. +__BUF6S: .equ 0x9C00 ; 256 entries. +__NIBTAB: .equ 0x9D56 __OFFSETP6 .equ 0x0678 __T_RETRYC2:.equ _Zp+10 diff --git a/src/dlog_main.c b/src/dlog_main.c index 1cbeaf0..c371164 100644 --- a/src/dlog_main.c +++ b/src/dlog_main.c @@ -21,7 +21,10 @@ static state_page_data* state_page = (state_page_data*)STATE_PAGE; static shared_page_data *shared_page = (shared_page_data*)SHARED_PAGE; +#define WAIT_COUNTER_END 0xFFFF + void main(void) { + uint16_t wait_counter = 0; dlog_data *dld = (dlog_data *)(shared_page->module_data); game_data *gad = (game_data *)(shared_page->module_data); @@ -54,10 +57,16 @@ void main(void) { shared_page->next_module_idx = 4; // Go to the GAME module gad->mode = GAME_MODE_NORMAL; // Set the proper start mode for the game - while(!read_any_key()) { + while(!read_any_key() && (wait_counter != WAIT_COUNTER_END)) { + wait_counter++; lfsr_update(); } + if (wait_counter == WAIT_COUNTER_END) { + shared_page->next_module_idx = 5; // Actually go to the DEMO module + return; + } + snd_mod_button(); return; diff --git a/src/game_graphics.c b/src/game_graphics.c index 9aa1818..bf1ed65 100644 --- a/src/game_graphics.c +++ b/src/game_graphics.c @@ -78,7 +78,7 @@ static const uint8_t box_content_start[BOX_CONTENT_SIZE] = { 0, 0, 0, 0, 0, 0, 0,203, 77, 0, 0, 77, 0, 0, 77,192, 77, 0, 77, 77,211, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 77,211, 0, 0, 77, 0, 0, 77, 0, 77, 0, 77,198, 84, 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 20, 11, 50, 48, 52, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 50, 46, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 20, 11, 50, 48, 52, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 50, 46, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -106,9 +106,30 @@ static const uint8_t instruction_box[INSTR_BOX_SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 5, 1, 3, 8, 0, 0, 50, 48, 52, 56, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 79, 0, 50, 48, 50, 53, 0, 50, 46, 48, 0, 79 + 79, 0, 50, 48, 50, 53, 0, 50, 46, 49, 0, 79 }; +static const uint8_t demo_box[INSTR_BOX_SIZE] = { + 4, 5, 13, 15, 0, 0, 13, 15, 4, 5, 0, 0, + 0, 4, 5, 13, 15, 0, 0, 13, 15, 4, 5, 0, + 0, 0, 4, 5, 13, 15, 0, 0, 13, 15, 4, 5, + 5, 0, 0, 4, 5, 13, 15, 0, 0, 13, 15, 4, + 4, 5, 0, 0, 4, 5, 13, 15, 0, 0, 13, 15, + 15, 4, 5, 0, 0, 4, 5, 13, 15, 0, 0, 13, + 13, 15, 4, 5, 0, 0, 4, 5, 13, 15, 0, 0, + 79, 0, 50, 48, 50, 53, 0, 50, 46, 49, 0, 79 +}; + +#ifdef _DEMO_MODE_ +#define DEMO_TOP_TEXT_WIDTH 14 +#define DEMO_TOP_TEXT_HEIGHT 1 +#define DEMO_TOP_TEXT_X 7 +#define DEMO_TOP_TEXT_Y 0 +static const uint8_t demo_top_text[DEMO_TOP_TEXT_WIDTH * DEMO_TOP_TEXT_HEIGHT] = { + 32, 16, 21, 19, 8, 32, 1, 14, 25, 32, 11, 5, 25, 32 +}; +#endif /* _DEMO_MODE_ */ + // The grid is 5x5 squares, // It is offset on the left side by 7 pixels and on the top by 14 @@ -135,6 +156,10 @@ void draw_game_background(uint16_t hi_score) { // Draw the borders draw_field_borders_on_buffer(0x0F, buf); +#ifdef _DEMO_MODE_ + draw_graph_char_box(DEMO_TOP_TEXT_X, DEMO_TOP_TEXT_Y, DEMO_TOP_TEXT_WIDTH, DEMO_TOP_TEXT_HEIGHT, demo_top_text, front_buf); +#endif + // Draw required pics draw_picture(SCORE_PIC_WIDTH_BYTES, SCORE_PIC_HEIGHT, 31, 14, score_pic_data, buf); draw_picture(MOVES_PIC_WIDTH_BYTES, MOVES_PIC_HEIGHT, 31, 45, moves_pic_data, buf); @@ -144,8 +169,12 @@ void draw_game_background(uint16_t hi_score) { // Draw the high-score. This won't change at every turn, so makes sense to just draw once direct_draw_number(hi_score, HIGH_TEXT_WIDTH, HIGH_TEXT_X, HIGH_TEXT_Y, front_buf); - // Draw instruction box + // Draw demo or instruction box +#ifdef _DEMO_MODE_ + draw_graph_char_box(INSTR_BOX_X, INSTR_BOX_Y, INSTR_BOX_WIDTH, INSTR_BOX_HEIGHT, demo_box, front_buf); +#else draw_graph_char_box(INSTR_BOX_X, INSTR_BOX_Y, INSTR_BOX_WIDTH, INSTR_BOX_HEIGHT, instruction_box, front_buf); +#endif // Copy the data from display page 1 to 2 memcpy((void*)DISPLAY_PAGE_2, (void*)DISPLAY_PAGE_1, DISPLAY_PAGE_SIZE); @@ -207,6 +236,10 @@ void draw_tiles(void) { // Re-draw the borders, to restore the correct width draw_field_borders_on_buffer(0x0F, back_buf); + + #ifdef _DEMO_MODE_ + draw_graph_char_box(DEMO_TOP_TEXT_X, DEMO_TOP_TEXT_Y, DEMO_TOP_TEXT_WIDTH, DEMO_TOP_TEXT_HEIGHT, demo_top_text, back_buf); + #endif } #define ENDGAME_BOX_X_OFFSET 2 diff --git a/src/game_graphics_demo.c b/src/game_graphics_demo.c new file mode 100644 index 0000000..f33e2f1 --- /dev/null +++ b/src/game_graphics_demo.c @@ -0,0 +1,3 @@ +#define _DEMO_MODE_ 1 + +#include "game_graphics.c" diff --git a/src/loading_screen.c b/src/loading_screen.c deleted file mode 100644 index 0aceb00..0000000 --- a/src/loading_screen.c +++ /dev/null @@ -1,210 +0,0 @@ -#include - -/*__attribute__((section("loadscreen")))*/ const uint8_t __loading_screen[] = { -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x60, 0x30, 0x40, 0x2D, 0x36, 0x18, 0x18, 0x4C, 0x01, 0x0C, 0x06, 0x18, 0x43, 0x19, 0x6C, 0x30, 0x43, 0x0D, 0x06, 0x60, 0x00, 0x06, 0x07, 0x00, 0x33, 0x18, 0x6C, 0x30, 0x43, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x19, 0x33, 0x66, 0x7C, 0x33, 0x66, 0x4C, 0x19, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0C, 0x66, 0x30, 0x18, 0x43, 0x01, 0x03, 0x00, 0x00, 0x10, 0x00, 0x00, 0x7F, 0x7F, 0x1F, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x0F, 0x00, 0x00, 0x00, -0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x04, 0x48, 0x00, 0x10, 0x22, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1F, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, -0x7F, 0x01, 0x3F, 0x60, 0x0F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x58, 0x61, 0x06, 0x03, 0x63, 0x30, 0x43, -0x6D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x70, 0x1F, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x7F, 0x7F, -0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x19, 0x33, 0x66, 0x7C, 0x33, 0x66, 0x4C, 0x19, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, -0x00, 0x01, 0x7E, 0x7F, 0x01, 0x0C, 0x54, 0x28, 0x57, 0x0A, 0x04, 0x06, 0x6A, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0F, 0x78, 0x03, 0x00, -0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x7F, 0x7F, 0x7F, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x1F, -0x40, 0x0F, 0x00, 0x7C, 0x19, 0x00, 0x00, 0x00, 0x00, 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, 0x39, 0x4C, 0x3F, 0x04, 0x00, 0x00, -0x00, 0x20, 0x7E, 0x39, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x1F, 0x78, 0x01, 0x02, 0x00, 0x11, 0x6E, 0x45, 0x2B, 0x55, 0x2A, 0x07, 0x00, 0x2A, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x60, 0x0F, 0x78, 0x03, 0x00, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, 0x7F, 0x01, 0x7F, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x7F, 0x7F, 0x43, 0x7F, 0x7F, 0x7F, 0x19, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x10, 0x04, 0x00, 0x00, 0x10, 0x00, -0x00, 0x10, 0x00, 0x00, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, -0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x43, 0x0F, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, 0x02, 0x7E, 0x3F, 0x00, 0x02, 0x00, 0x00, 0x30, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x40, 0x00, 0x40, 0x07, 0x20, 0x00, 0x00, 0x00, 0x70, -0x01, 0x0F, 0x18, 0x7C, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x16, 0x14, 0x21, 0x07, 0x00, 0x78, 0x0A, 0x02, 0x00, 0x1C, 0x05, 0x49, 0x29, 0x24, 0x21, 0x28, 0x04, 0x27, 0x29, 0x04, 0x25, 0x24, 0x13, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x1A, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x60, 0x30, 0x7E, 0x2D, 0x76, 0x1F, 0x18, 0x4C, 0x01, 0x0C, -0x66, 0x1F, 0x43, 0x79, 0x6F, 0x30, 0x03, 0x7C, 0x07, 0x40, 0x1F, 0x06, 0x03, 0x7C, 0x33, 0x78, 0x6F, 0x30, 0x43, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x19, 0x33, 0x66, 0x7C, 0x33, 0x66, 0x4C, 0x19, 0x00, 0x00, 0x00, -0x00, 0x00, 0x07, 0x05, 0x00, 0x00, 0x00, 0x70, 0x01, 0x0F, 0x18, 0x7C, 0x01, 0x02, 0x00, 0x00, 0x10, 0x70, 0x01, 0x60, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, -0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x0F, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x30, 0x00, 0x20, 0x22, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x40, 0x1F, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x0F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x5F, 0x61, 0x06, 0x03, 0x63, 0x30, 0x03, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x02, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x7F, 0x03, 0x00, -0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3E, 0x7C, 0x03, 0x04, 0x5C, 0x38, 0x51, 0x3A, 0x07, 0x00, 0x2A, 0x1D, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0F, 0x78, 0x03, 0x00, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x7F, 0x7F, 0x7F, 0x01, 0x3F, 0x60, 0x7F, 0x07, -0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x40, 0x0F, 0x00, 0x7C, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x43, 0x4F, 0x63, 0x04, 0x00, 0x00, 0x00, 0x20, 0x7E, 0x33, 0x58, 0x00, 0x00, 0x00, 0x40, 0x00, 0x0F, 0x70, 0x01, 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, 0x60, 0x0F, 0x78, 0x03, 0x00, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, -0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, 0x7F, 0x01, 0x7F, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x79, 0x7F, 0x7F, 0x40, 0x7F, 0x7F, 0x7F, 0x19, 0x00, 0x00, 0x00, -0x10, 0x00, 0x00, 0x18, 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, 0x15, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x70, 0x03, 0x00, 0x00, -0x20, 0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, -0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, -0x43, 0x0F, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, 0x02, 0x7E, 0x1F, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, 0x00, 0x60, 0x03, 0x20, 0x00, 0x00, 0x00, 0x0C, 0x66, 0x30, 0x1E, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x40, 0x12, 0x13, 0x19, 0x08, 0x00, 0x48, 0x06, 0x01, 0x0E, 0x24, 0x43, 0x28, 0x4A, 0x24, 0x21, 0x2E, 0x04, 0x29, 0x29, 0x65, 0x25, 0x24, 0x11, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x12, 0x12, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x61, 0x60, 0x30, 0x43, 0x2D, 0x36, 0x00, 0x18, 0x4C, 0x01, 0x0C, 0x36, 0x18, 0x43, 0x19, 0x60, 0x30, 0x43, 0x0D, 0x30, 0x00, 0x30, 0x06, 0x03, 0x06, 0x33, 0x18, -0x60, 0x30, 0x43, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x06, 0x00, 0x00, 0x00, 0x70, 0x01, 0x0F, 0x18, 0x7C, 0x01, 0x00, 0x00, 0x00, -0x08, 0x08, 0x7F, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, -0x03, 0x00, 0x7F, 0x7F, 0x0F, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x60, 0x30, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1F, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, -0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x0F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x40, 0x19, -0x33, 0x58, 0x61, 0x06, 0x03, 0x63, 0x30, 0x43, 0x6D, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x02, 0x00, 0x00, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, -0x3F, 0x00, 0x70, 0x7F, 0x03, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, -0x00, 0x10, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1E, 0x40, 0x03, 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, 0x60, 0x0F, 0x78, 0x03, 0x00, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x7F, 0x7F, 0x7F, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x40, 0x0F, 0x00, 0x7C, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x04, 0x67, 0x43, 0x3D, 0x04, 0x00, 0x00, 0x00, 0x20, 0x04, 0x73, 0x3F, 0x00, 0x00, 0x00, 0x40, 0x00, 0x7F, 0x78, 0x01, 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, 0x60, 0x0F, 0x78, 0x03, 0x00, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, 0x7F, 0x01, 0x7F, 0x7F, 0x0F, 0x78, 0x7F, 0x01, -0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x1F, 0x40, 0x7F, 0x7F, 0x7F, 0x19, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x12, 0x00, 0x20, 0x20, 0x01, 0x40, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x20, 0x18, 0x00, 0x00, 0x00, 0x00, 0x09, 0x78, 0x07, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x01, 0x00, 0x17, 0x00, 0x01, 0x00, 0x17, 0x20, 0x01, 0x74, 0x5E, -0x74, 0x02, 0x00, 0x22, 0x01, 0x00, 0x1A, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, -0x03, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x79, 0x7F, 0x7F, 0x43, 0x0F, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, 0x02, 0x7E, 0x1F, 0x00, 0x01, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x20, -0x05, 0x60, 0x03, 0x10, 0x00, 0x00, 0x00, 0x0C, 0x66, 0x30, 0x1E, 0x03, 0x00, 0x00, 0x03, 0x00, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x56, 0x10, 0x05, 0x08, 0x00, 0x48, 0x4A, 0x00, 0x00, 0x24, 0x25, 0x28, 0x0A, 0x25, 0x21, -0x29, 0x04, 0x29, 0x29, 0x15, 0x39, 0x24, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x40, 0x3F, -0x7E, 0x2D, 0x66, 0x0F, 0x70, 0x47, 0x01, 0x7C, 0x63, 0x1F, 0x5E, 0x71, 0x67, 0x30, 0x7E, 0x78, 0x33, 0x60, 0x1F, 0x3C, 0x03, 0x7C, 0x63, 0x73, 0x47, 0x3F, 0x7E, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x06, 0x02, 0x3F, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x0F, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x40, 0x0C, 0x0C, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1F, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x0F, 0x00, 0x00, 0x00, -0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x19, 0x33, 0x66, 0x7C, 0x33, 0x66, 0x4C, 0x19, 0x00, 0x40, 0x19, 0x63, 0x5F, 0x61, 0x7C, 0x03, 0x46, 0x1F, 0x7E, 0x4C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x70, 0x7F, 0x03, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, -0x7C, 0x01, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 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, 0x00, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x78, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3E, 0x40, 0x03, 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, 0x60, 0x0F, 0x78, 0x03, 0x00, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x60, -0x7F, 0x7F, 0x7F, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x43, 0x0F, 0x00, 0x7C, 0x19, 0x00, 0x00, 0x00, -0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x63, 0x19, 0x30, 0x41, 0x01, 0x27, 0x19, 0x3F, 0x4E, 0x01, 0x73, 0x1C, 0x46, 0x29, 0x06, 0x00, 0x00, 0x08, 0x76, 0x40, 0x1F, 0x04, 0x00, 0x00, 0x00, 0x40, 0x7C, 0x63, 0x1F, 0x00, 0x00, 0x00, -0x60, 0x00, 0x7F, 0x7F, 0x01, 0x42, 0x0B, 0x40, 0x60, 0x15, 0x70, 0x08, 0x00, 0x00, 0x00, 0x01, 0x5D, 0x17, 0x5D, 0x00, 0x40, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0F, 0x78, 0x03, 0x00, -0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, 0x7F, 0x01, 0x7F, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x1F, -0x40, 0x7F, 0x7F, 0x7F, 0x19, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x4B, 0x0E, 0x03, 0x16, 0x18, 0x10, 0x26, 0x19, 0x11, 0x0E, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x40, 0x07, 0x00, 0x00, -0x00, 0x00, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, 0x01, 0x00, 0x15, 0x6E, 0x55, 0x03, 0x11, 0x2E, 0x01, 0x12, 0x52, 0x25, 0x04, 0x00, 0x2E, 0x5C, 0x3A, 0x0B, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, 0x03, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x79, 0x7F, 0x7F, 0x43, 0x0F, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, 0x01, 0x7C, 0x3F, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x60, 0x00, 0x00, 0x03, 0x10, 0x00, 0x00, 0x00, 0x70, 0x61, 0x30, 0x18, 0x73, 0x01, 0x00, 0x03, 0x00, -0x60, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x67, 0x3C, 0x07, 0x00, 0x48, 0x52, 0x07, 0x00, 0x24, 0x69, 0x4B, 0x6B, 0x18, 0x2E, 0x2E, 0x39, 0x29, 0x49, 0x62, 0x21, 0x19, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x12, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x06, 0x40, 0x0F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, -0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x0F, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, -0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x19, 0x33, 0x66, -0x7C, 0x33, 0x66, 0x4C, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x41, 0x20, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x70, 0x7F, 0x03, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x02, 0x00, 0x40, 0x1F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x78, 0x3F, 0x00, 0x00, 0x00, 0x40, 0x00, 0x7E, 0x7F, 0x03, 0x04, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0F, 0x78, 0x03, 0x00, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x7F, 0x7F, 0x7F, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, -0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x43, 0x0F, 0x00, 0x7C, 0x19, 0x00, 0x00, 0x00, 0x60, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x14, 0x24, 0x10, 0x27, 0x02, 0x69, 0x24, 0x49, -0x52, 0x00, 0x14, 0x25, 0x09, 0x1A, 0x01, 0x00, 0x00, 0x08, 0x36, 0x18, 0x07, 0x08, 0x00, 0x00, 0x00, 0x40, 0x7E, 0x01, 0x00, 0x01, 0x00, 0x00, 0x60, 0x00, 0x7E, 0x7F, 0x01, 0x42, 0x22, 0x5D, 0x20, 0x31, 0x50, 0x2E, 0x3C, 0x77, 0x6E, 0x41, -0x44, 0x34, 0x09, 0x01, 0x40, 0x38, 0x57, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, -0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x00, 0x00, 0x40, 0x0F, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0E, 0x20, 0x05, 0x00, 0x00, 0x49, -0x52, 0x04, 0x72, 0x24, 0x30, 0x29, 0x25, 0x51, 0x52, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x3F, 0x00, 0x20, 0x01, 0x00, 0x75, -0x2A, 0x5D, 0x02, 0x71, 0x28, 0x05, 0x72, 0x52, 0x26, 0x04, 0x00, 0x2A, 0x45, 0x2A, 0x1A, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, -0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, 0x03, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x61, 0x7F, 0x7F, 0x43, 0x0F, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, -0x01, 0x60, 0x3F, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x00, 0x00, 0x00, 0x43, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x19, 0x33, 0x66, -0x7C, 0x33, 0x66, 0x4C, 0x19, 0x00, 0x00, 0x40, 0x03, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x70, 0x61, 0x30, 0x18, 0x73, 0x01, 0x02, 0x03, 0x00, 0x60, 0x7F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x10, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x72, 0x04, 0x00, 0x09, 0x10, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x0F, 0x00, 0x00, 0x00, -0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3C, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, -0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x7C, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x10, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x03, 0x12, 0x00, 0x00, 0x00, 0x00, 0x01, 0x70, 0x3F, 0x00, 0x08, 0x1C, 0x00, -0x10, 0x02, 0x00, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x70, 0x7F, 0x03, 0x00, 0x3F, 0x00, -0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x60, 0x3B, 0x02, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x01, 0x5C, 0x00, 0x00, 0x00, -0x40, 0x00, 0x7E, 0x7F, 0x03, 0x04, 0x00, 0x75, 0x6E, 0x5D, 0x7B, 0x7D, 0x38, 0x07, 0x00, 0x2A, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0F, 0x78, 0x03, 0x00, -0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x7F, 0x7F, 0x7F, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x78, -0x43, 0x0F, 0x00, 0x7C, 0x19, 0x00, 0x00, 0x00, 0x20, 0x61, 0x01, 0x00, 0x00, 0x00, 0x00, 0x51, 0x14, 0x3C, 0x10, 0x69, 0x03, 0x29, 0x24, 0x49, 0x52, 0x00, 0x17, 0x25, 0x4F, 0x0B, 0x02, 0x00, 0x00, 0x08, 0x6E, 0x1F, 0x00, 0x08, 0x00, 0x00, -0x00, 0x40, 0x1E, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x7C, 0x7F, 0x00, 0x42, 0x2A, 0x55, 0x60, 0x14, 0x50, 0x2A, 0x24, 0x15, 0x2A, 0x41, 0x5C, 0x54, 0x09, 0x01, 0x40, 0x2B, 0x75, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x00, 0x00, 0x40, 0x0F, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, 0x04, 0x40, 0x1F, 0x00, 0x04, 0x00, 0x00, 0x49, 0x52, 0x07, 0x12, 0x3D, 0x10, 0x29, 0x25, 0x55, 0x52, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x40, 0x0A, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x01, 0x01, 0x00, 0x53, 0x2A, 0x51, 0x02, 0x51, 0x2A, 0x03, 0x12, 0x52, 0x24, 0x04, 0x06, 0x2A, 0x45, 0x2A, 0x22, 0x12, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, 0x03, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, -0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x61, 0x7F, 0x7F, 0x43, 0x0F, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, 0x01, 0x40, 0x3F, 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x19, 0x33, 0x66, 0x7C, 0x33, 0x66, 0x4C, 0x19, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0C, -0x66, 0x30, 0x18, 0x43, 0x01, 0x03, 0x03, 0x00, 0x60, 0x7F, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1F, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x02, 0x04, 0x60, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1F, 0x00, 0x00, 0x7C, 0x01, -0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x0F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 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, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x7E, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1F, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x7C, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 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, 0x03, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x78, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x78, 0x7F, 0x00, 0x08, 0x44, 0x3B, 0x17, 0x38, 0x07, 0x00, 0x2A, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x70, 0x7F, 0x03, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, -0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x40, 0x67, 0x10, 0x02, 0x00, 0x00, 0x00, 0x20, 0x43, 0x61, 0x4F, 0x00, 0x00, 0x00, 0x40, 0x00, 0x7F, 0x7F, 0x01, 0x04, 0x00, 0x55, 0x2A, 0x15, 0x2A, 0x55, 0x2A, 0x05, 0x00, 0x2E, -0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0F, 0x78, 0x03, 0x00, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, -0x7F, 0x01, 0x7F, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x78, 0x43, 0x0F, 0x00, 0x7C, 0x19, 0x00, 0x00, 0x00, 0x20, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x51, -0x14, 0x04, 0x10, 0x29, 0x00, 0x27, 0x24, 0x49, 0x4E, 0x40, 0x74, 0x1C, 0x21, 0x0A, 0x24, 0x00, 0x00, 0x10, 0x6C, 0x07, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x20, 0x00, 0x78, 0x3F, 0x00, 0x42, 0x4B, 0x44, -0x20, 0x15, 0x70, 0x4A, 0x2A, 0x15, 0x22, 0x41, 0x44, 0x14, 0x09, 0x41, 0x41, 0x28, 0x45, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, -0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x00, 0x00, 0x40, 0x0F, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, -0x04, 0x60, 0x1F, 0x00, 0x02, 0x00, 0x00, 0x71, 0x4E, 0x00, 0x12, 0x05, 0x10, 0x29, 0x25, 0x55, 0x12, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x20, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x40, 0x7F, 0x01, 0x00, 0x55, 0x6E, 0x5D, 0x02, 0x57, 0x2E, 0x05, 0x14, 0x5E, 0x24, 0x02, 0x00, 0x2E, 0x5D, 0x2B, 0x1A, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, -0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, 0x03, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x40, 0x00, 0x00, 0x1F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x63, 0x1C, 0x07, 0x00, 0x48, 0x02, -0x00, 0x00, 0x04, 0x01, 0x60, 0x03, 0x00, 0x20, 0x20, 0x00, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x7C, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0C, 0x66, 0x30, 0x18, 0x43, 0x41, 0x7F, 0x03, 0x00, 0x30, 0x78, 0x7F, 0x7F, 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, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x04, 0x04, 0x03, 0x10, 0x22, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x1F, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, -0x7F, 0x01, 0x3F, 0x60, 0x0F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x1F, 0x00, 0x00, 0x00, 0x60, 0x4F, 0x3F, 0x7C, 0x03, 0x63, 0x30, 0x7E, -0x4C, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x78, 0x1F, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x07, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x7F, 0x7F, -0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x19, 0x33, 0x66, 0x7C, 0x33, 0x66, 0x4C, 0x19, 0x00, 0x00, 0x00, -0x00, 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, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, -0x00, 0x01, 0x7E, 0x7F, 0x01, 0x0C, 0x44, 0x22, 0x75, 0x0A, 0x01, 0x00, 0x2E, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x0F, 0x78, 0x7F, 0x01, -0x3F, 0x00, 0x70, 0x7F, 0x03, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x60, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x7F, 0x1F, -0x40, 0x0F, 0x00, 0x7C, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x78, 0x6F, 0x1C, 0x02, 0x00, 0x00, -0x00, 0x20, 0x40, 0x71, 0x47, 0x00, 0x00, 0x00, 0x40, 0x00, 0x7F, 0x7F, 0x01, 0x04, 0x00, 0x17, 0x0A, 0x45, 0x2A, 0x55, 0x2A, 0x04, 0x06, 0x6A, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x60, 0x0F, 0x78, 0x03, 0x00, 0x3F, 0x60, 0x7F, 0x07, 0x7C, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x7F, 0x1F, 0x00, 0x78, 0x7F, 0x01, 0x7F, 0x7F, 0x0F, 0x78, 0x7F, 0x01, 0x3F, 0x00, 0x00, 0x00, 0x7C, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x7F, 0x7F, 0x43, 0x7F, 0x7F, 0x7F, 0x19, 0x00, 0x00, 0x00, 0x00, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4E, 0x64, 0x19, 0x20, 0x49, 0x01, 0x21, 0x18, 0x49, 0x02, 0x01, 0x17, 0x04, 0x46, 0x0B, 0x23, 0x00, -0x00, 0x10, 0x0C, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x42, 0x28, 0x5D, 0x60, 0x35, 0x50, 0x0E, 0x39, 0x75, 0x6E, 0x01, 0x45, 0x17, 0x49, 0x00, 0x40, 0x38, 0x75, 0x0E, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, -0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7F, 0x00, 0x00, 0x40, 0x0F, 0x00, 0x70, 0x1F, 0x00, 0x00, 0x00, 0x04, 0x7C, 0x1F, 0x00, 0x02, 0x00, 0x00, 0x42, 0x02, 0x03, 0x14, 0x19, 0x10, 0x26, 0x19, 0x4A, -0x12, 0x24, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x40, 0x7F, 0x7F, 0x7F, -0x03, 0x00, 0x00, 0x60, 0x7F, 0x7F, 0x03, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x40, 0x00, 0x40, 0x07, 0x20, 0x00, 0x00, 0x00, 0x70, -0x01, 0x0F, 0x18, 0x7C, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x14, 0x21, 0x01, 0x00, 0x48, 0x52, 0x07, 0x00, 0x04, 0x69, 0x13, 0x44, 0x19, 0x0E, 0x26, 0x38, 0x01, 0x27, 0x64, 0x18, 0x18, 0x65, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x40, 0x3F, 0x7E, 0x7C, 0x63, 0x0F, 0x70, 0x67, 0x0F, 0x7C, -0x63, 0x4F, 0x5F, 0x71, 0x67, 0x1F, 0x7E, 0x78, 0x03, 0x40, 0x1F, 0x3F, 0x7B, 0x7C, 0x79, 0x73, 0x47, 0x3F, 0x43, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x7C, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, -0x00, 0x0E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0C, 0x66, 0x30, 0x18, 0x43, 0x41, 0x7F, 0x01, 0x00, 0x10, 0x00, 0x7E, 0x7F, 0x7F, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; - diff --git a/src/master_main.c b/src/master_main.c index da3a783..4c5b4c0 100644 --- a/src/master_main.c +++ b/src/master_main.c @@ -24,7 +24,7 @@ static uint8_t *module_page = (uint8_t*)MODULE_PAGE; static shared_page_data * shared_page = (shared_page_data*)SHARED_PAGE; -#define FILE_LIST_LEN 5 +#define FILE_LIST_LEN 6 #define FNAME_LEN 6 #define STATE_FILE_IDX 1 @@ -37,6 +37,7 @@ static const uint8_t file_table[FILE_LIST_LEN][FNAME_LEN] = { { 0x80 | 'I', 0x80 | 'N', 0x80 | 'T', 0x80 | 'R', 0x80 | 'O', 0x00}, // INTRO (this executable will show the initial presentation picture) { 0x80 | 'D', 0x80 | 'L', 0x80 | 'O', 0x80 | 'G', 0xA0, 0x00}, // DLOG (startup, win, lose dialogs) { 0x80 | 'G', 0x80 | 'A', 0x80 | 'M', 0x80 | 'E', 0xA0, 0x00}, // GAME (the actual game) + { 0x80 | 'D', 0x80 | 'E', 0x80 | 'M', 0x80 | 'O', 0xA0, 0x00}, // DEMO (automatic demo) }; static uint8_t file_trksec[FILE_LIST_LEN][2]; // This will hold track/sector for initial ts list sector for every one of the listed files. Populated at startup. @@ -46,6 +47,7 @@ static uint16_t file_load_address[FILE_LIST_LEN] = { // This will hold the load MODULE_PAGE, MODULE_PAGE, MODULE_PAGE, + MODULE_PAGE, }; static void init(void);